How to create a pulsing sound/use duty cycle

조회 수: 8 (최근 30일)
Mason
Mason 2023년 11월 15일
댓글: Mason 2023년 11월 15일
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