www.pudn.com > bss_eval.zip   To Read all the content


[file head]:
function varargout=bss_crit(varargin)

> compute evaluation criteria given a decomposition of an estimated source into target/interference/noise/artifacts
> of the form
>
> se = s_target + e_interf (+ e_noise) + e_artif
>
> Usage:
>
> 1) Global mode
>
> [SDR,SIR,(SNR,)SAR]=bss_crit(s_target,e_interf[,e_noise],e_artif)
>
> Input:
> - s_target: row vector of length T containing the target source(s)
> contribution,
> - e_interf: row vector of length T containing the interferences
> contribution,
> - e_noise: row vector of length T containing the noise contribution
> (if any),
> - e_artif: row vector of length T containing the artifacts
> contribution.
>
> Output:
> - SDR: Source to Distortion Ratio,
> - SIR: Source to Interferences Ratio,
> - SNR: Signal to Noise Ratio (if e_noise is provided),
> - SAR: Source to Artifacts Ratio.
>
> 2) Local mode
>
> [SDR,SIR,(SNR,)SAR]=bss_crit(s_target,e_interf[,e_noise],e_artif,WINDOW,NOVERLAP)
>
> Additional input:
> -
... ...

[file tail]:
... ...
switch isempty(e_noise)
case 1
F_s_target=bss_make_frames(s_target,WINDOW,NOVERLAP);
F_e_interf=bss_make_frames(e_interf,WINDOW,NOVERLAP);
F_e_artif=bss_make_frames(e_artif,WINDOW,NOVERLAP);
[SDR,SIR,SAR]=bss_energy_ratios(F_s_target,F_e_interf,F_e_artif);
varargout{1}=10*log10(SDR); varargout{2}=10*log10(SIR); varargout{3}=10*log10(SAR);
case 0
F_s_target=bss_make_frames(s_target,WINDOW,NOVERLAP);
F_e_interf=bss_make_frames(e_interf,WINDOW,NOVERLAP);
F_e_noise=bss_make_frames(e_noise,WINDOW,NOVERLAP);
F_e_artif=bss_make_frames(e_artif,WINDOW,NOVERLAP);
[SDR,SIR,SNR,SAR]=bss_energy_ratios(F_s_target,F_e_interf,F_e_noise,F_e_artif);
varargout{1}=10*log10(SDR); varargout{2}=10*log10(SIR);
varargout{3}=10*log10(SNR); varargout{4}=10*log10(SAR);
end
end >mode