Create rapid beeping tone in matlab
49 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am trying to use sound( ) or some other function to create a rapid beeping tone at a specified frequency. The sound( ) function only seems to let me create a continuous smooth tone, is there a way to create a discontinious tone that beeps rapidly?
0 Kommentare
Antworten (1)
DGM
am 27 Nov. 2021
Bearbeitet: DGM
am 27 Nov. 2021
Depends how you want to do it. I bet there's lots of ways.
I just made a piecewise signal and played it.
fs = 8192;
toneduration = 0.1;
spaceduration = 0.05;
tonefreq = 800;
nbeeps = 15;
t = linspace(0,toneduration,round(toneduration*fs));
y = 0.8*sin(2*pi*tonefreq*t); % tone
ys = zeros(1,round(spaceduration*fs)); % space
Y = [repmat([y ys],[1 nbeeps-1]) y]; % the whole signal
sound(Y,fs);
If you didn't want to have to generate the entire vector, maybe you could just use the y vector by itself and then play it in a loop, pausing afterwards each time. That would allow beeping indefinitely without needing a giant precalculated vector, but you'll have to wrangle the audio tools such that they behave as needed.
Something like this:
fs = 8192;
toneduration = 0.1;
spaceduration = 0.05;
tonefreq = 800;
nbeeps = 15;
t = linspace(0,toneduration,round(toneduration*fs));
y = 0.8*sin(2*pi*tonefreq*t);
a = audioplayer(y,fs);
for k = 1:nbeeps
play(a)
pause(spaceduration)
end
I couldn't get this to work using sound(). Audioplayer seems to work, but it's glitchy.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Audio and Video Data 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!