dsp.SineWave in Matlab function block not generating sine wave on the scope

18 views (last 30 days)
When the plot function is called it generates the desired wave. However when a scope is used to observe this , constant values are rather observed. The same output is observed when the dispaly block is used - all values are generated at once even for a single step. What could I be doing wrongly here?
It also takes a long time to complete simulation when used in Simulink compared to Matlab.
See below the code.
function y = fcn()
sine1 = dsp.SineWave('Amplitude',1,'Frequency',60,'PhaseOffset',0,'SamplesPerFrame',1000,'OutputDataType','double');
y = sine1();
The idea is to later make the amplitude an argument(input) to the block so it can be varied.The application will be to make a closed loop control that uses over modulaton of SPWM..

Answers (1)

Abderrahim. B
Abderrahim. B on 28 Jul 2022
Why do not you use sinWave block available in dsp system simulink library instead of writing a MATLAB function for that ? You will be able to change block parameters Check out the link below to learn about dsp system toolbox signal generation capabilities:
Hope this helps
Andrew on 4 Aug 2022
Thanks Sam.
Your solution gave a clue.
Using the Sinewave block from simulink & product block together with a constant/ varying input works.

Sign in to comment.


Find more on Get Started with DSP System Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!