多次回声分析(三次)
用IIR滤波器产生多次回声(六次)
%六次回声滤波器 [x,fs,bits]=wavread('ding.wav',[1 40000]); %读取语音信号 n1=0:2000;N=6; yy3=filter(1,[1,zeros(1,80000/(N+1)),0.7],[x',zeros(1,40000)]); %IIR滤波器进行滤波 figure(5) subplot(2,1,1);plot(yy3); %六次回声滤波器时域波形 title('六次回声滤波器时域波形'); YY3=fft(yy3); %对六次回声信号做FFT变换 subplot(2,1,2);plot(n1(1:1000),YY3(1:1000)); %六次回声滤波器频谱图 title('六次回声滤波器频谱图 '); figure(6) subplot(2,1,1);plot(abs(YY3));%经傅里叶变换之后的信号的幅值 title('幅值'); subplot(2,1,2);plot(angle(YY3));%经傅里叶变换之后的信号的相位 title('相位'); sound(5*yy2,fs,bits); %经六次回声滤波器后的语音信号,乘以5是为了加强信号
多次回声分析(六次)
方法二:IIR滤波器产生无限次回声
%无限回声滤波器 [x,fs,bits]=wavread('ding.wav',[1 40000]); %读取语音信号 n1=0:2000; a=0.7; %a取小于等于1 Bz=[1,a]; %分子的系数 Az=1; %分母的系数 yy4=filter(Bz,Az,x); %IIR滤波器进行滤波 figure(7) subplot(2,1,1);plot(yy4); %无限回声滤波器时域波形 title('无限个回声滤波器时域波形'); YY4=fft(yy4); %经无限回声滤波器后的信号做FFT变换 subplot(2,1,2);plot(n1(1:1000),YY4(1:1000)); %无限回声滤波器频谱图 title('无限个回声滤波器频谱图 '); figure(8) subplot(2,1,1);plot(abs(YY4)); title('幅值'); subplot(2,1,2);plot(angle(YY4)); title('相位'); sound(5*yy2,fs,bits); %回放经无限回声滤波器后的语音信号