I cant generate a square wave in matlab using the square wave command

19 次查看(过去 30 天)
hello, i tried to create a square wave using the following command:
t = 0:0.001:0.1; y = square(2*pi*100*t,50); plot(t,y); axis([0 0.1 -1.5 1.5]); xlabel('Seconds'); ylabel('Amplitude');
i keep getting an error with the square wave:
error message: Error in Untitledsqwave (line 2) y = square(2*pi*100*t,50);
is there an error because i dont have the signal processing toolbox. and what command can i use to see if i have the signal processing toolbox.
thanks

回答(3 个)

Dr. Seis
Dr. Seis 2012-5-16
If you dont have the Signal Processing Toolbox, will the following work as an alternative:
y = sign(sin(2*pi*100*t));
  5 个评论

请先登录,再进行评论。


Wayne King
Wayne King 2012-5-16
You can enter
>>ver
at the command line to see what is installed. If you see the Signal Processing Toolbox listed try:
license('test','signal_toolbox')
to see if you have a license checked out

Daniel Shub
Daniel Shub 2012-5-16
You can get similar functionality with
square = @(M, N, duty)repmat([ones(floor(N/duty), 1); -ones(ceil(N/duty), 1)], M, 1);
where M is the number of periods, N is the samples per period, and duty is the duty cycle.
  2 个评论
Dr. Seis
Dr. Seis 2012-5-16
I wasn't able to get similar functionality without some modifications. I.e.,
squarez = @(M, N, duty)repmat([ones(floor(N*duty/100), 1); -ones(ceil(N*(100-duty)/100), 1)], M, 1);
Daniel Shub
Daniel Shub 2012-5-18
@Elige, you are correct. Thank you for the fix, my answer is sloppy and wrong.

请先登录,再进行评论。

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by