基于MATLAB的音樂合成和處理( 六 )




基于MATLAB的音樂合成和處理



3第三部門  音樂旌旗燈號的處置
3.1 插手延時和混響
選擇一段語音旌旗燈號作為闡發對象 , 并對其進行頻譜闡發 , 在時域頂用數字旌旗燈號處置方式給旌旗燈號插手3種混響 , 再闡發其頻譜 , 并與原始旌旗燈號進行比力 。
設計思緒
1、操縱Windows下的灌音機或其他軟件 , 錄制一段語音旌旗燈號 , 時候節制在3s擺布 , 并對錄制的旌旗燈號進行采樣
2、語音旌旗燈號的頻譜闡發 , 畫出采樣后的時域波形和頻譜圖
3、將旌旗燈號插手延時和混響 , 再闡發當時域波形和頻譜圖 , 并與原始旌旗燈號頻譜進行比力
所以按照設計思緒進行嘗試
1、讀取3s的語音旌旗燈號并畫出時域波形和頻譜圖
x1=audioread('good.wav');
[x,fs]=audioread('good.wav');
x=x(:,1);   %取單聲道
sound(x,fs);
X=fft(x,640000); %gaidong
magX=abs(X);
angX=angle(X);
figure(1);
subplot(2,1,1);plot(x);title('yuanshi boxing');
subplot(2,1,2);plot(X);title('yuanshi pinpu');
獲得的波形和頻譜圖為
2、對語音旌旗燈號進行采樣并畫出采樣后旌旗燈號的時域波和頻譜圖
[x,fs]=audioread('good.wav');
x=x(:,1);
sound(5*x,fs);
n1=0:2000;
N=size(x,1);
Y=fft(x,320000);
figure(2);
subplot(2,1,1);plot(x);title('caiyang boxing');
subplot(2,1,2);plot(n1(1:1000),Y(1:1000));title('caiyang pinpu');
獲得的采樣波形和頻譜為
3、對采樣后的旌旗燈號延時 , 并畫出延時后的時域波形和頻譜圖
z1=[zeros(10000,1);x];           %對旌旗燈號進行延時
z2=[zeros(20000,1);x];
z3=[zeros(30000,1);x];
Z1=fft(z1,160000);
Z2=fft(z2,160000);
Z3=fft(z3,160000);
figure(3);                                       
subplot(3,1,1);plot(z1); title('延時后的時域圖1');        %畫出延時后的旌旗燈號時域圖
subplot(3,1,2);plot(z2); title('延時后的時域圖2');
subplot(3,1,3);plot(z3); title('延時后的時域圖3');
figure(4)
subplot(3,1,1);plot(n1(1:1000),Z1(1:1000));title('延時后的頻譜圖1');     %延時后的旌旗燈號頻譜圖
subplot(3,1,2);plot(n1(1:1000),Z2(1:1000));title('延時后的頻譜圖2');  
subplot(3,1,3);plot(n1(1:1000),Z3(1:1000));title('延時后的頻譜圖3');
獲得延時的時域圖和頻譜圖為
4、對旌旗燈號進行混響 , 并畫出混響后的時域波形和頻譜圖
z1=[zeros(10000,1);x];           %對旌旗燈號進行延時
z2=[zeros(20000,1);x];
z3=[zeros(30000,1);x];
x1=[x;zeros(10000,1)];                 %使語音旌旗燈號與延時后旌旗燈號劃一長度
x2=[x;zeros(20000,1)];
x3=[x;zeros(30000,1)];
y1=plus(x1,z1);                             %旌旗燈號的混響
y2=plus(x2,z2);
y3=plus(x3,z3);
sound(y1,fs);
sound(y2,fs);

猜你喜歡