Improved kde & mvg
This commit is contained in:
@@ -4,38 +4,27 @@
|
||||
% Gauss Blur Filter
|
||||
% Repetitive Box filter to approx Gauss
|
||||
% Simple multipass, n/m approach, extended box filter
|
||||
|
||||
\todo{normalisierungsfaktor, sigma vs. h beschreiben}
|
||||
The Gaussian filter is a widely used smoothing filter.
|
||||
It is defined as the convolution of an input signal and the Gaussian function
|
||||
Digital filters are implemented by convolving the input signal with a filter kernel, i.e. the digital filter's impulse response.
|
||||
Consequently, the filter kernel of a Gaussian filter is a Gaussian with finite support \cite[120]{dspGuide1997}.
|
||||
Assuming a finite-support Gaussian filter kernel of size $M$ and a input signal $x$, discrete convolution produces the smoothed output signal
|
||||
\begin{equation}
|
||||
\label{eq:gausfx}
|
||||
g(x) = \frac{1}{\sigma \sqrt{2\pi}} \expp{-\frac{x^2}{2\sigma^2}} \text{,}
|
||||
\label{eq:gausFilt}
|
||||
y[n] = \frac{1}{\sigma\sqrt{2\pi}} \sum_{k=0}^{M-1} x[k]\expp{-\frac{(n-k)^2}{2\sigma^2}} \text{,}
|
||||
\end{equation}
|
||||
where $\sigma$ is a smoothing parameter called standard deviation.
|
||||
|
||||
%In the discrete case the Gaussian filter is easily computed with the sliding window algorithm in time domain.
|
||||
If the filter kernel is separable, the convolution is also separable i.e. multi-dimensional convolution can be computed as individual one-dimensional convolutions with a one-dimensional kernel.
|
||||
Because of $e^{x^2+y^2} = e^{x^2}\cdot e^{y^2}$ the Gaussian filter is separable and can be easily applied to multi-dimensional signals. \todo{quelle}
|
||||
Note that \eqref{eq:bkdeGaus} has the same structure as \eqref{eq:gausFilt}, except the varying notational symbol of the smoothing parameter and the different factor in front of the sum.
|
||||
While in both equations the constant factor of the Gaussian is removed of the inner sum, \eqref{eq:bkdeGaus} has an additional normalization factor $N^{-1}$.
|
||||
This factor is necessary to in order to ensure that the estimate is a valid density function, i.e. that it integrates to one.
|
||||
Such a restriction is superfluous in the context of digital filters, so the normalization factor is omitted.
|
||||
|
||||
% TODO ähnlichkeit Gauss und KDE -> schneller Gaus = schnelle KDE
|
||||
|
||||
Computation of a filter using the a naive implementation of the discrete convolution algorithm yields $\landau{NK}$, where $N$ is the length of the input signal and $K$ is the size of the filter kernel.
|
||||
Note that in the case of the Gaussian filter $K$ depends on $\sigma$.
|
||||
In order to capture all significant values of the Gaussian function the kernel size $K$ must be adopted to the standard deviation of the Gaussian.
|
||||
|
||||
|
||||
%A popular approach to efficiently compute a filter result is the FFT-convoultion algorithm which is $\landau{N\log(N)}$.
|
||||
%For large values of $\sigma$ the computation time of the Gaussian filter might be reduced by applying the filter in frequency domain.
|
||||
%In order to do so, both signals are transformed into frequency domain using the FFT.
|
||||
%The convoluted time signal is equal to the point-wise multiplication of the signals in frequency domain.
|
||||
%In case of the Gaussian filter the computation of the Fourier transform of the kernel can be saved, as the Gaussian is a eigenfunction for the Fourier transform \cite{?}.
|
||||
|
||||
%While the FFT-convolution algorithm poses an efficient algorithm for large signals, it adds an noticeable overhead for small signals.
|
||||
|
||||
%While the above mentions algorithms poses efficient computations schemes to compute an exact filter result, approximative algorithms can further speed up the computation.
|
||||
\todo{o(nk) ist scheiße und wir wollen o(n) haben, deshalb box filter boy}
|
||||
A well-known rapid approximation of the Guassian filter is given by the moving average filter.
|
||||
Computation of a digital filter using the a naive implementation of the discrete convolution algorithm yields $\landau{NM}$, where $N$ is the length of the input signal and $M$ is the size of the filter kernel.
|
||||
In order to capture all significant values of the Gaussian function the kernel size $M$ must be adopted to the standard deviation of the Gaussian.
|
||||
A faster $\landau{N}$ algorithm is given by the well-known approximation scheme based on iterated moving average filters.
|
||||
While reducing the algorithmic complexity this approximation also reduces computational time significantly due to the simplistic computation scheme of the moving average filter.
|
||||
Following that, a implementation of the iterated moving average filter is one of the fastest ways to obtain an approximative Gaussian filtered signal.
|
||||
% TODO mit einem geringen Fehler
|
||||
% TODO und somit kann der mvg filter auch die BKDE approxen?
|
||||
|
||||
\subsection{Moving Average Filter}
|
||||
The moving average filter is a simplistic filter which takes an input function $x$ and produces a second function $y$.
|
||||
|
||||
Reference in New Issue
Block a user