IIR滤波器实现方波滤波和音乐滤波

更新时间:2024-06-25 18:56:01 阅读量:1 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验十一 信号滤波

1、对周期方波信号进行滤波

% 用 IIR 滤波器实现 clc clear

Fs=1000; %随实际信号频率适当选择 t=0:1/Fs:1;

x=square(2*pi*10*t);%产生幅度为[-1,1]的方波 % x=sawtooth(2*pi*10*t,0.5); %产生幅度为[-1,1]的三角波 plot(t,x)

title('矩形波')

axis([0,0.4,-1.5,1.5]) %限定输出图形的坐标范围大小

%求方波的频谱

T=0.1; %取一个周期数据进行采样 t1=0:1/Fs:(T-1/Fs);

xn=square(2*pi*10*t1); %取样 N=Fs*T;

Xk=fft(xn,N); %算N点FFT频谱 Xk=fftshift(abs(Xk)); Xkl=Xk/N; figure

stem(Fs/N*[0:1:N-1],Xkl) title('方波信号的频谱')

[n,Wn]=buttord(10/500,80/500,3,40);

% 确定butterworth滤波器的阶次, % 前两个参数如何设定?

[b,a]=butter(n,Wn); %确定滤波器传递函数 figure

freqs(b,a); %滤波器频率特性 title('滤波器频率特性')

y=filter(b,a,x); %滤波 figure plot(t,y)

title('矩形波通过低通滤波器后的波形') axis([0,0.4,-1.5,1.5])

s=randn(1,1001); %信号叠加噪声 为什么是1001点? xs=x+s; figure plot(t,xs)

title('信号叠加噪声的波形') %axis([0,0.5,-2,2])

N=512; %加噪音信号的频谱 fx=fftshift(fft(xs,N)); figure

f=(-N/2:(N/2-1))*2; f=f*Fs/N; plot(f,abs(fx))

title('加噪声的频谱')

yl=filter(b,a,xs); %采用filter函数滤波 figure

plot(t,yl) %滤波后的波形 title('滤波后的 波形') %axis([0,0.5,-2,2]) figure

fxs=fftshift(fft(yl,N)); %滤波后波形的频谱 f=(-N/2:(N/2-1))*2; f=f*Fs/N;

plot(f,abs(fxs))

title('滤波后的 频谱')

2、对混有噪声的音乐信号进行滤波

clc clear

music=wavread('C:\\MATLAB7\\toolbox\\dspblks\\dspdemos\\dspafsx_mono.wav');

music=music'; %dspafsx_mono.wav文件地址 随 系 统安装位置不同而异 a=size(music)

%利用media player观察音乐持续时间为3s,信号的采样点数为60000,可知信号的采样频率为20KHz

music=decimate(music,2);

%音乐的采样频率降低为10KHz t=0:0.0001:(3-0.0001);

x=sin(2*pi*1000*t)+sin(2*pi*3000*t); %加入两个正弦信号噪声,1kHz和3kHz mx=music+x; sound(music)

%用sound函数播放mono.wav音乐文件 %sound(mx)

figure

subplot(3,1,1),plot(t,music),title('音乐信号') subplot(3,1,2),plot(t,x),title('正弦信号')

subplot(3,1,3),plot(t,mx),title('叠加正弦干扰的音乐信号')

N=512; %叠加干扰后,信号的频谱 Fmx=fftshift(fft(mx,N)); f=-N/2:1:(N/2-1); f=f*10000/N; figure

plot(f, Fmx)

title('叠加干扰后,信号的频谱')

[b1,a1]=butter(2,[900/5000,1100/5000],'stop'); %直接II型IIR带阻滤波器

[b2,a2]=butter(2,[2800/5000,3200/5000],'stop'); bt=conv(b1,b2); at=conv(a1,a2);

%梳状滤波器传递函数系数bt, at

figure

freqz(bt,at); % 梳状滤波器频率响应 title('梳状滤波器频率响应')

y2=filter(bt,at,mx); figure

subplot(3,1,1),plot(t,music),title('音乐信号') subplot(3,1,2),plot(t,mx),title('叠加正弦干扰的音乐信号')

subplot(3,1,3),plot(t,y2),title('滤波后的信号') %sound(y2)

N=512; %滤波后信号的频谱 Fmxl=fftshift(fft(y2,N)); f=-N/2:1:(N/2-1); f=f*10000/N; figure

plot(f,Fmxl)

title('滤波后信号的频谱')

%用filtfilt函数实现零相位滤波 y3=filtfilt(bt,at,mx); figure

subplot(3,1,1),plot(t,music),title('音乐信号') subplot(3,1,2),plot(t,y2),title('非零相位滤波后的信号')

subplot(3,1,3),plot(t,y3),title('零相位滤波后的信号') %sound(y3)

2014年12月24日(三) -- 12月24日实验内容

请 完成以下内容

1、清楚方波信号的频谱特点;

2、掌握IIR和FIR两种滤波器设计方法; 3、完成实验指导书上内容后,请改变滤波器参数,使得滤波器可以实现以下各种功能:

1)、只保留基波10赫兹成分; (低通) 2)、只保留5次谐波即50赫兹信号成分;(带通) 3)、保留方波信号中40赫兹以后(含40赫兹)成分;(高通)

4)、只滤掉30赫兹信号分量。(带阻)

本文来源:https://www.bwwdw.com/article/s8o3.html

《IIR滤波器实现方波滤波和音乐滤波.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文
范文搜索
下载文档
Top