Hauptinhalt

Spectrum Analyzer

R2026b

Display frequency spectrum of time-domain signals

  • Spectrum Analyzer block

Libraries:
RF Blockset / Circuit Envelope / Utilities

Description

Note

The Spectrum Analyzer block in RF Blockset™ provides a subset of the functionality provided by the DSP System Toolbox™ block with the same name. This page describes the block configuration and functionality available with a RF Blockset license.

If you also have a DSP System Toolbox license, then the Spectrum Analyzer block in the RF Blockset > Utilities library is identical to the block in the DSP System Toolbox > Sinks library. For more information, see Spectrum Analyzer (DSP System Toolbox).

The Spectrum Analyzer block displays frequency spectra of input signals with discrete sample times.

In a RF Blockset model, to use a Spectrum Analyzer block instead of a regular scope:

  1. Add a Spectrum Analyzer block to your block diagram.

  2. If your model uses a variable-step solver, also add a Rate Transition block and connect it to the input port of the Spectrum Analyzer block. Set the Output port sample time parameter to the sample time you want the Spectrum Analyzer to use.

    If your model uses a local solver, then it outputs physical signals with discrete sample times and you do not need to add a Rate Transition block. However, if you need to downsample from the solver fixed step size, you can use a Rate Transition block. For more information on using local solvers, see Making Optimal Solver Choices for Physical Simulation.

  3. Use a PS-Simulink Converter block to connect the physical output signal of interest to the input port of the Spectrum Analyzer block (or to the input port of the Rate Transition block, if you are using one). For more information, see Connecting Simscape Diagrams to Simulink Sources and Scopes. You can also use additional signal processing blocks between the PS-Simulink Converter and the Spectrum Analyzer blocks to enhance signal quality.

  4. Run the simulation. Once the simulation is complete, the Spectrum Analyzer, referred to here as the scope, opens and displays the frequency spectrum of the signal.

Frequency spectrum of signal in scope window

Programmatic Control

You can configure and display the Spectrum Analyzer settings from the command line with the SpectrumAnalyzerBlockConfiguration object.

Examples

Ports

Input

expand all

Connect the signals you want to visualize. You can have up to 96 input ports. Input signals must have these characteristics:

The Spectrum Analyzer block supports variable-size input signals, that is, the frame size of the signals can change during simulation. When the signal frame size changes, the sample rate the scope uses changes accordingly, which in turn updates the frequency span of the spectrum display.

The Spectrum Analyzer block accepts fixed-point input, but converts it to double for display.

This port is unnamed until you enable the RBW port. (since R2024a)

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Complex Number Support: Yes

Specify the resolution bandwidth in Hz through this port. RBW defines the smallest positive frequency that can be resolved by the scope. You can also specify the RBW value using the RBW (Hz) parameter on the Estimation tab.

Dependencies

To enable this port, set RBW (Hz) to Input port on the Estimation tab.

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

Parameters

expand all

This section lists the block parameters for the Spectrum Analyzer block in Simscape™ and RF Blockset. For a complete list of parameters, see Spectrum Analyzer (DSP System Toolbox).

Home Tab

Views

Click the Display Settings button to customize the Display Settings.

Display Settings

The number of input ports to the block, specified as an integer between 1 and 96. To change the number of input ports, drag a new input signal line to the block and the block automatically creates new ports.

Programmatic Use

Block Parameter: NumInputPorts
Type: character vector or string scalar
Values: scalar between 1 and 96

Select this parameter to automatically open the Spectrum Analyzer window when you run the simulation.

Tunable: Yes

Programmatic Use

Block Parameter: OpenAtSimulationStart
Type: logical

Since R2024b

Specify the precision of numeric values in the scope display as a positive integer in the range [1, 15].

Tunable: Yes

Specify the y-axis label in the Spectrum display as a character vector or a string scalar. To display signal units, add (%<SignalUnits>) to the label. When simulation starts, Simulink replaces (%SignalUnits) with the units associated with the signals.

