簡體   English   中英

如何在Matlab中找到對應的SNR的BLER

[英]How to find BLER for corresponding SNR in Matlab

我有100 SNR(信噪比),

    SNR=[32.48873121,21.11297791,15.04042054,15.03765931,14.9860986,14.70063992,14.0914781,12.63557416,11.90471529,10.66141951,10.61423996,8.872149307,7.489301489,7.409686903,5.356321373,4.42000844,4.137654873,3.884999624,3.784549782,3.348447225,3.285491969,3.197460245,2.848888812,2.160133333,1.915260409,1.563950453,1.329209884,1.191461459,0.790756594,0.611525663,0.575573311,0.140882111,-0.036497656,-0.111073002,-0.258210049,-0.848790033,-1.25026649,-1.446774222,-2.080726269,-2.359212956,-2.516335413,-2.595010771,-3.063688167,-3.257431493,-3.283558882,-3.351236489,
-3.466831795,-3.665976748,-3.821897741,-4.51332461,-4.564700129,-4.718940301,-4.79394587,-4.85247625,-5.000716016,-5.129179148,-5.393944029,-5.499661228,-5.550047619,-5.671860615]

對於這個特定的SNR,我通過使用以下代碼發現了BLER(誤塊率):

SNR_L = [-8 -6 -4 -2];
L = [0.1231 0.0366 0.0082 0.0014]; 
logL=log10(L);
p=polyfit(SNR_L,logL,1);
semilogy(SNR_L,L,'k-s');
grid on;

for i=1:100
BLER(i)=p(1,2)+p(1,1)*SNR(i);
end

在這里,我正在使用從該代碼semilogy(SNR_L,L,'k-s')找到的圖semilogy(SNR_L,L,'k-s') 。由於我正在使用polyfit並且度數= 1,所以我找到了2個系數,例如y=a0+a1x 。找到BLER我正在使用此代碼BLER(i)=p(1,2)+p(1,1)*SNR(i) 當我找到100 SNR時,這就是為什么我最終使用for循環為對應的SNR找到100 BLER的原因。

但是我無法獲得正確的BLER以獲得正SNR。 從我的角度來看,如果SNR高,那么我的BLER會很低,但我的BLER會很高。

問題可能是您正在混合plotsemilogy 如果執行以下操作,則曲線匹配:

plot(SNR_L,logL,'k-s');
hold on
plot(SNR,BLER);

請注意,y軸是BLER的log10,而不是BLER。 您可以使用BLER值標記軸

set(gca,'yticklabel', 10.^get(gca,'ytick'))

參見結果圖。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM