Распространение радиоволн ВЧ/Метод зеркальных отображений

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску

Модель

Канал Релея
Сетка мнимых источников

Метод изображений (метод зеркальных отображений) широко применяется в электростатике и электродинамике для решения краевых задач. В частности, в приближении геометрической оптики данный метод позволяет построить картину хода лучей при любом числе отражений.

Суть метода состоит в построении лучей относительно мнимых изображений источника или приемника сигнала. Мнимые изображении строятся согласно правилам построения изображений в системе зеркал, здесь зеркала повторяют форму граничных поверхностей.

На рисунке представлена типичная ситуация в условиях плотной городской застройки, когда антенна приемного устройства находится в области геометрической тени относительно источника сигнала. Сигнал на приемной антенне является результатом переотражения радиоволны от внешней границы зданий, т.н. канал Релея. Зная координаты источника и приемника можно провести точную трассировку лучей с помощью простых геометрических построений.

Алгоритм

Инициализация функций

Функция трассировки

[Источник_2, B]=Tracing(I, Стек_точек, Стек_граней, Источник_1, Частота, G)

  1. Пока
    1. Источник_1
    2. Стек_точек
    3. Стек_граней
    4. .Антенна().Позиция()
    5. Луч().Создать(, Вектор(, ,1))
    6. Если НЕ IsShadowed()

Предикат последнего отражения

IsEnd(E, I, i)

В связи с тем, что количество элементарных модельных экспериментов, а следовательно и временные издержки алгоритма, зависит от числа отражающих поверхностей и порядка отражения как , то важно определить максимальный существенный для текущих условий порядок переотражения сигнала. Введем предикат последнего отражения следующим образом:

1. Если , где

- пренебрежимый уровень сигнала
.Напряженность(, .Позиция(), G.Среда распространения())

2. Если , где

- жестко ограниченный пользователем порядок переотражения

3. Если

- ограниченное пользователем максимальное число раз неприхода сигнала подряд
, где
- порядки переотражения, при которых сигнал пришел в контрольную точку

Таким образом данный предикат имеет следующий вид IsEnd(E, I, i)

Предикат тени

IsShadowed(Луч, P, G)

Данный предикат проверяет наличие препятствия на пути Луча в некоторую точку P путем проверки нахождения отражающих объектов из множества G.Множество отражающих объектов(), где G - геометрическая модель, на отрезке Луч.Позиция() - P, исключая поверхности, на которых лежат P и Луч.Позиция(), если такие отражающие поверхности существуют.

  1. G.Множество отражающих объектов()
    1. .Множество отражающих поверхностей()
      1. Луч.Пересечение(.Плоскость грани())
      2. Если .Принадлежность() Расстояние(Луч.Позиция(),) Расстояние( Расстояние(Луч.Позиция(),)
        1. Вернуть ИСТИНА
  2. Вернуть ЛОЖЬ

Предусловия

- аналог стековой памяти, хранящей информацию о занесенных в нее отражающих поверхностей

, где
хранятся в виде ссылок на соответствующие элементы. Судя по алгоритму, - это стек только отражающих поверхностей - там нужны объекты?

- аналог стековой памяти, хранящей информацию о занесенных в нее действительных и мнимых контрольных точках

, где
хранит всю информацию, соответствующую данной сущности

Операции и аналогичны операциям push и pop соответственно

- локальные переменные, аналогичные , использующиеся во внутренних подциклах

Операция копирует переменную в

Основное течение

  1. G.Множество контрольных точек()
    1. G.Множество первичных источников()
      1. См. обсуждение к статье.
      2. Переход 1.1.8.1.4
      3. G.Множество отражающих объектов()
        1. .Множество отражающих поверхностей()
          1. .Построить зеркальное отображение(.Плоскость грани())
          2. Position .Антенна().Позиция()
          3. Ray Луч().Создать(Position, Вектор(Position,.Позиция(), 1))
          4. Если
            1. Ray.Пересечение(.Плоскость грани())
            2. Если .Принадлежность() Расстояние(Position,.Позиция()) Расстояние(Position,)
              1. Переход 1.1.8.1.11
            3. Иначе
              1. Переход 1.1.8.1.14
          5. Иначе
            1. .Позиция()
          6. Если IsShadowed(Ray, P, G)
            1. Переход 1.1.8.1.14
          7. Если
            1. Angle Ray.Угол пересечения(.Плоскость грани())
            2. Вторичный источник при рейтрейсинге.Создать(.Напряженность, Расстояние(Position,), G.Среда распространения() Angle, )
            3. Переход 1.1.8.5
          8. .Зарегистрировать(.Напряженность, Расстояние(Position, .Позиция()), G.Среда распространения())
          9. Если См. обсуждение к статье.
            1. Переход 1.1.6
      4. Если
        1. Переход 1.1.8


  1. G.Множество контрольных точек()
    1. G.Множество первичных источников()
      1. .Антенна().Тип антенны().Амплитудно-частотная характеристика()
        1. Луч().Создать(.Антенна().Позиция(), Вектор(.Антенна().Позиция(),.Позиция(), 1))Излучение прямых лучей непосредственно в контрольные точки
        2. .Позиция()
        3. Если G
          1. .Зарегистрировать(.Напряженность(, G.Среда распространения())) Регистрация прямых лучей
        4. G.Множество отражающих объектов() Создание мнимых приемников 1-го порядка
          1. .Множество отражающих поверхностей()
            1. .Построить зеркальное отображение(.Плоскость грани())