Manipulate amplitude without using linspace
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I have a signal which I converted to a square wave however, the amplitude needs to be set in a range of -2 to 1 without using linspace. Here is the code I have so far
t=0:0.1:2*pi
x_t1=sin(2*pi*t)+3*cos(6*pi*t);
x_t=square((x_t1/0.5),25)-1;%creates square wave with a period of 0.5 and duty cycle of 25 percent, subtracting 1 makes amplitude -2 to 0
plot(x_t)
I know the square function automatically makes the amplitude range -1 to 1 but I am stuck on how else to manipulate the code. Thank you for the help
0 Commenti
Risposta accettata
Adam Danz
il 23 Gen 2021
Modificato: Adam Danz
il 23 Gen 2021
Since square returns values in the range of [-1,1], rescaling to [-2,1] is as easy as multiplying by 1.5 and subtracting 0.5 which is ~4x faster than rescale().
t=0:0.1:2*pi;
x_t1=sin(2*pi*t)+3*cos(6*pi*t);
x_t=square((x_t1/0.5),25)*1.5-.5;
% ^^^^^^^
plot(x_t)
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!