SNR(Signal-to-Noise Ratio,信噪比)是与信号质量相关的重要指标。它衡量了信号与噪声之间的相对强度,在计算 SNR之前,通常需要进行校准和对齐,以确保接收到的信号与理想信号具有相同的参考点和相位,校准过程可能涉及信道估计、时钟同步和相位校正等步骤。
计算公式为
SNR = 10 * log10(Ps / Pn)
其中:
- SNR 表示信噪比,以分贝(dB)表示。
- Ps 表示信号的平均功率。
- Pn 表示噪声的平均功率。
需要注意的是,信号功率和噪声功率通常是指平均功率,可以通过对信号和噪声进行功率测量来获得。
%计算信号加上AWGN噪声及SNR展示
clear
close all
%PAM
M=4;
symLen=2^14;
dataIn=randi([0 M-1],1,symLen);
txSymbols = qammod(dataIn,M);
power_PAM=mean(abs(txSymbols).^2)
%Add AWGN
snr_dB=9.8;
snr=10^(snr_dB./10);
Psignal=mean(abs(txSymbols).^2);
Pnoise=Psignal./snr;
noise=sqrt(Pnoise).*(randn(1,length(txSymbols))+1j*randn(1,length(txSymbols)))./sqrt(2);
rxSymbols=txSymbols+noise;
scatterplot(rxSymbols)
rSNR = 10*log10( mean(abs(txSymbols).^2)./mean(abs(txSymbols-rxSymbols).^2) )