Bandpass filter specification object
D = fdesign.bandpass
D = fdesign.bandpass(SPEC
)
D = fdesign.bandpass(spec,specvalue1,specvalue2,...)
D = fdesign.bandpass(specvalue1,specvalue2,specvalue3,
specvalue4,...specvalue4,specvalue5,specvalue6)
D = fdesign.bandpass
(...,Fs)
D = fdesign.bandpass
(...,MAGUNITS)
D = fdesign.bandpass
constructs
a bandpass filter specification object D
, applying
default values for the properties Fstop1
, Fpass1
, Fpass2
, Fstop2
, Astop1
, Apass
,
and Astop2
— one possible set of values
you use to specify a bandpass filter.
D = fdesign.bandpass(
constructs
object SPEC
)D
and sets its Specification
property
to SPEC
. Entries in the SPEC
string
represent various filter response features, such as the filter order,
that govern the filter design. Valid entries for SPEC
are
shown below and used to define the bandpass filter. The strings are
not case sensitive.
Note: Specifications strings marked with an asterisk require the DSP System Toolbox™ software. |
'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2'
(default spec
)
'N,F3dB1,F3dB2'
"N,F3dB1,F3dB2,Ap'
*
'N,F3dB1,F3dB2,Ast'
*
'N,F3dB1,F3dB2,Ast1,Ap,Ast2'
*
'N,F3dB1,F3dB2,BWp
*
'N,F3dB1,F3dB2,BWst'
*
'N,Fc1,Fc2'
'N,Fc1,Fc2,Ast1,Ap,Ast2'
'N,Fp1,Fp2,Ap'
'N,Fp1,Fp2,Ast1,Ap,Ast2'
'N,Fst1,Fp1,Fp2,Fst2'
'N,Fst1,Fp1,Fp2,Fst2,C'
*
'N,Fst1,Fp1,Fp2,Fst2,Ap'
*
'N,Fst1,Fst2,Ast'
'Nb,Na,Fst1,Fp1,Fp2,Fst2'
*
The string entries are defined as follows:
Ap
— amount of ripple allowed
in the pass band. Also called Apass.
Ast1
— attenuation in the
first stop band in decibels (the default units). Also called Astop1.
Ast2
— attenuation in the
second stop band in decibels (the default units). Also called Astop2.
BWp
— bandwidth of the filter
passband. Specified in normalized frequency units.
BWst
— bandwidth of the
filter stopband. Specified in normalized frequency units.
C
— Constrained band flag.
This enables you to specify passband ripple or stopband attenuation
for fixed-order designs in one or two of the three bands.
In the specification string 'N,Fst1,Fp1,Fp2,Fst2,C'
,
you cannot specify constraints in both stopbands and the passband
simultaneously. You can specify constraints in any one or two bands.
F3dB1
— cutoff frequency
for the point 3 dB point below the passband value for the first cutoff.
Specified in normalized frequency units. (IIR filters)
F3dB2
— cutoff frequency
for the point 3 dB point below the passband value for the second cutoff.
Specified in normalized frequency units. (IIR filters)
Fc1
— cutoff frequency for
the point 6 dB point below the passband value for the first cutoff.
Specified in normalized frequency units. (FIR filters)
Fc2
— cutoff frequency for
the point 6 dB point below the passband value for the second cutoff.
Specified in normalized frequency units. (FIR filters)
Fp1
— frequency at the edge
of the start of the pass band. Specified in normalized frequency units.
Also called Fpass1.
Fp2
— frequency at the edge
of the end of the pass band. Specified in normalized frequency units.
Also called Fpass2.
Fst1
— frequency at the
edge of the start of the first stop band. Specified in normalized
frequency units. Also called Fstop1.
Fst2
— frequency at the
edge of the start of the second stop band. Specified in normalized
frequency units. Also called Fstop2.
N
— filter order for FIR
filters. Or both the numerator and denominator orders for IIR filters
when na and nb are not provided.
Na
— denominator order for
IIR filters
Nb
— numerator order for
IIR filters
Graphically, the filter specifications look similar to those shown in the following figure.
Regions between specification values like Fst1
and Fp1
are
transition regions where the filter response is not explicitly defined.
The filter design methods that apply to a bandpass filter specification
object change depending on the Specification
string.
Use designmethods
to determine
which design methods apply to an object and the Specification
property
value.
Use designopts
to determine
the design options for a given design method. Enter help(D,METHOD)
at
the MATLAB^{®} command line to obtain detailed help on the design
options for a given design method, METHOD
.
D = fdesign.bandpass(spec,specvalue1,specvalue2,...)
constructs
an object D
and sets its specifications at construction
time.
D = fdesign.bandpass(specvalue1,specvalue2,specvalue3,
constructs
specvalue4,...specvalue4,specvalue5,specvalue6)D
with
the default Specification
property string, using
the values you provide as input arguments for specvalue1,specvalue2,specvalue3,specvalue4,specvalue4,specvalue5,
specvalue6
and specvalue7
.
D = fdesign.
adds
the argument bandpass
(...,Fs)Fs
, specified in Hz to define the
sampling frequency to use. In this case, all frequencies in the specifications
are in Hz as well.
D = fdesign.
specifies
the units for any magnitude specification you provide in the input
arguments. bandpass
(...,MAGUNITS)MAGUNITS
can be one of
'linear'
— specify the magnitude
in linear units
'dB'
— specify the magnitude
in dB (decibels)
'squared'
— specify the
magnitude in power units
When you omit the MAGUNITS
argument, fdesign
assumes
that all magnitudes are in decibels. Note that fdesign
stores
all magnitude specifications in decibels (converting to decibels when
necessary) regardless of how you specify the magnitudes.
Filter a discrete-time signal with a bandpass filter. The signal is a sum of three discrete-time sinusoids, π/8, π/2, and 3π/4 radians/sample.
n = 0:159; x = cos(pi/8*n)+cos(pi/2*n)+sin(3*pi/4*n);
Design an FIR equiripple bandpass filter to remove the lowest and highest discrete-time sinusoids.
d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',1/4,3/8,5/8,6/8,60,1,60); Hd = design(d,'equiripple');
Apply the filter to the discrete-time signal.
y = filter(Hd,x); freq = 0:(2*pi)/length(x):pi; xdft = fft(x); ydft = fft(y); plot(freq,abs(xdft(1:length(x)/2+1))); hold on; plot(freq,abs(ydft(1:length(x)/2+1)),'r','linewidth',2); legend('Original Signal','Bandpass Signal');
Design an IIR Butterworth filter of order 10 with 3–dB frequencies of 1 and 1.2 kHz. The sampling frequency is 10 kHz
d = fdesign.bandpass('N,F3dB1,F3dB2',10,1e3,1.2e3,1e4); Hd = design(d,'butter'); fvtool(Hd)
This example requires the DSP System Toolbox software.
Design a constrained-band FIR equiripple filter of order 100 with a passband of [1, 1.4] kHz. Both stopband attenuation values are constrained to 60 dB. The sampling frequency is 10 kHz.
d = fdesign.bandpass('N,Fst1,Fp1,Fp2,Fst2,C',100,800,1e3,1.4e3,1.6e3,1e4); d.Stopband1Constrained = true; d.Astop1 = 60; d.Stopband2Constrained = true; d.Astop2 = 60; Hd = design(d,'equiripple'); fvtool(Hd); measure(Hd)
The passband ripple is slightly over 2 dB. Because the design constrains both stopbands, you cannot constrain the passband ripple.
fdesign
, fdesign.bandstop
, fdesign.highpass
, fdesign.lowpass