IIR和FIR滤波器设计专题研讨.docx

上传人:b****3 文档编号:5532229 上传时间:2022-12-18 格式:DOCX 页数:37 大小:338.26KB
下载 相关 举报
IIR和FIR滤波器设计专题研讨.docx_第1页
第1页 / 共37页
IIR和FIR滤波器设计专题研讨.docx_第2页
第2页 / 共37页
IIR和FIR滤波器设计专题研讨.docx_第3页
第3页 / 共37页
IIR和FIR滤波器设计专题研讨.docx_第4页
第4页 / 共37页
IIR和FIR滤波器设计专题研讨.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

IIR和FIR滤波器设计专题研讨.docx

《IIR和FIR滤波器设计专题研讨.docx》由会员分享,可在线阅读,更多相关《IIR和FIR滤波器设计专题研讨.docx(37页珍藏版)》请在冰豆网上搜索。

IIR和FIR滤波器设计专题研讨.docx

IIR和FIR滤波器设计专题研讨

《数字信号处理》课程研究性学习报告

姓名

学号

同组成员

指导教师

时间2011/5/10

IIR和FIR滤波器设计专题研讨

【目的】

(1)掌握根据滤波器指标设计IIR和FIR数字滤波器的原理和方法。

(2)熟悉通过IIR和FIR数字滤波器进行实际系统设计的方法。

(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。

【研讨题目】

1.设计一个数字滤波器,在频率低于

的范围内,低通幅度特性为常数,并且不低于0.75dB。

在频率

之间,阻带衰减至少为20dB。

(1)试求满足这些条件的最低阶Butterworth滤波器。

(2)试求满足这些条件的最低阶ChebyshevI滤波器。

(3)自主选择一段带限信号,通过所设计的

(1)、

(2)两种滤波器,比较各自的输入和输出信号。

讨论两种滤波器在结构和性能上的差异。

【题目分析】

本题讨论模拟滤波器和数字滤波器的设计。

结合课本分析各类滤波器的特性。

【IIR模拟滤波器设计的基本方法】

在设计IIR模拟滤波器的时候,

1)先将待设计的模拟滤波器技术指标转换为原型模拟低通滤波器的指标;

2)然后设计原型模拟低通滤波器(有Butterworth、Chebyshev和椭圆等设计方法);

3)再通过频率变换将模拟低通滤波器转换为所需的滤波器。

【仿真结果】

【结果分析】

Butterworth滤波器:

从图上可以看出,所设计的滤波器满足指标,通带内为恒定常数0dB,在过渡带内单调递减,在pi附近急剧下降,阻带衰减有裕量。

ChebyshevI滤波器:

从图上可以看出,所设计的滤波器满足指标,通带波动,过渡带内单调递减,相对于Butterworth滤波器的阻带衰减比较均匀。

【自主学习内容】

1)用Butterworth、Chebyshev和椭圆等设计方法设计模拟低通滤波器;

2)如何用matlab实现上述模拟滤波器的实现;

3)通过频率变换将模拟低通滤波器转换为所需的滤波器;

4)用单位脉冲响应法和双线性变换法实现模拟滤波器向数字滤波器的转换。

【阅读文献】

《数字信号处理(第二版)》陈后金主编高等教育出版社

【发现问题】(专题研讨或相关知识点学习中发现的问题):

【问题探究】

单位脉冲响应法与双线性变换法的比较:

(使用Butterworth的设计方法讨论)

仿真程序

Wp=0.2613*pi;Ws=0.4018*pi;

Ap=0.75;As=20;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

[N,wc]=buttord(wp,ws,Ap,As,'s');

[num_a,den_a]=butter(N,wc,'s');

[num_d1,den_d1]=impinvar(num_a,den_a,Fs);

[num_d2,den_d2]=bilinear(num_a,den_a,Fs);

w=linspace(0,pi,1024);

h1=freqz(num_d1,den_d1,w);

norm1=max(abs(h1));

num_d1=num_d1/norm1;

h2=freqz(num_d2,den_d2,w);

norm2=max(abs(h2));

