|
本帖最后由 justin_n 于 2014-9-9 15:24 编辑
目前做QPSK接收机的行为级仿真,但到了环路路滤波器那块就停滞不前快半个月了,由于现在还处于本科阶段能与之商量探讨基本没有,老师也忙因此一直在摸瞎。所以恳请坛内大神指点一二。
我描述一下我前面所做的工作,恳请大神们看看是否有问题。
我现在符号速率为1Mhz,载波10.7Mhz 采样率为40Mhz。 解调采用正交解调,调制信号经过IQ两路正交信号相乘后送入CIC滤波器进行8倍抽取,将数据速率降到5Mhz,随后将信号送入FIR滤波器,滤出基带信号。接着在进行5倍抽取使得速率降至到1Mhz接着进行鉴相。到目前位置该出来的都出来了。
图片1:1,2两路为IQ两路在载波设置相同后的解调出来的基带信号,3,4两路为CIC滤波出来的IQ信号。
图片2:1,2两路设置频差2K的基带信号,第三路为鉴相输出。
接下来就是环路滤波器参数的设计了,我参考了些资料,通过matlab进行运算参数如下:
clc;
es=0.707;
fs=1*10^6;
Wn=30.7*10^3*2*pi;%自然角频率
Bit_Loop_out=23;
N=32;
kdds=2*pi*2^(-N)*8;
k0=2^(Bit_Loop_out-2);%普通锁相环增益计算公式
k=kdds*k0%环路总增益
WL=2*es*Wn
WnTs=Wn/fs
c1=(4*Wn*Wn/fs/fs+8*es*Wn/fs)/(4+4*es*Wn/fs+Wn*Wn/fs/fs)/k
c2=(4*Wn*Wn/fs/fs)/(4+4*es*Wn/fs+Wn*Wn/fs/fs)/k
其中最关键的自然角频率wn 根据环路带宽为符号速率的0.01倍计算而得。
环路总增益与DDS的总增益鉴相输出的增益相关。
环路滤波器的采样率也为1mhz;
最后计算C1 C2 ;
通过上路公式算的
c1 =
11.0231
c2 =
1.3232
为了节省乘法器采用移位操作,对于才c1 左移3位加上左移2位 为12
而c2则是原数据加上右移2为为1,25
always@(posedge clk_1mhz or negedge rst_n)//二阶环路滤波
begin
if(!rst_n)
begin
loopfilter_shift_c1 <= 25'd0;
loopfilter_shift_c2 <= 22'd0;
end
else
begin
loopfilter_shift_c1 <= {loop_filter_in,3'd0}+{loop_filter_in,2'd0};
loopfilter_shift_c2 <= loop_filter_in + loop_filter_in[22:2] ;
end
always@(posedge clk_1mhz or negedge rst_n)
begin
if(!rst_n)
begin
loop_filter_acc <= 22'd0;
loop_filter_buf <= 25'd0;
end
else
begin
loop_filter_buf <= loopfilter_shift_c1;
end
end
assign loop_filter_out = loop_filter_buf + loop_filter_acc;
图片3:是第一第二路是基带输出,可以看出明显存在频差,第三路为环路滤波器输出。好像基本没作用,参数尝试上下浮动调试但基本没反应,如果进一步扩大调试参数,则数据完全乱掉。
希望有经验的坛友能通过我简短的描述,给出些建议,小弟感谢不已!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|