Системный объект: фазированный. ScatteringMIMOChannel
Пакет: поэтапный
Распространите сигналы в рассеянии канала MIMO
Примечание
Вместо использования step
метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, Y = step(obj,X)
и Y = obj(X)
выполнять эквивалентные операции.
использует рассеивающий канал MIMO, Y
= step(channel
,X
)channel
, для распространения сигнала, X
, от передающего массива к нескольким рассеивателям и возвращает рассеянные сигналы, Y
, в приемный массив.
Чтобы включить этот синтаксис, установите TransmitArrayMotionSource
, ReceiveArrayMotionSource
, и ScattererSpecificationSource
свойства для 'Property'
.
[___] = step(___,
задает положения и скорости рассеяния и коэффициенты рассеяния.scatpos
,scatvel
,scatcoef
)
Чтобы включить этот синтаксис, установите TransmitArrayMotionSource
и ReceiveArrayMotionSource
свойства для 'Property'
, задать ScattererSpecificationSource
на 'Input port'
, и установите Polarization
свойство к 'None'
.
[___] = step(___,
определяет положения рассеивателя, scatpos
,scatvel
,scatmat
,scataxes
)scatpos
, и скорости, scatvel
, матрица рассеяния, scatmat
, и осей ориентации рассеяния, scataxes
.
Чтобы включить этот синтаксис, установите TransmitArrayMotionSource
и ReceiveArrayMotionSource
свойства для 'Property'
, задать ScattererSpecificationSource
на 'Input port'
, и установите Polarization
свойство к 'Combined'
или 'Dual'
.
[___,
также возвращает матрицу отклика канала, CR
,TAU
]
= step(channel
,___)CR
, и путь запаздывает, TAU
, с использованием любой из предыдущих комбинаций входных аргументов.
Чтобы включить этот синтаксис, установите ChannelResponseOutputPort
свойство к true
и установите Polarization
свойство к 'None'
или 'Combined'
.
[___,
также возвращает матрицы отклика канала, CR_HH
,CR_HV
,CR_VH
,CR_V
,TAU
]
= step(channel
,___)CR_HH
, CR_HV
, CR_VH
, и CR_V
, с использованием любой из предыдущих комбинаций входных аргументов.
Чтобы включить этот синтаксис, установите ChannelResponseOutputPort
свойство к true
и установите Polarization
свойство к 'Dual'
.
Примечание
Объект выполняет инициализацию при первом step
выполняется метод. Эта инициализация блокирует нетронутые свойства и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете свойство nontunable или спецификацию входа, системный объект выдает ошибку. Чтобы изменить нетронутые свойства или входы, необходимо сначала вызвать release
метод для разблокировки объекта.
channel
- Рассеивание канала MIMOphased.ScatteringMIMOChannel
Системный объектРассеивание канала MIMO, заданное как phased.ScatteringMIMOChannel
Системный объект.
Пример: phased.ScatteringMIMOChannel
X
- Переданный узкополосный сигналПереданный узкополосный сигнал, заданный как M -by Nt комплексная матрица. Величина M является количеством выборок в сигнале, и Nt является количеством передающих элементов массива. Каждый столбец представляет сигнал, переданный соответствующим элементом массива.
Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.
Пример: [1,1;j,1;0.5,0]
Чтобы включить этот аргумент, установите Polarization
свойство к 'None'
или 'Combined'
.
Типы данных: double
Поддержка комплексного числа: Да
XH
- Переданный узкополосный H-поляризационный сигналПереданный узкополосный H -поляризационный сигнал, заданный как M -by Nt комплексно-значимая матрица. Величина M является количеством выборок в сигнале, и Nt является количеством передающих элементов массива. Каждый столбец представляет сигнал, переданный соответствующим элементом массива.
Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.
Пример: [1,1;j,1;0.5,0]
Чтобы включить этот аргумент, установите Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
XV
- Переданный узкополосный V-поляризационный сигналПереданный узкополосный V -поляризационный сигнал, заданный как M -by Nt комплексно-значимая матрица. Величина M является количеством выборок в сигнале, и Nt является количеством передающих элементов массива. Каждый столбец представляет сигнал, переданный соответствующим элементом массива.
Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.
Пример: [1,1;j,1;0.5,0]
Чтобы включить этот аргумент, установите Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
txpos
- Положение передающего антенного массиваПоложение передающего массива антенны, заданное как реальный трехэлементный вектор-столбец, принимающее форму [x;y;z]
. Векторные элементы соответствуют x, y и z положениям массива. Модули измерения указаны в метрах.
Пример: [1000;100;500]
Чтобы включить этот аргумент, установите TransmitArrayMotionSource
свойство к 'Input port'
.
Типы данных: double
txvel
- Скорость передающего антенного массиваСкорость передающего массива антенны, заданная как реальный трехэлементный вектор-столбец, принимающее форму [vx;vy;vz]
. Векторные элементы соответствуют x, y и z скоростям массива. Модули указаны в метрах в секунду.
Пример: [10;0;5]
Чтобы включить этот аргумент, установите TransmitArrayMotionSource
свойство к 'Input port'
.
Типы данных: double
txaxes
- ориентация осей передающего антенного массиваОриентация передающей антенны массива, заданная как действительная 3х3 действительная ортонормальная матрица. Матрица определяет ориентацию локальной системы координат массива относительно глобальных координат. Матричные столбцы соответствуют направлениям x, y и z осей локальной системы координат. Модули безразмерны.
Пример: rotx(35)
Чтобы включить этот аргумент, установите TransmitArrayMotionSource
свойство к 'Input port'
.
Типы данных: double
rxpos
- Положение приёмного антенного массиваПоложение приемной антенны массива, заданное как действительный трехэлементный вектор-столбец, принимающее форму [x;y;z]
. Векторные элементы соответствуют x, y и z положениям массива. Модули измерения указаны в метрах.
Пример: [1000;100;500]
Чтобы включить этот аргумент, установите ReceiveArrayMotionSource
свойство к 'Input port'
.
Типы данных: double
rxvel
- Скорость приёмного антенного массиваСкорость приемной антенны массива, заданная как реальный трехэлементный вектор-столбец, принимающее форму [vx;vy;vz]
. Векторные элементы соответствуют x, y и z скоростям массива. Модули указаны в метрах в секунду.
Пример: [10;0;5]
Чтобы включить этот аргумент, установите ReceiveArrayMotionSource
свойство к 'Input port'
.
Типы данных: double
rxaxes
- ориентация осей приёмного антенного массиваОриентация осей приемной антенны массива, заданная как действительная 3х3 действительная ортонормальная матрица. Матрица определяет ориентацию локальной системы координат массива относительно глобальных координат. Матричные столбцы соответствуют направлениям x, y и z осей локальной системы координат. Модули безразмерны.
Пример: rotx(35)
Чтобы включить этот аргумент, установите ReceiveArrayMotionSource
свойство к 'Input port'
.
Типы данных: double
scatpos
- Положения рассеивателейПоложения рассеивателей, заданные как действительная 3-бай- Ns матрица. Матрица содержит (x,y,z) положения рассеивателей. Каждый столбец матрицы задает другой рассеиватель и принимает форму [x;y;z]
. Модули измерения указаны в метрах.
Пример: [1000;100;500]
Чтобы включить этот аргумент, установите ScattererSpecificationSource
свойство к 'Input port'
.
Типы данных: double
scatvel
- Скорости рассеивателейСкорости рассеивателей, заданные как действительная 3-бай- Ns матрица. Матрица содержит (vx,vy,vz) положения рассеивателей. Каждый столбец матрицы задает другой рассеиватель и принимает форму [vx;vy;vz]
Модули указаны в метрах в секунду.
Пример: [1000;100;500]
Чтобы включить этот аргумент, установите ScattererSpecificationSource
свойство к 'Input port'
.
Типы данных: double
scatcoef
- Коэффициенты рассеянияКоэффициенты рассеяния, заданные как комплексный вектор 1-байт- Ns строки. Каждый векторный элемент задает коэффициент рассеяния соответствующего рассеивателя. Модули безразмерны.
Пример: [5+3*1i;4+1i;2]
Чтобы включить этот аргумент, установите ScattererSpecificationSource
свойство к 'Input port'
и Polarization
свойство к 'None'
.
Типы данных: double
Поддержка комплексного числа: Да
scatmat
- Матрицы рассеяния[1 0;0 1]
| комплексный массив 2 на 2-by- N sМатрицы рассеяния рассеивателей, заданные как комплексный массив 2 на 2 by- N s, где N s - количество рассеивателей. Каждая страница этого массива представляет матрицу рассеяния рассеивателя. Каждая матрица рассеяния имеет вид [s_hh s_hv;s_vh s_vv]
. Для примера, компонент s_hv
задает комплексную характеристику рассеяния, когда входной сигнал вертикально поляризован, а отраженный сигнал горизонтально поляризован. Другие компоненты заданы аналогично. Модули указаны в квадратных метрах.
Чтобы включить это свойство, установите ScattererSpecificationSource
свойство к 'Input port'
и Polarization
свойство к 'Combined'
или 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
scataxes
- оси ориентации рассеивателяОси ориентации рассеивателя, заданные как реальный массив 3 на 3 байта N с, где N s - количество рассеивателей. Каждая страница этого массива представляет матрицу осей ориентации рассеивателя. Столбцы матрицы представляют x -, y - и z - оси рассеивателя. Модули безразмерны.
Чтобы включить это свойство, установите ScattererSpecificationSource
свойство к 'Input port'
и Polarization
свойство к 'Combined'
или 'Dual'
.
Типы данных: double
Y
- Принятый узкополосный сигналПринят узкополосный сигнал, возвращенный как M -by-Nr комплексно-оцененная матрица. M - количество выборок в сигнале, а Nr - количество принимающих элементов массива. Каждый столбец представляет сигнал, принимаемый соответствующим элементом массива.
Пример: [1,1;j,1;0.5,0]
Чтобы включить этот аргумент, установите Polarization
свойство к 'None'
или 'Combined'
.
Типы данных: double
Поддержка комплексного числа: Да
YH
- Принятый узкополосный H-поляризационный сигналПринят узкополосный H -поляризационный сигнал, возвращенный как комплексно-оцененная M -by - Nr матрица. M - количество выборок в сигнале, а Nr - количество принимающих элементов массива. Каждый столбец представляет сигнал, принимаемый соответствующим элементом массива.
Пример: [1,1;j,1;0.5,0]
Чтобы включить этот аргумент, установите Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
YV
- Принят узкополосный V-поляризационный сигналПринят узкополосный V -поляризационный сигнал, возвращенный как комплексно-оцененная M -by - Nr матрица. M - количество выборок в сигнале, а Nr - количество принимающих элементов массива. Каждый столбец представляет сигнал, принимаемый соответствующим элементом массива.
Пример: [1,1;j,1;0.5,0]
Чтобы включить этот аргумент, установите Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
CR
- Реакция каналаОтвет канала, возвращенный как Nt -by Nr -by Nc комплексный массив.
Nt - количество передающих элементов массива.
Nr - количество принимающих элементов массива.
Когда вы задаете SimulateDirectPath
как false
, Nc = Ns, количество рассеивателей.
Когда вы задаете SimulateDirectPath
как true
, Nc = Ns + 1, чтобы принять во внимание прямой путь.
Каждая страница массива соответствует матрице отклика канала для определенного рассеивателя.
Чтобы включить этот аргумент, установите ChannelResponseOutputPort
свойство к true
и Polarization
свойство к 'None'
или 'Combined'
.
Типы данных: double
Поддержка комплексного числа: Да
CR_HH
- Реакция канала на H-вход на H-выходОтвет канала от входа H-поляризации к выходному сигналу H-поляризации возвращается как комплексно-значимый Nt массив -by- Nr -by- Nc.
Nt - количество передающих элементов массива.
Nr - количество принимающих элементов массива.
Когда вы задаете SimulateDirectPath
как false
, Nc = Ns, количество рассеивателей.
Когда вы задаете SimulateDirectPath
как true
, Nc = Ns + 1, чтобы принять во внимание прямой путь.
Каждая страница массива соответствует матрице отклика канала для определенного рассеивателя.
Чтобы включить этот аргумент, установите ChannelResponseOutputPort
свойство к true
и Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
CR_HV
- Ответ канала для H-входа на V-выходОтвет канала от входа H-поляризации к выходному сигналу V-поляризации возвращается как комплексный Nt массив -by- Nr -by- Nc .
Nt - количество передающих элементов массива.
Nr - количество принимающих элементов массива.
Когда вы задаете SimulateDirectPath
как false
, Nc = Ns, количество рассеивателей.
Когда вы задаете SimulateDirectPath
как true
, Nc = Ns + 1, чтобы принять во внимание прямой путь.
Каждая страница массива соответствует матрице отклика канала для определенного рассеивателя.
Чтобы включить этот аргумент, установите ChannelResponseOutputPort
свойство к true
и Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
CR_VH
- Реакция канала на V-вход на H-выходОтвет канала от входа V-поляризации к выходному сигналу H-поляризации возвращен как комплексный Nt массив -by- Nr -by- Nc .
Nt - количество передающих элементов массива.
Nr - количество принимающих элементов массива.
Когда вы задаете SimulateDirectPath
как false
, Nc = Ns, количество рассеивателей.
Когда вы задаете SimulateDirectPath
как true
, Nc = Ns + 1, чтобы принять во внимание прямой путь.
Каждая страница массива соответствует матрице отклика канала для определенного рассеивателя.
Чтобы включить этот аргумент, установите ChannelResponseOutputPort
свойство к true
и Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
CR_VV
- Реакция канала на V-вход на V-выходОтвет канала от входа V-поляризации к выходному сигналу V-поляризации возвращается как комплексный Nt массив -by- Nr -by- Nc .
Nt - количество передающих элементов массива.
Nr - количество принимающих элементов массива.
Когда вы задаете SimulateDirectPath
как false
, Nc = Ns, количество рассеивателей.
Когда вы задаете SimulateDirectPath
как true
, Nc = Ns + 1, чтобы принять во внимание прямой путь.
Каждая страница массива соответствует матрице отклика канала для определенного рассеивателя.
Чтобы включить этот аргумент, установите ChannelResponseOutputPort
свойство к true
и Polarization
свойство к 'Dual'
.
Типы данных: double
Поддержка комплексного числа: Да
TAU
- Задержки путиЗадержки пути, возвращенные как 1-байтовый NC действительный вектор. Каждый элемент соответствует временной задержке пути от центра фазы передающего массива до рассеивателя, а затем к центру фазы приемного массива .
Когда вы задаете SimulateDirectPath
как false
, Nc = Ns, количество рассеивателей.
Когда вы задаете SimulateDirectPath
как true
, Nc = Ns + 1, чтобы принять во внимание прямой путь.
Чтобы включить этот аргумент, установите ChannelResponseOutputPort
свойство к true
.
Типы данных: double
Создайте канал MIMO на 30 ГГц со случайными рассеивателями. Сценарий содержит стационарный 21-элементный передающий массив ULA и стационарный 15-элементный принимающий массив ULA. Передающие антенны имеют косинусоидные отклики, а приемные антенны изотропны. Интервал между элементами для обоих массивов меньше половины длины волны. Канал имеет 50 случайным образом сгенерированных статических рассеивателей в пределах заданного ограничивающего прямоугольника. Передающий массив расположен на [0; 20; 50] метрах, а приёмный массив расположен на [200; 10; 10] метрах. Вычислите распространенный сигнал через этот канал. Частота дискретизации для сигнала составляет 10 МГц.
fc = 30e9; c = physconst('LightSpeed'); lambda = c/fc; fs = 10e6; txarray = phased.ULA('Element',phased.CosineAntennaElement,... 'NumElements',21,'ElementSpacing',0.45*lambda); rxarray = phased.ULA('Element',phased.IsotropicAntennaElement,... 'NumElements',15,'ElementSpacing',0.45*lambda); channel = phased.ScatteringMIMOChannel('TransmitArray',txarray,... 'ReceiveArray',rxarray,'PropagationSpeed',c,'CarrierFrequency',fc,... 'SampleRate',fs,'TransmitArrayPosition',[0;20;50],... 'ReceiveArrayPosition',[200;10;10],'NumScatterers',50,... 'ScattererPositionBoundary',[10 180; -30 30; -30 30]);
Создайте случайный сигнал данных таковых и нулей для каждого передатчика.
x = randi(2,[100 21]) - 1;
Вычислите принятые сигналы после распространения по каналу.
y = channel(x);
Создайте канал MIMO, содержащий 3 фиксированных рассеивателя. Сценарий содержит 21-элементный передающий массив ULA, работающий на 72 ГГц, и 15-элементный принимающий массив ULA. Передающие элементы имеют формы косинусоидальной характеристики, а приемные антенны являются изотропными. Перемещается только передающая антенна. Интервал между элементами для обоих массивов меньше половины длины волны. Передающий массив начинается с (0,20,50) метров и движется к приемнику со скоростью 2 м/с. Приёмный массив расположен на (200,10,10) метрах. Вычислите распространенный сигнал через этот канал. Частота дискретизации для сигнала составляет 10 МГц.
fc = 72e9; c = physconst('LightSpeed'); lambda = c/fc; fs = 10e6; txplatform = phased.Platform('MotionModel','Velocity','InitialPosition', ... [0;20;50],'Velocity',[2;0;0]); txarray = phased.ULA('Element',phased.CosineAntennaElement, ... 'NumElements',21,'ElementSpacing',0.45*lambda); rxarray = phased.ULA('Element',phased.IsotropicAntennaElement, ... 'NumElements',15,'ElementSpacing',0.45*lambda); channel = phased.ScatteringMIMOChannel('TransmitArray',txarray, ... 'ReceiveArray',rxarray,'PropagationSpeed',c,'CarrierFrequency',fc,... 'SampleRate',fs,'TransmitArrayMotionSource','Input port', ... 'ReceiveArrayMotionSource','Property','ReceiveArrayPosition',[200;10;10],... 'ReceiveArrayOrientationAxes',rotz(180),... 'ScattererSpecificationSource','Property','ScattererPosition', ... [75 100 120; -10 20 12; 5 -5 8],'ScattererCoefficient',[1i,2+3i,-1+1i]);
Перемещайте платформы в течение двух временных шагов с интервалом в секунду. Для каждого образца:
Создайте сигнал случайных данных таковых и нулей для каждого элемента передатчика.
Переместите передатчик и приемник. Ориентации фиксированы.
Передайте сигналы от передатчиков к рассеивателям к приемнику.
for k =1:2 x = randi(2,[100 21]) - 1; [txpos,txvel] = txplatform(1); txaxes = eye(3); y = channel(x,txpos,txvel,txaxes); end
Создайте канал MIMO, содержащий 3 фиксированных рассеивателя. Сценарий содержит 21-элементный передающий массив ULA и 15-элементный принимающий массив ULA. Оба массива работают на 72 ГГц. Передающие элементы имеют формы косинусоидальной характеристики, а приемные антенны являются изотропными. Перемещается только приемная антенна. Интервал между элементами для обоих массивов меньше половины длины волны. Передающий массив расположен на (0,20,50) метрах. Приемный массив начинается с (200,10,10) метров и движется к передатчику со скоростью 2 м/с. Вычислите распространенный сигнал через этот канал. Частота дискретизации для сигнала составляет 10 МГц.
fc = 72e9; c = physconst('LightSpeed'); lambda = c/fc; fs = 10e6; rxplatform = phased.Platform('MotionModel','Velocity','InitialPosition',... [200;10;10],'Velocity',[-2;0;0]); txarray = phased.ULA('Element',phased.CosineAntennaElement, ... 'NumElements',21,'ElementSpacing',0.45*lambda); rxarray = phased.ULA('Element',phased.IsotropicAntennaElement, ... 'NumElements',15,'ElementSpacing',0.45*lambda); channel = phased.ScatteringMIMOChannel('TransmitArray',txarray, ... 'ReceiveArray',rxarray,'PropagationSpeed',c,'CarrierFrequency',fc, ... 'SampleRate',fs,'TransmitArrayMotionSource','Property',... 'TransmitArrayPosition',[0;20;50],'TransmitArrayOrientationAxes',eye(3,3), ... 'ReceiveArrayMotionSource','Input port','ScattererSpecificationSource', ... 'Property','ScattererPosition',[75 100 120; -10 20 12; 5 -5 8], ... 'ScattererCoefficient',[1i,2+3i,-1+1i],'SpecifyAtmosphere',false);
Перемещайте платформы в течение двух временных шагов с интервалом в одну секунду. Для каждого образца:
Создайте сигнал случайных данных таковых и нулей для каждого элемента передатчика.
Переместите передатчик и приемник. Исправьте ориентации массива.
Передайте сигналы от передатчиков к рассеивателям к приемнику.
for k =1:2 x = randi(2,[100 21]) - 1; [rxpos,rxvel] = rxplatform(1); rxaxes = rotz(45); y = channel(x,rxpos,rxvel,rxaxes); end
Создайте канал MIMO, содержащий 3 движущихся рассеивателя. Сценарий содержит 21-элементный передающий массив ULA и 15-элементный принимающий массив ULA. Оба массива работают на 72 ГГц. Передающие элементы имеют косинусоидные отклики, а приемные антенны изотропны. Интервал между элементами для обоих массивов меньше половины длины волны. Передающий массив расположен на (0,20,50) метрах. Приёмный массив расположен на (200,10,10) метрах. Вычислите распространенный сигнал через этот канал. Частота дискретизации для сигнала составляет 10 МГц. Получите матрицу отклика канала и временные задержки.
fc = 30e9; c = physconst('LightSpeed'); lambda = c/fc; fs = 10e6; txarray = phased.ULA('Element',phased.CosineAntennaElement, ... 'NumElements',21,'ElementSpacing',0.45*lambda); rxarray = phased.ULA('Element',phased.IsotropicAntennaElement, ... 'NumElements',15,'ElementSpacing',0.45*lambda); channel = phased.ScatteringMIMOChannel('TransmitArray',txarray, ... 'ReceiveArray',rxarray,'PropagationSpeed',c,'CarrierFrequency',fc, ... 'SampleRate',fs,'TransmitArrayPosition',[0;20;50], ... 'ReceiveArrayPosition',[200;10;10],'ScattererSpecificationSource','Input port', ... 'ChannelResponseOutputPort',true);
Создайте случайный сигнал данных таковых и нулей для каждого передатчика.
x = randi(2,[100 21]) - 1;
Вычислите принятые сигналы после распространения по каналу. Также возвращает матрицу канала и задержки.
scatpos = [75 100 120; -10 20 12; 5 -5 8]; scatvel = [0 0.5 0; -0.1 1.2 0.04; .05 -0.45 0.8]; scatcoef = [1i,2+3i,-1+1i]; [y,chmat,delays] = channel(x,scatpos,scatvel,scatcoef);
Отобразите размерности матрицы канала.
size(chmat)
ans = 1×3
21 15 3
Отображение задержек в микросекундах.
delays*1e6
ans = 1×3
0.7310 0.7196 0.6919
Создайте канал MIMO на 30 ГГц с 16-элементной передающим массивом и 64-элементным приёмным массивом. Предположим, что элементами являются коротко-дипольные антенны, а массивы являются равномерными линейными массивами. Передающая решётка расположена на уровне [0; 0; 50] метров.
Приемный массив имеет начальное положение на [200; 0; 0] метрах и движется со скоростью [10; 0; 0] метров/секунду. Существует 200 статических рассеивателя, случайным образом расположенных на плоскости xy в квадрате с центром [200; 0; 0] и с длиной стороны 100 метров.
Используйте канал, чтобы вычислить распространенный поляризованный сигнал. Предположим, что частота дискретизации для сигнала составляет 10 МГц, а длина системы координат составляет 1000 выборки. Собрать 5 системы координат принимаемого сигнала.
fc = 30e9; c = 3e8; lambda = c/fc; fs = 10e6; txarray = phased.ULA('Element',phased.ShortDipoleAntennaElement,... 'NumElements',16,'ElementSpacing',lambda/2); rxarray = phased.ULA('Element',phased.ShortDipoleAntennaElement,... 'NumElements',64,'ElementSpacing',lambda/2); Ns = 200; scatpos = [100*rand(1,Ns) + 150; 100*rand(1,Ns) + 150; zeros(1,Ns)]; temp = randn(1,Ns) + 1i*randn(1,Ns); scatcoef = repmat(eye(2),1,1,Ns).*permute(temp,[1 3 2]); scatax = repmat(eye(3),1,1,Ns); Nframesamp = 1000; Tframe = Nframesamp/fs; rxmobile = phased.Platform('InitialPosition',[200;0;0],... 'Velocity',[10;0;0],'OrientationAxesOutputPort',true); chan = phased.ScatteringMIMOChannel(... 'TransmitArray',txarray,... 'ReceiveArray',rxarray,... 'PropagationSpeed',c,... 'CarrierFrequency',fc,... 'SampleRate',fs,... 'Polarization','Dual',... 'TransmitArrayPosition',[0;0;50],... 'ReceiveArrayMotionSource','Input port',... 'ScattererSpecificationSource','Property',... 'ScattererPosition',scatpos,... 'ScatteringMatrix',scatcoef,... 'ScattererOrientationAxes',scatax); xh = randi(2,[Nframesamp 16])-1; xv = randi(2,[Nframesamp 16])-1; for m = 1:5 [rxpos,rxvel,rxax] = rxmobile(Tframe); [yh,yv] = chan(xh,xv,rxpos,rxvel,rxax); end
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.