num_d2=num_d2/norm2;

plot(w/pi,20*log10(abs(h1/norm1)),'blue');

holdon;

plot(w/pi,20*log10(abs(h2/norm2)),'green');

xlabel('Normalizedfrequency');

ylabel('Gain,dB');

仿真结果

结果分析

在本次设计中,通带内,用单位脉冲响应法和双线性变换区别并不明显,相比于单位脉冲响应法,双线性变换法,通带截频处地衰减略大,在过渡带和阻带则出现明显的差别,即双线性变换法的衰减明显大于单位脉冲响应法。

【仿真程序】

Butterworth滤波器:

Wp=0.2613*pi;Ws=0.4018*pi;

Ap=0.75;As=20;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

[N,wc]=buttord(wp,ws,Ap,As,'s');

[num_a,den_a]=butter(N,wc,'s');

[num_d,den_d]=impinvar(num_a,den_a,Fs);

w=linspace(0,pi,1024);

h=freqz(num_d,den_d,w);

norm=max(abs(h));

num_d=num_d/norm;

plot(w/pi,20*log10(abs(h/norm)));

xlabel('Normalizedfrequency');

ylabel('Gain,dB');

ChebyshevI滤波器:

Wp=0.2613*pi;Ws=0.4018*pi;

Ap=0.75;As=20;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

[N,wc]=cheb1ord(wp,ws,Ap,As,'s');

[num_a,den_a]=cheby1(N,Ap,wc,'s');

[num_d,den_d]=impinvar(num_a,den_a,Fs);

w=linspace(0,pi,1024);

h=freqz(num_d,den_d,w);

norm=max(abs(h));

num_d=num_d/norm;

plot(w/pi,20*log10(abs(h/norm)));

xlabel('Normalizedfrequency');

ylabel('Gain,dB');

滤波:

1)Butterworth滤波器

Wp=0.2613*pi;Ws=0.4018*pi;

Ap=0.75;As=20;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

[N,wc]=buttord(wp,ws,Ap,As,'s');

[num_a,den_a]=butter(N,wc,'s');

[num_d,den_d]=impinvar(num_a,den_a,Fs);

w=linspace(0,pi,1024);

h=freqz(num_d,den_d,w);

x=w;

s=h.*w;

plot(w,abs(s));

2)ChebyshevI滤波器

Wp=0.2613*pi;Ws=0.4018*pi;

Ap=0.75;As=20;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

[N,wc]=cheb1ord(wp,ws,Ap,As,'s');

[num_a,den_a]=cheby1(N,Ap,wc,'s');

[num_d,den_d]=impinvar(num_a,den_a,Fs);

w=linspace(0,pi,1024);

h=freqz(num_d,den_d,w);

x=w;

s=h.*w;

plot(w,abs(s));

2.分别用Hamming窗,Blackman窗和Kaiser窗设计,满足下列指标的FIR低通滤波器:

(1)画出所设计滤波器的幅频响应。

(2)比较这三种窗的设计结果。

 

【题目分析】

本题讨论窗函数法设计数字FIR滤波器。

结合课本分析不同窗函数法的设计结果。

【FIR模拟滤波器设计的基本方法】

1、窗函数法

1)根据待逼近的理想滤波器的频率响应,确定滤波器的类型;

2)确定理想滤波器的幅度函数和相位函数,由IDTFT求出理想滤波器的单位脉冲响应;

3)将上述所求的无限长单位脉冲响应加窗截断得到有限长的序列。

2、频率取样法

1)根据待逼近的理想滤波器的频率响应,确定滤波器的类型;

2)确定理想滤波器的幅度函数、相位函数和频率响应上的取样点,由IDFT得到所需的滤波器有限长的单位脉冲响应。

 

【仿真结果】

【结果分析】

从上面的仿真可以看出,

1)分别用Hamming窗、Blackman窗、Kaiser窗设计的FIR低通滤波器在通带内没有波动;

2)通带衰减和阻带衰减,Kaiser窗最小,Hamming窗次之,Blackman窗最大;

