如何在R中获取采样频率轴?

时间:2015-02-06 20:11:00

标签: r plot fft frequency-analysis

我试图在R中在频域中绘制时间序列数据。我有一个带有列/信号xyz的csv文件。信号采样频率为50 Hz。数据长度为N=651

我为列/信号x执行了以下步骤:

  1. 信号x的FFT:

    y <- fft(data$x)

  2. 计算信号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)

  4. 我想要的是获得频率(Hz)的x轴而不是样本数。最后,我想得到一个y轴(强度)对x轴(Hz)的图。

    我想要一个像这样的频率轴:10Hz,20Hz,30Hz,40Hz,50Hz等。

    我需要做些什么来使频率轴以Hz为单位而不是样本数?

1 个答案:

答案 0 :(得分: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'))