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

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

相关推荐
yuanbenshidiaos1 小时前
C++----------函数的调用机制
java·c++·算法
唐叔在学习1 小时前
【唐叔学算法】第21天:超越比较-计数排序、桶排序与基数排序的Java实践及性能剖析
数据结构·算法·排序算法
ALISHENGYA1 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(switch语句)
数据结构·算法
chengooooooo1 小时前
代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
算法·leetcode·职场和发展
jackiendsc2 小时前
Java的垃圾回收机制介绍、工作原理、算法及分析调优
java·开发语言·算法
游是水里的游3 小时前
【算法day20】回溯:子集与全排列问题
算法
yoyobravery3 小时前
c语言大一期末复习
c语言·开发语言·算法
Jiude3 小时前
算法题题解记录——双变量问题的 “枚举右,维护左”
python·算法·面试
被AI抢饭碗的人3 小时前
算法题(13):异或变换
算法
nuyoah♂4 小时前
DAY36|动态规划Part04|LeetCode:1049. 最后一块石头的重量 II、494. 目标和、474.一和零
算法·leetcode·动态规划