2015-02-06 3 views
0

필자는 R의 주파수 도메인에서 시계열 데이터를 플롯하려고합니다. 열/신호가있는, yz 인 CSV 파일이 있습니다. 신호는 50 Hz의 주파수로 샘플링되었습니다. 데이터의 길이는 N=651입니다. R에서 샘플 주파수 축을 얻는 방법은 무엇입니까?

내가했던 칼럼/신호 x에 대해 다음 단계 : 신호 x

  1. FFT :

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

    y <- fft(data$x)

  2. 신호 x의 크기를 Calcluating

  3. 플롯 데이터 :

    plot(mag, xlab="Samples",ylab="Strength", type="l", col="blue", xlim=c(0,60), main="Spectrum",t="h",lwd=2) frequenzy (Hz에서) 대신 샘플 수에 x 축를 얻을 수 있습니다 내가 원하는

. 결국 y 축 (강도) 대 x 축 (Hz)으로 플롯을 얻고 싶습니다.

는이 같은 주파수 축 원하는 : 등은 10Hz, 20Hz에서, 30Hz로, 40Hz에서, 50Hz의를

내가 Hz로 대신 샘플 수의 주파수 축를 얻기 위해 어떻게해야합니까 무엇

?

+0

스펙트럼이 올바른지 판단 할 수 있도록 최종 fft 스펙트럼을 플롯하십시오. FFT 비닝을 이해하지 못할 수도 있습니다. – KillaKem

답변

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

정말 고마워요! 이것은 정확히 제가 검색 한 것입니다. –

관련 문제