In many research articles, the effect of measurement noise on estimation performance is often reported. But it is not clear to me what is the proper way of using the signal to noise ratio (SNR). For example, the variance of measurement noise which is assumed to be Additive White Gaussian Noise( AWGN) is varied to obtain different SNRs. Then for each SNR the mean square error (MSE) between the parameter estimates and the known parameters are calculated. When SNR is high, it means that the amount of noise is less.

The following code in Matlab is based on my understanding that SNR is defined after the input to a system is passed and we get the output from the system, then we add noise for a particular SNR. Also, please correct me if I have put any incorrect information. Thank you.

In the code, I first generate some data $x$ consisting of $N=100$ data points. Then I have randomly generated 3 coefficients representing the impulse response of an FIR system. The data $x$ is passed through the FIR system to obtain $y$. I then add AWGN of SNR = 40dB.

Question1: My question is which step of the estimation stage is the SNR defined? Can somebody please confirm if this is the correct approach or not?

Question2: If SNR = 40dB, how does one know the variance of the noise at the receiver end? In practice (in industry application) does the receiver end always know about the level of SNR and the variance of the noise?

x = randn(1,N); %generating random data
h = rand(1,3); %some unknown parameters representing impulse response
y=filter(h,1,x); %FIR filter
z = awgn(y,40,'measured'); % adding AWGN measurement noise at SNR = 40dB
%Run some estimation method to estimate h_hat

1 Answer 1


It depends somewhat on the application. For an active sonar system the receiver has to deal with the near backscatter ( reverberation) of the active pulse ( unless it is continuous wave) so there typically is some blanking and fast/slow automatic gain control using feedback. In a passive sonar receiver, the same philosophy using feedback based AGC is typical. Similar concepts apply to some radar systems. Down stream, there are a number of ideas used that include leaky integration to track slow variations in background, and if your detection architecture is a large number of cells like fft bins, there are schemes where means or medians of neighbor cells adjust the gain of a particular cell.

In these kind of systems, the Neyman Pearson criteria is used to set thresholds, so you really don’t need to know SNR, you need to have your AGC and other schemes give you a known noise variance. While an optimal likelihood ratio would include SNR as a known term, one can go with a locally optimal assumption, like a weak SNR or a generalized likelihood ratio. Neyman Pearson also circumvents having to know signal prior probabilities of occurrence.

Communication receivers also use fast/slow feedback AGC. Systems have a finite dynamic range so you have to put your signal at a reasonable operating point. This isn’t the same as knowing your SNR but an AGC lets you do things like pilot detection. If necessary, SNR becomes an online estimation and tracking problem. A clean signal is often equivalent, in a practical sense, to knowing your noise level.

There is a phenomena known as the “threshold effect” that can be explained as there being a relatively narrow range of SNR increase where performance goes from very poor to very good. Knowing your exact SNR below this threshold range has no utility, performance is bad regardless. Knowing your exact SNR above this range is probably not consequential either.

The answer to your question is yes, a practical receiver does need to know the noise level, but typically in the context of placing the signal at an operating point compatible with its dynamic range. The locus of this function is AGC. There may be additional downstream SNR processing as well. It isn’t necessarily located in a single place. CFAR is one kind of downstream processing for radar/sonar.

  • $\begingroup$ I’m a randn guy myself but what you have is ok. you might want to play with some of the options so you understand the different options. The thing to remember is to be consistent. look at the doc. you should understand how the measured option works when you have zero signal intervals inside the measurement window. In Sonar, there are some different conventions for pulses. you can take the average over a single pulse or over a sequence of pulses. Noise only is just noise why I prefer randn $\endgroup$
    – user28715
    Commented Jan 30, 2018 at 0:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.