Plotting square wave in matlab
조회 수: 61 (최근 30일)
이전 댓글 표시
I dont know why but MATLAB is adding a rise time while plotting the square wave.
How to stop it from doing so?
I want perfect square wave, how can I achieve the same?
The code and png of figure is attached below.
Thanks in advance
Aksh
t = linspace(0,10e-9);
x = square(t*2*pi/(10e-9));
Y_max=x*370.0;
Y_min=x*323.4;
hold on
plot(t,Y_max,'LineWidth',3,'color',[203/255;1/255;98/255]);
plot(t,Y_min,'LineWidth',3,'color',[203/255;1/255;98/255]);
hold off
댓글 수: 0
채택된 답변
Cris LaPierre
2021년 1월 7일
편집: Cris LaPierre
2021년 1월 7일
This is because your x value is different for the point on the bottom compared to the point on top. Your x axis range is so small, that you are able to see this difference (=1.0101e-10).
I guess technically, it has more to do with the ratio of to the range of x. You could try adding more data points to t to make it less apparent.
t = linspace(0,10e-9,1000);
x = square(t*2*pi/(10e-9));
Y_max=x*370.0;
Y_min=x*323.4;
hold on
plot(t,Y_max);
plot(t,Y_min);
댓글 수: 1
Cris LaPierre
2021년 1월 7일
추가 답변 (1개)
William
2021년 1월 7일
Yes, the function square(x) returns a unique value, either +1 or -1, for each vallue of x. There is no value of x for which it returns both +1 and -1, so when you plot sin(x) vs (x), there is no value of x for which the plot will produce a line that is exactly vertical. In order to produce such a graph, you need to generate a data set in which there are two identical x-values at each transition, with one of them having a corresponding y-value of -1 and the other having a y-value of +1.
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!