经典滤波器的设计和使用.docx
- 文档编号:6549334
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:17
- 大小:277.47KB
经典滤波器的设计和使用.docx
《经典滤波器的设计和使用.docx》由会员分享,可在线阅读,更多相关《经典滤波器的设计和使用.docx(17页珍藏版)》请在冰豆网上搜索。
经典滤波器的设计和使用
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2015年春季学期
《信号处理》课程设计报告
题目:
经典滤波器的设计和使用
班级:
通信工程12级
(1)班
姓名:
设计质量(30分):
学号:
******xx说明书质量(10分):
同组成员:
指导教师:
摘要
滤波器广泛应用于电子电路中,具有平滑信号、选频、去噪和使交流信号变为直流信号的功能。
可分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器,也可分为模拟滤波器和数字滤波器,数字滤波器分为IIR数字滤波器和FIR数字滤波器。
设计滤波器之前先根据实际需要确定滤波器类型和指标,通过MATLAB分别设计低通、带通和高通三种滤波器,首先通过三种滤波器对时域信号滤波,然后对信号频域变换后滤波,最后对信号进行时域搬移后滤波。
通过MATLAB得出的频谱图对信号的三种形式通过三种滤波器后的结果进行分析,通过分析比较各滤波器的优点和缺点。
关键词:
MATLABIIR滤波器FIR滤波器频域变换时域搬移
一、基本原理
数字滤波器是一个离散系统,其系统函数一般可表示为
的有理多项式形式,即
当{ai;i=1,2,…,N}都为0时,上式描述的系统称为有限脉冲响应数字滤波器,简称FIR(Finite-ImpulseResponse)数字滤波器。
当系数{ai;i=1,2,…,N}中至少有一个是非0时,上式描述的系统称为无限脉冲响应数字滤波器,简称IIR(Infinite-ImpulseResponse)数字滤波器。
对于IIR数字滤波器,一般满足M≤N,这时将系统称为N阶IIR数字滤波器。
对于FIR数字滤波器,系统函数中
的有理多项式的最高次幂M就是其阶数。
在设计数字滤波器时,首先根据具体的滤波成分,确定待设计数字滤波器的技术指标,再求解出满足设计指标的离散系统的系统函数H(z)。
数字滤波器的技术指标通常用通带截频
,通带最大衰减Ap,阻带截频
,阻带最小衰减AS表示。
1.1IIR数字滤波器设计原理
IIR滤波器的设计就是根据给定的数字滤波器技术指标,确定上式中滤波器的阶数N和系数{ai,bj}。
在满足技术指标的条件下,滤波器的阶数应尽可能低。
应为滤波器阶数越低,实现滤波器的成本就越低。
由于模拟滤波器的设计技术已经非常成熟,且可得闭合形式的解,因此在设计IIR滤波器时,一般是通过模拟滤波器来设计滤波器。
设计方法是先将数字滤波器技术指标转换为对应的模拟滤波器技术指标,然后设计满足技术指标的模拟滤波器H(s),再将模拟滤波器H(s)转换为对应的数字滤波器H(z)。
因此,在IIR数字滤波器设计中,模拟滤波器设计是基础,模拟滤波器到数字滤波器的转换是核心。
而模拟滤波器的设计都是通过设计模拟低通滤波器来实现,比较常见的模拟低通滤波器有巴特沃思和切比雪夫等。
将模拟滤波器变换为数字滤波器的主要方法有脉冲响应不变法和双线性变换法。
图1-1IIR数字滤波器的设计过程
1.2FIR数字滤波器设计原理
表1-1四种线性相位FIR滤波器的特性
类型
I
II
III
IV
阶数M
偶数
奇数
偶数
奇数
H[k]的对称性
偶对称
偶对称
奇对称
奇对称
0.5M
0.5M
0.5M
0.5M
0
0
0.5
0.5
A(
)关于
=0的对称性
偶对称
偶对称
奇对称
奇对称
A(
)关于
=
的对称性
偶对称
奇对称
奇对称
偶对称
A(
)的周期
2
4
2
4
A(0)
任意
任意
0
0
A(
)
任意
0
0
任意
可适用的滤波器类型
LP,HP,BP,BS等
LP,BP
微分器,Hilbert(希尔伯特)
变换器
微分器,Hilbert(希尔伯特)
变换器,HP
窗函数法设计FIR滤波器的基本思想是在时域逼近理想滤波器的单位脉冲相应。
首先根据待逼近的理想滤波器的频率响应
,由IDTFT求出理想滤波器的单位脉冲响应
,再将无限长的
加窗截断得到有限长序列
。
为了获得线性相位FIR滤波器,在窗函数法设计FIR滤波器的过程中,需要将线性相位因子
加入理想滤波器的频率响应
,具体步骤如下:
(1)根据所需设计的滤波器,确定线性相位滤波器的类型(I型,II型,III型,IV型)。
(2)确定理想滤波器的幅度函数
。
(3)确定理想滤波器的相位
。
对I型和II型线性相位FIR滤波器
,对III型和IV型线性相位FIR滤波器
。
(4)计算
。
(5)截断
得
其中w[k]是长度N=M+1的矩形窗。
二、滤波器详细设计
2.1信号源
产生一个连续信号,包含低频、中频、高频分量,对其进行采样,进行频谱分析分别设计三种高通、低通、带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。
合成信号频谱程序如下:
t=(1:
100)/2000;
x=sin(2*pi*t*20)+sin(2*pi*t*200)+sin(2*pi*t*500);
plot(t,x);
n=[1:
100];
t=n/2000;
X=fft(x,512);
w=(0:
255)/256*1000;
x=sin(2*pi*t*20)+sin(2*pi*t*200)+sin(2*pi*t*500);
plot(w,abs(X(1:
256)));
xlabel('Hz');
ylabel('频率响应幅度');
title('合成信号频谱图');
图2-1合成信号波形图
图2-2合成信号频谱图
2.2低通滤波器
根据数字滤波器的设计原理,首先将数字域的指标转化为模拟域的指标设计模拟低通滤波器,然后应用双线性变换法将模拟滤波器转化为数字滤波器将指标转换成归一化模拟低通滤波器的指标,通过归一化的模拟低通滤波器阶数N和3dB截止频率的计算,将模拟域频率变换成模拟低滤波器H(s),并用双线性变换法将H(s)转换成数字低通滤波器H(z),由此得到低通数字滤波器。
IIR低通滤波器的设计程序为:
Ft=8000;
Fp=1000;
Fs=1200;
As=100;
Ap=1;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Fp*tan(wp/2);
fs=2*Fs*tan(ws/2);
[n11,wn11]=buttord(wp,ws,1,50,'s');
[b11,a11]=butter(n11,wn11,'s');
[num11,den11]=bilinear(b11,a11,0.5);
[h,w]=freqz(num11,den11);
plot(w*8000*0.5/pi,abs(h));
title('低通滤波器');
图2-3IIR低通滤波器
读入信号对信号傅里叶变换进行频谱分析,利用filter函数滤波,对得到的信号傅里叶变换进行频谱分析,与滤波前进行比较。
图2-4滤波前信号波形
图2-5滤波后信号波形
图2-6滤波后信号的频谱
图2-7滤波前信号的频谱
2.3带通滤波器
IIR带通滤波器的设计程序为:
Ft=8000;
Fp1=1200;
Fp2=3000;
Fs1=1000;
Fs2=3200;
As=100;
Ap=1;
wp1=tan(pi*Fp1/Ft);
wp2=tan(pi*Fp2/Ft);
ws1=tan(pi*Fs1/Ft);
ws2=tan(pi*Fs2/Ft);
w=wp1*wp2/ws2;
bw=wp2-wp1;
wp=1;
ws=(wp1*wp2-w.^2)/(bw*w);
[n12,wn12]=buttord(wp,ws,1,50,'s');
[b12,a12]=butter(n12,wn12,'s');
[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);
[num12,den12]=bilinear(num2,den2,0.5);
[h,w]=freqz(num12,den12);
plot(w*8000*0.5/pi,abs(h));
title('带通滤波器');
图2-8IIR带通滤波器
图2-9滤波后的信号波形
图2-10滤波后信号的频谱
读入信号对信号傅里叶变换进行频谱分析,利用filter函数滤波,对得到的信号傅里叶变换进行频谱分析,与滤波前进行比较.并在滤波前后用sound函数播放语音信号,观察滤波前后的变化。
2.3高通滤波器
IIR高通滤波器的设计程序为:
Ft=8000;
Fp=4000;
Fs=3500;
wp1=tan(pi*Fp/Ft);
ws1=tan(pi*Fs/Ft);
wp=1;
ws=wp1*wp/ws1;
[n13,wn13]=cheb1ord(wp,ws,1,50,'s');
[b13,a13]=cheby1(n13,1,wn13,'s');
[num,den]=lp2hp(b13,a13,wn13);
[num13,den13]=bilinear(num,den,0.5);
[h,w]=freqz(num13,den13);
plot(w*21000*0.5/pi,abs(h));
title('高通滤波器');
图2-11IIR高通滤波器
图2-12滤波后的信号波形
图2-13滤波后的信号频谱
读入信号对信号傅里叶变换进行频谱分析,利用filter函数滤波,对得到的信号傅里叶变换进行频谱分析,与滤波前进行比较。
分析滤波前后信号的变化,波形图变窄,频谱变化表明:
信号的高频率段被保留,低频率段被滤除。
这说明滤波器设计基本符合指标要求。
总结
通过几周的课程设计,我对MATLAB的使用有了很大提高,能够熟练掌握MATLAB编程原理和应用MATLAB处理各种问题,MATLAB中带有海量功能函数和命令,在使用其设计滤波器时,首先要熟悉滤波器函数的使用方法,MATLAB应用范围广使用人数多,涌现出各类相关书籍、查询手册和网络资料。
同时通过对滤波器的设计,提高了对数字信号处理的能力,此次设计的滤波器有低通滤波器、带通滤波器和高通滤波器,三种滤波器为IIR数字滤波器或FIR数字滤波器,在设计IIR滤波器之前需要根据实际分析得出数字滤波器的指标,在设计数字滤波器之前要设计模拟滤波器,所以需要将数字滤波器指标转换为模拟滤波器指标,设计好模拟滤波器后再通过脉冲响应不变法和双线性变换法变为IIR数字滤波器,FIR线性相位滤波器分为四种类型:
I型、II型、III型、IV型。
可以使用窗函数法设计线性相位FIR数字滤波器,设计的滤波器会有Gibbs现象,严重影响滤波器的性能,在设计时应减少这种现象的影响,常用窗函数有矩形窗、Hann窗、Hamming窗、Blackman窗、Kaiser窗。
各个窗函数的特性都不一样,设计滤波器之前应熟悉这些窗函数的性能,以使设计出的滤波器性能更加完美,也可以使用频率取样法设计线性相位FIR数字滤波器。
IIR滤波器的重大缺点在于,由于存在反馈其稳定性不能得到保证。
另外,反馈还使IIR滤波器的数字运算可能溢出。
从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。
但是这个高效率是以相位的非线性为代价的。
选择性越好,则相位非线性越严重。
相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性。
在设计之初由于对MATLAB不熟悉和专业知识掌握不牢,设计相对艰难,进度缓慢,通过老师的指导、同学们的帮助和查阅资料,滤波器的设计才得以顺利进行,提高了独自处理问题的能力和团队合作能力,在此对指导老师和同学们表示感谢。
参考文献
[1]丁玉美.数字信号处理.西安电子科技大学出版社,2012
[2]陈后金.数字信号处理(第2版).高等教育出版社,2012
[3]A.V.Oppenheim.离散时间信号处理(第3版)英文版,电子工业出版社,2011
[4]V.K.Ingle.数字信号处理:
应用MATLAB(第3版)英文影印版,科学出版社,2012
[5]胡广书.数字信号处理.清华大学出版社(第3版),2012.
[6]樊昌信.通信原理.北京:
国防工业出版社,2010.
[7]刘敏.MATLAB通信仿真与应用.北京:
国防工业出版社.
附录
IIR低通滤波器滤波程序:
f1=20;
f2=200;
f3=500;
t=(1:
100)/2000;
x1=sin(2*pi*t*f1);
x1=sin(2*pi*t*f2);
x1=sin(2*pi*t*f3);
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
n=[1:
100];
t=n/2000;
X=fft(x,512);
w=(0:
255)/256*1000;
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
Ft=8000;
Fp=1000;
Fs=1200;
As=100;
Ap=1;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Fs*tan(wp/2);
fs=2*Fs*tan(ws/2);
[n11,wn11]=buttord(wp,ws,1,50,'s');
[b11,a11]=butter(n11,wn11,'s');
[num11,den11]=bilinear(b11,a11,0.5);
[h,w]=freqz(num11,den11);
z11=filter(num11,den11,x);
m11=fft(z11);
plot(abs(x),'g');
title('滤波前信号的频谱');
plot(abs(m11),'r');
title('滤波后信号的频谱');
plot(x);
title('滤波前信号的波形');
plot(z11);
title('滤波后信号的波形');
IIR带通滤波器滤波程序:
f1=20;
f2=200;
f3=500;
t=(1:
100)/2000;
x1=sin(2*pi*t*f1);
x2=sin(2*pi*t*f2);
x3=sin(2*pi*t*f3);
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
n=[1:
100];
t=n/2000;
X=fft(x,512);
w=(0:
255)/256*1000;
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
Ft=8000;
Fp1=1200;
Fp2=3000;
Fs1=1000;
Fs2=3200;
As=100;
Ap=1;
wp1=tan(pi*Fp1/Ft);
wp2=tan(pi*Fp2/Ft);
ws1=tan(pi*Fs1/Ft);
ws2=tan(pi*Fs2/Ft);
w=wp1*wp2/ws2;
bw=wp2-wp1;
wp=1;
ws=(wp1*wp2-w.^2)/(bw*w);
[n12,wn12]=buttord(wp,ws,1,50,'s');
[b12,a12]=butter(n12,wn12,'s');
[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);
[num12,den12]=bilinear(num2,den2,0.5);
[h,w]=freqz(num12,den12);
z12=filter(num12,den12,x);
m12=fft(z12);
plot(abs(x),'g');
title('滤波前信号的频谱');
plot(abs(m12),'r');
title('滤波后信号的频谱');
plot(x);
title('滤波前信号的波形');
plot(z12);
title('滤波后的信号波形');
IIR高通滤波器滤波:
f1=20;
f2=200;
f3=500;
t=(1:
100)/2000;
x1=sin(2*pi*t*f1);
x2=sin(2*pi*t*f2);
x3=sin(2*pi*t*f3);
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
n=[1:
100];
t=n/2000;
X=fft(x,512);
w=(0:
255)/256*1000;
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
Ft=8000;
Fp=4000;
Fs=3500;
wp1=tan(pi*Fp/Ft);
ws1=tan(pi*Fs/Ft);
wp=1;
ws=wp1*wp/ws1;
[n13,wn13]=cheb1ord(wp,ws,1,50,'s');
[b13,a13]=cheby1(n13,1,wn13,'s');
[num,den]=lp2hp(b13,a13,wn13);
[num13,den13]=bilinear(num,den,0.5);
[h,w]=freqz(num13,den13);
z13=filter(num13,den13,x);
sound(z13);
m13=fft(z13);
plot(abs(x),'g');
title('滤波前信号的频谱');
plot(abs(m13),'r');
title('滤波后信号的频谱');
plot(x);
title('滤波前信号的波形');
plot(z13);
title('滤波后的信号波形');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 滤波器 设计 使用