addFilters
Description
addFilters(
imports the specified filters to the Filter Analyzer app
fa
,filt
1,...,filt
n)fa
and plots their responses in the active display. If there is no
active display, Filter Analyzer adds a new display and plots the filters on
it.
addFilters(___,
specifies options using name-value arguments in addition to the input arguments from the
previous syntax..Name=Value
)
returns the identification number corresponding to a newly added display. If there is
already a display, dispnum
= addFilters(___)addFilters
returns an empty array.
Examples
Add Filters
Design a lowpass filter and show it in the Filter Analyzer app.
d1 = designfilt("lowpassfir", ... PassbandFrequency=0.45,StopbandFrequency=0.55); fa = filterAnalyzer(d1,FilterNames="LP1");
Add another lowpass filter to the display.
d2 = designfilt("lowpassfir", ... PassbandFrequency=0.25,StopbandFrequency=0.35); addFilters(fa,d2,FilterNames="LP2")
Input Arguments
fa
— Filter Analyzer app handle
filterAnalyzer
object
Filter Analyzer app handle, specified as a filterAnalyzer
object.
filt
— Input filters
coefficient matrices | cell array | digitalFilter
object | filter System object™
Input filter, specified as coefficient matrices, a cell array, a
digitalFilter
object, or a filter
System object.
For more information, see Import Filter on the Filter Analyzer page..
Example: b = [1 3 3 1]/6
and a = [3 0 1
0]/3
together specify a third-order lowpass Butterworth filter with a
normalized 3-dB frequency of 0.5π rad/sample.
Example: sos2ctf([2 4 2 6 0 2; 3 3 0 6 0 0])
specifies a
third-order lowpass Butterworth filter with a normalized 3-dB frequency of
0.5π rad/sample.
Example: d =
designfilt("lowpassiir",FilterOrder=3,HalfPowerFrequency=0.5)
specifies
a third-order lowpass Butterworth filter with a normalized 3-dB frequency of
0.5π rad/sample.
Example: hd =
design(fdesign.lowpass,"butter",SystemObject=true)
specifies a lowpass
Butterworth filter System object.
Filter Coefficients
You can use Filter Analyzer to analyze filters specified as numerator and denominator coefficients. If you specify the coefficients as the L-row matrices
Filter Analyzer assumes you have specified the filter as a sequence of L cascaded transfer functions (CTF), such that the full transfer function of the filter is
where m ≥ 0 is the numerator order of the filter and n ≥ 0 is the denominator order.
If L = 1, then B and A are row vectors that specify the transfer function of an IIR filter.
If you specify both B and A as column vectors, Filter Analyzer assumes they represent the transfer function of an IIR filter.
If B is a scalar, Filter Analyzer assumes you specified the filter as a cascade of all-pole IIR filters with each section having a scaling gain equal to B.
If A is a scalar, Filter Analyzer assumes you specified the filter as a cascade of FIR filters with each section having a scaling gain equal to 1/A.
Note
Coefficients and Gain
If you have a scaling gain separate from the coefficient values, you can enter it
in Filter Analyzer using the Import Filters dialog box. At the command
line, you can specify the coefficients and gain as a cell array of the form {B,A,g}
, where B and A are as
defined in the Filter Coefficients section.
The gain can be a scalar overall gain or a vector of section gains.
If the gain is a scalar, Filter Analyzer applies the value uniformly to all the cascade filter sections.
If the gain is a vector, it must have one more element than the number of filter sections in the cascade. Filter Analyzer applies a scale value to each of the filter sections and applies the last value uniformly to all the filter sections.
If you specify the coefficient matrices and gain vector as
Filter Analyzer uses the transfer function
digitalFilter
Objects
You can use Filter Analyzer to analyze digitalFilter
objects. Use designfilt
to generate or edit digital filters based on
frequency-response specifications.
Filter System Objects
If you have DSP System Toolbox™, you can use Filter Analyzer to analyze these filter System objects.
System object |
---|
dsp.AllpassFilter |
dsp.AllpoleFilter |
dsp.CICCompensationDecimator |
dsp.CICCompensationInterpolator |
dsp.CICDecimator |
dsp.CICInterpolator |
|
dsp.CoupledAllpassFilter |
|
dsp.Delay |
dsp.Differentiator |
dsp.DigitalDownConverter |
dsp.DigitalUpConverter |
dsp.FIRDecimator |
dsp.FIRFilter |
dsp.FIRHalfbandDecimator |
dsp.FIRHalfbandInterpolator |
dsp.FIRInterpolator |
dsp.FIRRateConverter |
dsp.FarrowRateConverter |
dsp.FilterCascade |
dsp.FourthOrderSectionFilter — Filter
Analyzer does not support fixed-point arithmetic for
this object |
dsp.HighpassFilter |
dsp.IIRFilter |
dsp.IIRHalfbandDecimator |
dsp.IIRHalfbandInterpolator |
dsp.LowpassFilter |
dsp.NotchPeakFilter
— Filter Analyzer does not support fixed-point
arithmetic for this System object |
dsp.ParallelFilter |
dsp.SOSFilter |
dsp.VariableBandwidthFIRFilter |
dsp.VariableBandwidthIIRFilter |
If you also have DSP HDL Toolbox™, you can use Filter Analyzer to analyze these filter System objects.
System object |
---|
|
|
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| cell
Complex Number Support: Yes
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Example: addFilters(fa,filt1,filt2,FilterNames=["LP" "HP"],SampleRates=[150
3e3])
adds filters named "LP"
and "HP"
,
with respective sample rates of 150 Hz and 3 KHz, to the specified Filter Analyzer instance
fa
.
Arithmetic
— Arithmetic type of filter System objects
"double"
(default) | "single"
| "fixed"
Arithmetic type of filter System objects, specified as one of
"double"
, "single"
, or
"fixed"
. If you do not specify this argument, and the filter
System objects are in an unlocked state, Filter Analyzer assumes the filters
are double precision.
Data Types: char
| string
DisplayNums
— Displays on which to plot filters
vector
Displays on which to plot filters, specified as a vector of display numbers. If you do not specify this argument, Filter Analyzer uses the active display. Use display identification numbers to target displays when using other Filter Analyzer functions. Identification numbers appear above the plotting area of the app, on the tabs that correspond to the different displays.
Example: [1 4]
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
FilterNames
— Filter names
vector of strings | cell of character vectors
Filter names, specified as a vector of strings or cell of character vectors. Filter names are the names that identify the different filters in the Filters table of the Filter Analyzer app. If you do not specify this argument:
If filters have been specified as numerator and denominator coefficients, Filter Analyzer uses
num_den
as filter names, wherenum
is the variable that specifies the numerator coefficients of a filter andden
is the variable that specifies the corresponding denominator coefficients.If filters have been specified as cell arrays or objects, Filter Analyzer uses the variables that specify each cell array or object as filter names.
Otherwise, Filter Analyzer uses names consisting of
Filter_n
n, where n is a number representing the order in which that filter was added to the Filters table:Filter_1
,Filter_2
, and so on.
Filter names in Filter Analyzer must be unique. If a name already exists, the app appends a suffix number to the name. The Filters table shows the names that already exist in the app session.
Example: ["LPbutter" "LPelliptic"]
Data Types: cell
| string
SampleRates
— Filter sample rates
1
(default) | scalar | vector
Filter sample rates, specified as a scalar or vector of values specified in Hz.
If
SampleRates
is a scalar, the specified value applies to all filters.If
SampleRates
is a vector, it must have a number of elements equal to the number of filters.
This argument does not apply if one or more filters are objects with a sample rate.
Example: [150 3e3]
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Output Arguments
dispnum
— Display identification number
integer | vector of integers
Display identification number, returned as an integer or as a vector of integers. If
addFilters
adds more than one display,
dispnum
is a vector. If Filter Analyzer uses the
current display, dispnum
is an empty array.
Version History
Introduced in R2024a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select 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
Select 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)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)