Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Discussion

Sample rate converter. \n The output sample rate is computed by SampleRateOut = L/D*SampleRateIn = SampleRateOut. If the ratio of the input sample rate to the desired output sample rate is irrational, the desired output sample rate will not equal the actual output sample rate, where L is the Interpolation factor and D is the Decimation factor. The input block size must be an interger integer multiple of D. The length of the filter must be > greater than L. L, D, and the optimal value for N can be calculated using the inspector.

...

Code Block
typedef struct _ModuleUpFIRDnConverter
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    FLOAT32 gd;                                   // Group Delay or latency, calculated result
    INT32 KAISER;                                 // Filter type constant
    INT32 PARKS_MCCLELLAN;                        // Filter type constant
    INT32 CUSTOM;                                 // Filter type constant
    FLOAT32 fin;                                  // Input Sample Rate
    INT32 L;                                      // Interpolation factor
    INT32 D;                                      // Decimation factor
    INT32 filterType;                             // filter type of FIR
    INT32 ND;                                     // Integer multiplication factor
    INT32 N;                                      // length of FIR filter
    INT32 NQ;                                     // Size of QBUF, >= 2*Q, where Q = N/L (integer divide)
    INT32 IQ;                                     // QBUF index
    INT32 JQ;                                     // QBUF index, moving address index.
    INT32 NC;                                     // Size of array COFS
    INT32 NCOEF;                                  // Size of COEF array
    FLOAT32* QBUF;                                // Internal buffer for storage of state variables of FIR filter
    INT32* ICTR;                                  // Buffer for storing control data
    FLOAT32* COEF;                                // FIR symmetric filter coeffs
    FLOAT32* COFS;                                // scrambled coeffs for FIR filter
} ModuleUpFIRDnConverterClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

gd

float

const

0

0.1319

Unrestricted

msec

KAISER

int

const

1

1

Unrestricted

PARKS_MCCLELLAN

int

const

1

2

Unrestricted

CUSTOM

int

const

1

3

Unrestricted

fin

float

parameter

1

48000

Unrestricted

L

int

const

1

3

Unrestricted

D

int

const

1

4

Unrestricted

filterType

int

const

1

1

Unrestricted

ND

int

derived

1

8

Unrestricted

N

int

const

1

39

Unrestricted

NQ

int

const

1

26

Unrestricted

IQ

int

const

1

13

Unrestricted

JQ

int

derived

1

13

Unrestricted

NC

int

const

1

39

Unrestricted

NCOEF

int

const

1

20

Unrestricted

QBUF

float*

derived

1

[1 x 26]

Unrestricted

ICTR

int*

derived

1

[6 x 1]

Unrestricted

COEF

float*

derived

0

[20 x 1]

Unrestricted

COFS

float*

derived

1

[39 x 1]

Unrestricted

Pins

Input Pins

Name: in

Description: Input signal

...