如果s(n)是一个N行、2列的复信号,前后两列各表示实部和虚部,则b/sqrt(2)*randn(size(s))产生的也是N×2的高斯分布噪声,实部和虚部的方差均为b/sqrt(2)。实部和虚部分别产生也可以,但不能用b*randn(size(s))。第一,如果这样产生噪声,那么最终信号的信噪比应该用p=10log10[(am^2)/(2*b^2)];第二,不能用size(s),应该用size(c),c为s(n)的实(虚)部列矢量的长度。
Matlab中计算信噪比方式:
%===========================Happy===================================%
function snr=SNR(I,In)
% 计算信号噪声比函数
% by Qulei
% I :original signal
% In:noisy signal(ie. Original signal + noise signal)
% snr=10*log10(sigma2(I2)/sigma2(I2-I1))
[row,col,nchannel]=size(I)
snr=0
if nchannel==1%gray image
Ps=sum(sum((I-mean(mean(I))).^2))%signal power
Pn=sum(sum((I-In).^2))%noise power
snr=10*log10(Ps/Pn)
elseif nchannel==3%color image
for i=1:3
Ps=sum(sum((I(:,:,i)-mean(mean(I(:,:,i)))).^2))%signal power
Pn=sum(sum((I(:,:,i)-In(:,:,i)).^2))%noise power
snr=snr+10*log10(Ps/Pn)
end
snr=snr/3
end
%===================================================================%
转:
符号的平均功率 每比特信号能量/符号周期
SNR信噪比 = ------------------------- = ----------------------------------------- =
噪声的平均功率 噪声单边功率普密度*符号带宽
Eb/T 在限带情况下 T*B=1 Eb
= ---------- ================== ---------
N0*B N0
实际系统中噪声的单边功率普密度N0受温度和常数K决定的,在一定条件下为固定值;信噪比与信号能量的强弱成正比。在仿真中,为了简化模型,通常采用固定输入信号幅度,改变N0来起到SNR的变化。
其中的Eb是在相干接收条件下解调后信号能量,而系统接收的信噪比通常是加在接收输入端,也就是解调前。为了令Eb在解调前后的能量统一,在发送端必须采用能量的归一化。
归一化方法:
_ x(n)
x(n) =-------------------------- n属于(1,N) N为1bit内采样点数
sqrt(Sum(x(n)^2))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)