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

Вы можете использовать NAudio и c#-language создать производный WaveStream, который c#-language выводит синусоидальные или sound прямоугольные волны, которые signal-processing вы можете выводить на звуковую audio карту или записывать в файл audio WAV. Если вы использовали 32-битные c-sharp образцы с плавающей запятой, вы csharp могли бы записать значения c-sharp непосредственно из функции dsp sin без необходимости масштабирования, поскольку c-sharp она уже находится между -1 csharp и 1.

Что касается точности, вы c# имеете в виду именно правильную .cs-file частоту или именно правильную c# форму волны? Нет такой вещи, как dsp настоящая прямоугольная волна, и .cs-file даже синусоида, вероятно, будет sound-api иметь несколько очень тихих audio артефактов на других частотах. Если sounds важна точность частоты, вы csharp полагаетесь на стабильность digital-signal-processing и точность часов на вашей c-sharp звуковой карте. Сказав это, я dsp мог бы предположить, что .cs-file точность будет достаточно visual-c# хорошей для большинства применений.

Вот sound пример кода, который делает sound-api выборку 1 кГц с частотой sound-api дискретизации 8 кГц и с 16-битными c#-language выборками (то есть не с плавающей sound запятой):

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));
}

c#

audio

signal-processing

2022-09-15T06:21:44+00:00