For example, for a velocity signal with units of m/s enter

Velocity (%<SignalUnits>)

Tunable: Yes

Programmatic Use

Block Parameter: YLabel
Type: character vector or string scalar

Since R2026a

Select this parameter to automatically scale the y-axis limits of the spectrum analyzer display. When you clear this parameter, you can manually specify the axes limits using the Y-Limits parameter.

To enable the Color Limits parameter, you must have a DSP System Toolbox license.

Programmatic Use

Block Parameter: AxesScaling
Type: logical

Specify the y-axis limits in the Spectrum Analyzer display as a two-element numeric vector of the form [ymin ymax]. The units of the y-axis limits depend on the Spectrum Unit in the Home tab.

Tunable: Yes

Dependencies

To enable this parameter, clear the Automatically Scale Axes Limits parameter in the Display Settings > Display and Labels. (since R2026a)

Programmatic Use

Block Parameter: YLimits
Type: double

Specify the display title. Enter %<SignalLabel> to use the signal labels in the Simulink model as the axes titles.

Tunable: Yes

Programmatic Use

Block Parameter: Title
Type: character vector or string

Select this check box to show the grid in the Spectrum Analyzer display.

Tunable: Yes

Programmatic Use

Block Parameter: ShowGrid
Type: logical

Specify the font size of the ticks, labels, title, and measurements of the scope as a positive scalar.

Tunable: Yes

Specify the background color in the scope figure.

Tunable: Yes

Specify the background color of the axes.

Tunable: Yes

Specify the color of the labels, grid, and the channel names in the legend.

Tunable: Yes

Specify the channel for which you want to modify the visibility, line color, style, width, and marker properties.

Tunable: Yes

Select this check box to display the channel you have selected. If you clear this check box, the selected channel is no longer visible. You can also click the signal name in the legend to control its visibility.

Tunable: Yes

Specify the line style for the selected channel.

Tunable: Yes

Specify the line width for the selected channel.

Tunable: Yes

Specify whether to display a Line or Stem plot in the Spectrum display.

You can individually control the type of plot for each channel. To control the type of plot for each channel, select the channel and set the Plot Type parameter accordingly. (since R2025a)

Tunable: Yes

Programmatic Use

Block Parameter: PlotType
Type: character vector or string scalar

Specify a data point marker for the selected channel. This parameter is similar to the Marker property for plots. You can choose any of the marker symbols from the drop-down list.

Tunable: Yes

Specify the line color for the selected channel.

Tunable: Yes

Frequency Settings

Specify the sample rate the scope uses in Hz as one of the following:

  • Inherited — Use this option to specify the same sample rate as the input signal.

  • Positive scalar — The sample rate you specify must be at least the sample rate of the input signal.

When the signal frame size changes, the sample rate the scope uses changes accordingly, which in turn updates the frequency span of the spectrum display.

To display the sample rate on the status bar, click the icon in the status bar and select Sample Rate (Fs).

Programmatic Use

Block Parameter: SampleRate, SampleRateSource
Type: double

Tunable: Yes

Specify the scale to display frequencies as Linear or Log. When the frequency span contains negative frequency values, you cannot choose the logarithmic option.

Tunable: Yes

Programmatic Use

Block Parameter: FrequencyScale
Type: character vector or string scalar

Click the Frequency Span drop-down arrow to customize the frequency span settings.

Frequency Span Settings

Select this check box to show the two-sided spectrum. In this view, the spectrum analyzer shows both negative and positive frequencies. When the input signal is complex-valued, you must select this parameter. If you clear this check box, the spectrum analyzer shows a one-sided spectrum with positive frequencies only. In this case, the input signal data must be real valued.

When you clear this check box, the spectrum analyzer uses power folding. The y-axis values are twice the amplitude that they would be if you were to select this parameter, except at 0 and the Nyquist frequency. A one-sided power spectral density (PSD) contains the total power of the signal in the frequency interval from DC to half the Nyquist rate. For more information, see pwelch (Signal Processing Toolbox).

