Небольшая программка формирует звуковой файл с сигналом основного тона и суммой фазного и амплитудного шумов. Файл предназначен для проверки спектроанализаторов звукового диапазона.
Частота дискретизации и длительность записи можно выбрать (выпадающие списки). Частоту основного тона [Гц] и величину шумов [дб/КОРЕНЬ(Гц)] можно установить ползунками или записать в соответствущие поля ввода, не забыв "-" (минус) для значения шумов.
После выбора параметров нажать кнопку "Старт". О работе сигнализирует красный "светодиод" и прогрессбар (светлозелёный). Процесс не быстрый и по окончании работы в папке с программой сохранится монофонический файл с именем
96000Hz;Ph-120,69Db;Am-111,69Db;All-111,3Db.wav
в котором обозначены по порядку через точку с запятой:
ХХХХHz; -- частота дискретизации в Гц,
PhXXX,XXDb; -- теоретический фазовый шум в Дб,
AmXXX,XXDb; -- теоретический амплитудный шум в Дб,
AllXXX,XXDb -- Фактический измеренный общий шум в Дб.
Числа в файле представлены 32-битным знаковым целым, файл без какого-либо сжатия и поэтому имеет большой размер.
На картинке показаны два скрина программы, во время вычислений и после окончания. На панельке "Шум всего" слева теоретический общий шум и справа измеренный общий шум. (Хорошее совпадение свидетельствует о правильности теории и практики).
(Звук формируется по формуле:
Aj = sin(j*2*Pi*F/Fd *RND1)*(1 + RND2)*A, где
F -- частота основного тона,
Fd -- частота дикретизации,
RND1 и RND2 -- нормально распределённые случайные числа,
A -- амплитуда, численно равна 1800000000 или ~84% максимальной)
Исходник для среды HiAsm приложен.
Спасибо коллегам vadim_d и sgk за помощь!