3)三种窗设计的阶数由Kaiser窗、Hamming窗、Blackman窗依次增加。

【自主学习内容】

1)窗函数设计线性相位FIR滤波器的思想和步骤;

2)各种窗函数的具体内容、区别和使用;

3)频率频率取样法设计线性相位FIR滤波器的思想及步骤;

4)用matlab实现上述两种方法的设计方法。

【阅读文献】

《数字信号处理(第二版)》陈后金主编高等教育出版社

【发现问题】(专题研讨或相关知识点学习中发现的问题):

Kaiser窗是一种可调窗,如何调节阻带衰减?

【问题探究】

Kaiser窗RS参数的调节对滤波器设计的影响(程序与)

仿真结果

结果分析

1)RS影响阻带衰减,RS越小,阻带衰减越大;

2)RS影响滤波器的阶数,RS越大,阶数越高;

3)RS影响滤波器的阻带波动范围。

【仿真程序】

Hamming窗:

(N=35)

Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45;

N=ceil(7*pi/(Ws-Wp));

N=mod(N+1,2)+N;

M=N-1;

fprintf('N=%.0f\n',N);

w=hamming(N)';

Wc=(Wp+Ws)/2;

k=0:

M;

hd=(Wc/pi)*sinc(Wc*(k-0.5*M)/pi);

h=hd.*w;

omega=linspace(0,pi,512);

mag=freqz(h,[1],omega);

magdb=20*log10(abs(mag));

plot(omega/pi,magdb);

Blackman窗:

(N=59)

Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45;

N=ceil(11.4*pi/(Ws-Wp));

N=mod(N+1,2)+N;

M=N-1;

fprintf('N=%.0f\n',N);

w=blackman(N)';

Wc=(Wp+Ws)/2;

k=0:

M;

hd=(Wc/pi)*sinc(Wc*(k-0.5*M)/pi);

h=hd.*w;

omega=linspace(0,pi,512);

mag=freqz(h,[1],omega);

magdb=20*log10(abs(mag));

plot(omega/pi,magdb);

Kaiser窗:

(N=24)

RS=0.01;

f=[0.40.6];

a=[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,512);

mag=freqz(h,[1],omega);

plot(omega/pi,20*log10(abs(mag)));

三种窗:

RS=0.01;

f=[0.40.6];

a=[1,0];

dev=RS*ones(1,length(a));

[M1,Wc1,beta,ftype]=kaiserord(f,a,dev);

h1=fir1(M1,Wc1,ftype,kaiser(M1+1,beta));

omega=linspace(0,pi,512);

mag1=freqz(h1,[1],omega);

plot(omega/pi,20*log10(abs(mag1)),'blue');

holdon;

Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45;

N2=ceil(7*pi/(Ws-Wp));

N2=mod(N2+1,2)+N;

M2=N2-1;

fprintf('N2=%.0f\n',N2);

w2=hamming(N2)';

Wc2=(Wp+Ws)/2;

k=0:

M2;

hd2=(Wc2/pi)*sinc(Wc2*(k-0.5*M2)/pi);

h2=hd2.*w2;

mag2=freqz(h2,[1],omega);

magdb2=20*log10(abs(mag2));

plot(omega/pi,magdb2,'green');

holdon;

Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45;

N3=ceil(11.4*pi/(Ws-Wp));

N3=mod(N3+1,2)+N3;

M3=N3-1;

fprintf('N3=%.0f\n',N3);

w3=blackman(N3)';

Wc3=(Wp+Ws)/2;

k=0:

M3;

hd3=(Wc3/pi)*sinc(Wc3*(k-0.5*M3)/pi);

h3=hd3.*w3;

mag3=freqz(h3,[1],omega);

magdb3=20*log10(abs(mag3));

plot(omega/pi,magdb3,'red');

 

3.附件给出了一段含有噪声的音频信号。

(1)分析该信号的频谱特点。

(2)通过脉冲响应不变法设计一个滤波器对其进行处理,得到有用信息,自主确定各项指标。

(3)使用双线性变换法重做

(2)。

