基于MATLAB的音乐合成和处理( 七 )


sound(y3,fs);
figure(5);
subplot(3,1,1);plot(y1); title('混响的时域图1');     %混响时域图
subplot(3,1,2);plot(y2); title('混响的时域图2');
subplot(3,1,3);plot(y3); title('混响的时域图3');
Y1=fft(y1,160000);                                %对混响旌旗灯号FFT变换
Y2=fft(y2,160000);
Y3=fft(y3,160000);
figure(6);
subplot(3,1,1);plot(n1(1:1000),Y1(1:1000)); title('混响的频谱图1');    %混响频谱图
subplot(3,1,2);plot(n1(1:1000),Y2(1:1000)); title('混响的频谱图2');
subplot(3,1,3);plot(n1(1:1000),Y3(1:1000)); title('混响的频谱图3');
获得的混响后的时域波形和频谱图为
3.2 平衡处置
设计思绪:设计三个混响器作为平衡处置的东西
(1)无限反响混响器
a=0.05;                               %a取小于等于1
Bz=[0,0,0,0,0,0,0,0,0,0,1];            %分子的系数
Az=[1,0,0,0,0,0,0,0,0,0,-a];           %分母的系数
yy1=filter(Bz,Az,z1);                  %滤波器进行滤波
YY1=fft(yy1,320000);    %经无限反响滤波器后的旌旗灯号做32000点的FFT变换
(2)多重反响混响器
a=0.05;                            %a取小于等于1
N=5
Bz1=[1,0,0,0,0,0,0,0,0,0,-0.5^N]      %分子的系数
Az1=[1,0,0,0,0,0,0,0,0,0,-0.5];        %分母的系数
yy2=filter(Bz1,Az1,z1);                 %滤波器进行滤波
YY2=fft(yy2,320000);    %经多重反响滤波器后的旌旗灯号做32000点的FFT变换
(3)全通布局的混响器
a=0.05;                               %a取小于等于1
Bz1=[a,0,0,0,0,0,0,0,0,0,1];          %分子的系数
Az1=[1,0,0,0,0,0,0,0,0,0,a];          %分母的系数
yy3=filter(Bz1,Az1,z1);               %滤波器进行滤波
YY3=fft(yy3,320000);    %经全通布局的混响器后的旌旗灯号做32000点的FFT变
最后输作声音
sound(yy1,fs);
sound(yy2,fs);
sound(yy3,fs);
(4)画出经混响器处置后旌旗灯号的时域波形和频谱图
figure(8);
subplot(2,1,1);
plot(yy1);
title('无限个反响滤波器时域图');       %无限反响滤波器时域波形
subplot(2,1,2);
plot(n1(1:1000),YY1(1:1000));
title('无限个反响滤波器频谱图 ');    %无限反响滤波器频谱图
figure(9)
subplot(2,1,1);
plot(yy2);
title('多重反响滤波器的时域图')       %多重反响滤波器的混响器时域波形
subplot(2,1,2);
plot(n1(1:1000),YY2(1:1000));
title('多重反响滤波器的频谱图')    %多重反响滤波器的频谱图

猜你喜欢