How to create a pulsing sound/use duty cycle

8 次查看(过去 30 天)
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))); %...

采纳的回答

Chunru
Chunru 2023-11-15
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)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Multirate Signal Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by