Создание синусоидальной волны или прямоугольной волны в C#

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

22
задан Peter Mortensen 15 November 2013 в 11:59
поделиться

1 ответ

Можно использовать NAudio и создать полученный WaveStream, что выходные синусоидальные волны или прямоугольные волны, которые Вы могли произвести на звуковую карту или записать в файл WAV . При использовании 32-разрядных образцов с плавающей точкой, Вы могли бы записать значения непосредственно из функции греха, не имея необходимость масштабироваться, поскольку она уже идет между-1 и 1.

Что касается точности, Вы имеете в виду точно правильную частоту или точно правильную форму волны? Нет такой вещи как истинная прямоугольная волна, и даже синусоидальная волна будет, вероятно, иметь несколько очень тихих артефактов на других частотах. Если это - точность частоты, которая имеет значение, Вы уверены в устойчивости и точности часов в Вашей звуковой карте. Однако я предположил бы, что точность будет достаточно хороша для большей части использования.

Вот некоторый пример кода, который делает 1  образец kHz в 8  частота дискретизации kHz и с образцами на 16 битов (то есть, не плавающая точка):

int sampleRate = 8000;
short[] buffer = new short[8000];
double amplitude = 0.25 * short.MaxValue;
double frequency = 1000;
for (int n = 0; n < buffer.Length; n++)
{
    buffer[n] = (short)(amplitude * Math.Sin((2 * Math.PI * n * frequency) / sampleRate));
}
33
ответ дан 29 November 2019 в 03:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: