Продолжительность воспроизведения данного вектора зависит от количества элементов в векторе и частоты дискретизации. Например, вектор из 1000 элементов при воспроизведении с частотой 1 кГц будет длиться 1 секунду. При воспроизведении с частотой 500 Гц он будет длиться 2 секунды. Следовательно, первый выбор, который вы должны сделать, - это частота дискретизации, которую вы хотите использовать. Чтобы избежать алиасинга , частота дискретизации должна быть в два раза больше, чем наибольшая частотная составляющая сигнала . Однако вы можете захотеть сделать его еще больше, чтобы избежать затухания частот, близких к частоте дискретизации.
При частоте дискретизации 1 кГц в следующем примере создается звуковой вектор заданной длительности и частоты тона (с использованием функций 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)));
При воспроизведении на частоте 1 кГц с использованием функции SOUND этот вектор будет генерировать звук частотой 50 Гц в течение 2 секунд:
sound(y, Fs); %# Play sound at sampling rate Fs
Вектор можно затем сохранить в виде файла WAV с помощью функции WAVWRITE :
wavwrite(y, Fs, 8, 'tone_50Hz.wav'); %# Save as an 8-bit, 1 kHz signal
Вектор звука можно позже загрузить с помощью функции WAVREAD . Если вы собираетесь объединить два звуковых вектора, убедитесь, что они оба рассчитаны на одинаковую частоту дискретизации.