帮我跑一下这个代码,然后把结果图发给我,电脑不在身边,这个是Python的代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import get_window
# 生成信号
fs = 10000
t = np.arange(0, 1, 1/fs)
x = np.sin(2*np.pi*1000*t)
# 窗函数
win_dict = {'rect': 'boxcar', 'hanning': 'hann', 'hamming': 'hamming', 'blackman': 'blackman', 'kaiser': 'kaiser'}
win_len = 256
beta = 5
# 频谱分析
for win_name, win_func in win_dict.items():
win = get_window(win_func, win_len)
xw = x[:win_len] * win
Xw = np.fft.fft(xw, win_len)
freq = np.fft.fftfreq(win_len, 1/fs)
Xw_db = 20*np.log10(abs(Xw))
Xw_db -= Xw_db.max()
plt.plot(freq, Xw_db, label=win_name)
# 图像显示
plt.xlim(0, 5000)
plt.ylim(-60, 0)
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude (dB)')
plt.legend()
plt.show()