時域卷積實現音頻濾波(matlab實現).docx_第1頁
時域卷積實現音頻濾波(matlab實現).docx_第2頁
時域卷積實現音頻濾波(matlab實現).docx_第3頁
時域卷積實現音頻濾波(matlab實現).docx_第4頁
時域卷積實現音頻濾波(matlab實現).docx_第5頁
免費預覽已結束,剩余8頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗一 時域卷積徐學政 201206020023【實驗內容】給定一段音頻信號1.wav與三個離散時間系統,其單位脈沖響應分別為:h1n=sin(K1n)/nh2n=-sin(K2n)/nh3n=sin(K3n)/n-sin(K4n)/n其中,K1、K2、K3、K4均為常數參數。2.wav、3.wav、4.wav分別是以此音頻信號為輸入的三個系統的輸出。觀察輸出音頻的變化,自行調整參數進行實驗,分析參數變化與輸出音頻間的關系。【實驗目標】1. 理解一維時域空間中的時不變卷積的計算公式2. 使用Matlab對給定的音頻信號與系統響應進行卷積處理,觀察并分析處理后的信號3. 通過三個信號,分別實現低通濾波,高通濾波,帶通濾波。【實驗要求】記錄調節好的卷積函數系數,以及存儲下來的合成語音。并給出調節參數的歷程和調節的思路。【實驗上交材料】1. 調節好的參數,最終的卷積函數,合成后的語音信號;2. 調節過程的中間結果與思路記錄。【提高實驗】將原信號與輸出信號變換到頻域觀察其不同,并指出其原因及物理意義【實驗原理】1. 通過系統函數h1n=sin(K1n)/n,實現低通濾波。理想低通濾波器的頻率響應:Hlow()=1, 0|c 0, c+進行傅里葉反變換,得到hlowt:hlowt=12-+ejtd=12-c+cejtd= A*sin(ct)t, t0c, t=02. 通過系統函數h2n=-sin(K2n)/n,實現高通濾波。理想高通濾波器的頻率響應:Hhigh()=0, 0|c 1, c+顯然,Hhigh=1-Hlow()進行傅里葉反變換,得到hhight:hhight=t-hlowt= -A*sin(ct)t, t01-c, t=03. 通過系統函數h3n=sin(K3n)/n-sin(K4n)/n,實現帶通濾波。理想帶通濾波器的頻率響應:Hband()=1, 01, 2+ 0, 12顯然,Hband=Hlow+Hhigh其中Hlow,c=1其中Hhigh,c=2進行傅里葉反變換,得到hbandt:hbandt=hlowt+hhight= A*(sin1tt-sin2tt), t01-2+1, t=0綜上所述,每個h(t)函數均有三個參數需要考慮,幅度A,頻率,零時刻的值【實驗過程】1. 讀取音頻文件,得到輸入數據序列(以低通濾波器為例)Y,fs=audioread(1.wav);%讀取音頻文件,得到數據和采樣率Length=size(Y);%得到音頻數據的長度data=Y(1:Length,1);2. 初始化h函數時間序列、采樣率,設定參數,給極限點賦值,其中h函數采用了延時處理,以保留信號的能量,使效果更優。N=2048;%設定h函數數據點數hfs=1000;%設定h函數采樣率n=0:N-1;%初始化數據序列t=n/hfs;%初始化時間序列tt=(n-N/2)/hfs;%得到延時的時間序列k=100;%設定參數k,決定截止頻率A=1.1;%設定參數A,決定頻譜幅度h=A*(sin(k*pi*tt)./(pi*tt);%設定h函數h(N/2+1)=0;%極限點賦值3. 進行卷積運算,得到輸出的音頻,并保存。y=conv(data,h);%輸入音頻序列與h函數卷積,得到輸出序列y4. 利用FFT,得到輸入,h函數,輸出三個數據序列的頻譜,以指導參數調節function magy=myfft(y,fs)%繪制信號頻譜l=size(y);N=l(2);ffty=fft(y);magy=abs(ffty);%得到幅度magy=magy/(N/2);%換算真實幅度magy(1)=magy(1)/2;n=0:N-1;f=n*fs/N;%換算真實頻率s=size(f);plot(f(1:floor(s(2)/2),magy(1:floor(s(2)/2);%繪制頻譜xlabel(f(HZ);ylabel(A);調用該函數,得到三幅頻譜:信號在時域上的卷積等于頻域相乘,通過頻域上的矩形窗達到濾波的效果。5. 調節參數k,改變截止頻率,觀察三個頻譜,找到最佳的參數k以低通濾波器為例展示調節過程:k取40:k取70:k取100:【實驗結果】1. 低通濾波器濾波器類型h(t)表達式參數取值低通ht=A*sin(k*t)*tA=1.1k=40h(0)=02. 高通濾波器濾波器類型h(t)表達式參數取值高通ht=-A*sin(k*t)*tA=3k=700h(0)=10003. 帶通濾波器濾波器類型h(t)表達式參數取值帶通ht=A*(sink1*t*t-sink2*t*t)A=1.2k1=550k2=400h(0)=0【實驗代碼】1. 低通濾波器h1function h1%低通濾波器Y,fs=audioread(1.wav);%讀取音頻文件,得到數據和采樣率Length=size(Y);%得到音頻數據的長度data=Y(1:Length,1);N=2048;%設定h函數數據點數hfs=1000;%設定h函數采樣率n=0:N-1;%初始化數據序列t=n/hfs;%初始化時間序列tt=(n-N/2)/hfs;%得到延時的時間序列k=40;%設定參數k,決定截止頻率A=1.1;%設定參數A,決定頻譜幅度h=A*(sin(k*pi*tt)./(pi*tt);%設定h函數h(N/2+1)=0;%極限點賦值figure;%開啟繪圖窗口,兩行三列,依次是%|1|h函數時域圖像|2|輸入音頻時域圖像|3|輸出音頻時域圖像| %|4|h函數頻域圖像|5|輸入音頻頻域圖像|6|輸出音頻頻域圖像|subplot(2,3,1);plot(t,h);%繪制|1|h函數時域圖像xlabel(t(s);ylabel(y);title(h(t)時域圖像);subplot(2,3,2);plot(1:1:44100)/fs,data);%繪制|2|輸入音頻時域圖像xlabel(t(s);ylabel(y);title(輸入音頻時域圖像);subplot(2,3,3);y=conv(data,h);%輸入音頻序列與h函數卷積,得到輸出序列yplot(1:1:N+Length-1)/fs,y);%繪制|3|輸出音頻時域圖像xlabel(t(s);ylabel(y);title(輸出音頻時域圖像);subplot(2,3,4);%|4|h函數頻域圖像myfft(h,fs);title(h(t)頻域圖像);subplot(2,3,5);myfft(data,fs); %|5|輸入音頻頻域圖像title(輸入音頻頻域圖像);subplot(2,3,6);myfft(y,fs);%|6|輸出音頻頻域圖像title(輸出音頻頻域圖像);audiowrite(h1.wav,y,fs);%保存輸出的音頻文件2. 高通濾波器h2function h2%高通濾波器Y,fs=audioread(1.wav);%讀取音頻文件,得到數據和采樣率Length=size(Y);%得到音頻數據的長度data=Y(1:Length,1);N=2048;%設定h函數數據點數hfs=1000;%設定h函數采樣率n=0:N-1;%初始化數據序列t=n/hfs;%初始化時間序列tt=(n-N/2)/hfs;%得到延時的時間序列k=700;%設定參數k,決定截止頻率A=3;%設定參數A,決定頻譜幅度h=-A*(sin(k*pi*tt)./(pi*tt);%設定h函數h(N/2+1)=1000;%極限點賦值figure;%開啟繪圖窗口,兩行三列,依次是%|1|h函數時域圖像|2|輸入音頻時域圖像|3|輸出音頻時域圖像| %|4|h函數頻域圖像|5|輸入音頻頻域圖像|6|輸出音頻頻域圖像|subplot(2,3,1);plot(t,h);%繪制|1|h函數時域圖像xlabel(t(s);ylabel(y);title(h(t)時域圖像);subplot(2,3,2);plot(1:1:44100)/fs,data);%繪制|2|輸入音頻時域圖像xlabel(t(s);ylabel(y);title(輸入音頻時域圖像);subplot(2,3,3);y=conv(data,h);%輸入音頻序列與h函數卷積,得到輸出序列yplot(1:1:N+Length-1)/fs,y);%繪制|3|輸出音頻時域圖像xlabel(t(s);ylabel(y);title(輸出音頻時域圖像);subplot(2,3,4);%|4|h函數頻域圖像myfft(h,fs);title(h(t)頻域圖像);subplot(2,3,5);myfft(data,fs); %|5|輸入音頻頻域圖像title(輸入音頻頻域圖像);subplot(2,3,6);myfft(y,fs);%|6|輸出音頻頻域圖像title(輸出音頻頻域圖像);audiowrite(h2.wav,y,fs);%保存輸出的音頻文件3. 帶通濾波器h3function h3%帶通濾波器Y,fs=audioread(1.wav);%讀取音頻文件,得到數據和采樣率Length=size(Y);%得到音頻數據的長度data=Y(1:Length,1);N=2048;%設定h函數數據點數hfs=1000;%設定h函數采樣率n=0:N-1;%初始化數據序列t=n/hfs;%初始化時間序列tt=(n-N/2)/hfs;%得到延時的時間序列k1=550;%設定參數k1,決定上通帶截止頻率k2=400;%設定參數k2,決定下通帶截止頻率A=1.2;%設定參數A,決定頻譜幅度h=A*(sin(k1*pi*tt)-sin(k2*pi*tt)./(pi*tt);%設定h函數h(N/2+1)=0;%極限點賦值figure;%開啟繪圖窗口,兩行三列,依次是%|1|h函數時域圖像|2|輸入音頻時域圖像|3|輸出音頻時域圖像| %|4|h函數頻域圖像|5|輸入音頻頻域圖像|6|輸出音頻頻域圖像|subplot(2,3,1);plot(t,h);%繪制|1|h函數時域圖像xlabel(t(s);ylabel(y);title(h(t)時域圖像);subplot(2,3,2);plot(1:1:44100)/fs,data);%繪制|2|輸入音頻時域圖像xlabel(t(s);ylabel(y);title(輸入音頻時域圖像);subplot(2,3,3);y=conv(data,h);%輸入音頻序列與h函數卷積,得到輸出序列yplot(1:1:N+Length-1)/fs,y);%繪制|3|輸出音頻時域圖像xlabel(t(s);ylabel(y);title(輸出音頻時域圖像);subplot(2,3,4);%|4|h函數頻域圖像myfft(h,fs);title(h(t)頻域圖像);subplot(2,3,5);myfft(data,fs); %|5|輸入音頻頻域圖像title(輸入音頻頻域圖像);subplot(2,3,6);myfft(y,fs);%|6|輸出音頻頻域圖像title(輸出音頻頻域圖像);audiowrite(h3.wav,y,fs);%保存輸出的音

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論