2013-05-19 4 views
1

순수한 사인 함수의 스펙트럼 플롯을 얻으려고합니다. 함께 그 전체 신호의 fft 음모를 보여주고 싶습니다. 시간이 정해져있는 같은 신호를 다루고 있기 때문에 봉우리가 같은 주파수에있을 것으로 기대하고 있습니다.matplotlib로 순수한 부비동의 스펙트로 그램 만들기

코드

samplingFrequency = 32. 
frequency = 4       #frequency of the sinus wave 
t = arange(0,20,1/samplingFrequency) #time intervals with period 1/sampling frequency 
y = cos(2*pi*frequency*t) 

Y = fft.fft(y)       #standard fft on the whole signal 
frequencyAxis = fft.fftfreq(len(Y),1/samplingFrequency)   #adjusting the x axis 

#PLOTTING 
fig, (ax1,ax2) = plt.subplots(nrows=2, ncols=1) 
ax1.specgram(y, Fs = samplingFrequency) 
ax2.stem(frequencyAxis,Y,linefmt='r--', markerfmt='ro') 

플롯 그러나 스펙트로 그램이 위치에 제 아이디어 라인을 나타내는 enter image description here

전체의 신호의 FFT는 4. 피크 예상대로 오류는 무엇입니까?

업데이트 다음 버전을 사용 하였다

  • 하기 matplotlib '1.1.1'
  • NumPy와 '1.6.2'
  • 파이썬 2.7.3
+2

스펙트로 그램은 4시에 선을 그려주기 때문에이 결과 (Numpy 1.7.1 및 matplotlib 1.2.1)를 복제 할 수 없습니다. Btw, 스크립트에 오타가 있습니다. 'freqency' 대신에'frequency' 라인을 사용합니다. – hooy

+3

파이썬 2.7.4에서 numpy 1.7.1, matplotlib 1.2.1, 제대로 작동 –

+0

업데이트 후에 작동합니다. 당신이 대답에 대해 말한 것을 형성한다면, 나는 그것을 받아 들여 해결 된 것으로 표시 할 것입니다. – TheMeaningfulEngineer

답변

2

파이썬에 2.7.5 with numpy 1.7.1 및 matplotlib 1.2.1에서 코드는 예상대로 작동합니다. numpy 및 matplotlib 설치를 최신 버전으로 업데이트하십시오.

관련 문제