[討論] fft後如何不使用ifft模擬原始訊號.已回收
想請問各位版眾
如果今天對訊號進行fft後
得到頻域資料
舉例說明
原始訊號 y = sin(2.*pi.*f.*t)
fft後得f = 50 Hz
那可以由這50 Hz的 Amplitude 與 Phase 直接去還原原始的 y 嗎
有其他要修正的嗎?!
最後附上我的程式碼
clc, clear, close all
f1 = 500 ;
f2 = 800 ;
fs = 5000 ;
t = 0 : 1/fs : 2 ;
data = sin(2.*pi.*f1.*t + (pi./6)) + cos(2.*pi.*f2.*t + (pi./2)) ;
wavplay(data,fs)
L = length(data) ;
NFFT = 2^nextpow2(L) ;
Y = fft(data, NFFT) ;
PY = abs(Y)./L.*2 ;
AngleY = angle(Y) ;
freq = (0:NFFT-1)./NFFT.*fs ;
cutoff = ceil(NFFT./2) ;
data2 = 0 ;
for i = 1 : cutoff
data2 = data2 + PY(i) .* cos(2.*pi.* freq(i) .*t + AngleY(i)) ;
end
wavplay(data2,fs)
比較 data 與 data2 聲音檔有差異, 圖形振幅也約差了 2 倍
請問哪裡要改的嗎?!
謝謝各位版眾~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.40.89
→
04/26 23:15, , 1F
04/26 23:15, 1F
→
04/27 10:20, , 2F
04/27 10:20, 2F
→
04/28 01:43, , 3F
04/28 01:43, 3F
推
04/30 22:07, , 4F
04/30 22:07, 4F
→
05/08 09:07, , 5F
05/08 09:07, 5F