Variable bandwidth IIR filter
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:
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).
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.
Specify the type of the filter as one of 'Lowpass' | 'Highpass' | 'Bandpass' | 'Bandstop'. The default is 'Lowpass'. This property is nontunable.
IIR filter order
Specify the order of the IIR filter as a positive integer scalar. The default is 8. This property is nontunable.
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.
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.
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.
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.
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.
|clone||Create variable bandwidth IIR filter with same property values|
|isLocked||Locked status for input attributes and nontunable properties|
|release||Allow property value and input characteristics changes|
|reset||Reset internal states of variable bandwidth IIR filter|
|step||Filter signal using variable bandwidth algorithm|
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
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.
 A. G. Constantinides, "Spectral transformations for digital filters", Proc. Inst. Elect. Eng., vol. 117, no. 8, pp.1585 — 1590, 1970.