Main Content

fdesign.hilbert

Hilbert filter specification object

Syntax

d = fdesign.hilbert
d = fdesign.hilbert(specvalue1,specvalue2)
d = fdesign.hilbert(spec)
d = fdesign.hilbert(spec,specvalue1,specvalue2)
d = fdesign.hilbert(...,Fs)
d = fdesign.hilbert(...,MAGUNITS)

Description

d = fdesign.hilbert constructs a default Hilbert filter designer d with N, the filter order, set to 30 and TW, the transition width set to 0.1π radians/sample.

d = fdesign.hilbert(specvalue1,specvalue2) constructs a Hilbert filter designer d assuming the default specification 'N,TW'. You input specvalue1 and specvalue2 for N and TW.

d = fdesign.hilbert(spec) initializes the filter designer Specification property to spec. You provide one of the following as input to replace spec. The specification options are not case sensitive.

Note

Specifications marked with an asterisk require the DSP System Toolbox™ software.

  • 'N,TW' default specification option.

  • 'TW,Ap' *

The filter specifications are defined as follows:

  • Ap — amount of ripple allowed in the pass band in decibels (the default units). Also called Apass.

  • N — filter order.

  • TW — width of the transition region between the passband and the stopband.

By default, fdesign.hilbert assumes that all frequency specifications are provided in normalized frequency units. Also, decibels is the default for all magnitude specifications.

Different specifications may have different design methods available. Use designmethods(d) to get a list of the design methods available for a given specification.

d = fdesign.hilbert(spec,specvalue1,specvalue2) initializes the filter designer specifications in spec with specvalue1, specvalue2, and so on. To get a description of the specifications specvalue1 and specvalue2, enter

get(d,'description')

at the Command prompt.

d = fdesign.hilbert(...,Fs) adds the argument Fs, specified in Hz to define the sampling frequency. In this case, all frequencies in the specifications are in Hz as well.

d = fdesign.hilbert(...,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.

Examples

collapse all

Design a Hilbert transformer of order 30 with a transition width of 0.2π rad/sample. Use least-squares minimization to obtain an equiripple linear-phase FIR filter. Plot the zero-phase response in the interval [–π,π).

d = fdesign.hilbert('N,TW',30,0.2);
Hd = design(d,'equiripple',SystemObject=true);
zerophase(Hd,'whole')

Figure Figure 1: Zero-phase Response contains an axes object. The axes object with title Zero-phase Response, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Amplitude contains 2 objects of type line.

The impulse response of this even-order type-3 filter is antisymmetric.

impz(Hd)

Figure Figure 2: Impulse Response contains an axes object. The axes object with title Impulse Response, xlabel Samples, ylabel Amplitude contains an object of type stem.

ftype = firtype(Hd)
ftype = 3

Design a minimum-order Hilbert transformer that has a sample rate of 1 kHz. Specify the width of the transition region as 10 Hz and the passband ripple as 1 dB. Display the zero-phase response of the filter.

fs = 1e3;
d = fdesign.hilbert('TW,Ap',10,1,fs);
hd = design(d,'equiripple',SystemObject=true);
zerophase(hd,-fs/2:0.1:fs/2,fs)

Figure Figure 3: Zero-phase Response contains an axes object. The axes object with title Zero-phase Response, xlabel Frequency (Hz), ylabel Amplitude contains 2 objects of type line.

Version History

Introduced in R2009a

See Also

| |