Highpass filter specification object
D = fdesign.highpass
D = fdesign.highpass(SPEC
)
D = fdesign.highpass(SPEC,specvalue1,specvalue2,...)
D = fdesign.highpass(specvalue1,specvalue2,specvalue3,
specvalue4)
D = fdesign.highpass(...,Fs)
D = fdesign.highpass(...,MAGUNITS)
D = fdesign.highpass
constructs
a highpass filter specification object D
, applying
default values for the specification string, 'Fst,Fp,Ast,Ap'
.
D = fdesign.highpass(
constructs
object SPEC
)D
and sets the 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. The strings are not case sensitive.
Note: Specifications strings marked with an asterisk require the DSP System Toolbox™ software. |
'Fst,Fp,Ast,Ap'
(default spec
)
'N,F3db'
'N,F3db,Ap'
*
'N,F3db,Ast'
*
'N,F3db,Ast,Ap'
*
'N,F3db,Fp
*
'N,Fc'
'N,Fc,Ast,Ap'
'N,Fp,Ap'
'N,Fp,Ast,Ap'
'N,Fst,Ast'
'N,Fst,Ast,Ap'
'N,Fst,F3db'
*
'N,Fst,Fp'
'N,Fst,Fp,Ap'
*
'N,Fst,Fp,Ast'
*
'Nb,Na,Fst,Fp'
*
The string entries are defined as follows:
Ap
— amount of ripple allowed
in the pass band in decibels (the default units). Also called Apass.
Ast
— attenuation in the
stop band in decibels (the default units). Also called Astop.
F3db
— cutoff frequency
for the point 3 dB point below the passband value. Specified in normalized
frequency units.
Fc
— cutoff frequency for
the point 6 dB point below the passband value. Specified in normalized
frequency units.
Fp
— frequency at the start
of the pass band. Specified in normalized frequency units. Also called
Fpass.
Fst
— frequency at the end
of the stop band. Specified in normalized frequency units. Also called
Fstop.
N
— filter order.
Na
and Nb
are
the order of the denominator and numerator.
Graphically, the filter specifications look similar to those shown in the following figure.
Regions between specification values like Fst
and Fp
are
transition regions where the filter response is not explicitly defined.
The filter design methods that apply to a highpass filter specification
object change depending on the Specification
string.
Use designmethods
to determine
which design method applies to an object and its specification string.
Use designopts
to determine
which design options are valid for a given design method. For detailed
information on design options for a given design method, METHOD
,
enter help(D,METHOD)
at the MATLAB^{®} command
line.
D = fdesign.highpass(SPEC,specvalue1,specvalue2,...)
constructs
an object d
and sets its specification values at
construction time.
D = fdesign.highpass(specvalue1,specvalue2,specvalue3,
constructs an object
specvalue4)D
with
the default Specification
property and the values
you enter for specvalue1,specvalue2,...
.
D = fdesign.highpass(...,Fs)
provides the sampling frequency for the filter specification object. Fs
is
in Hz and must be specified as a scalar trailing the other numerical
values provided. If you specify a sampling frequency, all other frequency
specifications are in Hz.
D = fdesign.highpass(...,MAGUNITS)
specifies
the units for any magnitude specification you provide in the input
arguments. 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.
Highpass filter a discrete-time signal consisting of two sine waves.
Create a highpass filter specification object. Specify the passband frequency to be 0.25π radians/sample and the stopband frequency to be 0.15π radians/sample. Specify 1 dB of allowable passband ripple and a stopband attenuation of 60 dB.
d = fdesign.highpass('Fst,Fp,Ast,Ap',0.15,0.25,60,1);
Query the valid design methods for your filter specification
object, d
.
designmethods(d)
Create an FIR equiripple filter and view the filter magnitude
response with fvtool
.
Hd = design(d,'equiripple');
fvtool(Hd);
Create a signal consisting of the sum of two discrete-time sinusoids
with frequencies of π/8 and π/4 radians/sample and amplitudes
of 1 and 0.25 respectively. Filter the discrete-time signal with the
FIR equiripple filter object, Hd
n = 0:159; x = cos((pi/8)*n)+0.25*sin((pi/4)*n); y = filter(Hd,x); Domega = (2*pi)/160; freq = 0:(2*pi)/160:pi; xdft = fft(x); ydft = fft(y); plot(freq,abs(xdft(1:length(x)/2+1))); hold on; plot(freq,abs(ydft(1:length(y)/2+1)),'r','linewidth',2); legend('Original Signal','Lowpass Signal', ... 'Location','NorthEast'); ylabel('Magnitude'); xlabel('Radians/Sample');
Create a filter of order 10 with a 6-dB frequency of 9.6 kHz and a sampling frequency of 48 kHz.
d=fdesign.highpass('N,Fc',10,9600,48000); designmethods(d) % only valid design method is FIR window method Hd = design(d); % Display filter magnitude response fvtool(Hd);
If you have the DSP System Toolbox software, you can specify the shape of the stopband and the rate at which the stopband decays.
Create two FIR equiripple filters with different linear stopband slopes. Specify the passband frequency to be 0.3π radians/sample and the stopband frequency to be 0.35π radians/sample. Specify 1 dB of allowable passband ripple and a stopband attenuation of 60 dB. Design one filter with a 20 dB/rad/sample stopband slope and another filter with 40 dB/rad/sample.
D = fdesign.highpass('Fst,Fp,Ast,Ap',0.3,0.35,60,1); Hd1 = design(D,'equiripple','StopBandShape','linear','StopBandDecay',20); Hd2 = design(D,'equiripple','StopBandShape','linear','StopBandDecay',40); hfvt = fvtool([Hd1 Hd2]); legend(hfvt,'20 dB/rad/sample','40 dB/rad/sample');