
Лаба 4 / ВЯПиВ Лаб 4 Колесников ИВТ-15М
.docx
1)
Код:
freq = np.random.uniform(low=10, high=20, size=(1, ))
fs = 150
ampl = np.random.uniform(low=0.5, high=1, size=(1, ))
addition = np.random.uniform(low=-0.001,high=0.001,size=(1000,))
sig = ampl*np.sin(2 * np.pi * np.arange(1000) * freq / fs) + addition
2)
Код:
plt.plot(sig)
plt.show()
Результат:
3)
Код:
fft_sig = sp.fftpack.fft(sig)
plt.plot(abs(fft_sig))
plt.show()
plt.yscale('log')
plt.plot(abs(fft_sig))
plt.show()
Результат:
Спектр в линейном масштабе:
Спектр в логарифмическом масштабе:
4)
Код:
hamming_window = np.hamming(1000)
sig_window = fft_sig*hamming_window
plt.yscale('log')
plt.plot(abs(sig_window))
plt.show()
Результат:
5)
Так как у сигнала отсутствует мнимая составляющая, его спектр симметричен относительно нуля и в линейном масштабе неотличим от графика синусоидального сигнала. Но так как к каждому отсчету сигнала было прибавлено случайное значение, на графике спектра в логарифмическом масштабе видны колебания. После применения к спектру оконной функции колебания уменьшились.