twoRayChannel

Двухлучевой канал распространения

Описание

The twoRayChannel моделирует узкополосный двухлучевой канал распространения. Двухлучевой канал распространения является самым простым типом многолучевого канала. Можно использовать двухлучевой канал, чтобы симулировать распространение сигналов в однородной, изотропной среде с одной отражающим контуром. Этот тип среды имеет два пути распространения: путь распространения линии визирования (прямого) от одной точки к другой и путь луча, отраженный от контура. Вы можете использовать эту object™ System для приложений радиолокации и мобильной связи малой дальности, где сигналы распространяются по прямым путям, а Земля принята плоской. Можно также использовать этот объект для гидроакустических и микрофонных приложений. Для акустических приложений можно выбрать поля, которые не поляризованы и настроить скорость распространения, чтобы быть скоростью звука в воздухе или воде. Можно использовать twoRayChannel для моделирования распространения из нескольких точек одновременно.

В то время как системный объект работает для всех частот, модели ослабления для атмосферных газов и дождя действительны только для электромагнитных сигналов в частотной области значений 1-1000 ГГц. Модель ослабления для тумана и облака действительна для 10-1000 ГГц. Вне этих областей значений частот системный объект использует самое близкое допустимое значение.

The twoRayChannel Системный объект применяет зависящие от области значений задержки времени к сигналам, а также усиления или потери, сдвиги фазы и краевые потери отражения. Системный объект применяет допплеровский сдвиг при перемещении источника или назначения.

Сигналы на выходе канала могут храниться отдельно или быть объединены - управляются CombinedRaysOutput свойство. В отдельной опции оба поля поступают в пункт назначения отдельно и не объединяются. Для комбинированной опции два сигнала в источнике распространяются отдельно, но когерентно суммируются в пункте назначения в одну величину. Эта опция удобна, когда различие между усилениями датчика или массива в направлениях двух путей не значительна и не должна учитываться.

В отличие от phased.FreeSpace Системный объект, twoRayChannel Системный объект не поддерживает двухстороннее распространение.

Чтобы вычислить задержку распространения для заданных точек источника и приемника:

  1. Определите и настройте свой двухлучевой канал с помощью следующей процедуры Конструкции.

  2. Вызовите step метод вычисления распространенного сигнала с использованием свойств twoRayChannel Системный объект.

    Поведение step характерен для каждого объекта в тулбоксе.

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной системным объектом, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Конструкция

s2Ray = twoRayChannel создает двухлучевой канал распространения Системного объекта, s2Ray.

s2Ray = twoRayChannel(Name,Value) создает Системный объект, s2Ray, с каждым заданным свойством Name установить на заданную Value. Можно задать дополнительные аргументы в виде пар имен и значений в любом порядке как (Name1,Value1..., NameN,ValueN).

Свойства

расширить все

Скорость распространения сигнала, заданная как положительная скалярная величина. Модули указаны в метрах в секунду. Скорость распространения по умолчанию является значением, возвращаемым physconst('LightSpeed'). Посмотрите physconst для получения дополнительной информации.

Пример: 3e8

Типы данных: double

Рабочая частота, заданная как положительная скалярная величина. Модули указаны в Гц.

Пример: 1e9

Типы данных: double

Опция для включения атмосферной модели ослабления, заданная как false или true. Установите это свойство на true добавить ослабление сигнала, вызванное атмосферными газами, дождем, туманом или облаками. Установите это свойство на false игнорировать атмосферные эффекты при распространении.

Настройка SpecifyAtmosphere на true, включает Temperature, DryAirPressure, WaterVapourDensity, LiquidWaterDensity, и RainRate свойства.

Типы данных: logical

Температура окружающей среды, заданная как действительный скаляр. Модули указаны в степенях Цельсия.

Пример: 20.0

Зависимости

Чтобы включить это свойство, задайте SpecifyAtmosphere на true.

Типы данных: double

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

Пример: 101.0e3

Зависимости

Чтобы включить это свойство, задайте SpecifyAtmosphere на true.

Типы данных: double

Плотность атмосферного водяного пара, заданная как положительный реальный скаляр. Модули измерения указаны в г/м3.

Пример: 7.4

Зависимости

Чтобы включить это свойство, задайте SpecifyAtmosphere на true.

