Function won't show up on plot

1 次查看(过去 30 天)
Hi, so I'm supposed to create a rectangular signal (with 1 period) that looks as the screenshot posted:graph.png
where I have 4 input parameters: "T" as the period input in seconds, "Ti" as the duty cycle input in seconds too, H as the "High" - Level of the signal and L as the "Low" - Level of the signal.
So, I created a function to achieve that:
function [yg, t] = Task1Try2(T,Ti,H,L,N)
yges=L:H;
for t=1:T
if t<Ti
yges=ones*H
else
yges=ones*L
end
end
yg=yges;
plot(t,yg);
title("Muster");
xlabel("Zeit in S");
ylabel("Amplitude");
grid on
axis([0,T,0,5]);
end
By the way idk how to put matlab code in here as smooth in those "boxes", feel free 2 let me know.
I have a suspicion that the problem is that I do not assign each "t" value with a proper "y"/"yges" value, but how do I get that done? I don't want the Y values changed by the t value so....
Thanks in advance!

回答(1 个)

Jyotsna Talluri
Jyotsna Talluri 2019-10-3
For creating the rectangular pulse waveform, there is an inbuilt function phased.RectangularWaveform in Phased Array System Toolbox .You can try using that
waveform=phased.RectangularWaveform('PulseWidth',Ti,'PRF',1/T,'OutputFormat','Pulses','NumPulses',N);
y=waveform();
y=(b-a)*y;
du = N*1/waveform.PRF;
tsam = du*waveform.SampleRate;
t = unigrid(0,1/waveform.SampleRate,du,'[)');
plot(t.*1000,real(y)+a);
Refer to the below link for more information

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by