Tunable: Yes

Programmatic Use

Block Parameter: PlotAsTwoSidedSpectrum
Type: logical

Specify the offset to apply to the frequency axis (x-axis) in units of Hz as one of the following:

  • Scalar — Apply the same frequency offset to all channels.

  • Vector — Apply a specific frequency offset for each channel. The vector length must be equal to the number of input channels.

    The overall span must fall within the Nyquist Frequency Interval.

Tunable: Yes

Programmatic Use

Block Parameter: FrequencyOffset
Type: double

Scale

Set the type of spectrum to display as one of these values:

  • Power — Spectrum analyzer shows the power spectrum.

  • Power Density — Spectrum analyzer shows the power spectral density. The power spectral density is the squared magnitude of the spectrum normalized to a bandwidth of 1 Hz.

  • RMS — Spectrum analyzer shows the root mean square of the spectrum. The root-mean-square shows the square root of the mean square. Use this option to view the frequency of voltage or current signals.

Tunable: Yes

Programmatic Use

Block Parameter: SpectrumType
Type: character vector or string scalar

Data Types: char | string

Specify the units in which the spectrum analyzer displays the power values as one of the following:

  • dBm

  • dBV

  • dBuV (since R2023b)

  • Vrms

  • dBm/Hz

Tunable: Yes

Dependencies

The units available depend on the value you choose for the Spectrum Type parameter in the Home tab.

Home tab > Spectrum Type optionAvailable Units
PowerdBm
Power DensitydBm/Hz
RMSdBV, dBuV (since R2023b), Vrms

Programmatic Use

Block Parameter: SpectrumUnits
Type: character vector or string scalar

Click the Scale drop-down arrow to customize the scale options.

Scale Options

Specify the reference load in ohms that the spectrum analyzer uses as a reference to compute the power values.

Tunable: Yes

Dependencies

To enable this parameter, set the Spectrum Type to Power or Power Density in the Home tab.

Programmatic Use

Block Parameter: ReferenceLoad
Type: double

Export

Click this button to save the scope display as an image or a PDF or to print the display.

Since R2026b

Click this button to print the scope window to MATLAB figure.

Click this button to copy the scope display to the clipboard. You can preserve the color in the display by selecting Preserve Colors in the Copy to Clipboard drop down.

When you copy the display to the clipboard using the Copy to Clipboard and the Print options in the Home tab > Export section, select this parameter for the scope to preserve the colors.

To access Preserve Colors, click the drop-down arrow for Copy to Clipboard.

Tunable: Yes

Estimation Tab

Frequency Resolution

Specify the resolution bandwidth in Hz. This parameter defines the smallest positive frequency that can be resolved by the scope. By default, this parameter is set to Auto. In this case, the spectrum analyzer determines the appropriate value to ensure that there are 1024 RBW intervals over the specified frequency span.

If you set this parameter to Input port, you can specify the RBW value through the RBW input port on the block.

If you set this parameter to a numeric value, the value must allow at least two RBW intervals over the specified frequency span. In other words, the ratio of the overall frequency span to RBW must be greater than two:

spanRBW>2

To display this property on the status bar, click the icon in the status bar and select RBW.

Programmatic Use

Block Parameter: RBWSource, RBW
Type: character vector, string scalar, double

Tunable: Yes

Click the Window drop-down arrow to customize the window options.

Window Options

Specify the windowing method to apply to the spectrum. Windowing is used to control the effect of sidelobes in spectral estimation. The window you specify affects the window length required to achieve a resolution bandwidth and the required number of samples per update. For more information about windowing, see Windows (Signal Processing Toolbox).

You can access additional windowing algorithms using DSP System Toolbox.

Tunable: Yes

Programmatic Use

Block Parameter: Window
Type: character vector or string scalar

Select this parameter to maintain the number of samples per update Nsamples at 1024 regardless of the window you select. The RBW value adjusts according to the window you select.

