热度 13
2013-7-17 15:04
4201 次阅读|
0 个评论
Freehardman, CD 数字通信系统中由于要将模拟信号数字化,必须要进行A/D变换。A/D变换所带来的问题不只是模拟信号数字化了。更为关键的是如何最大限度的保持原有模拟信号中所包含的有用信息。一般涉及到两个指标,一个是ADC的分辨率,简单的表示就是转换后的数字信号的位宽,另一个就是ADC的采样速率。在ADC分辨率一定的情况下,提高采样速率是一种有效的提高采样质量的方法。 但是采样速率的提高会给后续的处理带来压力。在这种情况下就产生了多速率信号处理技术。所谓多速率处理就是对已有的数字样值的处理不是按照一个速率进行,而是多个速率,其本质我认为就是对数字样值数量进行的一个变换。样值数量的改变就是增加新的样值或者减少已有的样值。 增加样值: 如果样值数量增加,那么必然导致要有一个频率相应增加的时钟信号。如果样值数量增加一倍,那么就要有一个2倍于采样时钟的信号。依此类推。这个过程用术语说就是内插。其实相当于增加采样率。 减少样值: 如果样值数量减少,那么必然导致要有一个频率相应降低的时钟信号。如果样值数量减少1半,那么就要有一个频率是采样时钟频率一半的时钟信号。依此类推。这个过程用术语说就是抽取。其实相当于减少采样率。 数字下变频与数字上变频: 在数字通信系统中,一般信号输入端进行减少样值(抽取),在信号输出端进行增加样值(内插)。由前面可知,抽取后,相应的时钟频率可以降低,所以这个过程也叫数字下变频;内插后,相应的时钟频率就要升高,因此这个过程又叫数字上变频。 疑问:既然要抽取,为什么不直接在ADC采样的时候就降低频率呢? 我的理解是这样的:因为在硬件电路处理上,ADC的采样时钟确定后,在工作过程中就会再有采样时钟频率的变化。如果要求采样时钟变化,则必然要有一个控制电路以及相应和指标都很好的DDS或其他可程控的时钟源,这在硬件设计和处理上都增加复杂度。 抽取对信号本身频率的影响: 在时域和频域有相应的公式,可以很容易找到。抛开公式,我们用简单的语言来加以说明。一定要记住,无论怎么抽取,都要满足奈亏斯特采样定理。我们都知道,在不满足奈亏斯特采样定理的时候,会发生频谱混叠。而抽取其实就是降低采样率,所以一定要注意在抽取后不能发生频谱混叠。有一个计算结果我们可以参考,假定抽取倍数为M,也就是M个点中取一个点,那么要求倍抽取的信号的频率必须是在 。为了满足这个要求,在处理的时候要根据实际情况在抽取前加入抗混叠滤波器。关于抗混叠滤波器不在此文讨论范围内。 内插对信号本身频率的影响: 与抽取不同,内插是插入新的值,这就涉及到插入值的大小。内插是插入零值。当插入零之后,说明信号过零点的次数增加了,那么就可以很容易理解为信号的频率增加了,也就是周期变小了。如果在相邻采样点之间等距插入L-1个0值,L要大于1的整数。那么L成为内插因子,而这个过程就叫L倍内插。记住这个结果:在L倍内插后,新的信号的周期变为原来的1/L。很容易理解,在0~2π这个范围内,会有重复的波形,这个重复的波形称为镜像。因此在内插后,要接一个通带在 这样的滤波器,以消除镜像。 抽取的Verilog实现: 从前面所述,抽取就是减少样值,那么在HDL语言实现的时候,也就是一个分频的过程。实现分频可以采取计数、专用的时钟单元等等。比如对一个信号进行4倍抽取的代码如下: Module decimate_4(clk,rstn,x,y) Input clk;//采样时钟 Input rstn;//复位信号,低有效 Input x;//ADC 采样值 Output y;//抽取后的输出值 Reg cnt;//4分频计数器 Reg y; always@(posedge clk or negedge rstn) begin if (!rstn) cnt = 0; else begin cnt = cnt +1; if (cnt ==2’b11) y = x; else y = y; end end