Main Content

dsp.DynamicFilterVisualizer

Display time-varying magnitude response of digital filters

Description

Thedsp.DynamicFilterVisualizerobject displays the magnitude response of time-varying digital filters or time-varying filter coefficients. The input to this object can be a filter coefficients vector or a filter System object™.

Using the dynamic filter visualizer, you can configure the plot settings, measure the signal statistics, find the peak values, place the data cursors, and so on from the interface of the visualizer. For details, seeConfigure Array Plot.

Creation

Description

example

dfv= dsp.DynamicFilterVisualizerreturns a dynamic filter visualizer object,dfv, that displays the magnitude response of digital filters or filter coefficients.

dfv= dsp.DynamicFilterVisualizer(nfft)returns a dynamic filter visualizer with theFFTLengthproperty set tonfft.

dfv= dsp.DynamicFilterVisualizer(nfft,Fs)returns a dynamic filter visualizer with theFFTLengthproperty set tonfftand theSampleRateproperty set toFs.

dfv= dsp.DynamicFilterVisualizer(nfft,Fs,range)returns a dynamic filter visualizer with theFFTLengthproperty set tonfft,SampleRateproperty set toFs, and theFrequencyRangeproperty set torange.

example

dfv= dsp.DynamicFilterVisualizer(Name,Value)returns a dynamic filter visualizer with each specified property set to the specified value. You can specify name-value pair arguments in any order.

Properties

expand all

FFT length that the dynamic filter visualizer uses to compute spectral estimates, specified as a positive integer.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

输入信号的采样率,指定as a real positive scalar in Hz.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

Range of the frequency axis, specified as a two-element numeric vector that is monotonically increasing and of the form [fmin,fmax]. The upper limit must be less than or equal toFs/2, whereFsis the value specified inSampleRate.

Tunable:Yes

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

X-axis scale, specified as either'Linear'or'Log'.

Tunable:Yes

Y-axis units, specified as one of the following:

  • 'Magnitude'

  • 'Magnitude (dB)'

  • 'Magnitude squared'

Tunable:Yes

Visualization

Caption to display on the Dynamic Filter Visualizer window, specified as a character vector or a string scalar.

Example:'Dynamic Filter Visualizer'

Example:"Dynamic Filter Visualizer"

Tunable:Yes

Display title, specified as a character vector or a string scalar.

Example:'Magnitude Response'

Example:"Magnitude Response"

Tunable:Yes

Y-axis limits, specified as a two-element numeric vector with the second element greater than the first element and of the form [ymin,ymax].

Tunable:Yes

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

When this property is set tofalse, no legend is displayed. When this property is set totrue, a legend with automatic string labels for each input filter is displayed.

Tunable:Yes

Data Types:logical

将此属性设置为一个单元阵列的特征矢量tors to label the input filters in the legend. The default is an empty cell array. When this property is set to an empty cell array, the filters are named by default names, such asFilter 1,Filter 2, and so on.

Tunable:Yes

Upper limit spectral mask, specified as a two-column matrix. The first column represents the frequency values (Hz), and the second column represents the magnitude spectrum of the upper limit mask.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

Lower limit spectral mask, specified as a two-column matrix. The first column represents the frequency values (Hz), and the second column represents the magnitude spectrum of the lower limit mask.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

Scope window position in pixels, specified as a four-element double vector of the form [left bottom width height]. The default value of this property is dependent on the screen resolution, and is such that the window is positioned in the center of the screen, with a width and height of410and300pixels, respectively.

Tunable:Yes

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

Usage

Description

dfv(filt)displays the time-varying magnitude response of the object filter,filt, in the Dynamic Filter Visualizer figure, as long asfilthas a validfreqz()implementation.

dfv(B,A)displays the magnitude response for the digital filters with numerator and denominator polynomial coefficients stored inB1andA1,B2andA2, ..., andBNandAN, respectively.

Input Arguments

expand all

Input filter System object with a validfreqz()implementation.

Numerator polynomial coefficients, specified as a row vector.

Data Types:single|double

Denominator polynomial coefficients, specified as a:

  • scalar –– The filter is an FIR filter.

  • row vector –– The filter is an IIR filter.

Data Types:single|double

Object Functions

expand all

step Display time-varying magnitude response
show Display scope window
hide Hide scope window

Examples

collapse all

Design an FIR filter with time-varying magnitude response. Plot this varying response on a dynamic filter visualizer.

Create adsp.DynamicFilterVisualizerobject.

dfv = dsp.DynamicFilterVisualizer('YLimits',[-120 10])
dfv = DynamicFilterVisualizer with properties: FFTLength: 2048 SampleRate: 44100 FrequencyRange: [0 22050] XScale: 'Linear' MagnitudeDisplay: 'Magnitude (dB)' Visualization Name: 'Dynamic Filter Visualizer' Title: 'Magnitude Response' YLimits: [-120 10] ShowLegend: 0 FilterNames: {''} UpperMask: Inf LowerMask: -Inf Position: [240 262 800 500]

Vary the cutoff frequency of the FIR filter,k, from0.1to0.5in increments of0.001. View the varying magnitude response using the dynamic filter visualizer.

fork = 0.1:0.001:0.5 b = fir1(90,k); dfv(b,1);end

Visualize the varying magnitude response of the variable bandwidth FIR filter using the dyamic filter visualizer.

Create adsp.DynamicFilterVisualizerobject.

dfv = dsp.DynamicFilterVisualizer('YLimits',[-160 10])
dfv = DynamicFilterVisualizer with properties: FFTLength: 2048 SampleRate: 44100 FrequencyRange: [0 22050] XScale: 'Linear' MagnitudeDisplay: 'Magnitude (dB)' Visualization Name: 'Dynamic Filter Visualizer' Title: 'Magnitude Response' YLimits: [-160 10] ShowLegend: 0 FilterNames: {''} UpperMask: Inf LowerMask: -Inf Position: [240 262 800 500]

Design a bandpass variable bandwidth FIR filter with a center frequency of 5 kHz and a bandwidth of 4 kHz.

Fs = 44100; vbw = dsp.VariableBandwidthFIRFilter('FilterType','Bandpass',...'FilterOrder',100,...'SampleRate',Fs,...'CenterFrequency',5e3,...'Bandwidth',4e3);

Vary the center frequency of the filter. Visualize the varying magnitude response of the filter using thedsp.DynamicFilterVisualizerobject.

foridx = 1:100 dfv(vbw); vbw.CenterFrequency = vbw.CenterFrequency + 20;end

Introduced in R2018b