Nsamples=(1Op100)×NENBW×FsRBW,

where:

  • Op is the overlap percentage you specify in the Overlap (%) parameter.

  • Fs is the sample rate you specify in the Sample Rate (Hz) parameter.

  • RBW is the resolution bandwidth you specify in the RBW (Hz) parameter.

  • NENBW is the normalized effective noise bandwidth. For more information, see Normalized Effective Noise Bandwidth (NENBW).

When you clear this parameter, the scope maintains the same RBW value and adjusts the number of samples required per update Nsamples depending on the window you select.

Programmatic Use

Block Parameter: WindowInvariantSamplesPerUpdate
Type: logical

Tunable: Yes

Specify the percentage of overlap between the previous and the current buffered data segments as a scalar in the range [0 100). The overlap creates a window segment that the scope uses to compute a spectral estimate. The value must be greater than or equal to zero and less than 100.

Tunable: Yes

Programmatic Use

Block Parameter: OverlapPercent
Type: double

Averaging

Specify the smoothing method as one of the following:

  • Exponential — The block computes the average over samples weighted by an exponentially decaying forgetting factor. Use the Forgetting Factor parameter to specify the weighted forgetting factor.

  • VBW — The block uses a lowpass filter to smooth the trace and decrease the noise. Use the VBW (Hz) parameter to specify the video bandwidth (VBW) value.

  • Running — Running average of the last Q samples. Use the Spectral Averages parameter to specify Q. (since R2025a)

For more information on the averaging methods, see Averaging Method.

Tunable: Yes

Programmatic Use

Block Parameter: AveragingMethod
Type: character vector or string scalar

Specify the video bandwidth as one of the following:

  • Auto –– The Spectrum Analyzer adjusts the VBW such that the equivalent forgetting factor is 0.9.

  • Input port –– An input port appears on the scope and you can specify the VBW value through this port.

  • Positive scalar –– You specify a positive scalar. The Spectrum Analyzer adjusts the VBW using this value. The value you specify must be less than or equal to Sample Rate (Hz)/2.

For more details on the video bandwidth method, see Averaging Method.

The Spectrum Analyzer shows the VBW value in the status bar at the bottom of the display. To display the VBW value, click the kebab icon in the right most corner of the status bar icon in the status bar and select VBW.

Dependency

To enable this parameter, set Averaging Method to VBW.

Programmatic Use

Block Parameter: VBWSource, VBW
Type: double

Tunable: Yes

Specify the forgetting factor of the exponential weighted averaging method as a scalar in the range [0,1].

Tunable: Yes

Dependency

To enable this parameter, set Averaging Method to Exponential.

Programmatic Use

Block Parameter: ForgettingFactor
Type: double

Since R2025a

Specify the number of spectral averages Q as a positive integer.

The Spectrum Analyzer computes the current power spectrum estimate by computing a running average of the last Q power spectrum estimates.

Dependency

To enable this parameter, set Averaging Method to Running.

Programmatic Use

Block Parameter: SpectralAverages
Type: double

Data Types: double

Measurements Tab

Measurements

The channel for which you need to obtain measurements, specified as a positive integer in the range [1 N], where N is the number of input channels.

Tunable: Yes

Dependencies

To enable this parameter, pass some data through the scope.

Programmatic Use

See MeasurementChannel.

Click the Data Cursors button to enable data cursor measurements. Each cursor tracks a vertical line along the signal. The scope displays the difference between x- and y-values of the signal at the two cursors in the box between the cursors.

Select this parameter to position the cursors on the signal data points.

Tunable: Yes

Programmatic Use

See SnapToData.

Select this parameter to lock the frequency difference between the two cursors.

Tunable: Yes

Programmatic Use

See LockSpacing.

Tunable: Yes

Programmatic Use

See Enabled.

Click the Peak Finder button to enable peak finder measurements. An arrow appears on the plot at each maximum and a Peaks panel appears at the bottom of the scope window.

