In [37]:
from scipy import fftpack
fs = 512
w = 2*pi*4.
x = arange(-0.06,1.44,1./fs)
f = sin(w*x) + 0.5*sin(2*w*x+0.85*pi) + sin(.5*w*x)
fig = plt.figure(figsize=(10,4))
ax = fig.add_subplot(111)
window = hanning(f.shape[0])
#f = f*window
plot(x, f, linewidth=3, label='f(t)*Fensterfunktion')
#plot(x, window, linewidth=1, color='g', label='Fensterfunktion')
#plot((1.07,1.07), (-2.5,2.5), linewidth=3, color='r')
#plt.legend(loc='lower right', fontsize=15)
plot((0.09,0.09), (0,2.5), linewidth=2, color='g')
plot((0.59,0.59), (0,2.5), linewidth=2, color='g')
#ax.spines["top"].set_visible(False)
#ax.spines["right"].set_visible(False)
ax.annotate('', xy=(.09,2.3), xytext=(.59,2.3), arrowprops=dict(arrowstyle="<->"))
ax.annotate('T', xy=(1,1), xytext=(.34, 2.5), fontsize=15)
plt.xlabel('t [s]', fontsize=15)
plt.ylabel('f(t)', fontsize=15)
plt.grid()
plt.yticks([0, ])
plt.xticks([0, 1])
plt.xlim(-.1, 1.5)
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
#plt.fill_between(x, 0, f, alpha=.3)
F = fftpack.fft(f)/f.shape[0]
freq = fftpack.fftfreq(f.shape[0], 1./fs)
'''
afft = fig.add_subplot(212)
plot(freq[:20], abs(F)[:20], 'or')
plt.xlabel('Frequenz [Hz]', fontsize=15)
plt.ylabel('Amplitude', fontsize=15)
plt.grid()
plt.ylim(-.1, .7)
plt.yticks([0, .25, .5])
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
'''
plt.tight_layout()
fig.savefig('/home/weiss/ba/figures/periodic.pdf')
'''
plt.close('all')
fig, (a, afft) = plt.subplots(nrows=1, ncols=2)
a.plot(x, f)
a.set_xlabel('$t$ in Sekunden')
a.set_ylabel('$sin(8\pi x)$')
afft.plot(freq[:20], abs(F)[:20], 'o')
afft.set_xlabel('Frequenz in $Hz$')
plt.tight_layout()
'''
Out[37]:
In [7]:
ffrfs = 1000.
w = 2*pi*10.
x = arange(0,1,1/fs)
f = sin(w*x)
plot(x, f)
F = fftpack.fft(f)/fs
freq = fftpack.fftfreq(1000, 1./fs)
print F.size
print freq[:20]
figure()
plot(freq[:20], abs(F)[:20], 'o')
Out[7]:
In [ ]:
|