2012-06-05 49 views
0

我希望LFO是一個6Hz的正弦波,它將修改原始信號的幅度+/- 2db。在Matlab中對信號應用LFO

[y, Fs] = wavread('input.wav'); 
t = 0:1/Fs:(length(y)-1)/Fs; 
y1 = y .* 1.584893.*sin(2*pi*6*t); 
wavwrite(y1,Fs,'output.wav'); 

是要做什麼需要?因爲我聽了輸出信號,聽起來有些變形。

+0

你可以用'分貝()'做分貝轉換,順便說一句。 – kevlar1818

回答

2

爲了正弦波調幅適用於需要通過

1 + Am * sin(2 * pi * Fm * t) 

其中Am乘以信號的信號是調製的振幅(0.258925你的情況,爲+/- 2 dB)的而Fm是調製頻率(在你的情況下是6赫茲)。

所以,你的表述應該是:

y1 = y .* (1 + 0.258925 .* sin(2 * pi * 6 * t));