Я использую функцию sound () в MATLAB для генерации тона.Следующая функция воспроизводит тональный сигнал в течение 4 секунд при частоте 440 Гц:
duration = 4
toneFreq = 440
samplesPerSecond = 44100; % the bit rate of the tone
y = sin(linspace(0, duration * toneFreq * 2 * pi, round(duration * samplesPerSecond))); % the equation of the sound wave
sound(y, samplesPerSecond); % play the sound wave at the specified bit rate
Иногда (после использования этой функции несколько раз) я получаю сообщение об ошибке из MATLAB, в котором говорится "не удается зарегистрировать окно звука".Посмотрев немного по интернету, я заметил, что это известная ошибка в MATLAB (версия R14 SP3), и поэтому общий совет, похоже, состоит в том, чтобы вместо этого использовать функцию 'audioplayer' .Итак, я обновил свой код до следующего:
duration = 4
toneFreq = 440
samplesPerSecond = 44100; % the bit rate of the tone
y = sin(linspace(0, duration * toneFreq * 2 * pi, round(duration * samplesPerSecond))); % the equation of the sound wave
player = audioplayer(y, samplesPerSecond); % play the sound wave at the specified bit rate
play(player)
Однако, это не производит тона.Кто-нибудь может помочь в создании этого нового кода?