奈奎斯特采样定理 python验证
时间: 2024-12-17 18:21:35 浏览: 15
奈奎斯特采样定理是数字信号处理领域的一个基本概念,它规定了模拟信号数字化过程中采样的频率最低要求。如果模拟信号的最高频率为 \( f_{max} \),为了不失真地恢复这个信号,其采样频率 \( f_s \) 至少应为信号最高频率的两倍,即 \( f_s \geq 2f_{max}\)。这是因为如果采样率低于这个阈值,可能会导致信号频谱中的信息丢失,形成所谓的"混叠效应"。
Python中可以使用numpy库来进行简单的奈奎斯特采样定理验证。比如,你可以创建一个模拟信号,将其进行低速采样,然后尝试恢复并检查是否有失真的现象。下面是一个简化的例子:
```python
import numpy as np
from scipy.signal import firwin, lfilter
# 假设模拟信号最高频率为 4000 Hz
f_max = 4000
fs_min = 2 * f_max # 根据奈奎斯特准则
# 创建一个高斯白噪声信号
t = np.arange(0, 1, 1 / fs_min)
noise_signal = np.random.normal(size=len(t))
# 采样率低于奈奎斯特阈值
fs_low = 2 * f_max - 100 # 这里减去一个小值以示区别
samples = noise_signal[::int(fs_min // fs_low)]
# 按理论采样率重建信号
reconstructed_signal = lfilter([1], [1, -1/fs_min], samples)
# 对比原信号和重建后的信号,看是否存在失真
print("原始信号与重构信号差异:", np.max(np.abs(noise_signal - reconstructed_signal)))
阅读全文