Problems with snr function
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Dick Rusell
il 20 Set 2014
Commentato: Image Analyst
il 20 Set 2014
I want to find the snr for signal xn and noise ns but I keep getting an error.
clear;
n = [0:1023];
omega = 0.25*pi;
xn = sin(omega*n);
count = 1024;
ns = sqrt(0.2)*randn(1,count);
r = snr(xn,ns);
plot(r);
??? Undefined function or method 'snr' for input arguments of type 'double'.
0 Commenti
Risposta accettata
Image Analyst
il 20 Set 2014
How about:
theRatio = xn ./ ns;
theSNR = mean(theRatio);
2 Commenti
Image Analyst
il 20 Set 2014
xn is your signal. ns is your noise. The SNR is theRatio xn/ns, but this gives the SNR element by element. So you have a bunch of SNR's - one for each element. So to get it down to just one SNR I took the mean of all the individual SNRs. If you want something different, then say what you want.
Più risposte (2)
Guillaume
il 20 Set 2014
Sounds like you don't have the signal processing toolbox.
ver
will tell you which toolboxes you have installed.
2 Commenti
Image Analyst
il 20 Set 2014
Modificato: Image Analyst
il 20 Set 2014
Or it's an antique version. I think snr() has not always been part of the Signal Processing Toolbox, but it's simple enough to calculate manually.
Youssef Khmou
il 20 Set 2014
Modificato: Youssef Khmou
il 20 Set 2014
Generally the formula is SNR=20log10(std(signal)/std(noise)) , in your case you have :
snr=20*log10(std(xn)/std(ns)) % 3.8dB
0 Commenti
Vedere anche
Categorie
Scopri di più su Spectral Estimation in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!