QPSK盲信噪比估计|二阶矩M2M4算法原理与Matlab仿真
摘要
在全数字QPSK接收机中,Es/N0E_s/N_0Es/N0信噪比是链路质量评估、环路参数自适应调整、解调性能分析的核心指标。传统信噪比估计依赖导频或训练序列,存在带宽开销。本文详细讲解二阶/四阶矩(M2M4)盲信噪比估计算法,仅利用同步后的QPSK业务数据符号,无需任何导频辅助,通过信号统计矩分离信号能量与噪声能量,实现纯盲估计。本文完整推导数学公式、分析算法特性、给出可直接运行的Matlab仿真代码,并嵌入已有QPSK接收机链路,适合工程实现与毕业设计落地。
一、前言
在前面系列文章中,我们已经完整搭建了一套全数字QPSK通信接收机:
成型滤波 & 匹配滤波 → 平方律FFT定时同步 → Farrow插值定时恢复 → 4次方FFT开环频偏估计 → Costas闭环载波同步 → 导频相位模糊校正。
整套链路已经可以稳定完成解调。但一个完整接收机还需要实时信道质量监测,也就是信噪比估计。
本文讲解盲信噪比估计算法:
不依赖导频、不依赖已知信息、仅通过接收数据的统计特性估计Es/N0。
针对QPSK恒模调制,最经典、最简单、最适合嵌入式/FPGA实现的就是:M2M4二阶四阶矩盲估计算法。
二、信号模型
经过定时同步、载波同步、相位校正后,接收符号已经完全对齐,仅残留高斯白噪声(其实定时后就可以估计了,不用非等到相位校准后):
r(k)=s(k)+n(k)r(k) = s(k) + n(k)r(k)=s(k)+n(k)
其中:
- s(k)s(k)s(k):标准QPSK复符号,恒模能量 ∣s(k)∣2=Es|s(k)|^2=E_s∣s(k)∣2=Es
- n(k)n(k)n(k):复高斯白噪声,零均值、方差 σn2\\sigma_n^2σn2
- 噪声功率谱密度:N0=σn2N_0=\\sigma_n^2N0=σn2
我们需要估计的物理量:
EsN0=符号能量噪声单边功率谱密度\\frac{E_s}{N_0} = \\frac{\\text{符号能量}}{\\text{噪声单边功率谱密度}}N0Es=噪声单边功率谱密度符号能量
三、M2M4盲估计核心原理
盲估计的核心思想:QPSK信号和高斯噪声的高阶统计特性完全不同,可以通过二阶矩、四阶矩分离信号与噪声。
1. 定义二阶矩 M2
二阶矩为接收信号模平方的统计均值:
M2=E[∣r(k)∣2]=E[∣s(k)+n(k)∣2]M_2 = \\mathbb E\\left[ |r(k)|^2 \\right]=\\mathbb E\\left[ |s(k)+n(k)|^2 \\right]M2=E[∣r(k)∣2]=E[∣s(k)+n(k)∣2]
展开得:
∣s+n∣2=(s+n)(s+n)∗=(s+n)(s∗+n∗)=∣s∣2+∣n∣2+sn∗+ns∗
\\begin{aligned}
|s+n|^2 &= (s+n)(s+n)^{*} \\\\
&=(s+n)(s^{*}+n^{*}) \\\\
&=|s|^2 + |n|^2 + s n^{*} + n s^{*}
\\end{aligned}∣s+n∣2=(s+n)(s+n)∗=(s+n)(s∗+n∗)=∣s∣2+∣n∣2+sn∗+ns∗
取期望:
M2=E[∣s∣2]+E[∣n∣2]+E[sn∗]+E[ns∗] M_2=\\mathbb E\\left[|s|^2\\right]+\\mathbb E\\left[|n|^2\\right]+\\mathbb E\\left[s n^{*}\\right]+\\mathbb E\\left[n s^{*}\\right]M2=E[∣s∣2]+E[∣n∣2]+E[sn∗]+E[ns∗]
由于信号与噪声相互独立,且信号、噪声均为零均值:
E[sn∗]=E[s]E[n∗]=0,E[ns∗]=E[n]E[s∗]=0\\mathbb E\\left[s n^{*}\\right]=\\mathbb E[s]\\mathbb E[n^{*}]=0,\\quad \\mathbb E\\left[n s^{*}\\right]=\\mathbb E[n]\\mathbb E[s^{*}]=0E[sn∗]=E[s]E[n∗]=0,E[ns∗]=E[n]E[s∗]=0
交叉期望项全部归零,因此:
M2=Es+σn2M_2 = E_s + \\sigma_n^2M2=Es+σn2
物理意义:接收总功率 = 信号功率 + 噪声功率
2. 定义四阶矩 M4
四阶矩为接收信号模四次方的统计均值:
M4=E[∣r(k)∣4]M_4 = \\mathbb E\\left[ |r(k)|^4 \\right]M4=E[∣r(k)∣4]
其中 ∣s+n∣4=(∣s+n∣2)2|s+n|^4=\\big(|s+n|^2\\big)^2∣s+n∣4=(∣s+n∣2)2
开始展开:
记:
A=∣s∣2=Es,B=∣n∣2,C=sn∗+s∗nA=|s|^2=E_s,\\quad B=|n|^2,\\quad C = s n^{*}+s^{*} nA=∣s∣2=Es,B=∣n∣2,C=sn∗+s∗n,
则 ∣s+n∣2=A+B+C|s+n|^2=A+B+C∣s+n∣2=A+B+C
∣s+n∣4=(A+B+C)2=A2+B2+C2+2AB+2AC+2BC
\\begin{aligned}
|s+n|^4 &= (A+B+C)^2 \\\\
&=A^2+B^2+C^2 +2AB +2AC +2BC
\\end{aligned}∣s+n∣4=(A+B+C)2=A2+B2+C2+2AB+2AC+2BC
M4=E[A2]+E[B2]+E[C2]+2E[AB]+2E[AC]+2E[BC]
M_4=\\mathbb E[A^2]+\\mathbb E[B^2]+\\mathbb E[C^2]
+2\\mathbb E[AB]+2\\mathbb E[AC]+2\\mathbb E[BC]M4=E[A2]+E[B2]+E[C2]+2E[AB]+2E[AC]+2E[BC]
逐项计算:
- E[A2]=E[Es2]=Es2\\mathbb E[A^2]=\\mathbb E[E_s^2]=E_s^2E[A2]=E[Es2]=Es2
- E[B2]=E[∣n∣4]=2σn4\\mathbb E[B^2]=\\mathbb E\\left[|n|^4\\right]=2\\sigma_n^4E[B2]=E[∣n∣4]=2σn4(复高斯噪声四阶矩性质)
- 2E[AB]=2E[Es∣n∣2]=2Esσn22\\mathbb E[AB]=2\\mathbb E\\left[E_s|n|^2\\right]=2E_s\\sigma_n^22E[AB]=2E[Es∣n∣2]=2Esσn2
- C2=(sn∗+s∗n)2=s2(n∗)2+2∣s∣2∣n∣2+(s∗)2n2C^2=\\big(s n^{*}+s^{*}n\\big)^2 = s^2(n^{*})^2+2|s|^2|n|^2+(s^{*})^2 n^2C2=(sn∗+s∗n)2=s2(n∗)2+2∣s∣2∣n∣2+(s∗)2n2QPSK符号E[s2]=0\\mathbb E[s^2]=0E[s2]=0因此E[C2]=2Esσn2\\mathbb E[C^2]=2E_s\\sigma_n^2E[C2]=2Esσn2
- 2E[AC]=0, 2E[BC]=02\\mathbb E[AC]=0,\\ 2\\mathbb E[BC]=02E[AC]=0, 2E[BC]=0由零均值独立随机变量性质,交叉期望为0。
全部合并得到四阶矩正确表达式:
M4=Es2+4Esσn2+2σn4M_4 = E_s^2 +4E_s\\sigma_n^2 +2\\sigma_n^4M4=Es2+4Esσn2+2σn4
3. 联立方程求解信号、噪声能量
方程组:
{M2=Es+σn2M4=Es2+4Esσn2+2σn4
\\begin{cases}
M_2 = E_s + \\sigma_n^2 \\\\
M_4 = E_s^2 +4E_s\\sigma_n^2 +2\\sigma_n^4
\\end{cases}{M2=Es+σn2M4=Es2+4Esσn2+2σn4
利用 M22=(Es+σn2)2=Es2+2Esσn2+σn4M_2^2=(E_s+\\sigma_n^2)^2 = E_s^2+2E_s\\sigma_n^2+\\sigma_n^4M22=(Es+σn2)2=Es2+2Esσn2+σn4
构造:
2M22−M4=2(Es+σn2)2−(Es2+4Esσn2+2σn4)=2(Es2+2Esσn2+σn4)−Es2−4Esσn2−2σn4=Es2
\\begin{aligned}
2M_2^2-M_4
&=2(E_s+\\sigma_n^2)^2-\\big(E_s^2+4E_s\\sigma_n^2+2\\sigma_n^4\\big) \\\\
&=2(E_s^2+2E_s\\sigma_n^2+\\sigma_n^4)-E_s^2-4E_s\\sigma_n^2-2\\sigma_n^4 \\\\
&=E_s^2
\\end{aligned}2M22−M4=2(Es+σn2)2−(Es2+4Esσn2+2σn4)=2(Es2+2Esσn2+σn4)−Es2−4Esσn2−2σn4=Es2
于是得到信号能量闭式解:
E^s=2M22−M4\\hat E_s = \\sqrt{2M_2^2 – M_4}E^s=2M22−M4
噪声能量:
σ^n2=M2−E^s\\hat \\sigma_n^2 = M_2 – \\hat E_sσ^n2=M2−E^s
四、工程离散实现方式
实际接收机中,使用有限符号长度做样本平均代替数学期望:
M^2=1L∑k=1L∣rk∣2\\hat M_2 = \\frac{1}{L}\\sum_{k=1}^L |r_k|^2M^2=L1k=1∑L∣rk∣2
M^4=1L∑k=1L∣rk∣4\\hat M_4 = \\frac{1}{L}\\sum_{k=1}^L |r_k|^4M^4=L1k=1∑L∣rk∣4
带入上述公式即可实时计算当前帧 Es/N0E_s/N_0Es/N0
五、完整Matlab仿真代码
function [EsN0_dB] = SNR_M2M4(rx_sym)
L = 1000;
% 计算二阶矩、四阶矩
M2 = mean(abs(rx_sym).^2);
M4 = mean(abs(rx_sym).^4);
% 求解信号能量
Es_sq = 2*M2^2 – M4;
if Es_sq > 0
Es_hat = sqrt(Es_sq);
Noise_hat = M2 – Es_hat;
if Noise_hat > 0
EsN0 = Es_hat / Noise_hat;
EsN0_dB = 10*log10(EsN0);
else
EsN0_dB = nan;
end
else
EsN0_dB = nan;
end
end
六、仿真结果

结果可以看出估计出的信噪比与真实加噪信号的信噪比基本一直,误差较小。
网硕互联帮助中心
![2019年下半年网络管理员[案例分析]考试下午真题(答案+ 解析)-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/09/20260909153309-6aa17c359df88-220x150.png)



评论前必须登录!
注册