我正在尝试使用 Matlab dsp 工具箱中的 DDC 执行数字下变频。我的问题是带宽属性仅限于 Fs/2 并且创建的过滤器是真正的过滤器。如果输入是复杂的,那么频率范围将从 0 到 Fs,并且抽取滤波器需要很复杂,但工具箱不允许这样做。这是 Matlab 工具箱的一些问题,还是即使输入信号很复杂,DDC NCO 频率也不能超过 Fs/2 的理论限制?
用于复杂输入信号下变频的最大 NCO 频率和滤波器设计
假设输入信号很复杂,那么只要从 DC 或采样率到数字 IF 载波的频率距离大于一半信号带宽(意味着没有频谱跨越这些边界)。这样做会增加低通滤波器隔离图像的挑战,尤其是当信号接近 DC 或采样率边界时。
通过观察“展开的数字频谱”可以直观地解释这一点,因此我们将频谱扩展到正负无穷大,并通过采样知道从 DC 到采样率的频谱将在采样率的每个额外整数倍中重复. 进一步对于实信号,我们知道正负频率必须是复共轭对称的。对于高于一半采样率的任意复 IF 波形,我们在下图中看到了所有这些。这些图显示了通常使用复杂 NCO 的下变频过程的频域频谱(以及如果我们旋转错误的方式会发生什么),最后是上面的框图对数字基带频谱的结果。
上图是最典型的方法,使用复数 NCO(与上面的框图不同,而是一个完整的复数乘法器,需要四个实数乘法器和两个加法器以及复数 NCO)。第二张图是如果 NCO 接线错误(Sin/Cos 交换)会发生什么,底部的图是我们可以用上面更简单的图做的,并显示了过滤掉图像的更大挑战(但否则相当可行的)。请注意,因为真正的 NCO 信号实际上会在采样率的正负一半(或等效于直流采样率)的唯一频率跨度中创建两个音调,所以我们确实可以使用真正的 NCO 对跨度中的任何信号进行下变频从 DC 到采样率(只要信号的带宽没有像已经提到的那样跨越这些边界)。; 单个正弦波由两个“音调”组成,将“音调”定义为频域上的脉冲。
复数 IF 在时间上乘以 NCO,因此在频域中,这些频谱将进行卷积,从而导致复数基带处的频谱偏移。我发现有些人通过首先知道频域中显示的每个脉冲代表时域中的单个旋转相量来更快地掌握这一点(由),所以如果你想象中心载波上的一个脉冲对于由下式给出的复 IF,你可以看到这将是众多冲动中的一个,位于这会将我们的信号移动到基带,因为在时域中,产品将是 , (同样你会看到有无限的组合可以做同样的事情,因为如图所示的频谱重复,但最终我们知道从 DC 到 fs 的所有内容都是重复的,所以一旦我们解决了 DC 到 Fs 中的所有信号,我们可以简单地以这种图形方法填充其余部分)。我在上图中突出显示了一个示例,运营商位于以及在复杂 NCO 频谱中创建的特定分量通过时域乘法过程将复数中频移至基带。通过进一步观察,我们也看到下面第四个奈奎斯特区的组件也是如此,因为我们可以在复杂的 NCO 频谱中找到负的分量,它会做同样的事情(同样,这只是一个数字频谱的可视化,它在采样率的任何频率跨度上都是唯一的,例如到的到,另一种方法是将其视为圆柱体,但我发现这更清晰,可以在二维图上轻松表示)。数学非常简单,但单独给出可能会掩盖这种直观的洞察力,这有助于解释许多多速率和混合信号(模拟/数字)原理。
一个复杂的 NCO 将创建一个由样本给出的独特音调对于从 DC 到采样率的任何频率(采样率是 DC 的别名,因此准确地说,它从 DC 到一个频率间隔是唯一的(由在哪里是 NCO 时钟速率和是累加器位大小。)。这将需要一个具有两个输出的 NCO,分别代表实部和虚部。考虑到关系,这可以通过两个正交同步的真实 NCO 来完成:
用“I”和“Q”实现隐含在“Q”路径中。最终,正弦查找表将与四分之一周期的相位累加器中的简单偏移共享(并且只需存储四分之一周期即可实现具有高效向上/向下计数和符号更改的完整周期)。
本文的框图显示了一个复杂的 NCO 频率转换复杂输入:
通常在 DDC 实现中,输入是实数,NCO 是实数和复数输出的复数。正半谱和负半谱都在相同的方向(左或右)平移,这样一个将在基带结束(如果向右移动,意味着负半谱,将导致频谱反转,这很容易纠正)。乘法后需要滤除剩余的高频分量。