# Similarity (signal processing)

Similarity between two different signals is important in the field of signal processing. Below are some common methods for calculating similarity.
For instance, let's consider two signals represented as $x[m,n]$ and $y[m,n]$, where $m=0,1,2,...,M-1$ and $n=0,1,2,...,N-1$.

## Maximum error (ME)

Measuring the maximum magnitude of the difference between two signals. Maximum error is useful for assessing the worst-case scenario of prediction accuracy
$ME=\max(\left|y[m,n]-x[m,n]\right|)$

## Mean squared error (MSE)

Measuring the average squared difference between two signals. Unlike the maximum error, mean squared error takes into account the overall magnitude and spread of errors, offering a comprehensive assessment of the difference between the two signals.
$MSE={\frac {1}{MN}}\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{2}$

## Normalized mean square error (NMSE)

NMSE is an extension of MSE. It is calculated by normalizing the MSE with the signal power, enabling fair comparisons across different datasets and scales.
$NMSE={\frac {\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{2}}{\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|x[m,n]\right|^{2}}}$

## Root-mean-square deviation (RMSE)

Root-mean-square deviation is derived from MSE by taking the square root of the MSE. It downscale the MSE, providing a more interpretable and comparable measure for better understanding for outcome.
$RMSE={\sqrt {\frac {\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{2}}{\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|x[m,n]\right|^{2}}}}$

## Normalized root-mean-square error (NRMSE)

An extension of RMSE, which allows for signal comparisons between different datasets and models with varying scales.
$NRMSE={\sqrt {\frac {\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{2}}{\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|x[m,n]\right|^{2}}}}$

## Signal-to-noise ratio (SNR)

In signal processing, signal-to-noise ratio is calculated as the ratio of signal power to noise power, typically expressed in decibels. A high SNR indicates a clear signal, while a low SNR suggests that the signal is corrupted by noise. In this context, the signal MSE can be considered as noise, and the similarity between two signals can be viewed as the equation below:
$SNR=10\log _{10}{\frac {\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|x[m,n]\right|^{2}}{\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{2}}}$

## Peak signal-to-noise ratio (PSNR)

Peak signal-to-noise ratio is a metric used to measure the maximum power of a signal to the noise. It is commonly used in image signals because the pixel intensity in an image does not directly represent the actual signal value. Instead, the pixel intensity corresponds to color values, such as white being represented as 255 and black as 0
* Gray scale image:
$PSNR_{gray}=10\log _{10}{\frac {X_{max}^{2}}{{\frac {1}{MN}}\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{2}}}$
* Color image:
$PSNR_{color}=10\log _{10}{\frac {X_{max}^{2}}{{\frac {1}{3MN}}\sum _{R,G,B}\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{2}}}$

## $L_{\alpha }$-Norm

A mathematical concept used to measure the distance between two vectors. In signal processing, the L-norm is employed to quantify the difference between two signals. The L1-norm corresponds to the Manhattan distance, while the L2-norm corresponds to the Euclidean distance .
$\left\|y-x\right\|_{\alpha }=\left(\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{\alpha }\right)^{\frac {1}{\alpha }}$
${\frac {1}{MN}}\left\|y-x\right\|_{\alpha }={\frac {1}{MN}}\left(\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}\left|y[m,n]-x[m,n]\right|^{\alpha }\right)^{\frac {1}{\alpha }}$

## Structural similarity (SSIM)

Structural similarity is a similarity metric specifically designed for measuring the similarity between two image signals. Unlike other similarity measures, SSIM leverages the strong interdependencies between neighboring pixels, providing a measure that closely aligns with human visual perception and feeling of similarity.
${\hbox{SSIM}}(x,y)={\frac {(2\mu _{x}\mu _{y}+c_{1})(2\sigma _{xy}+c_{2})}{(\mu _{x}^{2}+\mu _{y}^{2}+c_{1})(\sigma _{x}^{2}+\sigma _{y}^{2}+c_{2})}}$
    with:
   * $\mu _{x}$ the pixel sample mean of $x$;
   * $\mu _{y}$ the pixel sample mean of $y$;
   * $\sigma _{x}^{2}$ the variance of $x$;
   * $\sigma _{y}^{2}$ the variance of $y$;
   * $\sigma _{xy}$ the covariance of $x$ and $y$;
   * $c_{1}=(k_{1}L)^{2}$, $c_{2}=(k_{2}L)^{2}$ two variables to stabilize the division with weak denominator;
   * $L$ the dynamic range of the pixel-values (typically this is $2^{\#bits\ per\ pixel}-1$);
   * $k_{1}=0.01$ and $k_{2}=0.03$ by default.