Noise

Noise generation

Gaussian noise:

ng = spx.data.noise.Basic(N, S);
sigma = 1;
mean = 0;
ng.gaussian(sigma, mean);

Creating noise at a specific SNR:

% Sparse signal dimension
N = 100;
% Sparsity level
K = 20;
% Number of signals
S = 4;
% Create sparse signals
signals = spx.data.synthetic.SparseSignalGenerator(N, K, S).gaussian();
% Create noise at specific SNR level.
snrDb = 10;
noises = spx.data.noise.Basic.createNoise(signals, snrDb);
% add signal to noise
signals_with_noise = signals + noises;
% Verify SNR level
20 * log10 (spx.norm.norms_l2_cw(signals) ./ spx.norm.norms_l2_cw(noises))

Noise measurement

SNR in dB:

result = spx.commons.snr.SNR(signals, noises)

SNR in dB from signal and reconstruction:

reconstructions = signals_with_noise;
result = spx.commons.snr.recSNRdB(signals, reconstructions)

Signal energy in DB

result = spx.commons.snr.energyDB(signals)

Reconstruction SNR as energy ratio:

result = spx.commons.snr.recSNR(signal, reconstruction)

Error energy normalized by signal energy:

result = spx.commons.snr.normalizedErrorEnergy(signal, reconstruction)

Reconstruction SNRs over multiple signals in dB:

result = spx.commons.snr.recSNRsdB(signals, reconstructions)

Reconstruction SNRs over multiple signals as energy ratios:

result = spx.commons.snr.recSNRs(signals, reconstructions)

Signal energies:

result = spx.commons.snr.energies(signals)

Signal energies in dB:

result = spx.commons.snr.energiesDB(signals)