# Can I compute signal-to-noise ratio on a vector-valued or multi-channel signal?

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?

• Considering your approach a "Goodness of fit" or norm or information content metric might be useful metric. – suvodip Aug 19 '16 at 10:49

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.