visualize - Visualize filter stages - MATLAB (original) (raw)

Main Content

Syntax

Description

visualize([sysobj](#d126e541292)) shows the response of each individual filter stage of the filter System object™.

example

Examples

collapse all

Filter an input signal through a complex bandpass decimator and visualize the filtered spectrum in a spectrum analyzer.

Initialization

Create a dsp.ComplexBandpassDecimator System object™ with center frequency set to 2000 Hz, bandwidth of interest set to 1000 Hz, and sample rate set to 48 kHz. The decimation factor is computed as the ratio of the sample rate to the bandwidth of interest. The input to the decimator is a sine wave with a frame length of 1200 samples with tones at 1625 Hz, 2000 Hz, and 2125 Hz. Create a spectrumAnalyzer scope to visualize the signal spectrum.

Fs = 48e3; CF = 2000; BW = 1000; D = Fs/BW; FrameLength = 1200; bpdecim = dsp.ComplexBandpassDecimator(D,CF,Fs);

sa = spectrumAnalyzer(SampleRate=Fs/D,... Method="welch",... YLimits=[-120 40],... FrequencyOffset=CF);

tones = [1625 2000 2125]; sin = dsp.SineWave(SampleRate=Fs,Frequency=tones,... SamplesPerFrame=FrameLength);

Visualize Filter Stages

Using the visualize function, you can visualize the response of each individual filter stage.

Figure contains an axes object. The axes object with title Magnitude Response (dB), xlabel Frequency (Hz), ylabel Magnitude (dB) (normalized to 0 dB) contains 5 objects of type line. These objects represent Filter #1, Filter #2, Filter #3, Filter #4, Filter #5.

Display Filter info

The info function displays information about the bandpass decimator.

fprintf("%s",info(bpdecim))

Overall Decimation Factor : 48 Bandwidth : 1000 Hz Number of Filters : 5 Real multiplications per Input Sample: 14.708333 Real additions per Input Sample : 13.833333 Number of Coefficients : 89 Filters:
Filter 1: dsp.FIRDecimator - Decimation Factor : 2 Filter 2: dsp.FIRDecimator - Decimation Factor : 2 Filter 3: dsp.FIRDecimator - Decimation Factor : 2 Filter 4: dsp.FIRDecimator - Decimation Factor : 3 Filter 5: dsp.FIRDecimator - Decimation Factor : 2

Stream In and Filter Signal

Construct a for-loop to run for 1000 iterations. In each iteration, stream in 1200 samples (one frame) of the noisy sine wave and apply the complex bandpass decimator on each frame of the input signal. Visualize the input and output spectrum in the spectrum analyzer, sa.

for index = 1:1000 x = sum(sin(),2) + 1e-4*randn(FrameLength,1); z = bpdecim(x); sa(z); end

The bandpass decimator with center frequency at 2000 Hz and a bandwidth of 1000 Hz passes the three sine wave tones at 1625 Hz, 2000 Hz, and 2125 Hz.

Change the center frequency of the decimator to 2400 Hz and filter the signal.

release(bpdecim); bpdecim.CenterFrequency = 2400

Figure contains an axes object. The axes object with title Magnitude Response (dB), xlabel Frequency (Hz), ylabel Magnitude (dB) (normalized to 0 dB) contains 5 objects of type line. These objects represent Filter #1, Filter #2, Filter #3, Filter #4, Filter #5.

bpdecim = dsp.ComplexBandpassDecimator with properties:

            CenterFrequency: 2400
              Specification: 'Decimation factor'
           DecimationFactor: 48
        StopbandAttenuation: 80
            TransitionWidth: 100
MinimizeComplexCoefficients: true
        NormalizedFrequency: false
                 SampleRate: 48000

Configure the spectrum analyzer to show the bandwidth of interest, [-1900, 2900] Hz.

release(sa) sa.FrequencyOffset = 2400;

Stream in the data and filter the signal.

for index = 1:1000 x = sum(sin(),2) + 1e-4 * randn(FrameLength,1); z = bpdecim(x); sa(z); end

The tones at 2000 Hz and 2125 Hz are passed through the decimator, while the tone at 1625 Hz is filtered out.

Create a multistage sample rate converter with default properties, corresponding to the combined three filter stages used to convert from 192 kHz to 44.1 kHz. Visualize the stages.

src = dsp.SampleRateConverter; visualize(src)

Figure contains an axes object. The axes object with title Magnitude Response (dB), xlabel Frequency (Hz), ylabel Magnitude (dB) (normalized to 0 dB) contains 3 objects of type line. These objects represent Filter #1, Filter #2, Filter #3.

Input Arguments

Version History

Introduced in R2012a

expand all

The visualizeFilterStages function has been renamed tovisualize. Existing instances of this function in your code continue to run. For new instances, use visualize.

The visualize function now launches a MATLAB® figure to display the magnitude response of the filter stages.

See Also

Functions

Topics