Display vectors or arrays
The dsp.ArrayPlot object displays vectors or arrays where the data is uniformly spaced along the x-axis.
To display vectors or array on the Array Plot:
Create the dsp.ArrayPlot
object and set its properties.
Call the object with arguments, as if it were a function.
scope = dsp.ArrayPlot
creates an Array Plot object,
scope
.
scope = dsp.ArrayPlot(Name,Value)
sets properties using one or
more name-value pairs. Enclose each property name in single quotes. For example,
scope = dsp.ArrayPlot("NumInputPorts",3)
Unless otherwise indicated, properties are nontunable, which means you cannot change their
values after calling the object. Objects lock when you call them, and the
release
function unlocks them.
If a property is tunable, you can change its value at any time.
For more information on changing property values, see System Design in MATLAB Using System Objects (MATLAB).
NumInputPorts
— Number of input ports1
(default) | integer between [1, 96]Number of input ports, specified as a positive integer. Each signal coming through a separate input becomes a separate channel in the scope. You must invoke the scope with the same number of inputs as the value of this property.
XDataMode
— Source of the x-data spacing"Sample increment and X-offset"
(default) | "Custom"
Specify whether to use the SampleIncrement
and XOffset
property values to determine spacing, or specify your own custom spacing. If you
specify "Custom"
, you also must specify the CustomXData
property values.
Open the Plot tab, click Settings, and set X-Data Mode.
Data Types: char
| string
CustomXData
— X-data valuesSpecify the desired x-data values as a row or column vector of length equal to the frame length of the inputs. If you use the default (empty vector) value, the x-data is uniformly spaced and set to (0:L–1), where L is the frame length.
Example: scope =
dsp.ArrayPlot("XDataMode","Custom","CustomXData",logspace(0,log10(44100/2),1024))
Open the Plot tab, click Settings, and set X-Data Mode to Custom and specify Custom X-Data.
To use this property, set XDataMode
to "Custom"
.
SampleIncrement
— Sample increment of input1
(default) | finite numeric scalarSpecify the spacing between samples along the x-axis as a finite numeric scalar. The input
signal is only y-axis data. x-axis data is set automatically based on the
XOffset
and
SampleIncrement
properties. For example, when Xoffset
is 0 and
SampleIncrement
is 1, the x-data for the input signal is set to 0, 1, 2, 3,
4, etc. If you set SampleIncrement
to 0.25, the x-axis data becomes 0, 0.25,
0.5, 0.75, 1, etc.
Tunable: Yes
Open the Plot tab, click Settings, and set Sample Increment.
XOffset
— Display offset of x-axis0
(default) | scalarSpecify the offset to display on the x-axis. This property is a scalar
Tunable: Yes
Open the Plot tab, click Settings, and set X-Offset.
XScale
— Scale of x-axis"Linear"
(default) | "Log"
Specify whether the scale of the x-axis is
"Linear"
or "Log"
. If XOffset
is a negative value, you cannot set this property to
"Log"
.
Tunable: Yes
Open the Plot tab, click Settings, and set XScale.
Data Types: char
| string
YScale
— Scale of y-axis"Linear"
(default) | "Log"
Specify whether the scale of the y-axis is
"Linear"
or "Log"
.
Tunable: Yes
Open the Plot tab, click Settings, and set YScale.
Data Types: char
| string
PlotType
— Control type of plot"Stem"
(default) | "Line"
| "Stairs"
Specify the type of plot to use for all the input signals displayed in the scope window:
"Stem"
– The scope displays the input signal as circles
with vertical lines extending down to the x-axis at each of
the sampled values. This option is similar to the stem
function.
"Line"
– The scope displays the input signal as lines
connecting each of the sampled values. This option is similar to the line
or plot
functions.
"Stairs"
– The scope displays the input signal as a
stair-step graph. A stair-step graph is made up of only horizontal lines and
vertical lines. Each horizontal line represents the signal value for a discrete
sample period and is connected to two vertical lines. Each vertical line
represents a change in values occurring at a sample. This option is similar to
the stairs
function. Stair-step
graphs are useful for drawing time history graphs of digitally sampled data.
Open the Settings and set Plot Type.
Data Types: char
| string
AxesScaling
— Axes scaling mode"OnceAtStop"
(default) | "Auto"
| "Manual"
| "Updates"
Specify when the scope scales the axes. Valid values are:
"Auto"
— The scope scales the axes as needed to fit the
data, both during and after simulation.
"Manual"
— The scope does not scale the axes
automatically.
"OnceAtStop"
— The scope scales the axes when the
simulation stops.
"Updates"
— The scope scales the axes once and only once
after 10 updates.
Hover over the array plot to see the zoom , pan
, and autoscale
buttons. You can also zoom and pan using your
mouse.
Data Types: char
| string
Name
— Window name'Array Plot'
(default) | character vector | string scalarSpecify the name of the scope. This name appears as the title of the scope's figure window. To
specify a title of a scope plot, use the
Title
property.
Data Types: char
| string
Position
— Scope window position in pixels[left bottom width height]
Specify, in pixels, the size and location of the scope window as a four-element vector of the form
[left bottom width height]
. By default, the scope window appears in the center of your screen
with a width of 800
pixels and height of 450
pixels. The default values for
this property may change depending on your screen resolution.
MaximizeAxes
— Maximize axes control"Auto"
(default) | "On"
| "Off"
Specify whether to display the scope in maximized-axes mode. In this mode, the axes are expanded to fit into the entire display. To conserve space, labels do not appear in each display. Instead, tick-mark values appear on top of the plotted data. You can select one of the following options:
"Auto"
— The axes appear maximized in all displays only
if the Title
and YLabel
properties are empty for every display. If you enter any
value in any display for either of these properties, the axes are not maximized.
"On"
— The axes appear maximized in all displays. Any
values entered into the Title
and
YLabel
properties are hidden.
"Off"
— None of the axes appear maximized.
Tunable: Yes
Hover over the array plot to see the maximize axes button .
Data Types: char
| string
Title
— Display title''
(default) | character vector | string scalarSpecify the display title as a character vector or string.
Tunable: Yes
Open the Plot tab, click Settings, and set Title.
Data Types: char
| string
ShowLegend
— Show legendfalse
(default) | true
To show a legend with the input names, set this property to
true
.
From the legend, you can control which signals are visible. This control is equivalent to changing the visibility in the Style dialog box. In the scope legend, click a signal name to hide the signal in the scope. To show the signal, click the signal name again. To show only one signal, right-click the signal name. To show all signals, press Esc.
The legend only shows the first 20 signals. Any additional signals cannot be viewed or controlled from the legend.
Tunable: Yes
On the Plot tab, click Legend.
Data Types: logical
ChannelNames
— Channel namesSpecify the input channel names as a cell array of character vectors. The names
appear in the legend, Style dialog box, and
Measurements panels. If you do not specify names, the channels
are labeled as Channel 1
, Channel 2
, etc.
Tunable: Yes
To see channel names, set ShowLegend
to
true
.
Data Types: char
ShowGrid
— Display gridtrue
(default) | false
Set this property to true
to show grid lines on the
plot.
Tunable: Yes
Open the Plot tab, click Settings, and select Grid.
PlotAsMagnitudePhase
— Plot signal as magnitude and phasefalse
(default) | true
When you set this property to true
, the scope plots the
magnitude and phase of the input signal on two separate axes within the same active
display. When you set this property to false
, the scope plots the
real and imaginary parts of the input signal on two separate axes within the same
active display.
This property is useful for complex-valued input signals. Turning on this property affects the phase for real-valued input signals. When the amplitude of the input signal is nonnegative, the phase is 0 degrees. When the amplitude of the input signal is negative, the phase is 180 degrees.
Tunable: Yes
On the Plot tab, select the Magnitude Phase button.
XLabel
— x-axis label""
(default) | character vector | string scalarSpecify the text for the scope to display below the x-axis.
Tunable: Yes
Open the Plot tab, click Settings, and set XLabel.
Data Types: char
| string
YLabel
— y-axis label"Amplitude"
(default) | character vector | string scalarSpecify the text for the scope to display to the left of the y-axis.
Tunable: Yes
This property applies only when PlotAsMagnitudePhase
is
false
. When PlotAsMagnitudePhase
is
true
, the two y-axis labels are read-only
values. The y-axis labels are set to
"Magnitude"
and "Phase"
for the magnitude
plot and the phase plot, respectively.
Open the Plot tab, click Settings, and set YLabel.
Data Types: char
| string
YLimits
— y-axis limits[-10,10]
(default) | [ymin, ymax]
Specify the y-axis limits as a two-element numeric vector,
[ymin, ymax]
.
If PlotAsMagnitudePhase
is false
, the
default is [-10,10]
. If PlotAsMagnitudePhase
is true
, the default is [0,10]
.
Tunable: Yes
When PlotAsMagnitudePhase
is true
, this
property specifies the y-axis limits of only the magnitude plot.
The y-axis limits of the phase plot are always
[-180,180]
.
Open the Plot tab, click Settings, and set Y-Axis Limits as a two-element numeric vector.
scope(
displays the signal in the Array Plot.signal
)
scope(signal1,signal2,...,signalN)
displays multiple signals in the Array Plot. The signals
must have the same frame length, but can vary in number of channels. You must set the NumInputPorts
property to enable multiple input signals.
signal
— Input signal or signals to visualizeSpecify one or more input signals to visualize in the dsp.ArrayPlot
. Signals can have a
different number of channels, but they must have the same frame length.
Example: scope(signal1, signal2)
To customize the style of signals on the array plot, open the Settings and use the bottom row of options to select a signal and modify the style, width, color, and marker type.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
To use an object function, specify the object as the first input argument. For example, to
release system resources of an object named obj
, use this syntax:
generateScript | Generate MATLAB script to create scope with current settings |
Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the object with the equivalent step
syntax. For example, myObject(x)
becomes step(myObject,x)
.
Create a new Array Plot object.
scope = dsp.ArrayPlot;
Configure the properties of the Array Plot object for a Gaussian distribution.
scope.YLimits = [0 1]; scope.XOffset = -2.5; scope.SampleIncrement = 0.1; scope.Title = 'Gaussian distribution'; scope.XLabel = 'X'; scope.YLabel = 'f(X)';
Call the Array Plot object to plot a Gaussian distribution.
scope(exp(-(-2.5:.1:2.5).*(-2.5:.1:2.5))')
Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the object with the equivalent step
syntax. For example, myObject(x)
becomes step(myObject,x)
.
View least mean squares (LMS) adaptive filter weights on the Array Plot figure. Watch the filter weights change as they adapt to filter a noisy input signal.
Create an LMS adaptive filter System object.
lmsFilter = dsp.LMSFilter(40,'Method','Normalized LMS','StepSize',0.002);
Create and configure a dsp.AudiFileReader System object to read the input signal from the specified audio file.
signalSource = dsp.AudioFileReader('dspafxf_8000.wav',... 'SamplesPerFrame',40, ... 'PlayCount',Inf,... 'OutputDataType','double');
Create and configure a dsp.FIRFilter System object to filter random white noise, creating colored noise.
firFilter = dsp.FIRFilter('Numerator',fir1(39,0.25));
Create and configure an Array Plot System object to display the adaptive filter weights.
scope = dsp.ArrayPlot('XLabel','Filter Tap', ... 'YLabel','Filter Weight', ... 'YLimits',[-0.05 0.2]');
Plot the LMS filter weights as they adapt to a desired signal. Read from the audio file, produce random data, and filter the random data. Update the filter weights and plot the filter weights.
numplays = 0; while numplays < 3 [y, eof] = signalSource(); noise = rand(40,1); noisefilt = firFilter(noise); desired = y + noisefilt; [~, ~, wts] = lmsFilter(noise,desired); scope(wts); numplays = numplays + eof; end
Usage notes and limitations:
Supports MEX code generation by treating the calls to the object as extrinsic. Does not support code generation for standalone applications.
See System Objects in MATLAB Code Generation (MATLAB Coder).
dsp.DynamicFilterVisualizer
| dsp.LogicAnalyzer
| dsp.MatrixViewer
| dsp.SpectrumAnalyzer
| dsp.TimeScope
A modified version of this example exists on your system. Do you want to open this version instead?
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.