diff --git a/main/CFFTQ15.gif b/main/CFFTQ15.gif deleted file mode 100644 index 904a6d90..00000000 Binary files a/main/CFFTQ15.gif and /dev/null differ diff --git a/main/CFFTQ31.gif b/main/CFFTQ31.gif deleted file mode 100644 index 12b74262..00000000 Binary files a/main/CFFTQ31.gif and /dev/null differ diff --git a/main/CIFFTQ15.gif b/main/CIFFTQ15.gif deleted file mode 100644 index 57c16f63..00000000 Binary files a/main/CIFFTQ15.gif and /dev/null differ diff --git a/main/CIFFTQ31.gif b/main/CIFFTQ31.gif deleted file mode 100644 index 59852e26..00000000 Binary files a/main/CIFFTQ31.gif and /dev/null differ diff --git a/main/ChangeLog_pg.html b/main/ChangeLog_pg.html index 0c5d1929..7bd1173d 100644 --- a/main/ChangeLog_pg.html +++ b/main/ChangeLog_pg.html @@ -127,6 +127,10 @@ $(document).ready(function(){initNavTree('ChangeLog_pg.html',''); initResizable(
Improved documentation.
+QR decomposition using Householder transform.
+| [in] | S | points to an instance of the floating-point Radix-2 CFFT/CIFFT structure |
| [in] | S | points to an instance of the floating-point Radix-2 CFFT/CIFFT structure |
| [in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
| [in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
| [in,out] | S | points to an instance of the Q15 CFFT/CIFFT structure. |
| [in,out] | S | points to an instance of the Q31 CFFT/CIFFT structure |
| [in] | S | points to an instance of the fixed-point CFFT/CIFFT structure |
| [in] | S | points to an instance of the fixed-point CFFT/CIFFT structure |
| [in] | S | points to an instance of the floating-point Radix-4 CFFT/CIFFT structure |
| [in] | S | points to an instance of the floating-point Radix-4 CFFT/CIFFT structure |
| [in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
| [in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
| [in,out] | S | points to an instance of the Q15 CFFT/CIFFT structure |
| [in,out] | S | points to an instance of the Q31 CFFT/CIFFT structure. |
| [in] | S | points to an instance of the Q15 CFFT/CIFFT structure. |
| CFFT Size | Input format | Output format | Number of bits to upscale |
|---|---|---|---|
| 16 | 1.15 | 5.11 | 4 |
| 64 | 1.15 | 7.9 | 6 |
| 256 | 1.15 | 9.7 | 8 |
| 1024 | 1.15 | 11.5 | 10 |
| CIFFT Size | Input format | Output format | Number of bits to upscale |
|---|---|---|---|
| 16 | 1.15 | 5.11 | 0 |
| 64 | 1.15 | 7.9 | 0 |
| 256 | 1.15 | 9.7 | 0 |
| 1024 | 1.15 | 11.5 | 0 |
| [in] | S | points to an instance of the Q31 CFFT/CIFFT structure |
| CFFT Size | Input format | Output format | Number of bits to upscale |
|---|---|---|---|
| 16 | 1.31 | 5.27 | 4 |
| 64 | 1.31 | 7.25 | 6 |
| 256 | 1.31 | 9.23 | 8 |
| 1024 | 1.31 | 11.21 | 10 |
| CIFFT Size | Input format | Output format | Number of bits to upscale |
|---|---|---|---|
| 16 | 1.31 | 5.27 | 0 |
| 64 | 1.31 | 7.25 | 0 |
| 256 | 1.31 | 9.23 | 0 |
| 1024 | 1.31 | 11.21 | 0 |
Convolution is a mathematical operation that operates on two finite length vectors to generate a finite length output vector. Convolution is similar to correlation and is frequently used in filtering and data analysis. The CMSIS DSP library contains functions for convolving Q7, Q15, Q31, and floating-point data types. The library also provides fast versions of the Q15 and Q31 functions.
-a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. Then the convolution - c[n] = a[n] * b[n] -
-a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. Then the convolution +\[ c[n] = a[n] * b[n] \] +
++\[ c[n] = \sum_{k=0}^{srcALen} a[k] b[n-k] \] +
c[n] is of length srcALen + srcBLen - 1 and is defined over the interval n=0, 1, 2, ..., srcALen + srcBLen - 2. pSrcA points to the first input vector of length srcALen and pSrcB points to the second input vector of length srcBLen. The output result is written to pDst and the calling function must allocate srcALen+srcBLen-1 words for the result. a[n] and b[n] are convolved, the signal b[n] slides over a[n]. For each offset n, the overlapping portions of a[n] and b[n] are multiplied and summed together. - a[n] * b[n] = b[n] * a[n]. -
+\[ a[n] * b[n] = b[n] * a[n]. \] +
+Correlation is a mathematical operation that is similar to convolution. As with convolution, correlation uses two signals to produce a third signal. The underlying algorithms in correlation and convolution are identical except that one of the inputs is flipped in convolution. Correlation is commonly used to measure the similarity between two signals. It has applications in pattern recognition, cryptanalysis, and searching. The CMSIS library provides correlation functions for Q7, Q15, Q31 and floating-point data types. Fast versions of the Q15 and Q31 functions are also provided.
-a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. The convolution of the two signals is denoted by - c[n] = a[n] * b[n] -In correlation, one of the signals is flipped in time
- c[n] = a[n] * b[-n] -
-a[n] and b[n] be sequences of length srcALen and srcBLen samples respectively. The convolution of the two signals is denoted by +\[ c[n] = a[n] * b[n] \] +
+In correlation, one of the signals is flipped in time
++\[ c[n] = a[n] * b[-n] \] +
++\[ c[n] = \sum_{k=0}^{srcALen} a[k] b[k-n] \] +
pSrcA points to the first input vector of length srcALen and pSrcB points to the second input vector of length srcBLen. The result c[n] is of length 2 * max(srcALen, srcBLen) - 1 and is defined over the interval n=0, 1, 2, ..., (2 * max(srcALen, srcBLen) - 2). The output result is written to pDst and the calling function must allocate 2 * max(srcALen, srcBLen) - 1 words for the result.pDst should be initialized to all zeros before being used.
-+\[ X_c(k) = \sqrt{\frac{2}{N}}\sum_{n=0}^{N-1} x(n)cos\Big[\Big(n+\frac{1}{2}\Big)\Big(k+\frac{1}{2}\Big)\frac{\pi}{N}\Big] \] +
wherek = 0, 1, 2, ..., N-1
-+\[ x(n) = \sqrt{\frac{2}{N}}\sum_{k=0}^{N-1} X_c(k)cos\Big[\Big(n+\frac{1}{2}\Big)\Big(k+\frac{1}{2}\Big)\frac{\pi}{N}\Big] \] +
wheren = 0, 1, 2, ..., N-1 sqrt(2/N), which depends on the size of transform N. Floating-point normalizing factors are mentioned in the table below for different DCT sizes:
-| DCT Size | Normalizing factor value |
|---|---|
| 2048 | 0.03125 |
| 512 | 0.0625 |
| 128 | 0.125 |
sqrt(2/N), which depends on the size of transform N. Normalizing factors in 1.15 format are mentioned in the table below for different DCT sizes:
-| DCT Size | Normalizing factor value (hexadecimal) |
|---|---|
| 2048 | 0x400 |
| 512 | 0x800 |
| 128 | 0x1000 |
sqrt(2/N), which depends on the size of transform N. Normalizing factors in 1.31 format are mentioned in the table below for different DCT sizes:
-| DCT Size | Normalizing factor value (hexadecimal) |
|---|---|
| 2048 | 0x4000000 |
| 512 | 0x8000000 |
| 128 | 0x10000000 |
-| DCT Size | Input format | Output format | Number of bits to upscale |
|---|---|---|---|
| 2048 | 1.15 | 11.5 | 10 |
| 512 | 1.15 | 9.7 | 8 |
| 128 | 1.15 | 7.9 | 6 |
-| DCT Size | Input format | Output format | Number of bits to upscale |
|---|---|---|---|
| 2048 | 2.30 | 12.20 | 11 |
| 512 | 2.30 | 10.22 | 9 |
| 128 | 2.30 | 8.24 | 7 |
This set of functions implements Finite Impulse Response (FIR) lattice filters for Q15, Q31 and floating-point data types. Lattice filters are used in a variety of adaptive filter applications. The filter structure is feedforward and the net impulse response is finite length. The functions operate on blocks of input and output data and each call to the function processes blockSize samples through the filter. pSrc and pDst point to input and output arrays containing blockSize values.
diff --git a/main/group__FIR__Sparse.html b/main/group__FIR__Sparse.html
index 9564a0b9..4d922ce0 100644
--- a/main/group__FIR__Sparse.html
+++ b/main/group__FIR__Sparse.html
@@ -154,6 +154,7 @@ Functions
This group of functions implements sparse FIR filters. Sparse FIR filters are equivalent to standard FIR filters except that most of the coefficients are equal to zero. Sparse filters are used for simulating reflections in communications and audio applications.
There are separate functions for Q7, Q15, Q31, and floating-point data types. The functions operate on blocks of input and output data and each call to the function processes blockSize samples through the filter. pSrc and pDst points to input and output arrays respectively containing blockSize values.
pTapDelay which specifies the locations of the non-zero coefficients. This is in addition to the coefficient array b. The implementation essentially skips the multiplications by zero and leads to an efficient realization. diff --git a/main/group__MatrixAdd.html b/main/group__MatrixAdd.html index 9a6fa079..70ae1e3f 100644 --- a/main/group__MatrixAdd.html +++ b/main/group__MatrixAdd.html @@ -142,10 +142,10 @@ FunctionsDescription
-Adds two matrices.
-+-
-Addition of two 3 x 3 matricesAdds two matrices.
+\[ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{pmatrix} + \begin{pmatrix} b_{1,1} & b_{1,2} & b_{1,3} \\ b_{2,1} & b_{2,2} & b_{2,3} \\ b_{3,1} & b_{3,2} & b_{3,3} \\ \end{pmatrix} = \begin{pmatrix} a_{1,1}+b_{1,1} & a_{1,2}+b_{1,2} & a_{1,3}+b_{1,3} \\ a_{2,1}+b_{2,1} & a_{2,2}+b_{2,2} & a_{2,3}+b_{2,3} \\ a_{3,1}+b_{3,1} & a_{3,2}+b_{3,2} & a_{3,3}+b_{3,3} \\ \end{pmatrix} \] +
The functions check to make sure that pSrcA, pSrcB, and pDst have the same number of rows and columns.
Tranposes a complex matrix.
-Transposing an M x N matrix flips it around the center diagonal and results in an N x M matrix.
-Transposing an M x N matrix flips it around the center diagonal and results in an N x M matrix.
+\[ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{pmatrix}^T = \begin{pmatrix} a_{1,1} & a_{2,1} & a_{3,1} \\ a_{1,2} & a_{2,2} & a_{3,2} \\ a_{1,3} & a_{2,3} & a_{3,3} \\ \end{pmatrix} \] +
Computes the inverse of a matrix.
The inverse is defined only if the input matrix is square and non-singular (the determinant is non-zero). The function checks that the input and output matrices are square and of the same size.
Matrix inversion is numerically sensitive and the CMSIS DSP library only supports matrix inversion of floating-point matrices.
-ARM_MATH_SINGULAR.
-ARM_MATH_SINGULAR.+\[ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} & | & 1 & 0 & 0\\ a_{2,1} & a_{2,2} & a_{2,3} & | & 0 & 1 & 0\\ a_{3,1} & a_{3,2} & a_{3,3} & | & 0 & 0 & 1\\ \end{pmatrix} \rightarrow \begin{pmatrix} 1 & 0 & 0 & | & x_{1,1} & x_{2,1} & x_{3,1} \\ 0 & 1 & 0 & | & x_{1,2} & x_{2,2} & x_{3,2} \\ 0 & 0 & 1 & | & x_{1,3} & x_{2,3} & x_{3,3} \\ \end{pmatrix} \] +
+Multiplies a matrix by a scalar. This is accomplished by multiplying each element in the matrix by the scalar. For example:
-Multiplies a matrix by a scalar. This is accomplished by multiplying each element in the matrix by the scalar. For example:
++\[ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{pmatrix} K = \begin{pmatrix} K a_{1,1} & K a_{1,2} & K a_{1,3} \\ K a_{2,1} & K a_{2,2} & K a_{2,3} \\ K a_{3,1} & K a_{3,2} & K a_{3,3} \\ \end{pmatrix} \] +
The function checks to make sure that the input and output matrices are of the same size.
In the fixed-point Q15 and Q31 functions, scale is represented by a fractional multiplication scaleFract and an arithmetic shift shift. The shift allows the gain of the scaling operation to exceed 1.0. The overall scale factor applied to the fixed-point data is
scale = scaleFract * 2^shift.
diff --git a/main/group__MatrixSub.html b/main/group__MatrixSub.html
index 4561800f..599a899e 100644
--- a/main/group__MatrixSub.html
+++ b/main/group__MatrixSub.html
@@ -145,11 +145,11 @@ Functions
Description
-Subtract two matrices.
-
-
-Subraction of two 3 x 3 matrices
-The functions check to make sure that pSrcA, pSrcB, and pDst have the same number of rows and columns.
+Subtract two matrices.
+\[ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{pmatrix} - \begin{pmatrix} b_{1,1} & b_{1,2} & b_{1,3} \\ b_{2,1} & b_{2,2} & b_{2,3} \\ b_{3,1} & b_{3,2} & b_{3,3} \\ \end{pmatrix} = \begin{pmatrix} a_{1,1}-b_{1,1} & a_{1,2}-b_{1,2} & a_{1,3}-b_{1,3} \\ a_{2,1}-b_{2,1} & a_{2,2}-b_{2,2} & a_{2,3}-b_{2,3} \\ a_{3,1}-b_{3,1} & a_{3,2}-b_{3,2} & a_{3,3}-b_{3,3} \\ \end{pmatrix} \] +
+ The functions check to make sure that pSrcA, pSrcB, and pDst have the same number of rows and columns.
Tranposes a matrix.
-Transposing an M x N matrix flips it around the center diagonal and results in an N x M matrix.
-Transposing an M x N matrix flips it around the center diagonal and results in an N x M matrix.
+\[ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \\ \end{pmatrix}^T = \begin{pmatrix} a_{1,1} & a_{2,1} & a_{3,1} \\ a_{1,2} & a_{2,2} & a_{3,2} \\ a_{1,3} & a_{2,3} & a_{3,3} \\ \end{pmatrix} \] +
| [in] | S | points to an instance of the floating-point RFFT/RIFFT structure |
| [in,out] | S | points to an instance of the floating-point RFFT/RIFFT structure |