step amplitude change in a sine wave code Matlab
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Sriram Tadavarty
2020-7-29
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
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!