How can I plot the SNR graph?

14 views (last 30 days)
Hello to everyone. I want to create a Pd - SNR dB graph. I extracted the Probability detection formula. Here I took the power of the noise as a variable to generate Snr_dB. When L=100, the graph looks good, but as I enlarge the L value, my graph gets distorted. I couldn't understand why. When L values are 10,100,1000, I expect a graph similar to the one I will put below, but it breaks down except for the value of 100. I will be glad if you can help me by sharing the code. If there is something in the code that you don't understand, I can explain.
L=100;
thr=0.01;
snr_dB = [-25:2:20]; % SNR in decibels
snr = 10.^(snr_dB./10);
for k=1:length(snr)
n_sigma(k)=(0.0206+0.0074)/snr(k);
Pd_denklem(k) = (thr-L*(0.0206+n_sigma(k)+0.0074))/sqrt((L*(4*0.0074*(0.0206+n_sigma(k))+2*(0.0206+n_sigma(k))^2)));
pd(k)=qfunc(Pd_denklem(k));
end
plot(snr_dB,pd)
  4 Comments
Sulaymon Eshkabilov
Sulaymon Eshkabilov on 2 Aug 2021
I will try to rewrite the code according to your posted formulations.

Sign in to comment.

Accepted Answer

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 2 Aug 2021
I have looked through your code that is written according to your provided formulations. That means that your provided formulations are not accurate. As we know that SNR = (Power of signal)/(Power of noise) and SNR (dB) = 10*log10( (Power of signal)/(Power of noise)). Thus, my advise is to verify your formulations carefully for once more. Particularly, a first formulation SNR = (S_x^2+M_x^2)/S_w^2 = (0.0206+0.0074)/n_sigma has to be checked. Moreover, what is N in your shown reference plot. In addition, the values of lambda and L should be taken carefully.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!