【各种信噪比联系与区别详解】实信号、复信号Es、N0、符号信噪比EsN0、带内信噪比、比特信噪比EbN0、SNR的含义及关系详解
說明:關注公眾號可免費看,保證你不會白關注,不虧
關于EsN0、EbN0與SNR三者關系的描述,在MATLAB幫助文檔中搜索詞條“AWGN Channel”有比較詳細的描述,但有些細節沒有講清楚。
簡單翻譯解釋一下,就是
- SNR表示每個采樣點的信號噪聲比。
- EbN0表示每個比特能量與噪聲功率譜密度的比值。
- EsN0表示每個符號能量與噪聲功率譜密度的比值。
EsN0與EbN0的關系
EsN0與EbN0的關系比較簡單,上面描述了一大堆,核心是
如果不和信道編碼一起算,假設為MMM進制調制,那么其關系式為
Es/N0(dB)=Eb/N0(dB)+10log?10(k){E_s}/{N_0}({\rm{dB}}) = {E_b}/{N_0}({\rm{dB}}) + 10{\log _{10}}(k)Es?/N0?(dB)=Eb?/N0?(dB)+10log10?(k)
k=log2(M)k=log_2(M)k=log2?(M)
重點是EsN0和SNR的關系,如下
EsN0與SNR的關系
也就是說,對于
- 復信號
Es/N0(dB)=10log?10(Tsym/Tsamp)+SNR(dB)=10log?10(Fs/RB)+SNR(dB){E_s}/{N_0}({\rm{dB}}) = 10{\log _{10}}({T_{sym}}/{T_{samp}}) + SNR({\rm{dB}})\\ = 10{\log _{10}}({F_s}/{R_B}) + SNR({\rm{dB}})Es?/N0?(dB)=10log10?(Tsym?/Tsamp?)+SNR(dB)=10log10?(Fs?/RB?)+SNR(dB)
對這種情況下簡單作一個推導(2020.12.13更新):
EsN0=S?TsymN/Bn=Tsym?Fs?SN=FsRB?SN\frac{{{E_s}}}{{{N_0}}} = \frac{{S \cdot {T_{sym}}}}{{N/{B_n}}} = {T_{sym}} \cdot {F_s} \cdot \frac{S}{N} = \frac{{{F_s}}}{{{R_B}}} \cdot \frac{S}{N}N0?Es??=N/Bn?S?Tsym??=Tsym??Fs??NS?=RB?Fs???NS?
?Es/N0(dB)=10log?10(Fs/RB)+SNR(dB)\Rightarrow {E_s}/{N_0}({\text{dB}}) = 10{\log _{10}}({F_s}/{R_B}) + SNR({\text{dB}})?Es?/N0?(dB)=10log10?(Fs?/RB?)+SNR(dB)
這就是符號信噪比EsN0與SNR的關系,根據這個關系,即可得出帶內信噪比與SNR的關系為
帶內信噪比(dB)=10log?10(Fs/Bs)+SNR(dB)帶內信噪比({\text{dB}}) = 10{\log _{10}}({F_s}/{B_s}) + SNR({\text{dB}})帶內信噪比(dB)=10log10?(Fs?/Bs?)+SNR(dB)
其中,BsB_sBs?為信號帶寬,如對FSK信號來說,信號帶寬BsB_sBs?就不是RBR_BRB?了。
- 實信號
Es/N0(dB)=10log?10(0.5?Tsym/Tsamp)+SNR(dB)=10log?10(0.5?Fs/RB)+SNR(dB){E_s}/{N_0}({\rm{dB}}) = 10{\log _{10}}({0.5*T_{sym}}/{T_{samp}}) + SNR({\rm{dB}})\\ = 10{\log _{10}}({0.5*F_s}/{R_B}) + SNR({\rm{dB}})Es?/N0?(dB)=10log10?(0.5?Tsym?/Tsamp?)+SNR(dB)=10log10?(0.5?Fs?/RB?)+SNR(dB)
其中對復信號的情況進行了推導,過程有了,不再贅述,核心是
N0=N/Bn{N_0} = N/{B_n}N0?=N/Bn?
為噪聲雙邊功率譜密度,將其代入即可,各參數代表的含義為
- SSS為輸入信號的功率,單位W
- NNN為噪聲功率,單位W
- BnB_nBn?為噪聲帶寬,單位Hz
- FsF_sFs?為采樣頻率,單位Hz
那么問題是,實信號關系式為什么比復信號多乘了0.5,且在下面有說明“Note that…”,即對于復信號的情況,噪聲帶寬為
Bn=Fs=1/Tsamp{B_n} = {F_s} = 1/{T_{{\rm{samp}}}}Bn?=Fs?=1/Tsamp?
那么對于實信號,噪聲帶寬是多少呢?其實,對于實信號,噪聲帶寬為
Bn=Fs/2{B_n} = {F_s/2} Bn?=Fs?/2
這樣就不難得到實信號時EsN0與SNR的關系了,但為什么實信號時噪聲帶寬為Fs/2F_s/2Fs?/2,或許可以這樣理解,實信號的頻譜是關于Fs/2F_s/2Fs?/2對稱的,也就是說只有一半的頻譜是有用的,自然噪聲的影響只能算Fs/2F_s/2Fs?/2的帶寬范圍;而對于復信號,更準確地說是解析信號,其頻譜是在0?Fs0-F_s0?Fs?范圍內的,噪聲的影響為整個FsF_sFs?范圍,所以此時噪聲帶寬為FsF_sFs?。
仿真驗證
awgn函數加噪源碼說明
out = awgn(sig, reqSNR, 'measured')一般來說awgn輸入為該3個參數,sig表示將要加噪的信號,reqSNR表示信噪比(信號功率與噪聲功率之比),'measure’表示在加噪之前計算信號功率。
函數參數中指定為’measured’時,在加入噪聲之前計算信號功率。
sigPower = sum(abs(sig(:)).^2)/numel(sig); % linearreqSNR單位為dB形式,轉換為線性形式
reqSNR = 10^(reqSNR/10);則噪聲功率為
noisePower = sigPower/reqSNR;然后再生成高斯白噪聲,分為實信號和復信號兩種情況,復信號時噪聲為
noise = sqrt(noisePower/2)* (randn(size(sig)) + 1i*randn(size(sig)));實信號時噪聲為
noise = sqrt(noisePower)* randn(size(sig));其中,randn函數作用為生成功率為1的高斯白噪聲序列。
EsN0與SNR關系驗證(以BPSK調制為例)
N = 300; % 符號個數 sym = randi([0 1],1,N); Fs = 9600; RB = 200; alpha = 0.3; % 滾降系數 fc = 3000; % 載波 fd = Fs/RB; % 過采倍數 EsN0 = 15; % 符號信噪比 dB為單位 LinEsN0 = 10^(EsN0/10); % 線性單位的EsN0 SNR = EsN0 - 10*log10(Fs/RB); % SNR 以dB為單位 %% 基帶信號 M = 2; Len = N*Fs/RB; t = 0:1/Fs:(Len-1)/Fs; pha_bpsk = pskmod(sym,M); % 生成相位 figure;plot(pha_bpsk,'.b','MarkerSize',15); title('BPSK星座圖');h = rcosine(RB,Fs,'fir/sqrt',alpha); % 根升余弦成形 bas_bpsk = rcosflt(pha_bpsk,RB,Fs,'filter',h).'; delay=(length(h)+1)/2; %%%%時延 bas_bpsk=bas_bpsk(delay:end-delay+1); sig_bpsk_pure = bas_bpsk.*exp(1j*2*pi*fc*t); sig_bpsk_n = awgn(sig_bpsk_pure,SNR,'measured');% EsN0 SNR的關系 sigPower = sum(abs(sig_bpsk_pure(:)).^2)/numel(sig_bpsk_pure); % 信號功率 sigma_n2=sigPower/10^(SNR/10); % 噪聲功率 noise = sqrt(sigma_n2/2)* (randn(size(sig_bpsk_pure)) + 1i*randn(size(sig_bpsk_pure))); % 生成復高斯噪聲 nlen = length(noise); Et = sum(abs(noise).^2); % 噪聲能量(時域) Ef = sum(abs(fft(noise)/sqrt(nlen)).^2);% 噪聲能量(頻域) wd = ones(1,fd); % 積分窗,長度為一個符號采樣點數 Es = mean(conv(abs(sig_bpsk_pure).^2,wd)); % 單個符號的能量(時域符號周期積分求平均的方法) Es1 = sum(abs(sig_bpsk_pure(:)).^2)/N; % 單個符號的能量(總能量除以符號個數) N0 = mean(abs(noise).^2); % 噪聲雙邊功率譜密度 通過時域求得 N0pri = mean(abs(fft(noise)/sqrt(nlen)).^2); % 噪聲雙邊功率譜密度 通過頻域求得 EsN0pri = Es/N0; % 通過計算符號能量和噪聲雙邊功率譜密度得到的EsN0 SNRpri = 10*log10(sigPower/sigma_n2); % 信噪比計算結果
代碼中EsN0設置為15dB,計算結果因生成的隨機符號序列不同可能會稍有不同,但都滿足以上分析,將本人計算結果分享如下
噪聲能量 Et = 450.0291 Ef = 450.0291信號功率 sigPower = 0.0208噪聲功率 sigma_n2 = 0.0315信號單個符號能量 Es = 0.9928 Es1 = 0.9960噪聲雙邊功率譜密度 N0 = 0.0313 N0pri = 0.0313EsN0線性單位值 LinEsN0 = 31.6228EsN0通過Es/N0得到的值 EsN0pri = 31.7677由公式得到的SNR值(dB為單位) SNR = -1.8124由10*log10(信號功率/噪聲功率)計算得到的SNR值(dB為單位) SNRpri = -1.8124總結
以上是生活随笔為你收集整理的【各种信噪比联系与区别详解】实信号、复信号Es、N0、符号信噪比EsN0、带内信噪比、比特信噪比EbN0、SNR的含义及关系详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 描写打篮球的精彩片段主要描写动作121个
- 下一篇: Windows编程初步(三)【说明:有敏