step amplitude change in a sine wave code Matlab
2 views (last 30 days)
Show older comments
Macyln Chingwena
on 29 Jul 2020
Answered: Macyln Chingwena
on 29 Jul 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 Comments
Accepted Answer
Sriram Tadavarty
on 29 Jul 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
More Answers (1)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!