Прямой подход заключается в том, как выше описал:
1) создаём модель сцены (описываем поверхность и среду распространения волн, расставляем объекты, устанавливаем им свойства), создаём модель передатчика и приёмника и, если последние ещё и двигаются, тогда и это тоже задаём;
2) используя аналитически полученные формулы для напряжений на входе приёмника, вычисляем массив отсчётов каждого отражённого сигнала (соответствующего одной точке / фасете / вокселю), а затем складываем эти сигналы, чтобы получилась смесь, которая приходит на приёмник.
В этом случае все отражённые сигналы интерферируют друг с другом, где-то в пространстве подавляя друг друга, а где-то — усиливая. Принимаемый сигнал-смесь уже несёт в себе своего рода срез той части пространства, где видны и ослабления, и усиления амплитуд электро-магнитных колебаний, которые несут информацию обо всех отражавших сигнал объектах.
Если моделируется плоская сцена, то соответствующий ей сигнал после обработки "даст" картинку, покрытую полосами "ничего", а то и вообще практически чёрный экран с яркими бликами на углах. По сути, это муаровый узор: отдельные отражённые сигналы проинтерферировали друг с другом так, что информацияя о том, что их отражало, потеряна.
Иногда такой эффект почему-то считают знаком успешного моделированием зеркала, но это не так, потому что зеркало отражает энергию в сторону от направления падения, а здесь же сигнал вроде как "идёт" к приёмнику, но, по сути, сам себя подавил
Результат похожий, да физика разная.
Если же сцена не плоская и богата объектами с, грубо говоря, случайными характеристиками (от местоположения до диэлектрических свойств), то на полученной после обработки сигнала картинке "мегаполосы" как бы распадаются на большое количество крошечных полосок разных размеров и направлений, что создаёт эффект покрытия картинки яркими или тёмными хлопьями. Собственно, спекл возникает сам собой при таком подходе, ничего для этого особого делать не нужно.
За исключением уравнений электродинамики и трассировки лучей прямой подход обладает очень простой математикой и относительно легко параллелится, но для его реализации нужно очень производительное вычислительное железо, поэтому за это дело берутся обычно богатые лаборатории. Хотя порог входа становится всё ниже благодаря засилью CUDA и прогрессу в области облачных и параллельных вычислений. Для сравнения: раньше для полотна с 100к объектами, имитирующими промёрзшую тундру, какой-нибудь i5 мог вычислять принимаемый сигнал полдня или полные сутки, а теперь на многоядерных видеокартах NVidia такое делается за секунды :)
У тех, кто не могут себе позволить оборудование, есть простая альтернатива —
обратный подход:
1) взять готовую картинку;
2) притвориться, что она была получена некоторым методом обработки сигнала;
3) сконструировать обратный метод обработки, на входе которого картинка, а на выходе — сырой сигнал из памяти или вообще с приёмника;
4) добавить шумы с конкретными характеристиками, чтобы было "как в настоящих сигналах".
Если метод обработки сигнала строился на обратимых преобразованиях, то к обратному методу обработки обычно претензий нет. Это очень дешёвый и быстрый способ строгать искусственно полученные сигналы сотнями и тысячами для последующих испытаний, например, алгоритмов автоматической фокусировки изображения.
Спекл при таком подходе имитируется случайным процессом (обычно берётся гауссовский), потому что иной возможности здесь просто нет: одна смесь обратно на сумму составляющих не раскладывается.
Но когда нужно портить сигналы чем-то сложнее, чем шумами, то нужно либо очень усложнять математику в обратном методе обработки, либо искать мощности для использования прямого метода.