Specify the maximum number of peaks to show as a positive integer less than 100.

Tunable: Yes

Programmatic Use

See NumPeaks.

Specify the level above which the scope detects peaks as a real scalar.

Tunable: Yes

Programmatic Use

See MinHeight.

Specify the minimum number of samples between adjacent peaks as a positive integer.

Tunable: Yes

Programmatic Use

See MinDistance.

Specify the minimum difference between the height of the peak and its neighboring samples as a nonnegative scalar.

Tunable: Yes

Programmatic Use

See Threshold.

Click the Label Peaks button to label the peaks. The scope displays the labels (P1, P2, …) above the arrows in the plot.

Tunable: Yes

Programmatic Use

See LabelPeaks.

Tunable: Yes

Programmatic Use

See Enabled.

Click the Distortion button to enable distortion measurements. A Distortion panel appears at the bottom of the scope window when you click this button.

Specify the type of distortion measurements data to display as Harmonic or Intermodulation. For more details, see Distortion Measurements.

Tunable: Yes

Programmatic Use

See Type.

Specify the number of harmonics to measure as a positive integer less than or equal to 99.

Tunable: Yes

Dependencies

To enable this parameter, click the Distortion drop-down arrow and select Harmonic.

Programmatic Use

See NumHarmonics.

When you select this parameter, the spectrum analyzer adds numerical labels to harmonics in the spectrum display.

Tunable: Yes

Dependencies

To enable this parameter, click the Distortion drop-down arrow and select Harmonic.

Programmatic Use

See LabelValues.

When you select this parameter, the spectrum analyzer adds numerical labels to the first-order intermodulation product and third-order frequencies in the spectrum analyzer display.

Tunable: Yes

Dependencies

To enable this parameter, click the Distortion drop-down arrow and select Intermodulation.

Programmatic Use

See LabelValues.

Tunable: Yes

Programmatic Use

See Enabled.

Property Inspector Only

Input channel names, specified as a character vector, string, or array. The names appear in the legend, general settings, and in the measurement settings. If you do not specify the names, the scope labels the channels as Channel 1, Channel 2, etc.

Example: ["A","B"]

Dependencies

To enable or disable the legend, click in the spectrum display.

Programmatic Use

Block Parameter: ChannelNames
Type: cell array of character vectors or string array

  • Auto — If you have not specified Title and Y-Label, the scope maximizes all plots.

  • On — The scope maximizes all plots and hides all values in Title and Y-label.

  • Off — The scope does not maximize plots.

Hover over the spectrum analyzer to see the maximize axes button .

Programmatic Use

Block Parameter: MaximizeAxes
Type: character vector or string scalar

Tunable: Yes

  • OnceAtStop — Scale y-axis after simulation completes.

  • Manual — Manually scale y-axis range with the Scale Y-axis Limits toolbar button.

  • Auto — Scale y-axis range during and after simulation.

  • Updates — Scale y-axis after the number of time steps specified in the Number of Updates text box (100 by default). Scaling occurs only once during each run.

Tunable: Yes

Programmatic Use

Block Parameter: AxesScaling
Type: character vector or string scalar

Set this property to delay auto scaling the y-axis.

Tunable: Yes

Dependencies

To enable this property, set Axes Scaling to Updates.

Programmatic Use

Block Parameter: AxesScalingNumUpdates
Type: character vector or string scalar
Values: scalar

More About

expand all

Tips

If you set the Averaging Method to VBW or Exponential, and you introduce NaN or Inf values into the data, the spectrum appears blank. To ignore the NaN or Inf values:

  • In the Home tab > Environment section of the MATLAB toolstrip, click Settings (Gear button).

    In the Workspace section of the Settings dialog box, select the Ignore NaNs when calculating statistics check box.

Algorithms

expand all

Extended Capabilities

expand all

Version History

Introduced in R2017b

expand all

See Also

Objects

Blocks