FNFT
|
Computes the polynomial approximation of the combined scattering matrix. More...
#include "fnft__akns_discretization.h"
#include "fnft__misc.h"
#include "fnft__errwarn.h"
#include "fnft__poly_fmult.h"
Go to the source code of this file.
Functions | |
FNFT_UINT | fnft__akns_fscatter_numel (FNFT_UINT D, fnft__akns_discretization_t discretization) |
Returns the length of transfer_matrix to be allocated based on the number of samples and discretization. | |
FNFT_INT | fnft__akns_fscatter (const FNFT_UINT D, FNFT_COMPLEX const *const q, FNFT_COMPLEX const *const r, FNFT_REAL eps_t, FNFT_COMPLEX *const result, FNFT_UINT *const deg_ptr, FNFT_INT *const W_ptr, fnft__akns_discretization_t const discretization) |
Fast computation of polynomial approximation of the combined scattering matrix. | |
Computes the polynomial approximation of the combined scattering matrix.
FNFT_INT fnft__akns_fscatter | ( | const FNFT_UINT | D, |
FNFT_COMPLEX const *const | q, | ||
FNFT_COMPLEX const *const | r, | ||
FNFT_REAL | eps_t, | ||
FNFT_COMPLEX *const | result, | ||
FNFT_UINT *const | deg_ptr, | ||
FNFT_INT *const | W_ptr, | ||
fnft__akns_discretization_t const | discretization | ||
) |
Fast computation of polynomial approximation of the combined scattering matrix.
This routine computes the polynomial approximation of the combined scattering matrix by multipying together individual scattering matrices.
Individual scattering matrices depend on the chosen discretization.
The main reference is Wahls and Poor (Proc. ICASSP 2013 ).
[in] | D | Number of samples |
[in] | q | Array of length D, contains samples \( q(t_n)=q(x_0, t_n) \), where \( t_n = T[0] + n(T[1]-T[0])/(D-1) \) and \(n=0,1,\dots,D-1\), of the to-be-transformed signal in ascending order (i.e., \( q(t_0), q(t_1), \dots, q(t_{D-1}) \)) |
[in] | r | Array of length D, contains samples \( r(t_n)=r(x_0, t_n) \), where \( t_n = T[0] + n(T[1]-T[0])/(D-1) \) and \(n=0,1,\dots,D-1\), of the to-be-transformed signal in ascending order (i.e., \( r(t_0), r(t_1), \dots, r(t_{D-1}) \)) |
[in] | eps_t | Step-size, eps_t \(= (T[1]-T[0])/(D-1) \). |
[out] | result | array of length akns_fscatter_numel(D,discretization) , will contain the combined scattering matrix. Result needs to be pre-allocated with malloc(akns_fscatter_numel(D,discretization)*sizeof(COMPLEX)) . |
[out] | deg_ptr | Pointer to variable containing degree of the discretization. Determined based on discretization by fnft__akns_discretization_degree. |
[out] | W_ptr | Normalization flag. Polynomial coefficients are normalized if W_ptr is non-zero. |
[in] | discretization | The type of discretization to be used. Should be of type fnft__akns_discretization_t. Check fnft__akns_discretization_t for list of supported types. |
FNFT_UINT fnft__akns_fscatter_numel | ( | FNFT_UINT | D, |
fnft__akns_discretization_t | discretization | ||
) |
Returns the length of transfer_matrix to be allocated based on the number of samples and discretization.
This routine returns the length to be allocated based on the number of samples and discretization of type discretization.
[in] | D | Number of samples. |
[in] | discretization | Type of discretization from fnft__akns_discretization_t. |