Типы данных: double

Плотность жидкой воды тумана или облака, заданная в виде неотрицательного действительного скаляра. Модули измерения указаны в г/м3. Типичные значения плотности жидкой воды: 0,05 для среднего тумана и 0,5 для густого тумана.

Пример: 0.1

Зависимости

Чтобы включить это свойство, задайте SpecifyAtmosphere на true.

Типы данных: double

Норма осадков, заданная как неотрицательный скаляр. Модули указаны в мм/ч.

Пример: 10.0

Зависимости

Чтобы включить это свойство, задайте SpecifyAtmosphere на true.

Типы данных: double

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

Пример: 1e6

Типы данных: double

Опция включения поляризованных полей, заданная как false или true. Установите это свойство на true для обеспечения поляризации. Установите это свойство на false чтобы игнорировать поляризацию.

Типы данных: logical

Коэффициент отражения земли для поля в точке отражения, заданный как комплексный скаляр или комплексный вектор-строка 1- N. Каждый коэффициент имеет абсолютное значение, меньше чем или равное единице. Величина N является количеством двухлучевых каналов. Модули безразмерны. Используйте это свойство для модели неполяризованных сигналов. Чтобы смоделировать поляризованные сигналы, используйте GroundRelativePermittivity свойство.

Пример: -0.5

Зависимости

Чтобы включить это свойство, задайте EnablePolarization на false.

Типы данных: double
Поддержка комплексного числа: Да

Относительная диэлектрическая проницаемость земли в точке отражения, заданная как положительный действительный скаляр или 1-байтовый N действительный вектор-строка положительных значений. Размерная N является количеством двухлучевых каналов. Модули диэлектрической проницаемости безразмерны. Относительная диэлектрическая проницаемость определяется как отношение фактической диэлектрической проницаемости грунта к диэлектрической проницаемости свободного пространства. Это свойство применяется, когда вы устанавливаете EnablePolarization свойство к true. Используйте это свойство для модели поляризованных сигналов. Чтобы смоделировать неполяризованные сигналы, используйте GroundReflectionCoefficient свойство.

Пример: 5

Зависимости

Чтобы включить это свойство, задайте EnablePolarization на true.

Типы данных: double

Опция для объединения двух лучей на выходе канала, заданная как true или false. Когда это свойство trueобъект когерентно складывает сигнал распространения линии визирования и отраженный сигнал пути при формировании сигнала выхода. Используйте этот режим, когда вам не нужно включать в симуляцию направленный коэффициент усиления антенны или массива.

Типы данных: logical

Источник максимального одностороннего расстояния распространения, заданный как 'Auto' или 'Property'. Максимальное одностороннее расстояние распространения используется, чтобы выделить достаточное количество памяти для расчета задержки сигнала. Когда вы устанавливаете это свойство на 'Auto'Системный объект автоматически выделяет память. Когда вы устанавливаете это свойство на 'Property', вы задаете максимальное одностороннее расстояние распространения, используя значение MaximumDistance свойство.

Типы данных: char

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

Пример: 5000

Зависимости

Чтобы включить это свойство, установите MaximumDistanceSource свойство к 'Property'.

Типы данных: double

Источник максимального количества выборок входного сигнала, заданный как 'Auto' или 'Property'. Когда вы устанавливаете это свойство на 'Auto'модель распространения автоматически выделяет достаточно памяти, чтобы буферизировать входной сигнал. Когда вы устанавливаете это свойство на 'Property', вы задаете максимальное количество выборок во входном сигнале используя MaximumNumInputSamples свойство. Любой входной сигнал, длиннее этого значения, усечен.

Чтобы использовать этот объект с сигналами переменного размера в MATLAB® Функциональный блок в Simulink®, установите MaximumNumInputSamplesSource свойство к 'Property' и установите значение для MaximumNumInputSamples свойство.

Пример: 'Property'

Зависимости

Чтобы включить это свойство, задайте MaximumDistanceSource на 'Property'.

Типы данных: char

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

