几类信号信噪比的计算_百度上传

几类信号信噪比的计算_百度上传
几类信号信噪比的计算_百度上传

1,确知信号的信噪比计算

这里的“确知信号”仅指信号的确知,噪声可以是随机的。某些随机信号,例如幅度和相位随机的正弦波,如果能够准确估计出它的相位和幅度等参数也可以认为是“确知信号”。

接收到的确知信号通过减去确知信号的方法得到噪声电压或电流,高斯噪声的数学期望为0,方差除以或乘上电阻得到噪声功率。确知信号的大小的平方的积分除以或乘上电阻得到信号功率。信噪比等于这两个功率相除,因此可以不用考虑电阻的大小。

clear all;

clc;

SIMU_OPTION = 3

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1, deterministic signal snr calc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if (SIMU_OPTION==1)

SAM_LEN = 1e6;

PERIOD = 1e3;

SNR_DB = 30

signal = sin((1:SAM_LEN)*2*pi/PERIOD);

signal_wgn = awgn(signal,SNR_DB,'measured');

wgn = signal_wgn - signal;

snr_db_calc = 10*log10(var(signal)/var(wgn))

end

2,随机信号的信噪比计算

2.1,窄带信号加宽带噪声的信噪比计算

可以使用周期图FFT方法,即得到信号加噪声的功率谱,利用信号和噪声的频率特性,通过积分的方法将信号和噪声的功率计算出来,这样就得到信噪比。窄带信号是相对整个信号频率带而言。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2, sin signal + white gauss noise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if (SIMU_OPTION==2)

SAM_LEN = 1e6;

PERIOD = 1e3;

SNR_DB = 30

signal = sin((1:SAM_LEN)*2*pi/PERIOD);

signal_wgn = awgn(signal,SNR_DB,'measured');

signal_wgn_fft = fft(signal_wgn);

signal_wgn_psd = (abs(signal_wgn_fft)).^2 / SAM_LEN;

signal_wgn_psd_db = 10*log10(signal_wgn_psd);

signal_wgn_psd = signal_wgn_psd(1:SAM_LEN/2);

snr_db_calc =

10*log10(max(signal_wgn_psd)/(sum(signal_wgn_psd)-max(signal_wgn_psd) ))

end

2.2,窄带信号加窄带噪声的信噪比计算

由于这种信号的有用信号和噪声所占频带相同,因此不能使用上面周期图FFT方法。必须使用其他方法,书中讲述了两种方法,通过包络和相位来计算,这种方法也适用于宽带噪声。

对于调频波由于用相位来携带有用信息,相位是变化的,因此只能通过包络来计算其信噪比;对于调幅波由于用幅度来携带有用信息,包络是变化的,因此只能通过相位来计算其信噪比;对于幅度一定,频率一定的正弦波,可以同时通过包络和相位来计算。

计算包络时可以一路信号或两路正交的信号,计算相位时只能是两路正交的信号。如果模拟电路只提供一路信号,那么需要通过数字混频来得到两路信号,但实际不允许,因为要求ADC的采样率很高导致功耗高,对模拟电路要求也高。

另外,数字使用两路信号求包络--两路2

2Q

I 再开方然后低通,有一好处,利用非线性让强信号变强,弱信号变弱,见2009.4.21笔记。RF电路提供给数字Q

I,两路信号,可以让数字去除镜像干扰。

提供两路信号给数字,模拟电路由于工艺原因会出现不理想情况出现:两路幅度不同,两路相位相差不是90度,每路会有直流偏移。

2.2.1,FM 波加窄带高斯噪声的信噪比计算

计算包络的信噪比,包络的信噪比就是信号的信噪比,理论依据是【1】。注意【2】认为包络分布是瑞利分布,【3】中幅度A 比较大时瑞利分布接近高斯分布,对应上面的高信噪比。有三种方法计算包络,三种方法的比较和数学原理参见2014.07.25的笔记。

(1),一路I 路全波整流加低通滤波。 (2),包络为两路22Q I +后再开方; (3),用一路2

I 后滤掉二倍频再开方; 包络的信噪比计算具体步骤如下:

A ,利用上述公式得到1A ,2A ,3A ,……n A

B ,

n A A A A A n

avg ++++=

……321 C ,n

A A A A A A A A A SNR

avg n avg avg avg avg envelope

2

