Changes sampling frequency by a rational factor.
The sampling frequency of the Input is changed by a rational factor by using bandlimited interpolation. An example is resampling of an audio signal with 48kHz to 44kHz. The interpolation quality can achieve SNR (signal to noise ratio) of up to 180dB in double precision. This component does not feature antialising filters. More about backgrounds of bandlimited interpolation can be found in [1].
Note: Data.Length may vary from iteration to iteration. If the input has integer number of samples and the rate is changed by a rational factor the output will have a rational number of samples (in general). For some pairs of input buffer length and resampling factors (least common nominator) the output will also have fixed length. If the frequency is changed from 8000Hz to 11025Hz, the input buffer must have a length which is a multiple of 320 and the output will be a multiple of 441. (8000/25 = 320, 11025/25 = 441)
References:
[1] Bandlimited interpolation
| Name | Type | Description |
|---|
| Active | bool | Set active to false to suppress the propagation of the Pull request and the subsequent call to the Update method. |
| AutoFilterLength | bool | If True, the length of the interpolation filter will be computed and the FilterLength property will be set, when the PrepareFilter method is called. |
| BandWidth | double | Return the bandwidth of the signal. |
| BandwidthH | double | Returns the upper bandwidth edge of the signal. |
| BandwidthL | double | Returns the lower bandwidth edge of the signal. |
| BlockAssign | bool | Block streaming of specific properties when storing only a "template". |
| ChannelCount | int | Get or set the number of channels multiplexed in the data property. |
| Complex | bool | Set this property to true, to request computation using complex numbers. |
| Continuous | bool | If True, the component will pass on the udpate request to the connected component. |
| Data | TVec* | Stores the result of the processing. |
| Dt | double | Time between two consecutive samples. |
| EditorActive | bool | Returns True, if the component editor is displayed. |
| FilterDelay | double | Returns the delay of the filter in number of samples of the final sampling frequency. |
| FilterLength | int | Returns length of the filter. |
| FilterStart | double | Defines the starting frequency of the transition band of the FIR lowpass filter used for interpolation. |
| FilterStop | double | Defines the stop frequency of the transition band of the FIR lowpass filter used for interpolation. |
| FloatPrecision | TMtxFloatPrecision | Set this property to request computation in 32bit/64bit precision with real/complex numbers. |
| FloatPrecisionLock | bool | Set this property to true to lock changes to FloatPrecision property. |
| HzRes | double | Frequency resolution obtained, if an FFT algorithm would be run on the data. |
| ImpulseFactor | int | Defines the interpolation accuracy of the fractional FIR impulse. |
| Input | TSignal* | |
| Inputs | TSignalCollection* | |
| IsDouble | bool | Set this property to false, to request computation in 32bit floating point precision, 64bit, if true. |
| ItemNumber | int | Number to label the object when it is an item in the List. |
| Length | int | Get or set the length of the signal in samples. |
| Marks | TMarkList* | Stores the time stamps and amplitude of selected samples. |
| MaxAmplt | double | Stores the maximum amplitude of the signal found by the MinMax method. |
| MaxX | double | Use the MaxX property to store the time stamp (in seconds) of the right most sample. |
| MinAmplt | double | Stores the minimum amplitude of the signal found by the MinMax method. |
| MinX | double | Use the MinX property to store the time stamp of the left-most sample. |
| MultiChannel | bool | Set MultiChannel to True, if Inputs property will be published, and Input property will remain hidden. |
| Name | DewString | |
| OnAfterUpdate | tNotifyEvent | The event is triggered after the call to the Update method. |
| OnBeforeUpdate | tNotifyEvent | The event is triggered just before the call to the Update method. |
| OnDisplayUpdate | tNotifyEvent | The event is triggered after the OnAfterUpdate event. Use this event to update any associated charts or graphs or result tables. |
| OnGetInput | tNotifyEvent | If the Input property is not assigned, the component will call OnGetInput. |
| OnNotifyUpdate | tNotifyEvent | The event is called after a call to InternalUpdate, OnAfterUpdate and OnDisplayUpdate from within the Update method. |
| OnParameterUpdate | tNotifyEvent | The event is triggered when ParamUpdate method is called. The ParamUpdate method is usually called by component editors when a value was changed by the user and the editor was "Live". |
| PipeDirty | bool | |
| PipeState | TPipeState | Returns the state of the pipe after the last update. |
| Reference | TReferenceList* | Stores a list of components that have to be notified, when this component is destroyed. |
| ResampleFactor | double | Specifies the factor by which to change the sampling frequency. |
| Ripple | double | Defines the ripple error of the anti-aliasing filters. |
| SamplingFrequency | double | Defines the sampling frequency of the signal. |
| SamplingTime | double | The length of the signal in seconds. |
| ScaleFactor | double | Scaling factor can optionally be applied free of charge without raising the cost of the processing required. |
| SuspendNotifyUpdate | bool | Set this property to True, to prevent calling OnNotifyUpdate from the Update Method. |
| UsesInputs | bool | Set it to True to indicate, that valid signals will be connected to the Input or Inputs properties. |