1
$\begingroup$

I am generating noise in two different cases with the same SNR once using AWGN command which is a built in command and second time using randn function with the correct scaling however I am getting different noise power in each case.

Following is the script to generate noise using different techniques. Can anyone help me why I am not getting the correct result?

Method 1

  A=[1-1i 1+1i 2-1i 2+1i  3+1i  3-3i]
    Norm=sum(abs(A).^2)/length(A);
    flipud(A);
    snrdb=0;
    snrlin=10^((snrdb)/10);
Noise=sqrt(Norm/(2*snrlin))*(randn(size(A,1),size(A,2))+1i*randn(size(A,1),size(A,2))); 

Method 2

B=awgn(A,snrdb,'measured');
Noise2=B-A;

The result is as follow:

>> sum(abs(C).^2)/length(C)

ans =

    3.6551

>> sum(abs(Noise).^2)/length(Noise)

ans =

    6.4898

Power of signal is

>> sum(abs(A).^2)/length(A)

ans =7

This seems that randn does better job in estimating the power of signal and awgn this case but in different cases the results are varying and might get different result. Can anyone tell me how I can change my code that both noise generate using built in command and randn gives me the same result.

$\endgroup$
  • 1
    $\begingroup$ where did C come from? your code isn't complete $\endgroup$ – Stanley Pawlukiewicz Jul 13 '17 at 21:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.