Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.171] |
|
Сообщ.
#1
,
|
|
|
Реализую синус:
for (int i = 0; i < sampleLenght; i++) { data[i] = (short)(amp * Math.Sin(i * 2f * Math.PI / sampleRate)); if (data[i] == 0) Console.WriteLine(i.ToString() + "\t" + data[i].ToString()); } for (int i = 0; i < sampleLenght; i++) { amp = (short)(ampl * Math.Sin(i * 2f * Math.PI / sampleRate)); data[i] = (short) ampl; if (amp == 0) { ampl = -ampl; data[i] = (short) ampl; } } - формулы для создания меандра без использования синуса; - формулы для треугольных импульсов, прямоугольных импульсов различной скважности, формулы для различных видов шумов (белый и другие) и формулы для других форм сигналов. |
Сообщ.
#2
,
|
|
|
Навскидку.
Меандр: for (int i = 0; i < sampleLenght; i++) { float a = i * f / sampleRate; a = a - floor(a); data[i] = ((short)(a < 0.5f) * 2 - 1) * 32767; } Пила: for (int i = 0; i < sampleLenght; i++) { float a = i * f / sampleRate; a = a - floor(a); data[i] = (short)(a * 65534 - 32767); } Белый шум - это просто RAND(-32767..32767). |
Сообщ.
#3
,
|
|
|
сумма 12 RAND даст нормальный шум, строго говоря не такой он уж и белый.
По шумам книг много всё зависит от серьёзности намерений. И не забывайте про ФВЧ на выходе ЦАП звуковухи. |