How to create a pulsing sound/use duty cycle

6 vues (au cours des 30 derniers jours)
Mason
Mason le 15 Nov 2023
Commenté : Mason le 15 Nov 2023
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))); %...

Réponse acceptée

Chunru
Chunru le 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)
  1 commentaire
Mason
Mason le 15 Nov 2023
Thank you, this works perfectly

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Audio I/O and Waveform Generation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by