Matlab Code for Square wave
34 views (last 30 days)
Show older comments
Danish Ali
on 21 Nov 2014
Commented: shreyas kulkarni
on 7 Jun 2019
Hi,
I have to generate a square wave like the one shown in the fig below. Can any one please indicate the appropriate code for that?
Thanks,
4 Comments
shreyas kulkarni
on 7 Jun 2019
function [z t] = square(n1,n2)
% n1=2 give similar value
% n2=4 give this value
z=[];
t=1:1:n2
x= [];
for i=1:5
for t1= 0.01:0.01:n1
a=1
z=[z a];
x=[x t1]
end
for t2=n1+0.01:0.01:n2
a=-1
z=[z a];
x=[x t2]
end
t=1:0.01:n2;
x=1:0.01:n2;
plot(z);
end
Accepted Answer
Image Analyst
on 22 Nov 2014
How about repmat()? One of your toolboxes may also have a function.
9 Comments
Image Analyst
on 22 May 2017
It's basically the same, you just have finer x resolution so when plotted the slopes from low to high appear steeper. Either way, they're both square waves with instantaneous jumps, regardless of how they look while plotted.
Naga Sai
on 23 May 2017
thank your sir sir pl help how to generate a square wave without using any functions of matlab with basic functions only
More Answers (2)
Ridwan Maassarani
on 8 Feb 2016
Edited: Ridwan Maassarani
on 8 Feb 2016
% endCan it be done with this code ?
t = n*T:1:((n+1)*T);
%lengtht = length(t);
% Define x(t) and plot
if (mod(n,2) == 0)
%number is even
x = 1;
else
%number is odd
x = -1;
end
plot(x)
set(gcf, 'Units', 'Normalized', 'Outerposition', [0, 0, 1, 1]);
17 Comments
Image Analyst
on 8 Jun 2017
Please give the link to your source code so I can compare your MATLAB code to the original, which presumably is in pseudocode or another language.
Daniel Robin
on 13 Mar 2019
The following square wave function can be used just like sin(x) providing a phase argument and duty-cycle and getting a signal in the range -1 to 1 accordingly.
function y = square(x, D)
r = mod(x/(2*pi), 1); % generate a ramp over every cycle
y = 1 - 2*(r > D); % output result from -1 to 1
end
0 Comments
See Also
Categories
Find more on Logical 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!