class TSignalVariableRateConverter : public TSignalRateConverter;
Variable frequency rate converter.
Use the component to vary the sampling frequency as a function of time. The function is passed as a vector of sampling points specified at the sampling frequency of the input signal with RateVector property.
The component uses a fixed filter bank and delivers aliasing free output, with linear phase and user definable attenuation of the lowpass filters and witdh of the FIR transition band in the final signal.
Fixed filter bank allows for exceptional performance as it can take full advantage code vectorization.
The filter bank is specified by defining the MaxFactor and MinFactor properties, which define the maximum and minimum factor by which the sampling frequency can change with the reference to the sampling frequency of the input signal. Within this range, the sampling frequency can then be freely adjusted from one sample to the next without danger of aliasing.
The performance of the rate conversion process depends upon the MaxFactor/MinFactor where the processing load will increase nearly linearly with the increase of these factors.
Constructors
| Name | Description |
|---|---|
| TSignalVariableRateConverter (2) |
Destructors
| Name | Description |
|---|---|
| ~TSignalVariableRateConverter |
Properties
| 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. |
| AudioSignal | bool | Enable when the signal processed is Audio signal. |
| 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. |
| Factor | double | Factor by which to change the sampling frequency of the signal connected to the Input property. |
| FilterDelay | double | Returns the filter delay in number of samples of the final sampling frequency. |
| 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. |
| HalfBand | bool | The bandwidth will be halved during downsampling. |
| HzRes | double | Frequency resolution obtained, if an FFT algorithm would be run on the data. |
| 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. |
| MaxFactor | double | Specifies the maximum Factor up to which the rate converter can vary the sampling frequency, without introducing aliasing. |
| 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. |
| MinFactor | double | Specifies the minimum Factor down to which the rate converter can vary the sampling, without introducing aliasing. |
| 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. |
| RateVector | TVec* | Defines sample positions at which to resample the Input signal. |
| Reference | TReferenceList* | Stores a list of components that have to be notified, when this component is destroyed. |
| Ripple | double | Defines the ripple of the passband and of the stopband of the FIR lowpass filter used for interpolation. |
| SamplingFrequency | double | Defines the sampling frequency of the signal. |
| SamplingTime | double | The length of the signal in seconds. |
| ScaleFactor | double | Additional scaling factor which is applied without extra performance cost. |
| SuspendNotifyUpdate | bool | Set this property to True, to prevent calling OnNotifyUpdate from the Update Method. |
| TransBW | double | Defines the width of the transition band of the FIR filter used for interpolation/decimation. |
| UsesInputs | bool | Set it to True to indicate, that valid signals will be connected to the Input or Inputs properties. |
Methods
| Name | Description |
|---|---|
| AllowStreaming | |
| Append | Appends Sample to the end of the signal. |
| Assign | |
| AssignTemplate | Assign values of "template-like" published properties from Source. |
| Copy | Copies signal Data and sampling frequency information. |
| Crest | Compute the CREST parameter. |
| DetectChannelCount | |
| EditorClass | To be overriden in descendanr classses. |
| get_CValues | |
| get_Values | |
| GetInput | |
| GetInputs | |
| Initialize | |
| InputsDirty | If all Inputs[i] are dirty the function returns true. |
| InternalPull | When called, the method will pass Update requests recursively to all connected objects. |
| Invalidate | Notifies all connected components that this component has fresh data. |
| LoadFromStream | Load the component from Src stream. |
| LoadTemplateFromFile | Load a template from file. |
| LoadTemplateFromStream | Load a template from stream. |
| MarksToStrings | Convert marks to strings. |
| MinMax | Find minimum and maximum amplitude and store the result in the MinAmplt and MaxAmplt properties. |
| ParamUpdate | The method can be assigned to some other component even handler, as a notification that a parameter has changed and that Self should consider a recalculation. |
| Peak | Find the maximum deviation of the signal from its mean value. |
| PipeReset | Recursively processes all connected components backward and calls Reset method. |
| Pull | Request recalculation of the entire chain of all connected components. |
| PullUntilEnd | Calls Pull until pipeEnd is returned. |
| ReferenceRemoved | |
| Reset | Reset all delay lines. |
| SaveTemplateToFile | Save template to file. |
| SaveTemplateToStream | Save template to stream. |
| SaveToStream | Save the component to Dst stream. |
| set_CValues | |
| set_Values | |
| SetComplex | |
| SetFloatPrecision | |
| SetInputs | |
| SetIsDouble | |
| Size | Assign the size of the signal from Src. |
| Update | Request recalculation of the data and place the result in Self. |
| UpdateNotify | Call this method only, if SuspendNotifyUpdate is True. |
| Values | |
| ValuesToStrings | Convert values to strings. |
Operators
| Name | Description |
|---|---|
| operator[] |
Fields
| Name | Type | Description |
|---|---|---|
| Tag | intptr_t |