2016-11-18 48 views
0

我有下面的代碼從音頻Matlab的 - 使用原料轉化率,而不是過濾處理信號

[wave,fs]=wavread('my-audio.wav'); 
t=0:1/fs:(length(wave)-1)/fs; 
figure(1);plot(t,wave); 
b = [0 1 1.1]; 
a = [1 0 -0.1]; 
FIR = filter(b,a,wave); 
figure(2);plot(t,FIR); 

而且我不知道如何,如果可能的話,我可以做完全處理信號與conv函數一樣,會有什麼區別。

到目前爲止,我猜想我必須將音頻從立體聲轉爲單聲道。我對嗎?

謝謝!

回答

3

您可以使用conv來執行FIR濾波,但不能使用IIR濾波。在這種情況下,你有非平凡的分母系數,濾波器是IIR,因此filter是要走的路。

+0

謝謝!我可以使用濾波器來執行FIR濾波嗎? –

+0

@LukeSpringWalker是的,只需將'filter'的輸入'a'設置爲'1'即可。比較'conv([3 6 4 -2 1 -8 -5],[3 -4 2])'和'filter([3 -4 2],1,[3 6 4 -2 1 -8 -5] )'。顯然'filter'需要額外的零來「刷新」輸入:'filter([3 -4 2],1,[3 6 4 -2 1 -8 -5 0 0])' –

+0

Thanks @LuisMendo!還有一個問題。有人告訴我,從我可以獲得音頻的位置矢量的地方還有另外一個功能,就是那個函數impz? –