Системные объекты, генерирующие форму волны, определяют максимальный размер сигнала:

  • Для любой формы волны, если форма волны OutputFormat для свойства задано значение 'Samples', максимальная длина сигнала является значением, заданным в NumSamples свойство.

  • Для импульсных сигналов, если OutputFormat установлено в 'Pulses', длина сигнала является продуктом наименьшей частоты повторения импульса, количества импульсов и частоты дискретизации.

  • Для непрерывных форм волны, если OutputFormat установлено в 'Sweeps', длина сигнала является продуктом времени свипа, количества свипов и частоты дискретизации.

Пример: 2048

Зависимости

Чтобы включить это свойство, задайте MaximumNumInputSamplesSource на 'Property'.

Типы данных: double

Методы

сбросСброс состояний системного объекта
шагРаспространите сигнал от точки к точке с помощью модели двухлучевого канала
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Этот пример иллюстрирует распространение сигнала с двумя лучами, показывая, как сигналы из линии видимости и отраженного пути поступают в приемник в разное время.

Создайте и постройте график распространения сигнала

Создайте неполяризованное электромагнитное поле, состоящее из двух прямоугольных импульсов формы волны на несущей частоте 100 МГц. Предположим, что ширина импульса составляет 10 мс, а частота дискретизации - 1 МГц. Шумовая полоса импульса составляет 0,1 МГц. Примите 50% коэффициент заполнения, так что ширина импульса составляет половину интервала повторения импульса. Создайте train с двумя импульсными волнами. Установите GroundReflectionCoefficient до 0,9 для моделирования сильной отражательной способности грунта. Передайте поле от стационарного источника к стационарному приемнику. Вертикальное разделение источника и приемника составляет приблизительно 10 км.

c = physconst('LightSpeed');
fs = 1e6;
pw = 10e-6;
pri = 2*pw;
PRF = 1/pri;
fc = 100e6;
lambda = c/fc;
waveform = phased.RectangularWaveform('SampleRate',fs,'PulseWidth',pw,...
    'PRF',PRF,'OutputFormat','Pulses','NumPulses',2);
wav = waveform();
n = size(wav,1);
figure;
plot((0:(n-1)),real(wav),'b.-');
xlabel('Time (samples)')
ylabel('Waveform magnitude')

Figure contains an axes. The axes contains an object of type line.

Укажите местоположение источника и приемника

Разместите источник и приемник на расстоянии около 1000 метров друг от друга по горизонтали и приблизительно 10 км по вертикали.

pos1 = [1000;0;10000];
pos2 = [0;100;100];
vel1 = [0;0;0];
vel2 = [0;0;0];

Вычислите прогнозируемые задержки сигналов в единицах выборок.

[rng,ang] = rangeangle(pos2,pos1,'two-ray');

Создайте двухлучевую канальную систему Object™

Создайте двухлучевой канал распространения System object™ и распространите сигнал как вдоль линии видимости, так и вдоль отраженных лучевых путей.

channel = twoRayChannel('SampleRate',fs,...
    'GroundReflectionCoefficient',.9,'OperatingFrequency',fc,...
    'CombinedRaysOutput',false);
prop_signal = channel([wav,wav],pos1,pos2,vel1,vel2);

Постройте график распространенных сигналов

  • Постройте график распространения сигнала вдоль линии видимости.

  • Затем наложите график сигнала, распространенного вдоль отраженного пути.

  • Наконец, наложите график когерентной суммы двух сигналов.

n = size(prop_signal,1);
delay = 0:(n-1);
plot(delay,abs(prop_signal(:,1)),'g')
hold on
plot(delay,abs(prop_signal(:,2)),'r')
plot(delay,abs(prop_signal(:,1) + prop_signal(:,2)),'b')
hold off
legend('Line-of-sight','Reflected','Combined','Location','NorthWest')
xlabel('Delay (samples)')
ylabel('Signal Magnitude')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Line-of-sight, Reflected, Combined.

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

Создайте поляризованное электромагнитное поле, состоящее из линейных FM импульсов формы волны. Распространите поле от стационарного источника с перекрестно-дипольным антенным элементом на стационарный приемник примерно в 10 км. Передающая антенна находится на высоте 100 метров над землей. Приемная антенна находится на высоте 150 м над уровнем земли. Приемная антенна также является перекрестным диполем. Постройте график принимаемого сигнала.

Установите параметры формы волны радара

