Example #1
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')
Example #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')
Example #3
0
"""
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
Example #4
0
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()