I have a dataset that contains multiple channels recorded over time (think EEG or EMG), and I'm working on a computational model for this data. When I have a working version of the model, I'd like to compare the model's predictions to some held-out test recordings. I thought it would be nice use some sort of signal-to-noise analysis to do this comparison, but I can't find much help on whether it even makes sense to try to compute SnR for multi-channel data.

Everything I've seen so far about computing SnR assumes that you have a single time-varying channel to analyze. Should I compute the SnR for each channel of my data independently, and then average the values across channels? How is this sort of analysis typically handled in signal processing?

  • $\begingroup$ Considering your approach a "Goodness of fit" or norm or information content metric might be useful metric. $\endgroup$
    – suvodip
    Aug 19, 2016 at 10:49

1 Answer 1


You can take the way SNR is calculated in RGB images as a starting point.

In RGB images, the image SNR is calculated using the familiar formula

$$ \frac{\mu}{\sigma} $$

Where $\mu$ is the "whole image" mean and $\sigma$ is the "whole image" standard deviation. To calculate these "whole image" values, each of the RGB channels is first converted to the common currency of luminosity by one of several formulas, generally weighted sums: $$ L = W_{R}\mu_{R} + W_{G}\mu_{G} + W_{B}\mu_{G} $$

Where $\mu$ are means and $W$ are respective weights for the R, G, and B channels of the image (in the Adobe formula, for example, weights are 0.2974, 0.6273, and 0.0753 respectively), and L is luminosity.

For whole image standard deviation, the variance includes the covariances of the channels, so the full formula is $$ Var(L) = \sum_{i,j} (r_{i,j}^2Var_{R} + g_{i,j}^2Var_{G} + ... $$ $$ b_{i,j}^2Var_{B}+ 2r_{i,j}g_{i,j}Cov_{R, G} + ... $$ $$ 2r_{i,j}b_{i,j}Cov_{R, B} + 2g_{i,j}b_{i,j}Cov_{G, B} ) $$ where $i$ and $j$ are pixel indices, which is a more expensive calculation and not as commonly used in industry. Oscar de Lama reports that the Adobe formula simply disregards the covariances: $$ W_{R}^2Var_{R} + W_{G}^2Var_{G} + W_{B}^2Var_{B} $$ and suggests a compromise formula: $$ W_{R}Var_{R} + W_{G}Var_{G} + W_{B}Var_{B} ... $$ $$ + (2/3)(W_{R}\mu_{R}^2 + W_{G}\mu_{G}^2 + W_{B}\mu_{B}^2) ... $$ $$ - (2/3)⋅(\hat{W}_{RG}⋅\mu{R}⋅\mu{G} + \hat{W}_{RG}⋅\mu{R}⋅\mu{B} + \hat{W}_{RB}⋅\mu{G}⋅\mu{B}) $$ Where $W$ are the earlier weights, and $\hat{W}(X,Y) = \sqrt{XY} / K$ where $K$ normalizes $\hat{W}$ such that $\sum \hat{W} = 1$.

If the vector-valued image weights all components equally, then W reduces to 1, simplifying the formulas.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.