MATLAB: HOW CAN I CALCULATE THE SIGNAL TO NOISE RATIO(SNR) OF A SIGNAL

signal to noise ratio

I have a signal which is comprised of 4 chirp signals and an additive noise with the same sampling frequency and size is generated now i need to calculate the SNR of the signal and noise . Also if I am correct to vary the signal to noise ratio is it ok if I vary the amplitudes of chirp signals and also the noise by multiplying it with a factor : ex: noise = randn(size(t)); where t = 0:1e-4:1; and to increase the noise
{new noise = 2*noise ;} is this correct?? and to increase the amplitudes of the signal is this the way to change the signal to noise ratio
y3 = 5* chirp(t,600,t1,800,'linear');
y4 = 3.5*chirp(t,900,t1,980,'linear');

Best Answer

SNR = Psignal / Pnoise = (Asignal / Anoise)^2
Where P is power, and A is amplitude.
I would calculate the RMS amplitudes and use those in the above formula.
[edit]
RMS means Root-Mean-Square. That is, you square your signal, calculate the mean of that, and take the square root. Just define a wee anonymous function for clarity:
RMS = @(x) sqrt(mean(x.^2));
Now you can compute your ratio like so:
x_snr = (RMS(x) / RMS(n)) ^ 2;
Related Question