180 likes | 493 Views
基于双线性变换的 IIR 数字高通滤波器设计. 信号与信息处理专业 尹晓娜. 报告内容. 数字滤波器简介 设计原理 程序设计及验证分析. 一、数字滤波器简介. 1 、数字滤波器的分类 从功能划分:低通、高通、带通、带阻 从实现的网络结构划分 : 无限脉冲响应( IIR ): 有限脉冲响应( FIR ):. 2 、数字滤波器的技术要求. 是 幅频特性 ,它表示信号通过该滤波器后各频率成分衰减情况,一般选频滤波器的技术要求由它给出。
E N D
基于双线性变换的IIR数字高通滤波器设计 信号与信息处理专业 尹晓娜
报告内容 • 数字滤波器简介 • 设计原理 • 程序设计及验证分析
一、数字滤波器简介 1、数字滤波器的分类 • 从功能划分:低通、高通、带通、带阻 • 从实现的网络结构划分: 无限脉冲响应(IIR): 有限脉冲响应(FIR):
2、数字滤波器的技术要求 是幅频特性,它表示信号通过该滤波器后各频率成分衰减情况,一般选频滤波器的技术要求由它给出。 是相频特性,反映各频率成分通过滤波器后在时间上的延时情况,如果对输出波形有要求,就要考虑相频特性的技术指标
二、IIR滤波器设计原理 1、IIR数字滤波器的设计方法 • 频率变换法:借助于模拟滤波器的设计 • 直接设计法:直接在频域或时域上进行设计
2、数字化的方法 使数字滤波器在时域上模仿模拟滤波 器,但主要缺点是会产生频率混叠, 使数字滤波器的频响偏移模拟滤波器 的频响,产生的原因是模拟低通的最 高截止频率超过折叠频率Π/T,为此 希望 设计的滤波器是带限滤波器, 例如:低通、带通 • 冲激响应不变法 • 阶跃响应不变法 • 双线性变换法:数字频率与模拟频率之间非线性, 需要在设计之前进行预畸
3、双线性变换的原理 双线性变换法的映射规则: 变换公式:
给出 数字高通 的技术要求 得到 模拟高通 的技术要求 得到 模拟低通 的技术要求 得到 模拟高通转移 函数 最后得到 数字高通转移 函数 设计出 4、数字高通滤波器设计步骤
三、程序设计及验证分析 1、Matlab程序代码: function [C,B,A]=high(Fp,Fs,Ft,Rp,As) wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; OmegaP=(2/T)*tan(wp/2); OmegaS=(2/T)*tan(ws/2); ep=sqrt(10^(Rp/10)-1); Ripple=sqrt(1/(1+ep*ep)); Attn=1/(10^(As/20));
normwp=1; normws=OmegaP/OmegaS; [N,wn]=buttord(normwp,normws,Rp,As,'s'); [blp,alp]=butter(N,normwp,'s'); [b,a]=bilinear(bhp,ahp,Ft); [C,B,A]=dir2cas(b,a); figure(1); freqz(b,a,128,Ft);
2、举例 • 设计一个Butter-Worth高通数字滤波器,通带边界频率为300Hz,阻带边界频率200Hz,通带波纹为1db,阻带衰减 大于20db,采样频率为1000Hz。 在Matlab窗口下执行命令: [C,B,A]=high(300,200,1000,1,20)
频率响应 分析: 通频带内的频率响应曲线 最大限度平坦,没有起 伏,而在阻频带则逐渐下 降为零这是巴特沃斯滤波 器的特点,在频率大于 300Hz时,相移较小,曲 线近似一条直线,失真较 小 ,超过这个范围,相移 较大,失真也较大
3、验证 对一个信号加噪声,然后用所设计的滤波器进行滤波。 以下是程序代码: function noise [x,Fs,Nbits]=wavread('d:\come.wav'); sound(x,Fs); X=fft(x,1024); w=(0:511)/512*(Fs/2); Subplot(3,1,1); plot(w,abs(X(1:512)')); title(‘原始语音信号频谱');
t=0:1/Fs:(size(x)-1)/Fs; x1=0.1*sin(2*pi*2000*t); x2=x1.'; s=x2+x; wavwrite(s,Fs,'addnoise'); S=fft(s,1024); f=(0:511)/512*(Fs/2); Subplot(3,1,2); plot(f,abs(S(1:512)')); title('含噪语音信号频谱'); axis([0,12000,0,2]); [b,a]=high(3000,2500,Fs,3,25); sf=filter(b,a,s); wavwrite(sf,Fs,'filtnoise'); SF=fft(sf,1024); f1=(0:511)/512*(Fs/2); Subplot(3,1,3); plot(f1,abs(SF(1:512)')); title('滤波后语音信号频谱'); axis([0,12000,0,2]);
原始语音信号 • 含噪语音信号 • 滤波后的语音信号 分析: 从验证中可以看出所设计的高通滤波器确实 把低频率的噪声滤除掉了,但将滤波后的信号 与原始信号相对比,发现滤波后的信号有些弱, 原因是在滤波的时候,不仅把噪声滤除了,而且 也把语音信号的低频率也滤掉了,所以信号有些 弱了。