step amplitude change in a sine wave code Matlab
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello. How do i create a step change in the amplitude of a sine wave. This is the code i have thus far:![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/338482/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/338482/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/338485/image.png)
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!