《实践课信号的滤波和还原》由会员分享,可在线阅读,更多相关《实践课信号的滤波和还原(11页珍藏版)》请在金锄头文库上搜索。
1、实践3对语音信号做时域波形分析和频谱分析11、滤波器参数的设计接下来的问题就是滤波,即将有用的信号保留下来,无用的信号去除。滤波器的设计是基于前面信号的频谱分析为基础的。2从加噪信号的频谱图看到,两个语言信号的频谱区别还是很大的,msg1的能量主要集中在4000HZ附近,而system1的能量主要集中在1000HZ以内。因此,我们可以选择低通滤波器来滤除msg1语言信号,或者选择高通滤波器来滤除system1语言信号。参数提取(以低通滤波器为例):1.通带截至频率WP=1000HZ,阻带截至频率WS=2000HZ,通带最大衰减RP=1db,阻带最小衰减RS=40db,设计低通巴特沃斯滤波器。3
2、补充:2.数字频率与模拟频率之间的关系:概念:模拟频率f:每秒经历多少个周期周期,单位Hz,即1/s;模拟角频率角频率:每秒经历多少弧度,单位rad/s;数字频率w:每个采样点间隔之间的弧度每个采样点间隔之间的弧度,单位rad。数字频率W0=0*T,单位是rad(注意:不是rad/s)。可见数字频率不是频率,而是一个弧度值,介于-,。W0=0*T=2*f0*T=2*f0/fs由采样定理知|f0/fs|0.5,|W0|其中f0是信号的频率,fs是采样频率。模拟频率f:cos(2pi*f*t)模拟角频率:cos(*t);数字频率w:cos(w*n)=cos(*n*T)T为采样间隔时间。cos(2p
3、i*f*t)=cos(*t)=cos(*n*T)=cos(*T*n)=cos(w*n)。4IIR数字滤波器的设计%步骤1参数的设置参考li8.mclearall;closeall;clcf_p=1000;f_s=2000;rp=1;rs=40;%设置指标n=7001;fs=11025;Ts=1/fs;%采样频率omgp1=2*pi*f_pomgs1=2*pi*f_s%模拟频率wp=omgp1/fsws=omgs1/fs%数字频率%步骤2利用脉冲响应不变法设计巴特沃斯低通滤波器N1,wn1=buttord(omgp1,omgs1,rp,rs,s);%计算巴特沃斯低通滤波器的阶数和3dB截止频率N
4、1wn1B1,A1=butter(N1,wn1,s);%代入N和Wn设计巴特沃斯模拟低通滤波器bz1,az1=impinvar(B1,A1,fs);%冲激响应不变法设计数字滤波器hz1,wz1=freqz(bz1,az1);%滤波器的幅频响应figure(1);subplot(2,1,1);plot(wz1*fs/(2*pi),20*log10(abs(hz1)/hz1(1)axis(06000-8010);title(冲激响应不变法数字频率响应)xlabel(频率Hz)ylabel(幅值A)gridon;5%步骤3利用双线性变换法设计巴特沃斯低通滤波器omgp2=2/Ts*tan(wp/2)
5、omgs2=2/Ts*tan(ws/2)N2,wn2=buttord(omgp2,omgs2,rp,rs,s);%计算巴特沃斯低通滤波器的阶数和3dB截止频率N2wn2B2,A2=butter(N2,wn2,s);%代入N和Wn设计巴特沃斯模拟低通滤波器bz2,az2=bilinear(B2,A2,fs);%双线性变换法设计数字滤波器hz2,wz2=freqz(bz2,az2);%滤波器的幅频响应subplot(2,1,2);plot(wz2*fs/(2*pi),20*log10(abs(hz2)/hz2(1)axis(06000-8010);title(双线性变换法数字频率响应)xlabel
6、(频率Hz)ylabel(幅值A)gridon;6FIR数字滤波器的设计参数提取(以低通滤波器为例):1.通带截至频率WP=1000HZ,阻带截至频率WS=2000HZ,通带最大衰减RP=0.3db,阻带最小衰减RS=40db,设计FIR低通滤波器。衰减要求,查P145表,hann窗可以达到衰减要求。Wn取1500HZ7%步骤4窗函数法设计FIR滤波器%根据hann窗公式6.2*pi/N=ws-wpwn=(wp+ws)/2N=ceil(6.2*pi/abs(ws-wp)h=fir1(N-1,wn/pi,hanning(N);hz3,wz3=freqz(h,1,n);%滤波器n点幅频响应subp
7、lot(3,1,3);plot(wz3*fs/(2*pi),20*log10(abs(hz3)/hz3(1)axis(06000-8010);title(hanning窗函数FIR滤波器频率响应)xlabel(频率Hz)ylabel(幅值A)gridon;8IIR滤波%接下来滤波,参考li9.my1=filter(bz1,az1,y);%滤波函数,y为被滤波信号length(y1)subplot(3,1,2);sound(y1,fs)plot(y1);%滤波后的语音信号的时域波形图title(滤波后语音信号时域波形);xlabel(时间轴)ylabel(幅值A)y_zp1=fft(y1,n);
8、%对n点进行傅里叶变换到频域f=fs*(0:(n-1)/2)/n;%对应点的频率subplot(3,1,3);plot(f,abs(y_zp1(1:length(f);%加噪语音信号的频谱图title(滤波后语音信号频谱图);xlabel(频率Hz);ylabel(频率幅值);9FIR滤波%接下来滤波,参考li10.my1=filter(h,1,y);%滤波函数,y为被滤波信号%y1=fftfilt(h,y);%也可以采用这句话,都是利用差分方式来计算length(y1)subplot(3,1,2);sound(y1,fs)plot(y1);%滤波后的语音信号的时域波形图title(滤波后语音信号时域波形);xlabel(时间轴)ylabel(幅值A)y_zp1=fft(y1,n);%对n点进行傅里叶变换到频域f=fs*(0:(n-1)/2)/n;%对应点的频率subplot(3,1,3);plot(f,abs(y_zp1(1:length(f);%加噪语音信号的频谱图title(滤波后语音信号频谱图);xlabel(频率Hz);ylabel(频率幅值);10设计任务:将msg1.wav加入随机噪声,用贷通滤波器将msg1.wav提取出来。11