奈奎斯特采样定理

采样后,计算机得到的是离散的点,用这些离散的点来代替连续的线就势必会产生误差,那么这个误差是不是在容许的范围内,根据采样得到离散的点能不能还原出连续的信号?——

奈奎斯特采样定理
奈奎斯特采样定理解释了采样率和所测信号频率之间的关系。 阐述了采样率fs必须大于被测信号感兴趣最高频率分量的两倍。 该频率通常被称为奈奎斯特频率fN。 通常希望采样率大于信号频率约五倍。
在这里插入图片描述

为更好理解其原因,让我们来看看不同速率测量的正弦波。 情况A,频率f的正弦波以同一频率采样。 这些采样标记在原始信号的左侧,在右侧构建时,信号错误地显示为恒定直流电压。 情况B,采样率是信号频率的两倍。 现在信号显示为三角波。 这种情况下,f等于奈奎斯特频率,这也是特定采样频率下为了避免混叠而允许的最高频率分量。 情况C,采样率是4f/3。
在这里插入图片描述

混叠
如需按一定速率采样以避免混叠,那么混叠到底是什么? 如果信号的采样率低于两倍奈奎斯特频率,采样数据中就会出现虚假的低频成分。 这种现象便称为混叠。
在这里插入图片描述
混叠发生在采样率过低的时候,产生不精确的波形显示。


PPM信号的采样速率

项目中用到PPM信号,800MHz,即时隙宽度是1/800M秒,要求4倍采样,即要求ADC采样速率3.2GS/s。
刚开始没理解,奈奎斯特采样定理研究的是信号经傅里叶变换后的频谱,不能直接把方波信号的频率直接当作它频谱的频率吧。
实际上,方波信号的频谱类似这样:
在这里插入图片描述
在这里插入图片描述
是无限延伸下去的,理论上找不到“最高频率”。然而工程里关注它的主要成分就够了,即“主瓣”。这个主瓣频谱中的f和方波周期性变化的f恰好一致。
在这里插入图片描述
至此,就理解了ADC采样频率到底是怎么要求的。通信里用的都是类似的方波,以后都同理。
进一步发问,对于其他种类的信号,类似的结论还成立么?暂时用不到,搁置讨论。

### Python 实现奈奎斯特采样定理 为了验证奈奎斯特采样定理,在Python中可以通过模拟信号及其频谱来展示该原理。下面是一个简单的例子,通过生成正弦波并对其进行欠采样适当采样的对比实验。 #### 导入必要的库 ```python import numpy as np import matplotlib.pyplot as plt from scipy.fft import fft, fftfreq ``` #### 定义参数与函数 定义一个用于创建正弦波的函数以及计算其离散傅里叶变换(DFT),以便观察频率成分。 ```python def generate_sine_wave(freq, sample_rate, duration): t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False) wave = 0.7 * np.sin(2 * np.pi * freq * t) return t, wave def plot_signal_and_spectrum(time_data, signal_data, sample_rate): fig, (ax1, ax2) = plt.subplots(nrows=2, figsize=(8, 6)) # Plot the time-domain data. ax1.plot(time_data, signal_data) ax1.set_title('Time Domain Signal') ax1.set_xlabel('Time [s]') ax1.set_ylabel('Amplitude') N = len(signal_data) yf = fft(signal_data) xf = fftfreq(N, 1 / sample_rate)[:N//2] # Plot the frequency domain representation. ax2.stem(xf, 2.0/N * np.abs(yf[0:N//2]), 'b', markerfmt=" ", basefmt="-b") ax2.set_title('Frequency Domain Representation') ax2.set_xlabel('Frequency [Hz]') ax2.set_ylabel('|DFT|') plt.tight_layout() plt.show() ``` #### 应用奈奎斯特准则 按照奈奎斯特标准,最低采样率应该是最高频率分量两倍以上。这里分别尝试低于高于这个条件的情况来进行比较[^1]。 对于原始信号频率设为`original_freq = 5 Hz`: - **合适采样**:采用至少 `sample_rate >= 2 * original_freq` - **不足采样**(即混叠现象):使用小于上述值的采样率 #### 执行测试案例 ```python if __name__ == "__main__": original_freq = 5 # Original sine wave frequency in Hertz # Proper Sampling Rate according to Nyquist Theorem proper_sample_rate = 2 * original_freq * 2 # More than twice the highest frequency component t_proper, s_proper = generate_sine_wave(original_freq, proper_sample_rate, 1) # Insufficient Sampling Rate leading to aliasing effect insufficient_sample_rate = original_freq # Less than required by Nyquist criterion t_insufficent, s_insufficient = generate_sine_wave(original_freq, insufficient_sample_rate, 1) print(f"Proper Sample Rate: {proper_sample_rate} Hz") print(f"Insufficient Sample Rate causing Aliasing: {insufficient_sample_rate} Hz") plot_signal_and_spectrum(t_proper, s_proper, proper_sample_rate) plot_signal_and_spectrum(t_insufficent, s_insufficient, insufficient_sample_rate) ``` 这段代码展示了当满足奈奎斯特采样定律时可以正确恢复原始信号;而如果违反,则会出现所谓的“混淆”,使得重建后的信号失真严重。这证明了遵循奈奎斯特原则的重要性以确保能够无损地捕捉到所需的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值