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

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

相关推荐
sali-tec2 小时前
C# 基于halcon的视觉工作流-章66 四目匹配
开发语言·人工智能·数码相机·算法·计算机视觉·c#
这张生成的图像能检测吗2 小时前
(论文速读)ParaDiffusion:基于信息扩散模型的段落到图像生成
人工智能·机器学习·计算机视觉·文生图·图像生成·视觉语言模型
小明说Java3 小时前
常见排序算法的实现
数据结构·算法·排序算法
行云流水20193 小时前
编程竞赛算法选择:理解时间复杂度提升解题效率
算法
smj2302_796826525 小时前
解决leetcode第3768题.固定长度子数组中的最小逆序对数目
python·算法·leetcode
cynicme5 小时前
力扣3531——统计被覆盖的建筑
算法·leetcode
core5126 小时前
深度解析DeepSeek-R1中GRPO强化学习算法
人工智能·算法·机器学习·deepseek·grpo
mit6.8246 小时前
计数if|
算法
a伊雪6 小时前
c++ 引用参数
c++·算法
JoannaJuanCV6 小时前
自动驾驶—CARLA 仿真(1)安装与demo测试
人工智能·机器学习·自动驾驶·carla