HOW CAN I CALCULATE THE SIGNAL TO NOISE RATIO(SNR) OF A CHIRP SIGNAL
18 ビュー (過去 30 日間)
古いコメントを表示
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');
0 件のコメント
採用された回答
Geoff
2021 年 7 月 7 日
編集済み: MathWorks Support Team
2021 年 7 月 7 日
From Wikipedia: http://en.wikipedia.org/wiki/Signal-to-noise_ratio
NR = 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.
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:
RMS = @(x) sqrt(mean(x.^2));
10 件のコメント
Rohan Patni
2020 年 10 月 3 日
Because power of a signal is directly proportonal to the square of the said RMS amplitude
その他の回答 (1 件)
Wayne King
2012 年 4 月 16 日
You can increase the SNR by increasing the amplitude of the signal and by decreasing the variance of the noise. You have to remember that if you want to increase the variance of the noise by 2, you should multiply randn() by sqrt(2), not 2. Multiplying by two increases the variance by a factor of 4.
x = randn(100,1); % variance is 1
x = sqrt(2)*randn(100,1) % variance is 2
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!