150Hz Sine wave in MATLAB simulink
조회 수: 2 (최근 30일)
이전 댓글 표시
When I feed 150 Hz to a sine wave block with scope settings of 0.04 seconds of time span and 0.00166 as sample time, my output wave looks like a triangle wave rather than a sine wave. How do I make it appear as a sine wave?
댓글 수: 0
채택된 답변
Sam Chak
2024년 6월 25일
In short, your sinusoidal signal is undersampled. There are only 5 samples in one cycle.
ts = 1/600 % sample time
t = 0:ts:0.04;
f = 150;
P = 1/150 % Period (1 cycle)
sam = P/ts + 1 % number of samples in 1 cycle
y = sin(2*pi*f*t);
plot(t, y), grid on, xlabel('t')
However, the curve looks smoother if you decrease the sample time by 100 times, as there are 401 samples (> 360 samples) in 1 cycle.
ts = ts/100 % sample time
sam = P/ts + 1 % number of samples in 1 cycle
t = 0:ts:0.04;
y = sin(2*pi*f*t);
plot(t, y), grid on, xlabel('t')
댓글 수: 0
추가 답변 (1개)
halleyhit
2024년 6월 25일
Hi Manuprabha, please make sure you feed 150*2*pi to the block, because the unit is rad/s. Then, please use a smaller sample time, and you will have a wave more like sine.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!