当前位置:文档之家› 数字信号处理实验九

数字信号处理实验九

数字信号处理实验九
数字信号处理实验九

实验报告

课程名称:数字信号处理实验九:信号滤波

班级:通信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('滤波后频谱');

相关主题
文本预览
相关文档 最新文档