exponenta event banner

Генерировать аудиосигналы

В этом примере показано, как генерировать аудиосигналы с помощью звуковой системы 5.1 канала.

Загрузить аудиосигнал

Загрузите аудиофайл, содержащий образец «Hallelujah Chorus» Генделя.

load handel;

Печать аудиосигнала

Постройте график данных для определения пяти отдельных сегментов. Каждый сегмент представляет собой «аллилуйю» в припеве. Сегменты аннотируются как от 1 до 5.

ly = length(y);
lspan = 1:ly;
t = lspan/Fs;

hf = figure;
plot(t,y./max(y))
axis tight;
title("Signal (Handel''s Hallelujah Chorus) vs Time");
xlabel("Time (s)");
ylabel("Amplitude");

markers = struct('xpos',[0.2,0.4,0.55,0.65,0.8],'string',num2str([1:5]'));
for i = 1:5,
    annotation(hf,'textbox',[markers.xpos(i) 0.48 0.048 0.080],'String', markers.string(i),'BackgroundColor','w','FontSize',16);
end

Создание сбора данных и добавление каналов вывода звука

В этом примере используется звуковая система 5.1 канала с идентификатором устройства 'Audio2'.

1. Создание сбора данных с помощью directsound в качестве поставщика и добавить к нему канал вывода звука.

dd = daq("directsound");
nch = 6;
addoutput(dd, "Audio2", 1:nch, "Audio");

2. Обновите частоту сканирования генерации в соответствии с частотой дискретизации звука.

dd.Rate = Fs;

3. Генерировать звуковые сигналы («Hallelujah Chorus» Генделя). «Аллилуйя» должна озвучиваться пять раз, по одному для каждого сегмента, изображённого на рисунке на всех каналах громкоговорящей системы.

write(dd, repmat(y,1,nch));

4. Закройте фигуру.

close(hf);