## Function won't show up on plot

Armin Kaufmann

### Armin Kaufmann (view profile)

さんによって質問されました 2019 年 9 月 30 日

### Jyotsna Talluri (view profile)

さんによって 回答されました 2019 年 10 月 3 日
Hi, so I'm supposed to create a rectangular signal (with 1 period) that looks as the screenshot posted: 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:
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....

#### 0 件のコメント

サインイン to comment.

R2019a

## 1 件の回答

### Jyotsna Talluri (view profile)

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);