Предположим, что ширина импульса равна 10μs и частота дискретизации составляет 10 МГц. Шумовая полоса импульса составляет 1 МГц. Примите 50% коэффициент заполнения, в котором ширина импульса составляет половину интервала повторения импульса. Создайте train с двумя импульсными волнами. Предположим, что несущая частота составляет 100 МГц.

c = physconst('LightSpeed');
fs = 10e6;
pw = 10e-6;
pri = 2*pw;
PRF = 1/pri;
fc = 100e6;
bw = 1e6;
lambda = c/fc;

Настройка необходимых системных объектов

Использование GroundRelativePermittivity из 10.

waveform = phased.LinearFMWaveform('SampleRate',fs,'PulseWidth',pw,...
    'PRF',PRF,'OutputFormat','Pulses','NumPulses',2,'SweepBandwidth',bw,...
    'SweepDirection','Up','Envelope','Rectangular','SweepInterval',...
    'Positive');
antenna = phased.CrossedDipoleAntennaElement(...
    'FrequencyRange',[50,200]*1e6);
radiator = phased.Radiator('Sensor',antenna,'OperatingFrequency',fc,...
    'Polarization','Combined');
channel = twoRayChannel('SampleRate',fs,...
    'OperatingFrequency',fc,'CombinedRaysOutput',false,...
    'EnablePolarization',true,'GroundRelativePermittivity',10);
collector = phased.Collector('Sensor',antenna,'OperatingFrequency',fc,...
    'Polarization','Combined');

Настройка геометрии сцены

Задайте положения передатчика и приемника, скорости и ориентации. Разместите источник и приемник примерно на 1000 м друг от друга в горизонтальном направлении и примерно на 50 м в вертикальном направлении.

posTx = [0;100;100];
posRx = [1000;0;150];
velTx = [0;0;0];
velRx = [0;0;0];
laxRx = rotz(180);
laxTx = rotx(1)*eye(3);

Создавайте и излучайте сигналы от передатчика

Вычислите углы передачи для двух лучей, движущихся к приемнику. Эти углы заданы относительно локальной системы координат передатчика. The phased.Radiator Система object™ использует эти углы, чтобы применить отдельные усиления антенны к двум сигналам.

[rng,angsTx] = rangeangle(posRx,posTx,laxTx,'two-ray');
wav = waveform();

Постройте график переданной формы волны

n = size(wav,1);
plot((0:(n-1))/fs*1000000,real(wav))
xlabel('Time ({\mu}sec)')
ylabel('Waveform')

Figure contains an axes. The axes contains an object of type line.

sig = radiator(wav,angsTx,laxTx);

Передайте сигналы в приемник через двухлучевой канал

prop_sig = channel(sig,posTx,posRx,velTx,velRx);

Прием распространенного сигнала

Вычислите углы приема для двух лучей, поступающих в приемник. Эти углы заданы относительно локальной системы координат приемника. The phased.Collector Система object™ использует эти углы, чтобы применить отдельные усиления антенны к двум сигналам.

[~,angsRx] = rangeangle(posTx,posRx,laxRx,'two-ray');

Собирайте и комбинируйте полученные лучи.

y = collector(prop_sig,angsRx,laxRx);

Постройте график полученной формы волны

plot((0:(n-1))/fs*1000000,real(y))
xlabel('Time ({\mu}sec)')
ylabel('Received Waveform')

Figure contains an axes. The axes contains an object of type line.

Подробнее о

расширить все

Ссылки

[1] Основы распространения Saakian, A. Radio Wave. Norwood, MA: Artech House, 2011.

[2] Balanis, C. Advanced Engineering Electromagnetics. Нью-Йорк: Wiley & Sons, 1989.

[3] Rappaport, T. Wireless Communications: Principles and Practice, 2nd Ed New York: Prentice Hall, 2002.

[4] Сектор радиосвязи Международного объединения электросвязи. Рекомендация ITU-R P.676-10: Ослабление атмосферными газами. 2013.

[5] Сектор радиосвязи Международного объединения электросвязи. Рекомендация ITU-R P.840-6: Ослабление из-за облаков и тумана. 2013.

[6] Сектор радиосвязи Международного объединения электросвязи. Рекомендация ITU-R P.838-3: Специфическая модель ослабления для дождя для использования в методах предсказания. 2005.

Расширенные возможности

.
Введенный в R2021a