[問題] FFT的相位已回收

看板MATLAB作者 (Kal Vas Vlam)時間15年前 (2010/09/29 21:23), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
關於FFT的問題 如果設定一個gauss函數y且相位是0 做Y=ifft(y)後取unwrap(angle(Y))的值應該也要是0 但運算出來的值卻有偏差 請問是程式的問題,還是內建angle函數的問題? 程式碼如下 clc;clear;close all t=0:1e-15:2e-12; sig=70e-15; c0=1e-12; y=gaussmf(t,[sig c0]); Y=fft(y); Y=fftshift(Y); figure subplot(2,2,1) plot(abs(y)); title('temporal amplitude') subplot(2,2,2) plot(abs(Y)); title('spectrum amplitude') subplot(2,2,3) plot(unwrap(angle(y))); title('temporal phase') subplot(2,2,4) plot(unwrap(angle(Y))); title('spectrum phase') 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.162.104

09/29 23:27, , 1F
在freq. domain為實數 <=> 在time domain為Hermitian sym.
09/29 23:27, 1F

09/29 23:27, , 2F
檢查一下你的y是否對稱
09/29 23:27, 2F

10/01 13:44, , 3F
改對稱仍得不到正確結果耶
10/01 13:44, 3F
文章代碼(AID): #1CeptXeL (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1CeptXeL (MATLAB)