Hello, my name is Mike McLernon.
I'm a product manager at MathWorks.
And I've been working with Simulink for 20 years.
Let's talk about the top reasons why you would use Simulink
for your wireless designs.
The first reason is that the Simulink Simulation Engine
inherently keeps track of time.
If you were in MATLAB, you'd have to manage time yourself,
and that is not trivial.
Simulink does it for you.
While Simulink takes care of all that housekeeping
behind the scenes, you have lots of control
over how you want to run that simulation-- forward,
backward one step at a time, or with a variety of acceleration
techniques.
A side benefit of Simulink is that you can see the system
architecture at a glance because of the block diagram
environment.
This is much harder to see in code.
This environment also enables you
to create a hierarchy of functionality
where many small operations can be aggregated into one Simulink
block.
Simulink enables you to work with signals of different rates
in the same model.
It also enables you to easily and graphically inspect
many attributes of your system, like those different rates
or signal dimensions or data types.
Once again, this is much harder to do in code.
In the model pictured here, the different colors
represent different rates in the system.
The red blocks run at the fastest rate.
So if you want to improve model execution speed,
you would look there first.
Reason number 2, Simulink enables
you to model multiple simulation domains together.
Designing a wireless system often
involves multiple domains.
You may well be working both in digital baseband
and in RF or analog.
You may even need to include state machines
or some other discrete event system in your wireless design.
When you simulate these systems, the simulations
could be on different product platforms, which may or may not
work well together.
This could be a recipe for disaster.
How much cleaner is it to do this
in one integrated environment?
Simulink offers a platform where all of these
can be simulated at once.
You can choose from hundreds of blocks
in different domains, which you can mix and match.
The library is indeed rich.
First with math, with simple primitives
like the unit conversions and transcendental functions,
signal processing with beefier algorithms,
like spectral analysis and digital filter design,
communication systems with PSK and QAM modulators,
and coders, channel models for VER simulations,
and synchronization algorithms, RF with amplifiers, mixers,
up-and-down converters, and filters
defined by S-parameters, phased array
with linear, circular, rectangular, and custom arrays,
and many types of beam formers, even state machines
that can graphically show transitions
from one state to the next.
Here's the third reason--
MATLAB and Simulink work together.
You can run MATLAB code inside of Simulink.
So you can start coding your algorithms in MATLAB
and move to Simulink to integrate RF, baseband,
and antenna designs together on the road to hardware.
And if you've already written dozens or hundreds
of your own MATLAB-based functions,
you can easily integrate them into Simulink models.
No need to throw anything away.
And if you've done the same with C or C++,
you can use another API to integrate that code
into your Simulink models as well.
And what if you're running dozens or hundreds of tests
and you need to run multiple models unattended?
You can control which models run when with just a bit of MATLAB
scripting code.
Lastly, you can start to move from design to implementation
to be hardware ready all in one platform.
Use buffers, delays, and control logic
to emulate hardware behavior in your simulation.
Convert your designs to fixed point.
And lastly, with a push of a button,
generate HDL or C and C++ code for hardware,
software co-design.
You can also determine which block in a model
corresponds to a given line of generated code, and vice versa.
This makes traceability a straightforward exercise.
In a very real sense, with Simulink, the simulation
is the system.
The behavioral model tracks directly
to the code deployed on hardware.
And that behavioral model can be thoroughly tested
before you ever have to commit to hardware.
OK, enough slideware for now.
Let's look at Simulink in action by opening up, investigating,
and running the example, the model that you have been
viewing through this video.
OK, so here's the Simulink model that we've
been looking at thus far.
It's an OQPSK transceiver design, fairly straightforward.
So the first thing that I want to draw your attention to
is the very first block in the model, a Bernoulli binary bit
generator.
If we open up the dialog for this block,
we see various parameterizations.
But one thing I would draw your attention to
is the sample time and these samples per frame.
You'll note that these are variables.
So something that's very convenient to do
is to define a variable in the MATLAB Base Workspace.
And then the Simulink model will simply pick it up and use it.
So it's a very, very useful feature.
At any rate, this block establishes the sample time
for the model, and then it simply propagates
all throughout the rest of the model--
very, very convenient.
So we spoke also earlier about the viewing of certain signal
and block attributes.
So we can do that right now by looking at the information
overlays.
So we'll take a look at signal dimensions.
And we will also take a look at sample time colors.
So the model is performing the calculations
to assess and portray all of these signal attributes.
And so now we can see that the fastest blocks in the model
are running in red.
And there are other rates in the model as well-- green, blue.
The yellow signifies a multi-rate block.
So if you want to enhance performance in the model,
you would look for those fastest running blocks, the red ones,
and go there.
And you also see that you can see the signal dimensions going
into and out of each block.
So that's very, very convenient as well.
Oftentimes, errors can occur with incorrect signal
dimensions.
And it's very easy to see where those errors might happen
through this visualization.
So also, I'd want to draw your attention
to the different domains that are represented in this model.
First of all, this baseband transmitter,
that's just digital baseband.
It's feed-forward, very straightforward.
But if we look at the lower right, this direct conversion
receiver, this is an RF block where
we have an S-parameter-based filter, an amplifier,
a modulator, a couple of more amplifiers.
So this all happens in the analog domain.
And there is both signal forward propagation and backwards
propagation to model exactly what
goes on in a real RF circuit.
Also, something to draw your attention to
is this MATLAB function block.
If I double-click on that, we actually see MATLAB code.
So what happens is that I wrote some MATLAB code.
And it just integrated it right into the Simulink model.
And it was very, very straightforward.
Now let's also take a look at the spectrum analyzer--
very, very handy.
We can actually run the model from the plot itself.
So just click on the Start button.
And so now we do see the spectrum.
We see noise on the right and left edges
of the plot, and then the characteristics,
sine x over x hump, of the OQPSK signal and noise.
And then we also note on the left-hand side
that the chip error rate is being calculated along the way.
So very, very powerful modeling environment.
If this video is motivational and you want to learn more,
you can step through the Simulink on-ramp.
In two hours, you'll be up and running.
If you want to do a bit of browsing first, investigate
some of the product documentation,
it is detailed, comprehensive, and offers thousands
of examples to speed your work.
If you want to dive more deeply into a topic of your choice,
watch a video or two.
They cover a range of topics--
from how to accomplish a specific Simulink
task to modeling the entire physical layer of a 5G NR
system.
And if you want to be coached in an application area or two,
review some in-person training options,
you will sit with an expert for a day or two
to broadly explore subjects like signal
processing, communications, and hardware implementation.
Thank you for your time.
I hope you start soon on your Simulink journey.