
Create a binary signal
13 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Rafael Rafael
le 21 Mar 2019
Réponse apportée : chourouk
le 31 Jan 2023
Hello, anyone have any ideia how can I make this signal in a plot? The time must be between -3 and 3 with a range of 1ms.

Thanks
0 commentaires
Réponse acceptée
Adam Danz
le 22 Mar 2019
Modifié(e) : Adam Danz
le 22 Mar 2019
This solution uses the square() funciton which converts a sin wave into a square wave with normalized values between [-1:1]. All you have to do is create a sin wave that fits your description, convert it to square wave, and then vertically scale it.
% Set params
width = 1.0; % Width of each step
height = 1.0; % Height of step (max - min)
base = 0.0; % min value
start = -3; % starting x value
stop = 3; % ending x value
res = 0.001; % resolution
horzShift = .5; % horizontally shift (negative = leftward)
% Compute square wave
x = start : res : stop;
y = (square(sin((x+horzShift)/width*pi))+1)/2*height + base;
% figure
plot(x,y, 'k-', 'linewidth', 3)
ylim([base - 1, base+height+1])

2 commentaires
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Multirate Signal Processing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!