[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)

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

相关推荐
今天背单词了吗9806 小时前
算法学习笔记:19.牛顿迭代法——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法·牛顿迭代法
jdlxx_dongfangxing6 小时前
进制转换算法详解及应用
算法
why技术7 小时前
也是出息了,业务代码里面也用上算法了。
java·后端·算法
2501_922895588 小时前
字符函数和字符串函数(下)- 暴力匹配算法
算法
IT信息技术学习圈9 小时前
算法核心知识复习:排序算法对比 + 递归与递推深度解析(根据GESP四级题目总结)
算法·排序算法
愚润求学9 小时前
【动态规划】01背包问题
c++·算法·leetcode·动态规划
会唱歌的小黄李9 小时前
【算法】贪心算法入门
算法·贪心算法
深度学习机器9 小时前
OCRFlux-3B:开源 OCR + LLM 模型的新标杆,支持跨页表格合并
人工智能·机器学习·语言模型·ocr
轻语呢喃10 小时前
每日LeetCode : 两数相加--链表操作与进位的经典处理
javascript·算法
钢铁男儿10 小时前
C# 接口(接口可以继承接口)
java·算法·c#