step amplitude change in a sine wave code Matlab
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Macyln Chingwena
il 29 Lug 2020
Risposto: Macyln Chingwena
il 29 Lug 2020
Hello. How do i create a step change in the amplitude of a sine wave. This is the code i have thus far:


I want to change the amplitude from 5 to say 10 after a few cycles like in the top fgure. Thanks for the help in advance.
0 Commenti
Risposta accettata
Sriram Tadavarty
il 29 Lug 2020
Hi Macyln,
I am not exactly sure as what you are looking for. Based on the figure, i see that you wanted to have different levels of sine output at different times.
Here is a small script that can help you, if thats the case:
clear all
Ts = 1e-6;
fundamental_frequency = 50;
fundamental_period = 1/fundamental_frequency;
t = 0:Ts:(fundamental_period*10-Ts);
threshold = t(floor(length(t)/2)); % Half the cycles
% You can threshold with the time index directly or for 100 samples as such, use t(100)
index = t < threshold;
v_ref_A = zeros(size(t,1),1);
v_ref_A(index) = 5*sin(2*pi*fundamental_frequency*t(index));
v_ref_A(~index) = 10*sin(2*pi*fundamental_frequency*t(~index));
plot(t,v_ref_A)
Note, this can be extended with multiple thresholds. I have provided only for a half the length cycle.
Please let me know, if this is not something you are after.
Hope this helps.
Regards,
Sriram
Più risposte (1)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!