Apply a digital filter to the input signal.
Use this component to filter a signal: select from a large range of digital filters (FIR window / Parks-McClellan, IIR Butterworth / Chebyshev / Elliptic, median, moving-average, Savitzky-Golay, integer / fractional delay, differentiator, Hilbert, wavelet) and maintain a list of predefined filters. TSignalFilterDialog is the component editor.
For a linear filter with impulse response h the output is the convolution of the input x with h: y[n] = sum_k h[k] x[n-k]. For an IIR filter realised as second-order sections the recursion is y[n] = 1/a_0(sum_(k=0)^M b_k x[n-k] - sum_(k=1)^N a_k y[n-k]).
Design vs. external taps. When ExternalTaps is False the filter
is designed from Response, the design method and the band specification in Filters; the design only runs when Filters holds at least one template (otherwise the component is an identity pass-through and Taps stays empty). When ExternalTaps is True the user-supplied Taps are used directly (FIR taps, or IIR second-order sections interleaved as B_0,A_0,B_1,A_1,...).
The unit impulse response of a designed FIR equals its taps: h[n]=Taps[n]. A moving-average filter of length L uses h[k]=1/L (DC gain 1). Set FloatPrecision on the operand before filling; the output Data follows the input precision.
| 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. |
| AutoFilterOrder | bool | If True, the Order/FirLength of the IIR/FIR filters will be automatically estimed. |
| 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. |
| Beta | double | Beta is the parameter for the Kaiser window. |
| 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. |
| DownDelay | int | The phase delay (must be less then DownSample) used by the multi-rate FIR filter. |
| DownSample | int | The downsample factor used by the multi-rate FIR filter. |
| Dt | double | Time between two consecutive samples. |
| EditorActive | bool | Returns True, if the component editor is displayed. |
| ExternalTaps | bool | Set this property to True, if you have defined your own filter response and have placed the taps in the Taps property. |
| Filters | TFilterList* | Holds a list of defined filters. |
| FirLength | int | Defines the length of the FIR/Median filter, if the AutoFilterOrder property is false. |
| FirMethod | TFirFilterMethod | Specifies the FIR filter design method to be used. |
| 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. |
| FractionalDelay | double | Defines the combined fractional delay of the input signal (integer + fraction). |
| FractionalDesignSpec | TFractionalImpulse | Defines the FIR filter properties used for fractional delay filtering. |
| GridDensity | int | Grid density used by the remez exchange algorithm for optimal FIR filter design. |
| HzRes | double | Frequency resolution obtained, if an FFT algorithm would be run on the data. |
| IgnoreAtt | bool | Set it to True, if you want to explicitelly define the Beta parameter for the Kaiser window, when designing a FIR filter windowed with a Kaiser window. |
| IIRFrequencyTransform | TIirFrequencyTransform | Specifies the IIR frequency transformation method to use. |
| IirMethod | TIirFilterMethod | Specifies the IIR filter design method to be used. |
| 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 | |
| NormalizedFrequency | double | The value of the normalized frequency used when defining multiband filters. |
| 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". |
| Order | int | Defines the order of the IIR filters, if AutoFilterOrder is false. |
| PipeDirty | bool | |
| PipeState | TPipeState | Returns the state of the pipe after the last update. |
| Prepared | bool | Returns true, if the filter has been succesfully initialized. |
| Reference | TReferenceList* | Stores a list of components that have to be notified, when this component is destroyed. |
| Response | TResponseType | Specifies the type of the filter, to be designed. |
| SamplingFrequency | double | Defines the sampling frequency of the signal. |
| SamplingTime | double | The length of the signal in seconds. |
| ScaleFactor | double | Defines the factor by which to multiply the input signal. |
| SuspendNotifyUpdate | bool | Set this property to True, to prevent calling OnNotifyUpdate from the Update Method. |
| Taps | TVec* | Holds the taps for the filter. |
| UpDelay | int | The phase delay (must be less then UpSample) used by the multi-rate FIR filter. |
| UpSample | int | The upsample factor used by the multi-rate FIR filter. |
| UseNormalizedFrequency | bool | True, if you want to normalize the frequency of the defined bands. |
| UsesInputs | bool | Set it to True to indicate, that valid signals will be connected to the Input or Inputs properties. |
| Wavelet | TWaveletType | Set the wavelet to be used for wavelete decomposition. |
| WaveletDecomp | TWaveletDecomp | Selects the result of wavelet decomposition. |
| WaveletP1 | int | Defines the first wavelet parameter (if required). |
| WaveletP2 | int | Defines the second wavelet parameter (if required.) |
| Window | TSignalWindowType | Specifies the window type to be used when designing windowed FIR filters. |