(3)0,z>1
(2/T-二)2
S域左半平面映射到z域单位圆内
S域虚轴映射到z域单位圆上
S域右半平面映射到z域单位圆外
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
(四)双线性变换法优缺点
双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。
缺点是幅度响应不是常数时会产生幅度失真。
(五)Q和3的关系如下图2-3所示:
w=2tan=
T12丿
图2-3模拟频率3与数字频率Q的对应关系
由图2-3看出,在零频率附近,模拟角频率Q与数字频率3之间的变换关系接近于线性关系;但当Q进一步增加时,3增长得越来越慢,最后当时,
3终止在折叠频率3=冗处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,如式
(2-10)及图2-3所示。
由于这种频率之间的非线性变换关系,就产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生
的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图2-4所
示。
图2-4双线性变换法幅度和相位特性的非线性映射
对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波
器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频
率的预畸来加以校正。
也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。
三.IIR数字滤波器设计过程
1.设计步骤
根据以上IIR数字滤波器设计方法,下面运用双线性变换法基于MATLAB设计一个IIR带通滤波器。
(1)确定性能指标
在设计带通滤波器之前,首先根据工程实际的需要确定滤波器的技术指
标:
通带截止频率fp仁1200,fp2=3000;阻带截止频率fs仁1000;fs2=3200;;
阻带最小衰减As=100d环口通带最大衰减Ap=1dB;
(2)把频率转化为数字角频率
wp1=2*pi*fp1*T;wp2=2*pi*fp2*T;
ws1=2*pi*fs1*T;ws2=2*pi*fs2*T;
(3)频率预畸变
用Q=2/T*tan(w/2)对带通数字滤波器H(z)的数字边界频率预畸变,得到带通模拟滤波器H(s)的边界频率主要是通带截止频率Wp1,Wp2阻带截止频率Ws1Ws2的转换。
抽样频率fs=10KHz。
通带截止频率Wp1=(2/T)*tan(wp1/2);Wp2=(2/T)*tan(wp2/2);
阻带截止频率Ws1=(2/T)*tan(ws1/2);Ws2=(2/T)*tan(ws2/2)
(4)模拟带通性能指标转换成模拟低通性能指标
WP=[Wp1,Wp2];W0=sqrt(Wp1*Wp2);
B=Wp2-Wp1;WS=[Ws1,Ws2];
(5)模拟低通滤波器的构造
借助切比雪夫(Chebyshev)滤波器得到模拟低通滤波器的传输函数
Ha(s)。
[N,Wc]=cheb1ord(WP,WS,Ap,As,'s');%求阶数和边缘频率[z0,p0,k0]=cheb1ap(N,Ap);%求极点,零点和增益
num=k0*real(poly(z0));%模拟低通滤波器系统函数的分子多项式den=real(poly(p0));
(6)模拟低通滤波器转换成模拟带通滤波器
调用lp2bp函数将模拟低通滤波器转化为模拟带通滤波器。
[numt,dent]=lp2bp(num,den,W0,B);
%模拟带通滤波器系统函数的分子多项式和分母多项式
(7)
Ha(s)转换成数字带通滤波器
模拟带通滤波器转换成数字带通滤波器利用双线性变换法将模拟带通滤波器
H(z)。
[numd,dend]=bilinear(numt,dent,fs);
2.音频信号部分程序
1)写入声音信号
[y,fs,nbits]=wavread('1.wav');
sound(y,fs,nbits);
%
回放语音信号
N=length(y);
%
求出语音信号长度
Y=fft(y,N);
%
傅里叶变换
产生噪声并加到声音中
noise=0.01*randn(N,1);
%
随机函数产生噪声
S=y+noise;
%
语音信号加入噪声
sound(S);
Si=fft(S);
%
滤波前傅里叶变换
y1=filter(numd,dend,S);
sound(y1);
y2=fft(y1);
3.程序流程图
首先确定性能指标,把频率转化为数字角频率,进而在进行频率预畸变,用
Q=2/T*tan(w/2)对带通数字滤波器H(z)的数字边界频率预畸变,得到带通模拟滤波器H(s)的边界频率主要是通带截止频率Wp1,Wp2阻带截止频率Ws1Ws2
的转换。
抽样频率fs=10KHz。
上述准备工作做好之后,就先把模拟带通性能指标转换成模拟低通性能指
标,然后设计模拟低通滤波器,借助切比雪夫(Chebyshev)滤波器得到模拟低通滤波器的传输函数Ha(s)。
然后调用lp2bp函数将模拟低通滤波器转化为模拟带通滤波器。
最后利用双线性变换法将模拟带通滤波器Ha(s)转换成数字带通滤波器H(z)。
;流程图如下图3-1所示:
开始
在Window下录制语音将语音格式改为wav
对语音信号进行频谱分析,画出时域和频域波形图
加入噪声
用切比雪夫设计IIR带通滤波器
画出其频率响应
用IIR滤波器对语音信号进行滤波
画出语音信号滤波前后的波形并进行比较
结束
图3-1IIR带通滤波器去噪流程
4.仿真结果
源程序设计了模拟低通滤波器、模拟带通滤波器与数字带通滤波器,对数
字带通滤波器的性能仿真如图3-2:
图3-2滤波器的辐频相频特性曲线
为了实现IIR数字带通滤波器的应用,程序中加入了有噪声的音频信号,通过对其滤波处理,来显示数字带通滤波器的功能,下面显示未加入噪声如图3-3所示频谱及加入噪声之后和加噪后经滤除噪声的频谱和波形如图3-4所
示:
0.5
0
-0.5
-1
滤波前信号频谱
滤波前信号波形
1
滤波后信号频谱
0246
4
x10
滤波后信号波形
图3-3语音信号的波形及频谱
图3-4滤波前后的频谱与噪声
总结
在现代通信系统中,由于信号中经常混有各种噪声和干扰,所以很多信号分析都是基于滤波器而进行的,而数字滤波器一定运算关系改变输入输出信号所含频率成分的相对比例或者滤出某些频率成分的器件,具有处理精度高、稳定、灵活、不从在阻抗匹配问题等优点,可以实现模拟滤波器无法实现的特殊滤波功能。
本次试验的主要利用MATLAB^件实现基于语音信号去噪处理的IIR滤波器的设计。
此次过程中主要有:
一、根据给定的指标设计得到IIR数字带通滤波器;二、采集语音信号并对其进行时域、频域分析;三、给采集好的信号叠加单频正弦噪声;四、将叠加噪声之后的语音信号通过IIR带通滤波器得到去噪语音信号,并将去噪前后的语音信号进行时域、频域的分析对比,故而可以的到实验结果。
最后,虽然基于语音信号去噪处理的IIR滤波器的课程设计得以完成,但是也存在一些问题,如选用不同的语音信号时,经滤波后的不到与原始信号类似的信号频谱,有事甚至什么语音信号都没有。
因此,在以后的学习中要多加注意,并尽可能找到解决的方法。
致谢
通过基于语音信号去噪处理的IIR滤波器的设计我学习掌握了好多知识,首先是对MATLA有了一个全新的认识,其次是对MATLAB勺更多操作和命令的使用有了更高的掌握,最重要的是对MATLA处理数字信号处理的相关能力有了更高的飞跃,就对MATLA中涉及到数字信号处理的相关命令来说,通过这次课程设计的亲身操作和实践,学习掌握了较多的原来不知道的或不熟悉的命令。
在此次基于语音信号去噪处理的IIR带通滤波器设计仿真过程中,滤波器的设计对于这次课设的我来说完全是实践中的新知识,虽然网上有很多关于IIR
带通滤波器的完整设计,能有借鉴的模板和方法固然很令人放松,但自己觉得这样做有点浪费青春,很没意思。
因为我借鉴过来后,自己对基于语音信号去噪处理的IIR带通滤波器设计既没有记忆,更谈不上理解。
所以一个人暗暗下定决心,要把这块硬骨头啃下来。
因此图书馆便是不可少去的地方,翻阅多本参考书,进行多重比较,才在心中有了设计的基本概念。
在多次爬山涉水中,才明白怎样进行完整的设计,怎样用MATLA实现相关的仿真。
最后,非常感谢陈海燕老师和同学在这次基于语音信号去噪处理的IIR滤波器课程设计中对我的帮助,因为你们的不懈努力和耐心教导,才使在这次课程设计中收获颇丰。
参考文献
[1]陈后金.数字信号处理[M].北京:
高等教育出版社,2005.1
[2]程佩青.数字信号处理[M].北京:
清华大学出版社,2007.2
[3]从玉良.数字信号处理原理及其MATLAB实现[M].北京:
电子工业出版
社.2009.7
[4]胡广书.数字信号处理理论、算法与实现[M].北京:
清华大学出版社.2003.8
[5]丁玉美,高西全.数字信号处理[M].西安电子科技大学出版社.2001
[6]刘泉.数字信号处理原理与实现[M].电子工业出版社(第2版).2009
[7]陈怀琛.数字信号处理教程—MATLAB?
义与实现[M].电子工业出版社.2004
[8]张圣勤.MATLAB7.0实用教程[M].北京:
机械工业出版社.2006.
模拟滤波器的通带截止频率
模拟滤波器的阻带截止频率带通滤波器的通带宽度带通滤波器的中心频率
求阶数和边缘频率求极点,零点和增益模拟低通滤波器系统函数的分子多项式模拟低通滤波器系统函数的分母多项式
模拟带通滤波器系统函数的分子多项式和分母多项式双线性变换,有模拟滤波器转为数字滤波器
数字带通滤波器的幅频特性
附录:
%技术指标
fp1=1200;fp2=3000;
fs1=1000;fs2=3200;
Ap=1;As=100;
fs=10000;T=1/fs;
wp1=2*pi*fp1*T;wp2=2*pi*fp2*T;ws1=2*pi*fs1*T;ws2=2*pi*fs2*T;%带通到低通的频率转换
Wp1=(2/T)*tan(wp1/2);
Wp2=(2/T)*tan(wp2/2);
WP=[Wp1,Wp2];%
Ws1=(2/T)*tan(ws1/2);
Ws2=(2/T)*tan(ws2/2);
WS=[Ws1,Ws2];%
B=Wp2-Wp1;%
W0=sqrt(Wp1*Wp2);%%切比雪夫模拟低通原型滤波器的设计[N,Wc]=cheb1ord(WP,WS,Ap,As,'s');%[z0,p0,k0]=cheb1ap(N,Ap);%num=k0*real(poly(z0));%
den=real(poly(p0));%
%模拟低通原型滤波器转换为模拟带通滤波器[numt,dent]=lp2bp(num,den,W0,B);%
[numd,dend]=bilinear(numt,dent,fs);%
[h,w]=freqz(numd,dend);%dbH=20*log10((abs(h)+eps)/max(abs(h)));
%以分贝表示带通滤波器的幅频特性
figure
(1);
subplot(2,1,1);plot(w/pi,db(h));gridon;xlabel('w(rad)');ylabel('|H(z)|');axis([0,1,-100,25]);title('幅频特性曲线(db)');
subplot(2,1,2);plot(w/pi,angle(h));gridon;
xlabel('w(rad)');ylabel('H(z)');axis([0,1,-5,5]);
title('相频特性曲线');[y,fs,nbits]=wavread('sound(y,fs,nbits);
N=length(y);
Y=fft(y,N);
figure
(2);
subplot(2,1,1);plot(y);title('subplot(2,1,2);plot(abs(Y));title('原始信号频谱');t=[0:
1/fs:
1];
noise=[0.5*sin(2000*pi*t)];
noise=noise(:
1);
S=y+noise;
sound(S);
Si=fft(S);
y1=filter(numd,dend,S);
sound(y1);
y2=fft(y1);
figure(3);subplot(2,2,1);plot(abs(Si),'g');
title('滤波前信号频谱');subplot(2,2,2);
公鸡打鸣.wav');
%
%
%
回放语音信号求出语音信号长度傅里叶变换
原始信号波形');
%
%
%
%
随机函数产生噪声
语音信号加入噪声
滤波前傅里叶变换
滤波后傅里叶变换
plot(abs(y2),'r');
title('滤波后信号频谱');subplot(2,2,3);
plot(S);
title('滤波前信号波形');
subplo