Filter löschen
Filter löschen

How to create a pulsing sound/use duty cycle

8 Ansichten (letzte 30 Tage)
Mason
Mason am 15 Nov. 2023
Kommentiert: Mason am 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))); %...

Akzeptierte Antwort

Chunru
Chunru am 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)

Weitere Antworten (0)

Kategorien

Mehr zu Audio I/O and Waveform Generation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by