dsp.FrequencyDomainFIRFilter
Filter input signal in frequency domain
Description
The dsp.FrequencyDomainFIRFilter
System object™ implements frequency-domain, fast Fourier transform (FFT)-based filtering to
filter a streaming input signal. In the time domain, the filtering operation involves a
convolution between the input and the impulse response of the finite impulse response (FIR)
filter. In the frequency domain, the filtering operation involves the multiplication of the
Fourier transform of the input and the Fourier transform of the impulse response. The
frequency-domain filtering is efficient when the impulse response is very long. You can
specify the filter coefficients directly in the frequency domain by setting
NumeratorDomain
to 'Frequency'
.
This object uses the overlap-save and overlap-add methods to perform the frequency-domain
filtering. For filters with a long impulse response length, the latency inherent to these two
methods can be significant. To mitigate this latency, the
dsp.FrequencyDomainFIRFilter
object partitions the impulse response into
shorter blocks and implements the overlap-save and overlap-add methods on these shorter
blocks. To partition the impulse response, set the PartitionForReducedLatency property to
true
. For more details on these two methods and on reducing latency
through impulse response partitioning, see Algorithms.
To filter the input signal in the frequency domain:
Create the
dsp.FrequencyDomainFIRFilter
object and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?
Creation
Syntax
Description
creates a
frequency domain FIR filter System object that filters each channel of the input signal independently over time in the
frequency domain using the overlap-save or overlap-add method.fdf
= dsp.FrequencyDomainFIRFilter
creates a frequency domain FIR filter object with the Numerator property set to
fdf
= dsp.FrequencyDomainFIRFilter(num)num
.
Example: dsp.FrequencyDomainFIRFilter(fir1(400,2 * 2000 /
8000));
creates a frequency domain FIR filter System object with each specified property set to the specified value. Enclose each
property name in single quotes. You can use this syntax with any previous input argument
combinations.fdf
= dsp.FrequencyDomainFIRFilter(Name,Value
)
Example: dsp.FrequencyDomainFIRFilter('Method','Overlap-add');
Properties
Usage
Syntax
Description
Input Arguments
Output Arguments
Object Functions
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
Examples
Algorithms
References
[1] Stockham, T. G., Jr. "High Speed Convolution and Correlation." Proceedings of the 1966 Spring Joint Computer Conference, AFIPS, Vol 28, 1966, pp. 229–233.
Extended Capabilities
Version History
Introduced in R2017b