How to create a pulsing sound/use duty cycle

M
Mason · Mar 11, 2024 · 2K views
Question
Im trying to recreate the busy tone on matlab, the tone will have 60 interruptions per minute (50% duty cycle) and I already have the dual tone frequency set. The issue is I have no idea how to make the audio pause 60 times per minute without a long code or looping. Is there a way to utilize the duty cycle to make this easier or shorter, or do I settle with a loop?     Fs = 8000; %# Samples per second tone1 = 480; %# Tone 1 frequency, in Hertz tone2 = 620; %# Tone 2 frequency, in Hertz nSeconds = 2; %# Duration of the sound y = sin(linspace(0, nSeconds*tone1*2*pi, round(nSeconds*Fs)))... % Dual tone frequency + sin(linspace(0, nSeconds*tone2*2*pi, round(nSeconds*Fs))); %...  
Expert Answer
Profile picture of John Michell
John Michell PhD Expert
Answered Aug 17, 2026

It seems that nSeconds should be 0.5s. Each pause should be also 0.5s. Thus it repeats 60 time in a min.

 

Fs = 8000;      %# Samples per second
tone1 = 480;    %# Tone 1 frequency, in Hertz
tone2 = 620;    %# Tone 2 frequency, in Hertz
nSeconds = 0.5;   %# Duration of the sound
ns = round(nSeconds*Fs);
t = (0:ns-1)'/Fs;

y = sin(2*pi*tone1*t)...    % Dual tone frequency
  + sin(2*pi*tone2*t); 

y = [y; zeros(ns,1)];       % add pause

y = repmat(y, 60, 1);       % repeat 60 times

plot((0:length(y)-1)/Fs, y)

 

Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!