# Signal Processing¶

`calculateHammingWeight`

¶

Warning

doxygenfunction: Cannot find function “calculateHammingWeight” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

`delayAndSumFrame`

¶

Warning

doxygenfunction: Cannot find function “delayAndSumFrame” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

Warning

doxygenfunction: Cannot find function “delayAndSumFrame” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

`fft1d`

¶

`fft1d`

implements the \(N\)-point Fast Fourier Transform (FFT) algorithm for calculating the discrete Fourier transform (DFT) of a 1D input signal. The are many variants of the DFT. In this library, we define the DFT as:\[A_k = \sum_{n=0}^{N-1}a_n\exp\left(-2\pi i \frac{nk}{N}\right)\]where \(k = 0, \dots, N - 1\) and \(a_m\) is the \(n\) th element of the signal \(a\) with length \(N\).

`fft1d`

can also execute the inverse Fast Fourier Transform (IFFT) algorithm for calculating the inverse discrete Fourier Transform (IDFT). This is enabled by setting the parameter`inverse`

to`true`

. The inverse discrete Fourier transform (IDFT) is defined as\[a_n = \frac{1}{N}\sum_{k=0}^{N-1}A_k\exp\left(2\pi i \frac{nk}{N}\right)\]where \(n = 0, \dots, N - 1\).

Below you will find 3 overwrite versions of

`fft1d`

which expect different input. Here is a quick summary of the main differences:

fft1D can operate on ddr input and output tensors

fft1D can operate on ocm input tensor with precomputed wieghts as

`qVar_t`

variable.fft1D can operate on ocm input tensor with weights computed internally.

See further detailed documentation of each version below.

Warning

doxygenfunction: Cannot find function “fft1d” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

Warning

doxygenfunction: Cannot find function “fft1d” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

Warning

doxygenfunction: Cannot find function “fft1d” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

`rfft1d`

¶

`rfft1d`

implements the \(N\)-point Fast Fourier Transform (FFT) algorithm for calculating the discrete Fourier transform (DFT) of multiple real valued 1D input signals. This makes use of the optimization where the FFT for two real sequences can be calculated by using just one FFT step. The math behind this two for one is defined as follows:\[\begin{split}\mathbf{Input}&\; x[n], y[n] \in \Re, n = 0, \dots,N-1 \\ \mathbf{Output}&\; X[k] = DFT_k^N\{x\}, Y[k] DFT_k^N\{y\} \\ &1.\; z[n] = x[n] + jy[n] \\ &2.\; Z[k] = DFT_k^N\{z\} \\ &3.\; X[k] = \frac{Z[k]+Z^*[N-k]}{2} \\ &4.\; Y[k] = -j \frac{Z[k]-Z^*[N-k]}{2} \\\end{split}\]Since \(X\) and \(Y\) are FFts of real-values sequences, \(X[k] = X^*[N-k]\) and therefore the two sequences need to be computed for only \(0,\dots,N/2\) points (inclusive). The optimization happens pair-wise for input channels and any odd numbered channel left does not make use of the optimization.

Warning

doxygenfunction: Cannot find function “rfft1d” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

`fft2d`

¶

`fft2d`

implements a 2d version of`fft1d`

. The 2D DFT is defined as:\[A_{kl} = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1}a_{mn}\exp\left(-2\pi i \left(\frac{mk}{M} + \frac{nl}{N}\right)\right)\]where \(k = 0, \dots, M - 1\), \(l = 0, \dots, N - 1\), and \(a_{mn}\) is the \((m,n)\) element of the signal \(a\) with shape \((M, N)\).

`fft2d`

currently does not have inverse implemented.Warning

doxygenfunction: Cannot find function “fft2d” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

`hamming`

¶

Warning

doxygenfunction: Cannot find function “hamming” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

Warning

doxygenfunction: Cannot find function “hamming” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

Warning

doxygenfunction: Cannot find function “hamming” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/

`mvdrFrame`

¶

Warning

doxygenfunction: Cannot find function “mvdrFrame” in doxygen xml output for project “quadric.io SDK” from directory: _build/xml/