从阵列中删除“高频”组件?

信息处理 matlab 过滤器
2022-02-10 08:21:46

我是数字信号处理流的新手,因此我的怀疑可能看起来非常愚蠢,但是:在 matlab 等工具中,信号存储在单个数组中。如果我将它与 LPF 阵列进行卷积,我会得到另一个阵列/信号,该阵列/信号具有某些衰减的元素,我可以找出这些元素是哪些元素并将它们从新阵列中完全删除。

我的问题甚至有意义吗?:/

2个回答

您提到卷积,这意味着您的数组代表时域信号。由于这是数字信号处理,时间是离散的,阵列的每个元素都对应一个样本。两个连续的样本有一个固定的时间距离,比如说T.

如果将离散时间信号与低通滤波器 (LPF) 的脉冲响应进行卷积,则生成的输出信号将比输入信号长,因为通常线性时不变 (LTI) 系统具有内存(长度为脉冲响应)。你不能在不扭曲输出信号的情况下减少数组长度(除非你使用带有重叠添加/保存的块处理,但这是另一回事)。因此,无论 LTI 系统的脉冲响应代表哪种类型的滤波器,都不能只从输出数组中删除元素。

要找出系统衰减了哪些频率分量,您应该分析其传递函数(有时也称为频率响应)。传递函数是通过将脉冲响应变换到频域来获得的。使用 DSP 执行此操作的工具是离散傅里叶变换 (DFT),它几乎总是以 FFT 实现(快速傅里叶变换)的形式出现。如果所讨论的系统是一个黑匣子并且其脉冲响应未知,则可以比较输入和输出信号的频域表示,以找出衰减或放大的频率。

低通滤波器以精确的量部分衰减阵列中的一些阵列元素。如果您完全移除这些衰减的阵列元素,您将过度衰减它们,这可能导致向原始信号添加比移除更多的高频频谱。

移除单个元素相当于添加一个幅度相同但相位相反的尖锐毛刺。尖锐的毛刺通常包含大量的高频噪声。所以低通滤波器的作用通常看起来像平滑多个元素,一些元素被衰减,一些元素被放大。不是一个点删除。