2015-05-17 4 views
0

У меня есть два списка значений поплавка, один для времени и другой для значений напряжения, взятых из осциллографа (я полагаю). Я должен нарисовать график амплитудного спектра, но я не совсем уверен, какую функцию мне нужно использовать и какие параметры мне нужно дать, я попробовал fft (u), но это не сработало.График амплитудного спектра питона

Любая помощь приветствуется, дайте мне знать, если вам нужна дополнительная информация.

+0

Посмотрите на 'matplotlib' библиотеки для построения в Python. – leekaiinthesky

+0

Я использую IDLE в pylab, поскольку касается конкретных библиотек, я думаю, что я хорош. Я не мог сделать fft, вот в чем проблема. Я получаю объект «модуль модуля» не вызываемый – Pandryl

+0

Я использовал величину__спектра (insertvaluehere) в случае, если кто-то другой имеет ту же проблему, честно говоря, я не уверен, что он полностью прав, но это что-то. Спасибо за помощь leekaiinthesky! – Pandryl

ответ

3

Использование numpy.

В качестве примера позвольте мне показать, как я анализировал частоты в стерео WAV-файле;

Сначала я прочитал данные и разделил их по левому и правому каналам;

import wave 
import numpy as np 

wr = wave.open('input.wav', 'r') 
sz = 44100 # Read and process 1 second at a time. 
da = np.fromstring(wr.readframes(sz), dtype=np.int16) 
left, right = da[0::2], da[1::2] 

Далее я запускаю на нем дискретное преобразование Фурье;

lf, rf = abs(np.fft.rfft(left)), abs(np.fft.rfft(right)) 

И мы построим левый канал с помощью mathplotlib;

import matplotlib.pyplot as plt 

plt.figure(1) 
a = plt.subplot(211) 
r = 2**16/2 
a.set_ylim([-r, r]) 
a.set_xlabel('time [s]') 
a.set_ylabel('sample value [-]') 
x = np.arange(44100)/44100 
plt.plot(x, left) 
b = plt.subplot(212) 
b.set_xscale('log') 
b.set_xlabel('frequency [Hz]') 
b.set_ylabel('|amplitude|') 
plt.plot(lf) 
plt.savefig('sample-graph.png') 

График выглядит примерно так;

+0

Спасибо, что это было очень полезно. abs (fft.fft()) работал хорошо, я просто не знал, что я должен использовать: D – Pandryl

Смежные вопросы