Re: [問題] 關於FFT繪圖的問題已回收
※ 引述《chiangboy (chiangboy)》之銘言:
: 我是用1K Hz的Sine波 去測試,的確會出現兩個很強的訊號
: 不過這兩個訊號對應到的頻率不是在1K Hz的地方
: 所以應該是我的時間軸轉到頻率軸的部份有問題
: sine波測試圖如下
: http://img265.imageshack.us/img265/5960/sinefft.jpg

: ※ 引述《yehliuk (菜鳥帕克)》之銘言:
: : 你的方法好像沒有錯,你用一個sine波測試,有在頻率圖上面看到兩
: : 個強的訊號對稱在左右兩邊嗎? 那兩個強的訊號應該就是sine波的頻
: : 率吧?
: : 看一下你付的圖,你的原始資料主要是由一個很強的低頻訊號(在頻
: : 率中心),加上一個在1Hz左右的訊號組成。
其實爬ㄧ下板上文章就很清楚了,若你訊號取樣點數有N點,那麼你fft轉出來的
點數也是N點,第k點代表的頻率= k/N*(取樣頻率),在你的程式碼中,使用到
fftshift()對頻率軸頻移了N/2點,因此第k點的頻率應當=(k-N/2)/N*(取樣頻率)。
其中, k=0,1,2,...,N-1
下面程式碼你參考看看吧
function testfft_ptt
clc; clear;
N=640;
fs=3200;%取樣頻率,3.2kHz
Ts=1/fs;%取樣時間間隔
time=(0:N-1)*Ts;%時間軸刻度
freq=(-N/2:N/2-1)/N*fs;%頻率軸刻度
fb=1000;%基頻,1kHz
y=sin(2*pi*fb.*time);
Y=fftshift(fft(y));
y_new=ifft(fft(y));
subplot(3,1,1)
plot(time,y,'r')
subplot(3,1,2)
plot(freq,abs(Y))
subplot(3,1,3)
plot(time,y_new)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.13.130
※ 編輯: monkeykkman 來自: 140.135.13.130 (06/13 17:17)
→
06/22 16:35, , 1F
06/22 16:35, 1F
→
06/22 16:40, , 2F
06/22 16:40, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章