用fft对信号作频谱分析代码
时间: 2024-10-16 22:22:35 浏览: 23
用FFT对信号作频谱分析实验报告
4星 · 用户满意度95%
傅立叶变换(Fast Fourier Transform,FFT)是一种快速计算离散信号频谱的常用方法。下面是一个简单的Python代码片段,使用`numpy`库的`fftpack`模块对一段模拟信号进行频谱分析:
```python
import numpy as np
import matplotlib.pyplot as plt
# 创建一段模拟信号,例如正弦波
time = np.linspace(0, 1, num=1000, dtype=np.float64) # 时间序列
frequency = 10 # 被分析的信号频率
signal = np.sin(2 * np.pi * frequency * time)
# 使用numpy的fft函数计算频谱
n = len(signal)
fft_result = np.fft.fft(signal)
# 计算频率轴
frequencies = np.fft.fftfreq(n, d=1.0/time[-1]) # 分辨率为1/time步长
# 获取绝对值并取前半部分(因为正负频率对应)
power_spectrum = abs(fft_result[0:n//2])
# 对结果进行归一化
power_spectrum /= n
# 绘制频谱图
plt.plot(frequencies[:n//2], power_spectrum)
plt.xlabel('Frequency [Hz]')
plt.ylabel('Amplitude')
plt.title('Signal Frequency Spectrum using FFT')
plt.show()
阅读全文