コード例 #1
0
ファイル: abox.py プロジェクト: ArunJayan/expeyes-programs
def do_fft():
    global data, fftdata, fftwin
    if data == None : return
    fftdata = phmath.fft(data)
    xmin = fftdata[0][0]
    xmax = fftdata[-1][0]
    ymin = 0.0
    ymax = 0.0
    for k in range(len(fftdata)):
        if fftdata[k][1] > ymax: ymax = fftdata[k][1]
        if fftdata[k][1] < ymin: ymin = fftdata[k][1]

    other = Toplevel()
    other.title('Fourier Transform Window')
    fftwin = disp(other, WIDTH, HEIGHT,'white')
    fftwin.auto_scale(fftdata)
    fftwin.mark_axes(xlab='Hz', ylab='N')
    f = Frame(other)
    f.pack()
    b1 = Button(f,text = 'Save FFT',command = save_fft)
    b1.pack(side=LEFT)
    b1 = Button(f,text = 'Zoom',command = zoom_fft)
    b1.pack(side=LEFT)
    b1 = Button(f,text = 'Reset',command = reset_fft)
    b1.pack(side=LEFT)
    x = []
    y = []
    fftwin.delete_lines()
    for k in fftdata:
      y.append((k[0],k[1]))
    fftwin.line(y,'red')
コード例 #2
0
def do_fft():
    global data, fftdata, fftwin
    if data == None: return
    fftdata = phmath.fft(data)
    xmin = fftdata[0][0]
    xmax = fftdata[-1][0]
    ymin = 0.0
    ymax = 0.0
    for k in range(len(fftdata)):
        if fftdata[k][1] > ymax: ymax = fftdata[k][1]
        if fftdata[k][1] < ymin: ymin = fftdata[k][1]

    other = Toplevel()
    other.title('Fourier Transform Window')
    fftwin = disp(other, WIDTH, HEIGHT, 'white')
    fftwin.auto_scale(fftdata)
    fftwin.mark_axes(xlab='Hz', ylab='N')
    f = Frame(other)
    f.pack()
    b1 = Button(f, text='Save FFT', command=save_fft)
    b1.pack(side=LEFT)
    b1 = Button(f, text='Zoom', command=zoom_fft)
    b1.pack(side=LEFT)
    b1 = Button(f, text='Reset', command=reset_fft)
    b1.pack(side=LEFT)
    x = []
    y = []
    fftwin.delete_lines()
    for k in fftdata:
        y.append((k[0], k[1]))
    fftwin.line(y, 'red')
コード例 #3
0
ファイル: am.py プロジェクト: wavicles/phoenix
"""
Reads a waveform from CH0, plots the wave and it Fast Fourier Transform. Used with Analog Box.
Connect the GND of Phoenix and Analog Box. Connect SG1 out to AM input of SG2. 
Connect SG2 output to CH) through a level shifter. 
"""
import phm, phmath

p = phm.phm()

p.select_adc(0)
p.set_adc_size(1)
data = p.read_block(800, 40, 1)
p.save_data(data, "amwave.dat")
res = phmath.fft(data)
p.save_data(res, "amfft.dat")
p.plot(res)
p.auto_scale(res)
raw_input()  # wait for a Keypress
コード例 #4
0
ファイル: fft_test.py プロジェクト: minrk/phoenix
import phm, phmath
p=phm.phm()

data = p.read_block(800,20,1)
#p.plot(data) ; raw_input()
trans = phmath.fft(data)
size = len(trans)

xmin = trans[0][0]
xmax = trans[-1][0]
ymin = 0.0
ymax = 0.0
for k in range(size):
    if trans[k][1] > ymax: ymax = trans[k][1]
    if trans[k][1] < ymin: ymin = trans[k][1]

print xmin,ymin,xmax,ymax

p.plot(trans)
p.set_scale(xmin,ymin,xmax,ymax*1.1)
raw_input()