import numpy as np
# 生成信号数据
n = 1000 # 采样点数
t = np.linspace(0, 1, n) # 时间轴
f = 5 # 信号频率
signal = np.sin(2 * np.pi * f * t) # 信号数据
# 进行离散傅里叶变换
dft = np.fft.fft(signal)
# 计算频率轴
freqs = np.fft.fftfreq(n, t[1] - t[0])
# 找到信号的频段
max_freq_index = np.argmax(np.abs(dft)) # 找到 DFT 中幅度最大的值
freq = freqs[max_freq_index] # 找到对应的频率
freq_band = np.abs(freq * n) # 将频率转换为频段
# 打印结果
print(f"信号的频段为 {freq_band:.2f}")
先生成一个包含正弦波信号的一维数组 signal。
然后使用 NumPy 的 fft 函数计算信号的 DFT,并使用 fftfreq 函数计算相应的频率轴。
接着找到 DFT 中幅度最大的值,并找到对应的频率。
最后将频率转换为频段并打印结果。
浙公网安备 33010602011771号