How to create a pulsing sound/use duty cycle
    5 views (last 30 days)
  
       Show older comments
    
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))); %...
0 Comments
Accepted Answer
  Chunru
      
      
 on 15 Nov 2023
        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)
More Answers (0)
See Also
Categories
				Find more on Audio I/O and Waveform Generation in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!