当前位置:文档之家› 几类信号信噪比的计算_百度上传

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

1,确知信号的信噪比计算这里的“确知信号”仅指信号的确知,噪声可以是随机的。

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

接收到的确知信号通过减去确知信号的方法得到噪声电压或电流,高斯噪声的数学期望为0,方差除以或乘上电阻得到噪声功率。

确知信号的大小的平方的积分除以或乘上电阻得到信号功率。

信噪比等于这两个功率相除,因此可以不用考虑电阻的大小。

clear all;clc;SIMU_OPTION = 3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1, deterministic signal snr calc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if (SIMU_OPTION==1)SAM_LEN = 1e6;PERIOD = 1e3;SNR_DB = 30signal = 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))end2,随机信号的信噪比计算2.1,窄带信号加宽带噪声的信噪比计算可以使用周期图FFT方法,即得到信号加噪声的功率谱,利用信号和噪声的频率特性,通过积分的方法将信号和噪声的功率计算出来,这样就得到信噪比。

窄带信号是相对整个信号频率带而言。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2, sin signal + white gauss noise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if (SIMU_OPTION==2)SAM_LEN = 1e6;PERIOD = 1e3;SNR_DB = 30signal = 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) ))end2.2,窄带信号加窄带噪声的信噪比计算由于这种信号的有用信号和噪声所占频带相同,因此不能使用上面周期图FFT方法。

必须使用其他方法,书中讲述了两种方法,通过包络和相位来计算,这种方法也适用于宽带噪声。

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

计算包络时可以一路信号或两路正交的信号,计算相位时只能是两路正交的信号。

如果模拟电路只提供一路信号,那么需要通过数字混频来得到两路信号,但实际不允许,因为要求ADC的采样率很高导致功耗高,对模拟电路要求也高。

另外,数字使用两路信号求包络--两路22QI 再开方然后低通,有一好处,利用非线性让强信号变强,弱信号变弱,见2009.4.21笔记。

RF电路提供给数字QI,两路信号,可以让数字去除镜像干扰。

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

2.2.1,FM 波加窄带高斯噪声的信噪比计算计算包络的信噪比,包络的信噪比就是信号的信噪比,理论依据是【1】。

注意【2】认为包络分布是瑞利分布,【3】中幅度A 比较大时瑞利分布接近高斯分布,对应上面的高信噪比。

有三种方法计算包络,三种方法的比较和数学原理参见2014.07.25的笔记。

(1),一路I 路全波整流加低通滤波。

(2),包络为两路22Q I +后再开方;(3),用一路2I 后滤掉二倍频再开方;包络的信噪比计算具体步骤如下:A ,利用上述公式得到1A ,2A ,3A ,……n AB ,n A A A A A navg ++++= (321)C ,n A A A A A A A A A SNR avg n avg avg avg avgenvelope 22322212)( ……)()()(-++-+-+-=D ,2/envelope SNR SNR =参考:【1】:通信原理(第6版)-- P102 式5.2-34【2】:通信原理(第6版)-- P50【3】:通信原理(第6版)-- P56 图3-52.2.2,AM 波加窄带高斯噪声通过先计算相位的信噪比,再根据其计算信号的信噪比,理论依据是【1】。

注意【2】认为相位分布是均匀分布,对应【3】中0=A 的情况,因为【2】中的窄带随机过程中,正弦波的幅度为零,因此可看做【3】中正弦波加窄带高斯噪声的一种特例。

A 比较大时相位分布接近数学期望为0,方差为22/A n σ的高斯分布,因此信噪比22/)2/(n A SNR σ=,等于相位方差倒数的1/2。

步骤如下: A ,利用公式)/arctan(I Q 得到1θ,2θ,3θ,……1+n θB ,121θθθ-=∆,232θθθ-=∆,343θθθ-=∆,……n n n θθθ-=∆+1C ,nn ava θθθθθ∆++∆+∆+∆=∆ ……321 D ,n avg n avg avg avg 22322212)( ……)()()(θθθθθθθθσθ∆-∆++∆-∆+∆-∆+∆-∆=E ,22/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 noiseRF_OPTION = 0if (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;elseF_MIX = 1/10;F_RF = F_IF + F_MIX;% RF signalbpgn = 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));% mixeriii = 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 envelopeenvelope = 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);endendphi = phi - mean(phi);snr_db2 = 10*log10( (1/2) / var(phi)) end。

相关主题