[DASP]1. 采样与重构

前言

关于傅里叶级数对于时域和频域的转换这里不过多赘述:[信号与系统]有关时域信号与频域信号的转换

连续信号到离散信号的转换

将连续时域信号 x ( t ) x(t) x(t) 转换为离散时域信号 x [ n ] x[n] x[n] 的数学推导过程如下:

1. 采样定理

采样定理指出,如果一个信号的最高频率不超过 1 2 T s \frac{1}{2T_s} 2Ts1(即奈奎斯特频率),则可以通过每隔 T s T_s Ts 进行一次采样来完全重建该信号。这个过程可以表示为:
x [ n ] = x ( n T s ) x[n] = x(nT_s) x[n]=x(nTs)

其中 T s T_s Ts 是采样间隔, n n n 是一个整数。

2. 采样点的选择

为了将连续信号 x ( t ) x(t) x(t) 转换为离散信号 x [ n ] x[n] x[n],我们需要在等间隔的时间点 t n t_n tn 处对 x ( t ) x(t) x(t) 进行采样。时间点 t n t_n tn 可以表示为:
t n = n T s t_n = nT_s tn=nTs

其中 n n n 为整数。

3. 离散信号的表达式

通过在这些时间点上采样,离散信号 x [ n ] x[n] x[n] 表示为:
x [ n ] = x ( n T s ) x[n] = x(nT_s) x[n]=x(nTs)

4. 数学推导

假设我们有一个连续信号 x ( t ) x(t) x(t),我们想要将其采样得到离散信号 x [ n ] x[n] x[n]。

  1. 定义连续信号

    设连续信号 x ( t ) x(t) x(t) 表示为:
    x ( t ) x(t) x(t)

  2. 选择采样间隔 T s T_s Ts

    选择一个适当的采样间隔 T s T_s Ts,使得信号满足采样定理。

  3. 计算采样点

    采样点 t n t_n tn 可以表示为:
    t n = n T s t_n = nT_s tn=nTs

  4. 在采样点进行采样

    在采样点 t n t_n tn 处,对连续信号 x ( t ) x(t) x(t) 进行采样,得到离散信号 x [ n ] x[n] x[n]:
    x [ n ] = x ( n T s ) x[n] = x(nT_s) x[n]=x(nTs)

5. 采样和重构

采样过程

采样是将连续时间信号 x ( t ) x(t) x(t) 在离散时间点 t = n T s t = nT_s t=nTs 处进行取样的过程。其数学表达式为:
x [ n ] = x ( n T s ) x[n] = x(nT_s) x[n]=x(nTs)

其中 n n n 为整数,表示采样点的索引。

重构过程

假设我们有一个离散时间信号 x [ n ] x[n] x[n],我们可以通过插值方法重构原始的连续时间信号 x ( t ) x(t) x(t)。最常用的重构方法是使用理想的低通滤波器进行重构,其表达式为:
x ( t ) = ∑ n = − ∞ ∞ x [ n ] ⋅ sinc ( t − n T s T s ) x(t) = \sum_{n=-\infty}^{\infty} x[n] \cdot \text{sinc}\left(\frac{t - nT_s}{T_s}\right) x(t)=n=−∞∑∞x[n]⋅sinc(Tst−nTs)

其中 sinc ( x ) \text{sinc}(x) sinc(x) 是 sinc 函数,定义为:
sinc ( x ) = sin ⁡ ( π x ) π x \text{sinc}(x) = \frac{\sin(\pi x)}{\pi x} sinc(x)=πxsin(πx)

重构过程的基本原理是将离散的样本 x [ n ] x[n] x[n] 进行加权叠加,其中权重是 sinc \text{sinc} sinc 函数的取值。这个过程在理论上可以完全重建原始的连续时间信号 x ( t ) x(t) x(t),前提是信号满足采样定理的条件。

示例

假设我们有一个频率为 1 Hz 的正弦波信号 x ( t ) = sin ⁡ ( 2 π t ) x(t) = \sin(2\pi t) x(t)=sin(2πt),采样间隔 T s T_s Ts 为 0.1 秒。我们可以通过以下步骤进行采样和重构:

  1. 计算采样点:
    t n = n T s = 0.1 n t_n = nT_s = 0.1n tn=nTs=0.1n
  2. 在采样点进行采样:
    x [ n ] = sin ⁡ ( 2 π ⋅ 0.1 n ) x[n] = \sin(2\pi \cdot 0.1n) x[n]=sin(2π⋅0.1n)

离散信号 x [ n ] x[n] x[n] 表示为:
x [ n ] = sin ⁡ ( 0.2 π n ) x[n] = \sin(0.2\pi n) x[n]=sin(0.2πn)

重构信号 x ( t ) x(t) x(t) 表示为:
x ( t ) = ∑ n = − ∞ ∞ sin ⁡ ( 0.2 π n ) ⋅ sinc ( t − 0.1 n 0.1 ) x(t) = \sum_{n=-\infty}^{\infty} \sin(0.2\pi n) \cdot \text{sinc}\left(\frac{t - 0.1n}{0.1}\right) x(t)=n=−∞∑∞sin(0.2πn)⋅sinc(0.1t−0.1n)

通过这个过程,我们可以看到如何将连续时域信号转换为离散时域信号,并且在理论上可以通过重构过程完全恢复原始的连续时域信号。

相关推荐
2301_78183352几秒前
【智绘未来】气候变局中的智慧之眼:机器学习赋能气候变化预测与缓解
人工智能·机器学习
数据分析螺丝钉12 分钟前
力扣第218题“天际线问题”
经验分享·python·算法·leetcode·面试
lose and dream_1144 分钟前
【 2024!深入了解 大语言模型(LLM)微调方法(总结)】
大数据·人工智能·opencv·机器学习·语言模型·自然语言处理·架构
半截詩1 小时前
力扣Hot100-24两两交换链表中的节点(三指针)
算法
2401_857636391 小时前
Scala中的尾递归优化:深入探索与实践
大数据·算法·scala
点云侠1 小时前
matlab 干涉图仿真
开发语言·人工智能·算法·计算机视觉·matlab
2401_857638032 小时前
【深度解析】滑动窗口:目标检测算法的基石
人工智能·算法·目标检测
Czi橙2 小时前
玩玩快速冥(LeetCode50题与70题以及联系斐波那契)
java·算法·快速幂·斐波那契
Python大数据分析@2 小时前
用Python实现的10种聚类算法汇总
python·算法·聚类
橘子味的小橙3 小时前
leetCode-hot100-动态规划专题
java·算法·leetcode·动态规划