(4)试定量比较上述两种滤波器的各项性能,画出能说明性能差异的相关图形,对比并解释。

(5)通过不同窗函数法设计FIR滤波器对其进行处理,比较不同窗函数的滤波效果,给出分析和结论。

(选做)(6)请尝试采用其它的音频信号,混入不同的噪声,利用所学的滤波方法进行分析,会得到什么样的效果?

【题目分析】

本题讨论用IIR和FIR数字滤波器进行实际系统设计的方法。

【仿真结果】

(1)

 

【结果分析】

对几种滤波器得到的音频信号进行对比。

【自主学习内容】

这条指令主要功能是读取音频文件,该音频文件的格式规定为MicrosoftWAVE格式,也就是以.wav为后缀的音频文件。

有以下几种使用方法。

1、y=wavread(file);

该语句读取文件名为file的音频文件,并将音频数据存储在y中,返回给用户使用。

音频数据的值域为[-1,1]

2、[y,fs,nbits]=wavread(file)

同上,file指定音频文件名,y是音频数据。

另外该语句还能够返回该音频文件的采样率fs,和采样位数nbits

3、[...]=wavread(file,n)

该语句用来读取文件名为file的音频文件中的前n个数据。

如果有多个通道,每个通道的数据都会被读取出来。

[...]表示随用户自己定义。

如果用户在这里只写一个y,该语句就只会返回音频数据,如果用户写成[y,fs,nbits],该语句就不但会返回音频数据y,还会返回采样率fs,和采样位数nbits

4、[...]=wavread(file,[n1,n2])

该语句用来读取文件名为file的音频文件中的第n1个到第n2个之间的数据。

5、siz=wavread(file,'size')

该语句返回文件名为file的音频文件的数据大小siz=[sampleschannels]

6、[y,fs,nbits,opts]=wavread(...)

该语句返回的参数opts包含了音频文件的额外信息。

【阅读文献】

《数字信号处理(第二版)》陈后金主编高等教育出版社

【发现问题】(专题研讨或相关知识点学习中发现的问题):

当有裕量出现时,选择不同的窗对滤波器选择有阶数的影响。

【问题探究】

在IIR滤波器设计过程中,由于利用指标数据的不同,造成裕量的出现。

讨论利用不同指标出现裕量对滤波器性能的影响,以及如何有效地利用它?

在FIR滤波器设计过程中,由于所选用窗函数的不同,导致对信号滤波的效果不同。

本题的语音信号加入的是双频噪声,讨论如果对信号加入其它形式的噪声,采用何种滤波器更合适。

【仿真程序】

(1)含有噪声音频分析:

[x,fs,bits]=wavread('hello.wav');

x1=x(1:

1:

end);X1=fft(x1);

plot(abs(X1));title('含有噪声的音频信号');

仿真结果

结果分析

读取音频文件后,得知抽样频率为fs=44100HZ,共取N=50688个点。

经过将图放大,在8800HZ——8950HZ,1005HZ——1025HZ两处范围内有噪声信号,发现所需要设计的滤波器参数应满足wp>6000,ws<8800,才能更可能将噪声去除。

(2)利用脉冲响应不变法所设计的低通滤波器:

wp=6336;ws=8448;Ap=1;As=25;(让角频率可以取整数)

[x,fs,bits]=wavread('hello.wav');

x1=x(1:

1:

end);

X1=fft(x1);

w=linspace(0,2*pi,50688);

subplot(3,1,1);

plot(w/pi,abs(X1));title('含有噪声的音频信号频谱图');

np=6336;ns=8448;n=50688;

Wp=np*2*pi/n;

Ws=ns*2*pi/n;

Ap=1;As=25;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

N=buttord(wp,ws,Ap,As,'s');

wc=wp/(10^(0.1*Ap)-1)^(1/2/N);

[numa,dena]=butter(N,wc,'s');

[numd,dend]=impinvar(numa,dena,Fs);

h=freqz(numd,dend,w);

norm=max(abs(h));

numd=numd/norm;

subplot(3,1,2);

