Difference between revisions of "Component: Scale (DSP)"
(XML import BR) |
|||
Line 20: | Line 20: | ||
==Examples== | ==Examples== | ||
− | Here is | + | Here is an example which demonstrates variable scaling based on an analogue input. |
+ | |||
{{Fcfile|Scale.fcfx|Scale}} | {{Fcfile|Scale.fcfx|Scale}} | ||
+ | |||
+ | Here are the traces as seen on the data recorder window. | ||
+ | |||
+ | [[File:DSPScale.jpg]] | ||
+ | |||
+ | |||
The RightShift macro is a very efficient means of performing a division but only for values which are a power of 2. | The RightShift macro is a very efficient means of performing a division but only for values which are a power of 2. | ||
Line 34: | Line 41: | ||
LeftShift(4) = Multiply by 16 / RightShift(4) = Divide by 16 | LeftShift(4) = Multiply by 16 / RightShift(4) = Divide by 16 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Downloadable macro reference== | ==Downloadable macro reference== |
Revision as of 13:41, 10 March 2021
Author | Matrix Ltd |
Version | 1.1 (Release) |
Category | DSP |
Contents
Scale component
Allows the values in a single buffer to be scaled uniformly. Functions include: AddOffset, Divide, LeftShift, Multiply, RightShift, Subtract, ScaleReal
Examples
Here is an example which demonstrates variable scaling based on an analogue input.
Here are the traces as seen on the data recorder window.
The RightShift macro is a very efficient means of performing a division but only for values which are a power of 2.
The LeftShift macro is a very efficient means of performing a multiplication but only for values which are a power of 2.
LeftShift(1) = Multiply by 2 / RightShift(1) = Divide by 2
LeftShift(2) = Multiply by 4 / RightShift(2) = Divide by 4
LeftShift(3) = Multiply by 8 / RightShift(3) = Divide by 8
LeftShift(4) = Multiply by 16 / RightShift(4) = Divide by 16
Downloadable macro reference
DivideTick
Allows a integer divide to be assigned to the current index position within the buffer.
Parameters
- UINT Scaler
Return value
- This call does not return a value
LeftShift
Allows a highly efficient multiply to be assigned to every value within the buffer.
Parameters
- BYTE Scaler
Return value
- This call does not return a value
MultiplyTick
Allows a less efficient but more flexible multiply to be assigned to the current index position within the buffer.
Parameters
- UINT Scaler
Return value
- This call does not return a value
ScaleReal
Scales the value based on a floating point number.
Parameters
- FLOAT Scaler
- Value to set the floating point scale
Return value
- This call does not return a value
ScaleRealTick
Scales the value based on a floating point number.
Parameters
- FLOAT Scaler
- Value to set the floating point scale
Return value
- This call does not return a value
SubtractOffset
Allows a integer offset to be subtracted from every value within the buffer.
Parameters
- UINT Offset
Return value
- This call does not return a value
Divide
Allows a integer divide to be assigned to every value within the buffer.
Parameters
- UINT Scaler
Return value
- This call does not return a value
LeftShiftTick
Allows a highly efficient multiply to be assigned to the current index position within the buffer.
Parameters
- BYTE Scaler
Return value
- This call does not return a value
Multiply
Allows a less efficient but more flexible multiply to be assigned to every value within the buffer.
Parameters
- UINT Scaler
Return value
- This call does not return a value
RightShift
Allows a highly efficient divideto be assigned to every value within the buffer.
Parameters
- BYTE Scaler
Return value
- This call does not return a value
RightShiftTick
Allows a highly efficient divide to be assigned to the current index position within the buffer.
Parameters
- BYTE Scaler
Return value
- This call does not return a value
AddOffsetTick
Allows a integer offset to be added to the current index position within the buffer.
Parameters
- UINT Offset
Return value
- This call does not return a value
SubtractOffsetTick
Allows a integer offset to be subtracted from a single index value within the buffer.
Parameters
- UINT Offset
Return value
- This call does not return a value
AddOffset
Allows a integer offset to be added to every value within the buffer.
Parameters
- UINT Offset
Return value
- This call does not return a value
Simulation macro reference
This component does not contain any simulation macros
Property reference
Buffer Manager
This property is of type Fixed list of ints and can be referenced with the variable name buffer_manager.
Reference to DSP system buffer manager component.
Input
This property is of type Fixed list of ints and can be referenced with the variable name input_a.
Buffer assigned to input channel
Output
This property is of type Fixed list of ints and can be referenced with the variable name output_c.
Buffer assigned to output channel