Z;4pI@u
肯定是DDC(数字下变频)了。 g Xi&
S
lX*IEAc
希望本文对FPGA的初学者,并且有可能做通信的童鞋有所帮助。 N5Rda2m
注:我也是菜鸟,正处于上升阶段,水平较差,考虑不周之处较多,还请大神们多多指教。 u^NZsuak
t3b64J[A{
DDC经典的就是NCO+MULT+CIC+FIR,这些都是调用IP核,只需要设置参数就行了。 ?O!'ZZX
之所以选择这个DDC实验, `PVr;&
一是,简单啊,不需要花时间写很多代码。 2^.qKY@g@
二是,理论不简单啊,考察通信基础有没有学好,数字信号处理基础有没有学好。 3duWk sERC
三是,可以练习Quartus和SignalTap的使用啊。 %@9pn1,
四是,做出来之后看到了正确的标准的正弦波,大家会有成就感啊。 n0*a.
yw3E$~ k
实验目标:
~DJ>)pp
将一个处于中频位置的单载波信号(偏离中频10kHz),混到零中频,得到10kHz低频信号,并完成抽取625,使本来 Sgy_?Y
AD的100MHz的采样速率下降到160kHz,最终结果的正弦每个周期有16个采样点。 aHzS>
qh<h|C]V
实验参数: B}y`E
<
1.信号源,70.010MHz的正弦波,电平-30dBm就行了。(注意这是单载波,并不是窄带信号,我们就是为了得到这一个单载波) '.8E_Jd0E
2.系统时钟,100MHz。 KNZN2N)wR
3.AD,采样时钟100MHz。 O?I~XM'S
4.NCO,输入100MHz,输出70MHz(也可以是30MHz,效果一样)。
4gRt^T-?
5.CIC,一共级联2个CIC25_1和CIC5_2,事实上I/Q两路一共四个CIC。每个抽取倍数设置为25,阶数3阶,每个级数1级。 )1!jv!
6.FIR,输入的valid接前面的CIC25_2的valid,低通,系统时钟100MHz,阶数37默认,采样速率160kHz,截止频率20kHz,汉明窗,系数位宽12,无抽取,全串行。 /^F$cQX(
O^W.5SaR
实验中,各个输出位宽确定(bit): {vL4:K
AD——12, }VUrn2@-4
NCO——12, `*`@r o
MULT——24, q=H
dGv
CIC25_1——24, =eNh))]
CIC25_2——24; LQs>[3rK
FIR——24. xct{Tv[FO
M],}.l
使用SignalTap观察,采样时钟是FIR的输出valid,采样点数1kHz,运行程序,就可以观察到了。