Main Content

Generate Audio Signals

This example shows how to generate audio signals using a 5.1 channel sound system.

Load Audio Signal

Load an audio file containing a sample of Handel's "Hallelujah Chorus."

loadhandel;

Plot Audio Signal

Plot the data to identify five distinct segments. Each segment represents a "Hallelujah" in the chorus. The segments are annotated as 1 to 5.

ly = length(y); lspan = 1:ly; t = lspan/Fs; hf = figure; plot(t,y./max(y)) axistight; 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]'));fori = 1:5, annotation(hf,'textbox',[markers.xpos(i) 0.48 0.048 0.080],'String', markers.string(i),'BackgroundColor','w','FontSize',16);end

Create a DataAcquisition and Add Audio Output Channels

This example uses a 5.1 channel sound system with device ID'Audio2'.

1. Create a DataAcquisition withdirectsoundas the vendor and add an audio output channel to it.

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

2. Update the generation scan rate to match the audio sampling rate.

dd.Rate = Fs;

3. Generate audio signals (Handel's "Hallelujah Chorus"). "Hallelujah" should be voiced five times, one for each segment depicted in the figure on all channels of the speaker system.

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

4. Close the figure.

close(hf);