资源描述:
《数字信号处理实验报告 语音信号的数字滤波》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、语音信号的数字滤波一、实验目的:1、掌握使用FFT进行信号谱分析的方法2、设计数字滤波器对指定的语音信号进行滤波处理二、实验内容设计数字滤波器滤除语音信号中的干扰(4学时)1、使用Matlab的fft函数对语音信号进行频谱分析,找出干扰信号的频谱;2、设计数字滤波器滤除语音信号中的干扰分量,并进行播放对比。三、实验原理通过观察原语音信号的频谱,幅值特别大的地方即为噪声频谱分量,根据对称性,发现有四个频率的正弦波干扰,将它们分别滤掉即可。采用梳状滤波器,经过计算可知,梳状滤波器h[n]={1,A,1}的频响
2、
3、H(w)
4、=
5、A+2cos(w)
6、,由需要滤掉的频率分量的频响w,即可得到A,进而得到滤波器的系统函数h[n]。而由于是在离散频域内进行滤波,所以令w=(2k*pi/N)即可。对原信号和四次滤波后的信号分别进行FFT变换,可以得到它们的幅度相应。最后,将四次滤波后的声音信号输出。四、matlab代码clc;clear;closeall;[audio_data,fs]=wavread('SunshineSquare.wav');%读取未处理声音sound(audio_data,fs);N=length(a
7、udio_data);K=0:2/N:2*(N-1)/N;%K为频率采样点%sound(audio_data,fs);%进行一次FFT变换FFT_audio_data=fft(audio_data);mag_FFT_audio_data=abs(FFT_audio_data);%画图figure(1)%原信号时域subplot(2,1,1);plot(audio_data);grid;title('未滤波时原信号时域');xlabel('以1/fs为单位的时间');ylabel('采样值');%FFT幅度
8、相位subplot(2,1,2);plot(K,mag_FFT_audio_data);grid;title('原信号幅度');xlabel('以pi为单位的频率');ylabel('幅度');%构造h[n]={1,A,1}的梳状滤波器,计算A=2cosW,妻子W为要滤掉的频率%由原信号频谱可知要分四次滤波,滤掉频响中幅度大的频率分量%第一次滤波a=[1,0,0,0];%y[n]的系数[temp,k]=max(FFT_audio_data);A1=-2*cos(2*pi*k/N);h1=[1,A1,1];
9、audio_data_h1=filter(h1,a,audio_data);FFT_audio_data_h1=fft(audio_data_h1);%第二次滤波[temp1,k]=max(FFT_audio_data_h1);A2=-2*cos(2*pi*k/N);h2=[1,A2,1];audio_data_h2=filter(h2,a,audio_data_h1);FFT_audio_data_h2=fft(audio_data_h2);%第三次滤波[temp2,k]=max(FFT_audio_d
10、ata_h2);A3=-2*cos(2*pi*k/N);h3=[1,A3,1];audio_data_h3=filter(h3,a,audio_data_h2);FFT_audio_data_h3=fft(audio_data_h3);%第四次滤波[temp3,k]=max(FFT_audio_data_h3);A4=-2*cos(2*pi*k/N);h4=[1,A4,1];audio_data_h4=filter(h4,a,audio_data_h3);FFT_audio_data_h4=fft(aud
11、io_data_h4);mag_FFT_audio_data_h1=abs(FFT_audio_data_h1);mag_FFT_audio_data_h2=abs(FFT_audio_data_h2);mag_FFT_audio_data_h3=abs(FFT_audio_data_h3);mag_FFT_audio_data_h4=abs(FFT_audio_data_h4);figure(2)%每次滤波后的时域结果subplot(2,2,1);plot(audio_data_h1);grid;tit
12、le('第一次滤波后');xlabel('以1/fs为单位的时间');ylabel('时域采样值');subplot(2,2,2);plot(audio_data_h2);grid;title('第二次滤波后');xlabel('以1/fs为单位的时间');ylabel('时域采样值');subplot(2,2,3);plot(audio_data_h3);grid;title('第三次滤波后');xlabel('以1/fs为