日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【各种信噪比联系与区别详解】实信号、复信号Es、N0、符号信噪比EsN0、带内信噪比、比特信噪比EbN0、SNR的含义及关系详解

發布時間:2023/12/2 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【各种信噪比联系与区别详解】实信号、复信号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); % linear

reqSNR單位為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的含义及关系详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。