2322212

)( ……)()()(-++-+-+-=

D ,2/envelope SNR SNR =

参考: 【1】:通信原理(第6版)-- P102 式5.2-34 【2】:通信原理(第6版)-- P50 【3】:通信原理(第6版)-- P56 图3-5

2.2.2,AM 波加窄带高斯噪声

通过先计算相位的信噪比,再根据其计算信号的信噪比,理论依据是【1】。注意【2】认为相位分布是均匀分布,对应【3】中0=A 的情况,因为【2】中的窄带随机过程中,正弦波的幅度为零,因此可看做【3】中正弦波加窄带高斯噪声的一种特例。A 比较大时相位分布接近数学期望为0,方差为22

/A n σ的高斯

分布,因此信噪比2

2/)2/(n A SNR σ=,等于相位方差倒数的1/2。步骤如下:

A ,利用公式)/arctan(I Q 得到1θ,2θ,3θ,……1+n θ

B ,121θθθ-=?,232θθθ-=?,343θθθ-=?,……n n n θθθ-=?+1

C ,n

n ava θθθθθ?++?+?+?=? …

…321 D ,n

avg n avg avg avg 2

2322212

)( ……)()()(θθθθθθθθσθ?-?++?-?+?-?+?-?=

E ,2

2/1θ

σ=SNR 参考: 【1】:通信原理(第6版)-- P117式5.4-9 【2】:通信原理(第6版)-- P50 【3】:通信原理(第6版)-- P56 图3-5

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%

% 3, sin signal + narrowband gauss noise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%

if (SIMU_OPTION==3)

SAM_LEN = 1e5;

F_IF = 1/10;

SNR_DB = 30

% 3.1 low pass white gauss noise

[b_lp,a_lp] = butter(2,3e-2,'low'); %freqz(b_lp,a_lp,1e4);

nc = wgn(1,SAM_LEN,0);

ns = wgn(1,SAM_LEN,0);

nc_lp =

filter(b_lp,a_lp,filter(b_lp,a_lp,filter(b_lp,a_lp,nc))); %freqz(nc_l p,1,SAM_LEN);

ns_lp = filter(b_lp,a_lp,filter(b_lp,a_lp,filter(b_lp,a_lp,ns)));

nc_lp = (0.5/(10^(SNR_DB/10))/var(nc_lp))^0.5*nc_lp;

ns_lp = (0.5/(10^(SNR_DB/10))/var(ns_lp))^0.5*ns_lp;

% 3.2 sin signal + narrowband gauss noise

RF_OPTION = 0

if (RF_OPTION==0)

iii = cos((1:1:SAM_LEN)*2*pi*F_IF).*(1+nc_lp) -

sin((1:1:SAM_LEN)*2*pi*F_IF).*ns_lp; %freqz(I,1,SAM_LEN);

qqq = sin((1:1:SAM_LEN)*2*pi*F_IF).*(1+nc_lp) +

cos((1:1:SAM_LEN)*2*pi*F_IF).*ns_lp;

else

F_MIX = 1/10;

F_RF = F_IF + F_MIX;

% RF signal

bpgn = cos((1:1:SAM_LEN)*2*pi*F_RF).*nc_lp -

sin((1:1:SAM_LEN)*2*pi*F_RF).*ns_lp; %freqz(bpgn,1,SAM_LEN);

rf = cos((1:1:SAM_LEN)*2*pi*F_RF) + bpgn; %freqz(RF,1,SAM_LEN); snr_db_rf = 10*log10(0.5/var(bpgn));

% mixer

iii = rf.*cos((1:1:SAM_LEN)*2*pi*F_MIX); %freqz(I,1,SAM_LEN);

qqq = rf.*-sin((1:1:SAM_LEN)*2*pi*F_MIX);

% low pass

[b_lp,a_lp] = butter(10,2e-1,'low');

iii = filter(b_lp,a_lp,filter(b_lp,a_lp,iii)); %freqz(I,1,SAM_LEN);

qqq = filter(b_lp,a_lp,filter(b_lp,a_lp,qqq)); %plot(I,'b'); hold on; plot(filter(b_lp,a_lp,0.5*cos((1:1:SAM_LEN)*2*pi*F_IF)),'r');

if_noise = iii -

filter(b_lp,a_lp,filter(b_lp,a_lp,0.5*cos((1:1:SAM_LEN)*2*pi*F_IF)));

%-filter(b_lp,a_lp,filter(b_lp,a_lp,0.5*cos((1:1:SAM_LEN)*2*pi*3/20)) );

snr_db_if = 10*log10((0.5*1/4)/var(if_noise(1e3:SAM_LEN)))

end

% 3.3 snr calc

% snr calc--abs(I), then lowpass to calc the envelope

envelope = abs(iii); %freqz(envelope,1,SAM_LEN);

[b_lp,a_lp] = butter(2,6e-2,'low');

envelope = filter(b_lp,a_lp,envelope);

envelope = filter(b_lp,a_lp,envelope);

envelope = filter(b_lp,a_lp,envelope);%freqz(envelope,1,SAM_LEN); envelope = envelope(1e3+1:SAM_LEN);

snr_db11 = 10*log10( (mean(envelope))^2 / var(envelope) /2 )

% snr calc--I.^2, then lowpass and envelope.^0.5 to calc the envelope envelope = iii.^2; %freqz(envelope,1,SAM_LEN);

[b_lp,a_lp] = butter(2,6e-2,'low');

envelope = filter(b_lp,a_lp,envelope);

envelope = filter(b_lp,a_lp,envelope);

envelope = filter(b_lp,a_lp,envelope);%freqz(envelope,1,SAM_LEN); envelope = envelope(1e3+1:SAM_LEN);

envelope = abs(envelope);

envelope = envelope.^0.5;

snr_db12 = 10*log10( (mean(envelope))^2 / var(envelope) /2 )

% snr calc--(I.^2+Q.^2).^0.5 to calc the envelope `

envelope = (iii.^2+qqq.^2).^0.5; %freqz(envelope,1,SAM_LEN);

envelope = envelope(1e3+1:SAM_LEN);

snr_db13 = 10*log10( (mean(envelope))^2 / var(envelope) /2 )

% snr calc 2 `

phase = atan(qqq./iii);

phi = phase - atan(tan((0.5:1:SAM_LEN)*2*pi*F_IF));

phi = phi(1e3+1:SAM_LEN);

for i = 1:length(phi)

if (phi(i)>2) phi(i) = pi-phi(i);

elseif(phi(i)<-2) phi(i) = pi+phi(i);

end

end

phi = phi - mean(phi);

snr_db2 = 10*log10( (1/2) / var(phi)) end

相关主题
相关文档
最新文档