QPSK开环频偏估计:4次方+FFT频偏检测与校正原理及Matlab仿真
摘要
QPSK通信系统中,晶振偏差、多普勒效应会引入载波频偏。频偏较大时Costas闭环载波同步会超出捕获范围,出现无法锁相、星座持续旋转问题。本文讲解基于4次方运算+FFT的开环频偏估计算法,对定时同步后的基带复信号做4次方运算消除调制信息,通过FFT频谱峰值搜索得到粗频偏估计;利用估计值对接收信号完成预校正,将残余频偏压缩到Costas环捕获范围内,再交由闭环环路做精细相位跟踪。算法可直接接入现有QPSK接收机链路,附带完整Matlab仿真实现。
一、前言
前面系列文章完成QPSK接收机:定时同步、载波同步、集中导频消除相位模糊。
但Costas环属于闭环跟踪,优点是噪声条件下相位跟踪精度高,但存在固有短板:捕获范围有限。当实际载波频偏大于环路最大捕获频偏时,环路无法入锁,星座一直旋转,解调完全失效。
工程接收机常用组合架构:
开环粗频偏估计 → 频偏预校正 → Costas闭环精细载波同步
开环算法负责把大频偏压缩变小,闭环环路负责高精度相位跟踪。针对QPSK调制,主流方案就是4次方+FFT频偏估计。BPSK使用2次方,M‑PSK通用M次方。
二、数学原理
经过定时同步采样之后的复基带接收信号:
r(k)=A⋅s(k)⋅ej(2πΔf⋅kTs+θ)+n(k)r(k)=A\\cdot s(k)\\cdot e^{j(2\\pi\\Delta f \\cdot k T_s+\\theta)}+n(k)r(k)=A⋅s(k)⋅ej(2πΔf⋅kTs+θ)+n(k)
- s(k)s(k)s(k):QPSK发送符号,取值{±1±j}\\{\\pm1\\pm j\\}{±1±j}
- Δf\\Delta fΔf:待估计载波频偏
- TsT_sTs:符号周期
- θ\\thetaθ:初始载波相偏
- n(k)n(k)n(k):复高斯噪声
QPSK符号满足:s4(k)=(±1±j)4=−4s^4(k)=\\big(\\pm1\\pm j\\big)^4=-4s4(k)=(±1±j)4=−4,符号信息经过4次方运算之后变成常数,调制信息被消除。
对接收信号做4次方:
r4(k)=A4⋅s4(k)⋅ej4(2πΔf⋅kTs+θ)+n′(k)=C⋅ej(2π⋅4Δf⋅kTs+4θ)+n′(k) r^4(k)=A^4 \\cdot s^4(k) \\cdot e^{j4(2\\pi\\Delta f \\cdot k T_s+\\theta)}+n'(k) = C \\cdot e^{j\\left(2\\pi \\cdot 4\\Delta f \\cdot k T_s +4\\theta\\right)}+n'(k)r4(k)=A4⋅s4(k)⋅ej4(2πΔf⋅kTs+θ)+n′(k)=C⋅ej(2π⋅4Δf⋅kTs+4θ)+n′(k)
关键现象:
对r4(k)r^4(k)r4(k)做FFT,寻找频谱幅度最大值对应的频率点fpeakf_{peak}fpeak,则:
Δf^=fpeak4\\hat{\\Delta f}= \\frac{f_{peak}}{4}Δf^=4fpeak
即可得到原始载波频偏的粗估计值。
从上式的公式中可以看到,频偏估计的精度受FFT计算的最大值对应频率点fpeakf_{peak}fpeak影响,其受数据长度限制,存在栅栏效应。
三、频偏校正
得到频偏估计Δf^\\hat{\\Delta f}Δf^之后,对原始接收基带信号做频偏补偿,乘以补偿旋转因子:
rcomp(k)=r(k)⋅e−j⋅2πΔf^⋅kTsr_{\\text{comp}}(k)=r(k)\\cdot e^{-j\\cdot 2\\pi \\hat{\\Delta f}\\cdot k T_s}rcomp(k)=r(k)⋅e−j⋅2πΔf^⋅kTs
经过校正之后,信号只剩下残余小频偏与固定相偏,残余频偏一般落入Costas环捕获范围,后续送入Costas环做精细相位跟踪。
四、Matlab核心仿真代码
完整代码放在下面链接了:
https://download.csdn.net/download/wobiaosha2753/93394687
%% 频偏估计加纠正
N_fft = 512; % FFT点数
r4 = rx_ds(1:N_fft).^4; % 取前N_fft点做4次方运算
fft_r4 = fftshift(fft(r4,N_fft));
[~,max_idx] = max(abs(fft_r4)); % 寻找频谱峰值位置
% figure,plot(abs(fft_r4));
% FFT频率轴
f_axis = (–N_fft/2:N_fft/2–1)/N_fft * data_rata;
f4_peak = f_axis(max_idx);
delta_f_hat = f4_peak / 4; % 恢复真实频偏估计值
%频偏预校正
k = 1:length(rx_ds);
rx_post_fw = rx_ds .* exp(–1i*2*pi*delta_f_hat*k/data_rata);
五、仿真结果分析
仿真环境为:符号速率1M的传输信号,信道过程中添加了50k频偏,
无频偏纠正结果:

可以看到,频偏超过锁相环的跟踪范围后,锁相环实现,星座图一直旋转,解调失败。
有频偏纠正结果:

可以看到,当前置的频偏纠正模块把较大频偏纠正后,细小频偏和相偏可通过锁相环跟踪。最终星座图正确。
频偏估计误差:
正模块把较大频偏纠正后,细小频偏和相偏可通过锁相环跟踪。最终星座图正确。
频偏估计误差:

数学原理部分也已说明频偏估计的精度受FFT长度影响,本文仿真中设定使用512点FFT,分辨率为符号速率除以FFT长度即:1e6/512=1.9e31e6/512=1.9e31e6/512=1.9e3,结果表示估计的频偏与真实频偏的误差小于1.9k/2。
网硕互联帮助中心



评论前必须登录!
注册