Как создать гауссов канал в C? - PullRequest
0 голосов
/ 08 октября 2009

Мне нужно смоделировать гауссов канал в C. Как я могу это сделать? Где я могу получить фрагменты кода для этого?

1 Ответ

1 голос
/ 08 октября 2009

IIRC, аппроксимация гауссовского распределения проста - но медленна, если вы хотите хорошее приближение. Просто добавьте несколько независимых случайных чисел, чтобы получить каждый вывод. Чем больше «входов» на выход, тем лучше приближение.

Определенно работает, если «входы» имеют равномерное распределение. Кажется, я помню, что читал, что он работает практически для любого входного распределения, но вам может потребоваться гораздо больше входов на выход, чтобы получить хорошее приближение.

Это гауссовский белый шум - выходы независимы (все частоты имеют одинаковую амплитуду). Там также похожий алгоритм розового шума. Распределение по-прежнему гауссово, но более высокие частоты имеют более низкие амплитуды (выходы не являются независимыми). Каждый выход по-прежнему является суммой фиксированного набора независимых «входных» случайных чисел, но только первый заменяется для каждого выхода. Второй заменяется для каждого другого выхода, третий для каждого четвертого выхода, четвертый для каждого восьмого выхода и т. Д. Для большинства выходов заменяются ровно два входных случайных числа - через каждые 2 ^ n выходов вы заменяете только первый.

...