数字信号处理实验九
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:数字信号处理实验九:信号滤波
班级:通信1403
学生姓名:强亚倩
学号:1141210319
指导教师:范杰清
华北电力大学(北京)
一、实验目的
综合应用信号频谱分析和数字滤波器设计的知识,实现信号的滤波。加深理解信号时域和频域分析的物理概念,理解设计指标的工程概念,认识不同类型滤波器的特性和适用范围。
二、实验原理
首先对待滤波的信号进行频谱分析,观察信号频率分布的规律,从而确定数字滤波器的类型(FIR滤波器、IIR滤波器、自适应滤波器、小波滤波器等)。
在加性噪声的情况下,若信号的频谱与噪声的频谱基本不重叠,可以采用频率选择滤波器(FIR滤波器、IIR滤波器)。
若信号的频谱与噪声的频谱重叠较多,可以采用自适应滤波、小波滤波等。
若为乘性噪声,可以根据同态滤波的原理对信号进行预处理,然后再按照加性噪声的情况处理。
在确定了数字滤波器类型后,还需要根据信号时域特性、频域特性、或时频特性确定滤波器的设计参数,设计出相应的数字滤波器。
最后,利用该数字滤波器对信号进行滤波,在时域和频域观察信号滤波的主观及客观效果。若主观及客观效果满足要求,说明分析过程和滤波方法正确有效,若不满足要求,需要重新分析和设计。
三、实验内容
1.对周期方波信号进行滤波。
(1)生成一个基频为10Hz的周期方波信号x(t)。
(2)设计一数字滤波器,滤去该周期信号中40Hz以外的频率成分,观察滤波前后信号时域波形及频谱。
(3)若该信号x(t)淹没在噪声中(随机噪声用randn((1,N)生成),试用filter函数滤去噪声。
滤波前的时域波形
Fs=1000;
T=1/10;
t=0:1/Fs:1;
x=square(2*pi*10*t);
figure
plot(t,x)
title('矩形波')
xlabel('时间(秒)')
ylabel('函数值(福特)')
axis([0,0.2,-1.5,1.5])
滤波前的频谱
N=T*Fs;
t1=0:1/Fs:1/Fs*(N-1)
x1=square(2*pi*10*t1);
f=(-N/2)*Fs/N:Fs/N:((N/2-1))*Fs/N;
fx=fftshift(fft(x,N))/N;
figure
plot(f,abs(fx));
title('方波信号的频谱')
xlabel('频率')
ylabel('函数值fx')
滤波后的时域波形
[n,Wn]=buttord(40/500,50/500,3,15);
[b,a]=butter(n,Wn);
y=filter(b,a,x);
figure
plot(t,y)
title('矩形波通过低通滤波器后的时域波形') xlabel('时间(秒)')
ylabel('函数值(福特)')
axis([0,0.2,-1.5,1.5])
滤波后的频谱
N=512;
f=(-N/2)*Fs/N:Fs/N:(N/2-1)*Fs/N; fy=fftshift(fft(y,N))/N;
figure
plot(f,abs(fy))
title('滤波后信号的频谱')
xlabel('频率')
ylabel('函数值fx')
figure
freqz(b,a);
title('低通滤波器的频率特性')
滤除噪声
noise=randn(1,100);
HC=x1+noise;
f=(-N/2)*Fs/N:Fs/N:(N/2-1)*Fs/N; HC=fftshift(fft(HC,N))/N;
figure
plot(f,abs(HC));
title('滤除噪声之前')
xlabel('频率f')
ylabel('幅度')
HC1=filter(b,a,HC);
figure
plot(f,abs(HC1));
title('滤除噪声之后')
xlabel('频率f')
ylabel('幅度')
2.若原始落信号由5Hz、15Hz、30Hz三个幅度相等的正弦信号构成。分别设计一个FIR和IIR数字滤波器滤除5Hz和30Hz频率成分。
(1)绘制原始信号时域波形和幅度频谱。
(2)分别设计FIR和IIR数字滤波器,滤绘制其幅频特性。(3)利用设计的滤波器对信号进行滤波,绘制输出信号的时域波形和幅度频谱。
时域波形
(1)k=0:255;
x=cos(2*pi*5*k*0.01)+cos(2*pi*15*k*0.01)+cos(2*pi*30*k*0.01); figure
stem(x)
X=fft(x);
figure
plot(abs(X))
FIR滤波器
k=0:255;
x=cos(2*pi*5*k*0.01)+cos(2*pi*15*k*0.01)+cos(2*pi*30*k*0.01); X=fft(x);
plot(abs(X));title('原始信号频谱');
Rs=0.01;
f=[0.05,0.11,0.15,0.4];
a=[0,1,0];
dev=Rs*ones(1,length(a));
[M,Wc,beta,ftype]=kaiserord(f,a,dev);
h=fir1(M,Wc,ftype,kaiser(M+1,beta));
omega=linspace(0,pi,256)
mag=freqz(h,[1],omega);
figure
plot(omega/pi,20*log10(abs(mag)));title('fir带通滤波器');
Y=X.*mag;
figure
plot(abs(Y));title('滤波后频谱');