MATLAB deals only with discrete signals?

I was reading the book "signal processing first" by Mcclellan
I came across article 2.4 (sampling and plotting sinusoids)
Where i read a statement in third line of article. Statement was: " MATLAB deals only with discrete signal" What does that mean?
Can't we use MATLAB for continuous time signals? If not, then what is happening in case of plot(command used to draw graph of continuous time signals)
Does matlab uses interpolation technique then in case of 'plot', since neither computer nor matlab can directly handle continuous time signals as discussed earlier?
Below is a link of Stack overflow question,that also discusses something same
I have also attached a snapshot of wikipedia "polynomial interpolation "

 Accepted Answer

MATLAB operates on digital computers in which all instructions and signals are represented as finite-length binary data: discrete data being operated on by discrete circuits.
Continuous-time signals and analog signals require -- the infinity of the real numbers -- not finite length signals.
You can model continuous-time signals, but you cannot represent them directly or store them. Simulink in particular is well adapted to model continuous-time signals.

6 Comments

Please kindly update your answer to adress all queries of updated question
Can't we use MATLAB for continuous time signals?
No, continuous signals require infinitely precise real numbers. For example to get from 3 to 4, a continuous signal has to pass through a point at which it is exactly Pi in all its uncounted decimal places.
You can approximate continuous signals.
If not, then what is happening in case of plot(command used to draw graph of continuous time signals)
plot() is not used for continuous time signals in MATLAB. Every call to plot must be passed a finite list of finite-length signals (typically IEEE 754 double precision numbers represented in 64 bits)
Every display you are likely to encounter in modern computing, uses small individually-addressible light emitting elements (some old black and white monitors technically a different way.) Graphics systems do not light up "every point" (continuous) between (say) x=1, y=1, and (say) x=3, y=4. Instead they map the data coordinates to physical pixel coordinates, and they light up appropriate individual pixels. The line looks continuous, and looks curved, but only because the pixels are small and close together. When you use a magnifying glass or switch to low resolution mode, then it can become clear that the display is blocky.
Does matlab uses interpolation technique then in case of 'plot',
Yes. Though typically instead of MATLAB itself doing the work, it would send the data coordinates to a system graphics subsystem and let the graphics subsystem do the work. On some CPUs such as the Intel Core-i3, there are literally hardware instructions to do the calculations of which screen pixels to light up with which intensity.
In nutshell, do you mean MATLAB uses interpolation technique for plotting continuous signals using plot command.?
In your comment. In paragraph that is just above wikipedia link, you said "the line looks continuous and curved but only because the pixels are small and close together. When you use a magnifying glass or switch to a low resolution mode,than it can become clear that the display is blocky"
Are you talking here about the graph/wave that we get using plot command.?
The plots are only straight line segments between the points that the user passed into plot(). Only linear interpolation is done.
There some curve drawing operations in MATLAB, such as rectangle(), viscircles() and some of the annotation() requests. MATLAB does not create curve primitives to send to the system graphics for those: instead it approximates the curve internally as a number of straight line segments and sends the straight lines to the system graphics. Typically the result will look like a smooth curve, but if you zoom in enough you can see the straight lines.
I am not sure at the moment how text is implemented.
Markers have mixed implementation. It turns out that most markers are implemented by straight line approximation but a small number are implemented as graphic primitive requests to the system graphics.
Anything based on line drawing in 2d is handled by straight line approximation.
Anything about surfaces in 3d is handled by sending vertex coordinates to the system graphics to handle perspective and fill and alpha blending. But the coordinates sent are based on straight line approximation.
The only true curve primitive that matlab ever sends to the system graphics (at least that I can think of) is potentially text.
Even for things like spline curves, even when system graphics support sending control point coordinates, matlab does straight line approximation and sends the vertices to have straight lines drawn between them.

Sign in to comment.

More Answers (0)

Products

Release

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!