(8.D.1.2) DerivativeFract32
Overview
Fixed point Discrete-time derivative
Discussion
Computes the derivative of a fixed-point (1.31 format) discrete-time signal. The derivative is defined as:
$y[n] = K/T * (x[n] - x[n-1])$ where T is the sample period and K is the optional gain parameter. The module sets the default starting value to x[-1] = 0.
The discrete derivative is similar to the continuous time derivative. For example, if the input is a sine wave at 1 kHz, then the output will be a cosine at 1 kHz scaled by 2*pi*1000.
The hidden internal array .lastValue stores the previous value x[n-1] between blocks. The length of the array is set by the prebuild function to the number of channels. The output format of the module is 18.14.
Type Definition
typedef struct _ModuleDerivativeFract32
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
FLOAT32 gain; // Additional gain.
fract32 gainFract32; // Additional gain.
fract32* lastValue; // Previous value x[n-1].
} ModuleDerivativeFract32Class;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
gain | float | parameter | 0 | 1 | -1:1 | linear |
gainFract32 | fract32 | derived | 1 | 0.3662 | Unrestricted | Â |
lastValue | fract32* | state | 1 | [1 x 1] | Unrestricted | Â |
Pins
Input Pins
Name: in
Description: Input signal
Data type: fract32
Channel range: Unrestricted
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: out
Description: Output signal
Data type: fract32
MATLAB Usage
File Name: derivative_fract32_module.m
M=derivative_fract32_module(NAME)
This module computes the derivative of the input signal. Mathematically,
this is:
y[n] = 1/dt * (x[n] - x[n-1])
where dt is the time step, dt = 1/SR. The module has a multichannel
input and computes the derivative per channel. Arguments:
NAME - name of the module.
Â