dsp.FIRFilter
年代tatic or time-varying FIR filter
描述
Thedsp.FIRFilter
年代ystem object™ filters each channel of the input using static or time-varying FIR filter implementations.
To filter each channel of the input:
Create the
dsp.FIRFilter
object and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, seeWhat Are System Objects?
Under specific conditions, this System object also supports SIMD code generation. For details, seeCode Generation.
Creation
描述
returns a finite impulse response (FIR) filter object,fir
= dsp.FIRFilterfir
, which independently filters each channel of the input over time using a specified FIR filter implementation.
returns an FIR filter System object,fir
= dsp.FIRFilter(num
)fir
, with theNumerator
property set tonum
.
returns an FIR filter System object,fir
= dsp.FIRFilter(Name,Value
)fir
, with each property set to the specified value.
Properties
Unless otherwise indicated, properties arenontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and therelease
function unlocks them.
If a property istunable, you can change its value at any time.
For more information on changing property values, see年代ystem Design in MATLAB Using System Objects.
年代tructure
—Filter structure
Direct form
(default) |Direct form symmetric
|Direct form antisymmetric
|Direct form transposed
|Lattice MA
年代pecify the filter structure. You can specify the filter structure as one ofDirect form
|Direct form symmetric
|Direct form antisymmetric
|Direct form transposed
|Lattice MA
.
NumeratorSource
—年代ource of filter coefficients
Property
(default) |Input port
年代pecify the source of the filter coefficients asProperty
orInput port
. When you specifyInput port
, the filter object updates the time-varying filter once every frame.
Dependencies
这applies when you set the年代tructure
toDirect form
|Direct form symmetric
|Direct form antisymmetric
|Direct form transposed
.
ReflectionCoefficientsSource
—年代ource of filter coefficients
Property
(default) |Input port
年代pecify the source of the Lattice filter coefficients asProperty
orInput port
. When you specifyInput port
, the filter object updates the time-varying filter once every frame.
Dependencies
这applies when you set the年代tructure
toLattice MA
.
Numerator
—分子系数
[0.5 0.5]
(default) |row vector
年代pecify the filter coefficients as a real or complex numeric row vector.
可调:Yes
Dependencies
这property applies when you set theNumeratorSource
property toProperty
, and the年代tructureproperty is set toDirect form
,Direct form symmetric
,Direct form antisymmetric
, orDirect form transposed
.
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
Complex Number Support:Yes
ReflectionCoefficients
—Reflection coefficients of lattice filter structure
[0.5 0.5]
(default) |row vector
年代pecify the reflection coefficients of a lattice filter as a real or complex numeric row vector.
可调:Yes
Dependencies
这property applies when you set the年代tructureproperty toLattice MA
, and theReflectionCoefficientsSource
property toProperty
.
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
Complex Number Support:Yes
InitialConditions
—Initial conditions for the FIR filter
0
(default) |scalar|vector|matrix
年代pecify the initial conditions of the filter states. The number of states or delay elements equals the number of reflection coefficients for the lattice structure, or the number of filter coefficients–1 for the other direct form structures.
You can specify the initial conditions as a scalar, vector, or matrix. If you specify a scalar value, the FIR filter object initializes all delay elements in the filter to that value. If you specify a vector whose length equals the number of delay elements in the filter, each vector element specifies a unique initial condition for the corresponding delay element. The object applies the same vector of initial conditions to each channel of the input signal.
If you specify a vector whose length equals the product of the number of input channels and the number of delay elements in the filter, each element specifies a unique initial condition for the corresponding delay element in the corresponding channel.
If you specify a matrix with the same number of rows as the number of delay elements in the filter, and one column for each channel of the input signal, each element specifies a unique initial condition for the corresponding delay element in the corresponding channel.
可调:Yes
Data Types:single
|double
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
Fixed-Point Properties
FullPrecisionOverride
—Full precision override for fixed-point arithmetic
true
(default) |false
年代pecify whether to use full precision rules. If you setFullPrecisionOverride
totrue
, which is the default, the object computes all internal arithmetic and output data types using full precision rules. These rules provide the most accurate fixed-point numerics. It also turns off the display of other fixed-point properties because they do not apply individually. These rules guarantee that no quantization occurs within the object. Bits are added, as needed, to ensure that no roundoff or overflow occurs. If you setFullPrecisionOverride
tofalse
, fixed-point data types are controlled through individual fixed-point property settings. For more information, seeFull Precision for Fixed-Point System Objects.
RoundingMethod
—Rounding method for fixed-point operations
Floor
(default) |Ceiling
|Convergent
|Nearest
|Round
|年代implest
|Zero
年代pecify the rounding method.
Dependencies
这property applies only if the object is not in full precision mode.
OverflowAction
—Overflow action for fixed-point operations
Wrap
(default) |年代aturate
年代pecify the overflow action asWrap
or年代aturate
.
Dependencies
这property applies only if the object is not in full precision mode.
CoefficientsDataType
—Coefficients word and fraction lengths
年代ame word length as input
(default) |Custom
年代pecify the coefficients fixed-point data type as年代ame word length as input
orCustom
.
Dependencies
这property applies when you set theNumeratorSource
property toProperty
.
CustomCoefficientsDataType
—Custom coefficients word and fraction lengths
numerictype(true,16,15)
(default) |numerictype
年代pecify the coefficients fixed-point type as a signed or unsignednumerictype
(Fixed-Point Designer)object.
Dependencies
这property applies when you set theCoefficientsDataType
property toCustom
.
ReflectionCoefficientsDataType
—Reflection coefficients word and fraction lengths
年代ame word length as input
(default) |Custom
年代pecify the reflection coefficients fixed-point data type as年代ame word length as input
orCustom
.
Dependencies
这property applies when you set theReflectionCoefficientsSource
property toProperty
.
CustomReflectionCoefficientsDataType
—Custom reflection coefficients word and fraction lengths
numerictype(true,16,15)
(default) |numerictype
年代pecify the reflection coefficients fixed-point type as a signed or unsignednumerictype
(Fixed-Point Designer)object.
Dependencies
这property applies when you set theReflectionCoefficientsDataType
property toCustom
.
ProductDataType
—Product word and fraction lengths
Full precision
(default) |年代ame as input
|Custom
年代pecify the product fixed-point data type asFull precision
,年代ame as input
, orCustom
.
CustomProductDataType
—Custom product word and fraction lengths
numerictype(true,32,30)
(default) |numerictype
年代pecify the product fixed-point type as a signed or unsigned scalednumerictype
(Fixed-Point Designer)object.
Dependencies
这property applies when you set theProductDataType
property toCustom
.
AccumulatorDataType
—Accumulator word and fraction lengths
Full precision
(default) |年代ame as input
|年代ame as product
|Custom
年代pecify the accumulator fixed-point data type toFull precision
,年代ame as input
,年代ame as product
, orCustom
.
CustomAccumulatorDataType
—Custom accumulator word and fraction lengths
numerictype(true,32,30)
(default) |numerictype
年代pecify the accumulator fixed-point type as a signed or unsigned scalednumerictype
(Fixed-Point Designer)object.
Dependencies
这property applies when you set theAccumulatorDataType
property toCustom
.
年代tateDataType
—年代tate word and fraction lengths
年代ame as accumulator
(default) |年代ame as input
|Custom
年代pecify the state fixed-point data type as one of年代ame as input
,年代ame as accumulator
, orCustom
.
Dependencies
这property does not apply to any of the direct form or direct form I filter structures.
CustomStateDataType
—Custom state word and fraction lengths
numerictype(true,16,15)
(default) |numerictype
年代pecify the state fixed-point type as a signed or unsigned scalednumerictype
(Fixed-Point Designer)object.
Dependencies
这property applies when you set the年代tateDataType
property toCustom
.
OutputDataType
—输出词和部分的长度
年代ame as accumulator
(default) |年代ame as input
|Custom
年代pecify the output fixed-point data type as one of年代ame as input
,年代ame as accumulator
, orCustom
.
CustomOutputDataType
—Custom output word and fraction lengths
numerictype(true,16,15)(default) |numerictype
年代pecify the output fixed-point type as a signed or unsigned scalednumerictype
(Fixed-Point Designer)object.
Dependencies
这property applies when you set theOutputDataTypeproperty toCustom
.
Usage
年代yntax
描述
Input Arguments
x
—Data input
vector|matrix
Data input, specified as a vector or a matrix. When the input data is of a fixed-point type, it must be signed when the structure is set toDirect form symmetric
orDirect form antisymmetric
. The FIR filter object operates on each channel of the input signal independently over successive calls to the object.
这年代ystem object supports variable-size input.
Data Types:single
|double
|int8
|int16
|int32
|uint8
|uint16
|uint32
|fi
Complex Number Support:Yes
coeff
—Filter coefficients
row vector
Time-varying filter coefficients, specified as a row vector. The data and coefficient inputs must have the same data type.
Data Types:single
|double
|int8
|int16
|int32
|uint8
|uint16
|uint32
|fi
Complex Number Support:Yes
Output Arguments
y
— Filtered output
vector | matrix
Filtered output, returned as a vector or a matrix. The output has the same size and data type as the input.
Data Types:single
|double
|int8
|int16
|int32
|uint8
|uint16
|uint32
|fi
Complex Number Support:Yes
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 namedobj
, use this syntax:
release(obj)
年代pecific todsp.FIRFilter
freqz |
Frequency response of discrete-time filter年代ystem object |
fvtool |
Visualize frequency response of DSP filters |
impz |
Impulse response of discrete-time filter年代ystem object |
info |
Information about filter年代ystem object |
coeffs |
Returns the filter年代ystem objectcoefficients in a structure |
cost |
Estimate cost of implementing filter年代ystem object |
grpdelay |
Group delay response of discrete-time filter年代ystem object |
generatehdl |
Generate HDL code for quantized DSP filter (requiresFilter Design HDL Coder) |
Examples
Lowpass Filter a Sinusoid Signal Using FIRFilter object
Use an FIR filter to apply a low pass filter to a waveform with two sinusoidal components.
t = (0:1000)'/8e3; xin = sin(2*pi*0.3e3*t)+sin(2*pi*3e3*t); sr = dsp.SignalSource; sr.Signal = xin; sink = dsp.SignalSink; fir = dsp.FIRFilter(fir1(10,0.5)); sa = spectrumAnalyzer(...'SampleRate',8e3,...'Method','welch',...'PlotAsTwoSidedSpectrum',false,...'OverlapPercent',80,...'SpectrumUnits','dBW',...'YLimits',[-150 -10]);while~isDone(sr) input = sr(); filteredOutput = fir(input); sink(filteredOutput); sa(filteredOutput)end
filteredResult = sink.Buffer; fvtool(fir,'Fs',8000)
Design an FIR filter as a System object.
N = 10; Fc = 0.4; B = fir1(N,Fc); fir1 = dsp.FIRFilter(B); fvtool(fir1)
这can also be achieved by usingfdesign
as a constructor anddesign
to design the filter.
N = 10; Fc = 0.4; specLowpass = fdesign.lowpass('N,Fc',...N,Fc); fir2 = design(specLowpass,...'systemobject',true)
fir2 = dsp.FIRFilter with properties: Structure: 'Direct form' NumeratorSource: 'Property' Numerator: [-1.2414e-18 -0.0126 -0.0247 0.0635 0.2748 0.3981 ... ] InitialConditions: 0 Show all properties
fvtool(fir2);
Algorithms
这object implements the algorithm, inputs, and outputs described on theDiscrete FIR Filter(Simulink)block reference page. The object properties correspond to the block parameters.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Only the
Numerator
property is tunable for code generation.年代ee在MATLAB系统对象有限公司de Generation(MATLAB Coder).
Thedsp.FIRFilter
年代ystem object supports SIMD code generation using Intel AVX2 technology under these conditions:
Filter structure is set to
'Direct form'
or'Direct form transposed'
.Input signal is real-valued with real filter coefficients.
Input signal is complex-valued with real or complex filter coefficients.
Input signal has a data type of
single
ordouble
.
The SIMD technology significantly improves the performance of the generated code.
HDL Code Generation
Generate Verilog and VHDL code for FPGA and ASIC designs using HDL Coder™.
这object supports HDL code generation with the HDL Coder™ or Filter Design HDL Coder™ products. For HDL Coder workflow and limitations, seeHDL Code Generation for System Objects(HDL Coder). For Filter Design HDL Coder workflow and limitations, seeGenerate HDL Code for Filter System Objects(Filter Design HDL Coder).
Version History
Abrir ejemplo
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
年代elect a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
年代elect the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- 年代weden(English)
- 年代witzerland
- United Kingdom(English)