주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

오디오 신호 생성

이 예제에서는 5.1채널 사운드 시스템을 사용하여 오디오 신호를 생성하는 방법을 보여줍니다.

오디오 신호 불러오기

헨델의 "할렐루야 합창" 샘플이 포함된 오디오 파일을 로드합니다.

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

DataAcquisition 객체 생성 및 오디오 출력 채널 추가

이 예제에서는 장치 ID가 'Audio2'인 5.1채널 사운드 시스템을 사용합니다.

1. 공급업체를 directsound로 지정하여 DataAcquisition 객체를 생성하고 addoutput 함수를 사용하여 오디오 출력 채널을 추가합니다.

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

2. 오디오 샘플링 레이트와 일치하도록 생성 스캔 속도를 업데이트합니다.

dd.Rate = Fs;

3. write 함수를 사용하여 오디오 신호(헨델의 "할렐루야 합창")를 생성합니다. 그림에 표시된 각 세그먼트에 대해 "할렐루야"를 모든 스피커 채널에서 5번 발음해야 합니다.

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

4. Figure를 닫습니다.

close(hf);