How to vary pulse frequency smoothly

조회 수: 6 (최근 30일)
優大
優大 2024년 12월 5일
댓글: 優大 2024년 12월 7일
I have created a 1000 Hz pulse wave in Simulink using the Repeating Sequence Stair block. How can I make this pulse wave vary sinusoidally between 500Hz and 1500Hz?

답변 (1개)

Shubham
Shubham 2024년 12월 5일
편집: Shubham 2024년 12월 5일
HI @優大,
As per my understanding, you are trying to create a pulse wave with a frequency that varies sinusoidally between 500Hz and 1500Hz. You're currently using a Repeating Sequence Stair block for creating a 1000 Hz pulse wave.
Here is how you can achieve your goal using MATLAB Function block:
  • Use a MATLAB Function block: This block will allow you to generate a pulse wave with a frequency that varies sinusoidally. Here's a sample code snippet for the function:
function y = pulse_wave(t, freq)
% Generate a pulse wave with a frequency that varies sinusoidally
% t: Current time (input from Clock block)
% freq: Sinusoidal frequency input (in Hz)
T = 1 / freq; % Calculate the period
y = mod(t, T) < (T / 2); % Generate a 50% duty cycle pulse wave
end
  • Add a Clock Block to provide the current simulation time
  • Add a Sine Wave Block to generate the sinusoidal frequency variation. Configure its parameters: Amplitude: 500 (modulation range of ±500 Hz), Bias: 1000 (base frequency of 1000 Hz) and Frequency: (2*pi* 0.1) (0.1 Hz modulation speed)
  • Connect the output of the Clock block to the first input of the MATLAB Function block.
  • Connect the output of the Sine Wave block to the second input of the MATLAB Function block.
By following these steps, you will create a pulse wave whose frequency varies sinusoidally between 500 Hz and 1500 Hz.
For more information on MATLAB Function block, refer to the following documentation link:
Hope this helps.
  댓글 수: 3
Shubham
Shubham 2024년 12월 6일
It may be due to the high frequency and the sample time of the simulation. If the sample time is not small enough to capture the high-frequency transitions accurately, the output may appear distorted.
優大
優大 2024년 12월 7일
Thank you. I'll try it.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Sources에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by