2015-02-06 52 views
0

我試圖在R頻率域繪製時間序列數據。我有一個csv文件的列/信號x,yz。信號採樣頻率爲50 Hz。數據長度爲N=651如何獲取R中的採樣頻率軸?

我爲列/信號x以下步驟:

  1. 信號x的FFT:

    y <- fft(data$x)

  2. Calcluating信號x的幅度:

    mag <- sqrt(Re(y)^2+Im(y)^2)

  3. 劇情數據:

    plot(mag, xlab="Samples",ylab="Strength", type="l", col="blue", xlim=c(0,60), main="Spectrum",t="h",lwd=2)

我想是在frequenzy(赫茲),而不是樣本的數目以獲得x軸。最後,我想獲得一個y軸(強度)與x軸(Hz)的關係圖。

我想這樣的頻率軸:爲10Hz,20Hz的,爲30Hz,40Hz的,50赫茲等

什麼我需要做的就是在赫茲,而不是樣本數頻率軸?

+0

請繪製您的最終fft頻譜,以便我們可以嘗試並確定您的頻譜是否正確,我有一種感覺,你可能不瞭解FFT分箱。 – KillaKem 2015-02-08 13:16:18

回答

0

這是你之後?

plot(mag, 
    xlab="Samples", 
    ylab="Strength", 
    type="l", 
    col="blue", 
    xlim=c(0, 
      60), 
    main="Spectrum", 
    t="h", 
    lwd=2, 
    axes=F)# don't plot the default axes 
#build our own axes with labels 
box() 
axis(2) 
ticks <- axTicks(1) 
axis(1,at=ticks,labels=paste0(format(ticks),'Hz')) 
+0

非常感謝你!這正是我所尋找的。 – 2015-02-07 14:02:59