plot(w/pi,20*log10(abs(h)/norm));title('利用脉冲响应不变法所设计的滤波器幅度分布');

 

X=X1.*(h');

subplot(3,1,3);

plot(w/pi,abs(X));title('滤除噪声后的音频信号频谱图');

仿真结果

结果分析

要使噪声消除,则滤波器在噪声频率处需要完成衰减,此音频信号中,需要完成的衰减约为49.54dB,

(3)利用双线性变换法所设计的低通滤波器:

wp=6336;ws=8448;Ap=1;As=25;(让角频率可以取整数)

[x,fs,bits]=wavread('hello.wav');

x1=x(1:

1:

end);

X1=fft(x1);

w=linspace(0,2*pi,50688);

subplot(3,1,1);

plot(w/pi,abs(X1));title('含有噪声的音频信号频谱图');

np=6336;ns=8448;n=50688;

Wp=np*2*pi/n;

Ws=ns*2*pi/n;

Ap=1;As=25;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

N=buttord(wp,ws,Ap,As,'s');

wc=wp/(10^(0.1*Ap)-1)^(1/2/N);

[numa,dena]=butter(N,wc,'s');

[numd,dend]=bilinear(numa,dena,Fs);

h=freqz(numd,dend,w);

norm=max(abs(h));

numd=numd/norm;

subplot(3,1,2);

plot(w/pi,20*log10(abs(h)/norm));title('利用双线性变化法所设计的滤波器幅度分布');

 

X=X1.*(h');

subplot(3,1,3);

plot(w/pi,abs(X));title('滤除噪声后的音频信号频谱图');

结果分析

要使噪声消除,则滤波器在噪声频率处需要完成衰减,此音频信号中,需要完成的衰减约为49.54dB,当使用双线性变换法时,在此噪音频率前已已达到标准,过渡带衰减速率高。

(4)定量比较上述两种滤波器的各项性能:

从第一题中可以看出,两方法的最大区别是过渡带的差距,则先保持Ap=1;As=25不变,调大wp,使通带增加,

np=6336

w=linspace(0,2*pi,50688);

np=6336;ns=8448;n=50688;

Wp=np*2*pi/n;

Ws=ns*2*pi/n;

Ap=1;As=25;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

N=buttord(wp,ws,Ap,As,'s');

wc=wp/(10^(0.1*Ap)-1)^(1/2/N);

[numa,dena]=butter(N,wc,'s');

[numd,dend]=impinvar(numa,dena,Fs);

h=freqz(numd,dend,w);

norm=max(abs(h));

numd=numd/norm;

plot(w/pi,20*log10(abs(h)/norm),'blue');

xlabel('Normalizedfrequency');

ylabel('Gain,dB');

holdon;

np=6336;ns=8448;n=50688;

Wp=np*2*pi/n;

Ws=ns*2*pi/n;

Ap=1;As=25;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

N=buttord(wp,ws,Ap,As,'s');

wc=wp/(10^(0.1*Ap)-1)^(1/2/N);

[numa,dena]=butter(N,wc,'s');

[numd,dend]=bilinear(numa,dena,Fs);

h=freqz(numd,dend,w);

norm=max(abs(h));

numd=numd/norm;

plot(w/pi,20*log10(abs(h)/norm),'red');

xlabel('Normalizedfrequency');

ylabel('Gain,dB');

legend('脉冲响应不变法','双线性变化法')

title('两种滤波器np=6336');

 

np=6500

w=linspace(0,2*pi,50688);

np=6500;ns=8448;n=50688;

Wp=np*2*pi/n;

Ws=ns*2*pi/n;

Ap=1;As=25;

Fs=1;

wp=Wp*Fs;ws=Ws*Fs;

N=buttord(wp,ws,Ap,As,'s');

wc=wp/(10^(0.1*Ap)-1)^(1/2/N);

[numa,dena]=butter(N,wc,'s');

[numd,dend]=impinvar(numa,dena,Fs);

h=freqz(numd,dend,w);

norm=max(abs(h));

numd=numd/norm;

plot(w/pi,20*l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1