file='C:\Users\acer\Desktop\riga.wav';
[N1, Fs, bite] = wavread(file);
y=wavread(file);
sound(y,Fs,bite);
y_fft=fft(y);
figure('NumberTitle', 'off', 'Name', '采样信号'),
subplot(2,1,1),plot(y),title('时域波形'),
subplot(2,1,2),plot(abs(y_fft)),title('频谱图');
z=y(:,1);
z_yanshi=[zeros(5000,1);z];
sound(z_yanshi,Fs,bite);
figure('NumberTitle', 'off', 'Name', '延时'),plot(z_yanshi);
figure('NumberTitle', 'off', 'Name', '延时后fft'),
subplot(2,1,1),plot(abs(fft(z))),title('原信号'),
subplot(2,1,2),plot(abs(fft(z_yanshi))),title('延时信号');
z1=[z;zeros(5000,1)];
z_hunxiang=z_yanshi+z1;
sound(z_hunxiang,Fs,bite);
figure('NumberTitle', 'off', 'Name', '混响'),plot(z_hunxiang);
figure('NumberTitle', 'off', 'Name', '混响后fft'),
subplot(2,1,1),plot(abs(fft(z))),title('原信号'),
subplot(2,1,2),plot(abs(fft(z_hunxiang))),title('混响信号');
%单回声滤波器
R=5000;a=0.5;
Bz1=[1,zeros(1,R-1),a],Az1=(1);
y1=filter(Bz1,Az1,z);
Y1=fft(y1,20000);
[H1,W1]=freqz(Bz1,Az1);
figure('NumberTitle', 'off', 'Name', '单回声'),
subplot(3,1,1);
plot(W1/pi,20*log(abs(H1)));
title('单回声滤波器频域相应'),xlabel('w/pi'),ylabel('20lg Hg(w)/dB');
grid on;
subplot(3,1,2),plot(y1),title('时域波形'),
subplot(3,1,3),plot(abs(Y1)),title('频域波形');
%多重回声滤波器
a=0.5,N=5,R=8000;
Bz2=[1,zeros(1,N*R-1),-a^N],Az2=[1,zeros(1,R-1),-a];
y2=filter(Bz2,Az2,z);
Y2=fft(y2,20000);
[H2,W2]=freqz(Bz2,Az2);
figure('NumberTitle', 'off', 'Name', '多回声'),
subplot(3,1,1);
plot(W2/pi,20*log(abs(H2)));
title('多重回声滤波器频域响应'),xlabel('w/pi'),ylabel('20lg Hg(w)/dB');
grid on;
subplot(3,1,2),plot(y2),title('时域波形'),
subplot(3,1,3),plot(abs(Y2)),title('频域波形');
%全通结构混响器
a=0.5,R=8000;
Bz3=[a,zeros(1,R-1),1],Az3=[1,zeros(1,R-1),a];
[H3,W3]=freqz(Bz3,Az3);
y3=filter(Bz3,Az3,z);
Y3=fft(y3,20000);
figure('NumberTitle', 'off', 'Name', '全通结构'),
subplot(3,1,1);
plot(W1/pi,abs(H3));
title('全通结构混响器频域相应'),xlabel('w/pi'),ylabel('20lg Hg(w)/dB');
grid on;
subplot(3,1,2),plot(y3),title('时域波形'),
subplot(3,1,3),plot(abs(Y3)),title('频域波形');
%sound(y,Fs,bite);
sound(y1,Fs,bite);
sound(y2,Fs,bite);
sound(y3,Fs,bite);