[Index for tmp_for_tar/misc]
[Return to Master Index]
noislev
(tmp_for_tar/misc/noislev.m)
Function Synopsis
db = noislev(ref,signal)
Help text
db = noislev(ref,signal)
= 10 * log10( mean((ref-signal).^2)/cov(ref(:)) )
Noise level of signal-ref. NaN's are ignored. If signals are almost
equal, db=200, rather than Inf.
See also : adnois
Last modified: April 2001
Listing of function file tmp_for_tar/misc/noislev.m
## db = noislev(ref,signal)
##
## = 10 * log10( mean((ref-signal).^2)/cov(ref(:)) )
##
## Noise level of signal-ref. NaN's are ignored. If signals are almost
## equal, db=200, rather than Inf.
##
## See also : adnois
## Author: Etienne Grossmann <etienne@isr.ist.utl.pt>
## Last modified: April 2001
function db = noislev(ref,signal)
minl=10^(-200);
keep = find( !isnan(ref) & !isnan(signal)) ;
ref = ref(keep);
signal = signal(keep) ;
m1 = mean(mean((ref - mean(mean(ref))).^2));
if m1<minl,
sprintf("Small ref signal in noislev")
lm1 = -99;
else lm1 = log10(m1); end;
m2 = mean(mean((ref-signal).^2));
if m2<minl,
## sprintf("Almost equal signals in noislev")
## db = 200; ## 10*(lm1-log10(m2)); ## lm1+99;
db = inf;
else
db = 10*(lm1-log10(m2));
end;
## log10(mean(mean((ref - mean(mean(ref))).^2)))
## log10(mean(mean((ref-signal).^2)))
Produced by oct2html on Sat Apr 28 21:14:54 2001
Cross-Directory links are: ON