Documentation Center

  • Trial Software
  • Product Updates

Contents

dsp.VariableBandwidthIIRFilter System object

Package: dsp

Variable bandwidth IIR filter

Description

The VariableBandwidthIIRFilter object filters each channel of the input using IIR filter implementations. It does so while having the capability of tuning the bandwidth. This filter supports double and single precision inputs.

To filter each channel of the input:

  1. Define and set up your variable bandwidth IIR filter. See Construction.

  2. Call step to filter each channel of the input according to the properties of dsp.VariableBandwidthIIRFilter. The behavior of step is specific to each object in the toolbox.

Construction

HIIR = dsp.VariableBandwidthIIRFilter returns a System object™, HIIR, which independently filters each channel of the input over successive calls to the step method. This System object uses a specified IIR filter implementation. The filter's passband frequency may be tuned during the filtering operation. The variable bandwidth IIR filter is designed using the elliptical method. The filter is tuned using IIR spectral transformations based on allpass filters.

HIIR = dsp.VariableBandwidthIIRFilter('PropertyName',PropertyValue, ...) returns a variable bandwidth IIR filter System object, HIIR, with each property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

SampleRate

Input sample rate

Specify the sampling rate of the input in Hertz as a finite numeric scalar. The default is 44.1 kHz. This property is nontunable.

FilterType

Filter type

Specify the type of the filter as one of 'Lowpass' | 'Highpass' | 'Bandpass' | 'Bandstop'. The default is 'Lowpass'. This property is nontunable.

FilterOrder

IIR filter order

Specify the order of the IIR filter as a positive integer scalar. The default is 8. This property is nontunable.

PassbandFrequency

Filter passband frequency

Specify the filter passband frequency in Hz as a real, positive scalar, smaller than the SampleRate/2. This property applies when you set the FilterType property to 'Lowpass' or 'Highpass'. The default is 512 Hz. This property is tunable.

CenterFrequency

Filter center frequency

Specify the filter center frequency in Hz as a real, positive scalar, smaller than SampleRate/2. This property applies when you set the FilterType property to 'Bandpass' or 'Bandstop'. The default is 11025 Hz. This property is tunable.

Bandwidth

Filter bandwidth

Specify the filter bandwidth in Hertz as a real, positive scalar, smaller than SampleRate/2. This property applies when you set the FilterType property to 'Bandpass' or 'Bandstop'. The default is 7680 Hz. This property is tunable.

PassbandRipple

Filter passband ripple

Specify the filter passband ripple as a real, positive scalar in decibels (dB). The default is 1 dB. This property is nontunable.

StopbandAttenuation

Filter Stopband attenuation

Specify the filter stopband attenuation as a real, positive scalar in decibels (dB). The default is 60 dB. This property is nontunable.

Methods

cloneCreate variable bandwidth IIR filter with same property values
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
resetReset internal states of variable bandwidth IIR filter
stepFilter signal using variable bandwidth algorithm

More Analysis Methods for Filter System Objects.

Examples

expand all

Filtering Through a Variable Bandwidth Bandpass IIR Filter

This examples shows you how to tune the center frequency and bandwidth of the IIR filter.

    Fs = 44100; % Input sample rate
    % Define a bandpass variable bandwidth IIR filter:
    hiir = dsp.VariableBandwidthIIRFilter('FilterType','Bandpass',...
                                          'FilterOrder',8,...
                                          'SampleRate',Fs,...
                                          'CenterFrequency',1e4,...
                                          'Bandwidth',4e3);
    htfe = dsp.TransferFunctionEstimator('FrequencyRange','onesided');
    hplot = dsp.ArrayPlot('PlotType','Line',...
                          'XOffset',0,...
                          'YLimits',[-120 5], ...
                          'SampleIncrement', 44100/1024,...
                          'YLabel','Frequency Response (dB)',...
                          'XLabel','Frequency (Hz)',...
                          'Title','System Transfer Function');
    FrameLength = 1024;
    hsin = dsp.SineWave('SamplesPerFrame',FrameLength);
    for i=1:500
       % Generate input
       x = step(hsin) + randn(FrameLength,1);
       % Pass input through the filter
       y = step(hiir,x);
       % Transfer function estimation
       h = step(htfe,x,y);
       % plot transfer function
       step(hplot,20*log10(abs(h)))
       % Tune bandwidth and center frequency of the IIR filter
       if (i==250)
         hiir.CenterFrequency = 5000;
         hiir.Bandwidth = 2000;
       end
    end

Algorithms

This filter covers frequency transformations. A lowpass IIR prototype is designed, using the elliptical method by specifying its order, passband frequency, passband ripple and stopband attenuation. The passband ripple and stopband attenuation are equal to the values of the PassbandRipple and StopbandAttenuation properties. The prototype passband frequency is set to 0.5. If the FilterType property is 'Lowpass' or 'Highpass', the prototype's order is equal to the value of FilterOrder. If the FilterType property is 'Bandpass' or 'Bandstop', the prototype filter order is equal to FilterOrder/2. The prototype is a Direct Form II Transposed cascade of second-order sections (Biquad filter). The prototype is transformed into the desired filter using the algorithms used in Digital Frequency Transformations. Each prototype SOS section is transformed separately. When FilterType is 'Lowpass' or 'Highpass', the resulting filter remains a Direct Form II Transposed cascade of second order sections. If the FilterType is 'Bandpass' or 'Bandstop', the resulting filter is a cascade of Direct Form II Transposed cascade of fourth order sections.

References

[1] A. G. Constantinides, "Spectral transformations for digital filters", Proc. Inst. Elect. Eng., vol. 117, no. 8, pp.1585 — 1590, 1970.

See Also

| | | |

Was this topic helpful?