Advertisement

数字信号处理Python示例(2-3)奈奎斯特采样与时域混叠

阅读量:

文章目录

  • 引言
  • 第一部分:探讨采样定理的核心原理
  • 第二部分:基于Python语言,在时域中实现混叠现象的模拟与观察
  • 第三部分:仿真实验结果分析
  • 结束语

前言

本文旨在详细阐述并深入解析奈奎斯特采样定理,并通过Python仿真实例展示了当采样率未满足奈奎斯特标准时出现的时域混叠现象。


一、奈奎斯特采样定理

该理论阐述了,在信号处理领域中, 为了能够从其采样值完全恢复一个连续时间信号所需的最低采样频率。

奈奎斯特采样定理的数学表述如下:

如果一个连续时间信号x(t) 具有截止频率,则其频谱在高于f_{\text{max}}的部分为零;为了准确重构原始连续时间信号x(t),采样频率fs必须不低于2倍的最大频率f_{\text{max}}(即最低允许值为2 f_{\text{max}} Hz),这样才能满足无失真恢复的要求

fs ≥ 2fmax

其中,fs是采样频率, fmax是信号的最高频率成分。

换句话说,在这种情况下采样频率必须至少达到信号最高频率的两倍以上才能防止出现混叠现象(即 aliasing 效应)。也就是说,在采样过程中不同频率的信号可能会被误认为具有相同的频谱特性,并且这会导致无法区分原始信号的不同频率成分。

以下是对奈奎斯特采样定理的几个关键点的解释:

带限信号:被称为带限信号的是那些其傅里叶变换(或频谱)在某个特定频率以上为零的信号。表明该信号不包含高于该特定频率的任何频率成分。

(2)无失真重建:当采样频率达到或超过奈奎斯特定理所规定的最小速率时,则可以通过低通重构滤波器准确恢复出原始的连续时间信号。

(3)采样失真:当采样速率未达到奈奎斯特临界值时,在信号频谱超过fs/2的高频分量将被映射到0≤f<fs/2的低频区域,从而造成信号失真。

在实际应用中,在采样之前一般会采用抗混叠滤波器以确保信号的最高频率不超过fs/2。

该理论作为数字信号处理与通信系统设计的基础理论框架,在实际应用中发挥着关键作用。该理论保证了在数字系统中能够精确地表示与处理模拟信号。

二、在时域中演示混叠的Python仿真

按照奈奎斯特采样定理,在采样频率fs满足大于或等于两倍信号最高频率fmax的条件下(即fs ≥ 2fmax),可以通过采样信号完美无 distortion 地重构原始连续时间信号x(t))。相反地,在fs小于两倍fmax的情况下(即fs < 2fmax),会导致信号重叠现象的发生(即产生混叠现象)。通过以下Python仿真可以在时域中展示这一过程。

实验设计

复制代码
    # 导入必要的库
    import numpy as np       # numpy用于数学计算
    import matplotlib.pyplot as plt  # 用于绘图
    
    f = 10            # 信号频率,单位Hz
    fs = [8, 15, 50, 120]   # 采样率,单位Hz
    
    for i in range(len(fs)):
    t = np.arange(0, 1, 1/fs[i])
    x = np.sin(2*np.pi*f*t)
    plt.subplot(2, 2, i+1)
    plt.plot(t, x)
    plt.xlabel('时间(s)')
    plt.ylabel('幅度')
    plt.title('Fs = {} Hz'.format(fs[i]))
    plt.grid(True)
    
    plt.tight_layout()  # 自动调整子图参数,使之填充整个图像区域
    plt.show()  # 显示图形
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI写代码

三、仿真结果及分析

以下是执行代码后画图的结果。

在这里插入图片描述

结果分析:
(1)8Hz的采样速率无法完全捕捉到信号中的全部信息。根据采样定理可知,在频域中对连续时间信号进行离散采样的频率称为采样速率或采样频率(sampling rate),其计算公式为f' = f - fs(其中f表示原始信号频率)。因此,在本例中f' = 10Hz - 8Hz = 2Hz。这也解释了为何当采用fs=8Hz时所得的离散时间序列会呈现出一个类似于2Hz正弦波的形式。

(2)当选择采样频率为15赫兹时,则其奈奎斯特区间则确定在-7.5赫兹至7.5赫兹之间。该信号的频率不在上述奈奎斯特区间内;因此,在这种情况下,采样后的信号频域表示为f′ = f - fs。将数值代入计算后可得f′等于10减去15的结果即-5赫兹。这正是由于采用了fs=15赫兹作为采样率时所导致的结果。

(3)在选择采样频率为50Hz和120Hz的情况下,在这种情况下不会发生混叠现象。结果表明,在fs=50Hz和 fs=100Hz时的输入信号均为10Hz

写在后面的话

这篇《数字信号处理python示例》系列文章已经是第24期了,在这个系列中我们将通过Python语言来展示数字信号处理的基础知识及其实际应用。我们提供的所有Python代码都将力求简洁明了并具有演示功能。在理论部分我们将深入浅出地介绍其实验基础而不涉及复杂的数学推导,并突出其实验基础和工程应用的价值

感谢您的阅读!



全部评论 (0)

还没有任何评论哟~