How to vary pulse frequency smoothly
古いコメントを表示
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 件)
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.
カテゴリ
ヘルプ センター および File Exchange で Signal Generation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

