给定向量将播放的持续时间取决于向量中的元素数量和采样率.例如,当以1 kHz播放时,1000个元素的矢量将持续1秒.当以500赫兹播放时,它将持续2秒.因此,您应该做的第一个选择是您要使用的采样率.为避免
aliasing,采样率应为
twice as large as the largest frequency component of the signal.但是,您可能希望使其大于此值,以避免接近采样率的频率衰减.
给定1 kHz的采样率,以下示例创建给定持续时间和音频频率的声音向量(使用LINSPACE和SIN函数):
Fs = 1000; %# Samples per second
toneFreq = 50; %# Tone frequency, in Hertz
nSeconds = 2; %# Duration of the sound
y = sin(linspace(0, nSeconds*toneFreq*2*pi, round(nSeconds*Fs)));
当使用SOUND功能以1 kHz播放时,此向量将产生50 Hz音调2秒:
sound(y, Fs); %# Play sound at sampling rate Fs
然后可以使用WAVWRITE函数将向量保存为wav文件:
wavwrite(y, Fs, 8, 'tone_50Hz.wav'); %# Save as an 8-bit, 1 kHz signal
稍后可以使用WAVREAD功能加载声音矢量.如果要连接两个声音向量,则应确保它们都设计为使用相同的采样率.