python对离散信号傅里叶变换
时间: 2023-09-30 10:08:13 浏览: 44
Python中可以使用numpy库中的fft函数进行离散信号的傅里叶变换。
具体步骤如下:
1. 导入需要的库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
2. 定义离散时域信号:
```python
x = np.array([1, 2, 3, 4])
```
3. 计算离散信号的傅里叶变换:
```python
X = np.fft.fft(x)
```
4. 计算频域采样点:
```python
freqs = np.fft.fftfreq(len(x))
```
5. 将频域采样点进行排序:
```python
idx = np.argsort(freqs)
freqs = freqs[idx]
```
6. 将傅里叶变换结果进行排序:
```python
X = X[idx]
```
7. 绘制傅里叶变换结果的幅度谱:
```python
plt.stem(freqs, np.abs(X))
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude')
plt.show()
```
完整代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义离散时域信号
x = np.array([1, 2, 3, 4])
# 计算离散信号的傅里叶变换
X = np.fft.fft(x)
# 计算频域采样点
freqs = np.fft.fftfreq(len(x))
# 将频域采样点进行排序
idx = np.argsort(freqs)
freqs = freqs[idx]
# 将傅里叶变换结果进行排序
X = X[idx]
# 绘制傅里叶变换结果的幅度谱
plt.stem(freqs, np.abs(X))
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude')
plt.show()
```
输出结果如下图所示:
![离散信号傅里叶变换结果的幅度谱](https://img-blog.csdnimg.cn/20210708090756884.png)