通过零填充或复制序列进行上采样

信息处理 matlab 离散信号 信号分析 DSP核心
2022-01-30 10:40:56

我需要将 2 MHz 信号上采样 3000 倍,以将 OQPSK 调制基带信号转换为通带。当我通过复制序列中的元素进行上采样时,与用零填充序列相比,我似乎得到的错误更少。当我复制元素时,频谱也更好,而使用零填充时,频谱什么也没有显示。我现在很困惑哪种方式是对序列进行上采样的正确方法以及为什么。

2个回答

Matlab 的'upsample()' 命令不会用零值样本“填充”序列。'upsample()' 命令用零值样本“填充”一个序列。“零填充”和“零填充”是两种不同的操作。“零填充”是指将零值样本的顺序字符串(序列)附加到序列的开头或结尾。

我相信您想要做的是:将您的时域序列“上采样()”到与您的 2.4 GHz 载波序列兼容的所需最终采样率。接下来,对上采样序列进行低通滤波。然后将滤波后的序列乘以您的高频载波序列。

:Boggle:
两者都不正确。如果您需要转换为更高的采样率,您应该在样本之间进行插值。
线性插值最简单,但会导致谐波出现在输出中。

带有低通滤波器的线性插值更好。使用原始信号的奈奎斯特频率(上采样之前)作为低通的截止频率。

既然您知道需要寻找什么,那么您可以很容易地找到其他方法。

我不太了解你在做什么来确定,但我很确定除非你做一些特殊的事情,否则不需要上采样到那个程度——比如从结果中向后工作以与一些原始信号进行比较.