In [3]:
def hammingwindow(freq1, freq2, f_sample=10, width=3, sig=.1):
    "Erstellt einen hamming windowed Frequenzübergang Freq1 auf Freq2 mit sig Signallänge und entsprechende FFT"
    freq1, freq2, width = float(freq1), float(freq2), float(width)
    f_sample = f_sample*1000.
    print "Samplingfrequenz:", f_sample/1000, "kHz"
    f1 = tile(concatenate((ones(f_sample/(2*freq1)), zeros(f_sample/(2*freq1))), axis=1), sig*freq1)
    f2 = tile(concatenate((ones(f_sample/(2*freq2)), zeros(f_sample/(2*freq2))), axis=1), sig*freq2)
    f = concatenate((f1, f2), axis=1)-0.5
    xaxis = linspace(0, 2*sig, f.size)
    window = concatenate((zeros(((width-1)/(2*width))*f.size), numpy.hamming(f.size/width)), axis=1)
    window = concatenate((window, zeros(((width-1)/(2*width))*f.size)), axis=1)
    window = concatenate((window, zeros(f.size-window.size)), axis=1)
    f = f*window
    plot(xaxis, f)
    plt.xlabel('t in s')
    plt.ylim(-1,1)
    figure()
    FT = fft.fft(f)/f.size
    FT = FT[:(FT.size/2)]
    faxis = fft.fftfreq(f.size, (1./f_sample))
    faxis = faxis[:(faxis.size/2)]
    plot(faxis, abs(FT))
    plt.xlim(0, (freq1+freq2))
    plt.xlabel('Freq in Hz')
    plt.ylabel('Amplitude')
    figure()
    plt.psd(f, f.size/2, f_sample)
    plt.xlim(0, 2000)
    return f,FT;

f,FT= hammingwindow(200,700,42)


Samplingfrequenz: 42.0 kHz

In [13]:


In [13]:


In [ ]: