Симулируйте полученный сигнал в сенсорной матрице
симулирует полученные узкополосные сигналы плоской волны в сенсорной матрице. x
= sensorsig(pos
,ns
,ang
)pos
представляет положения элементов массива, каждый из которых принят, чтобы быть изотропным. ns
указывает на количество снимков состояния симулированного сигнала. ang
представляет входящие направления каждого сигнала плоской волны. Сигналы плоской волны являются сигналами принятого постоянным модуля со случайными фазами.
Симулируйте полученный сигнал в массиве и используйте данные, чтобы оценить направления прибытия.
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step
синтаксис. Например, замените myObject(x)
с step(myObject,x)
.
Создайте универсальную линейную матрицу с 8 элементами, элементы которой расположены половина длины волны с интервалами независимо.
fc = 3e8; c = 3e8; lambda = c/fc; array = phased.ULA(8,lambda/2);
Симулируйте 100 снимков состояния полученного сигнала в массиве. Примите, что существует два сигнала, прибывающие из азимута 30 ° и 60 °, соответственно. Шум является белым через все элементы массива, и ОСШ составляет 10 дБ.
x = sensorsig(getElementPosition(array)/lambda,...
100,[30 60],db2pow(-10));
Используйте beamscan пространственное средство оценки спектра, чтобы оценить направления прибытия, на основе симулированных данных.
estimator = phased.BeamscanEstimator('SensorArray',array,... 'PropagationSpeed',c,'OperatingFrequency',fc,... 'DOAOutputPort',true,'NumSignals',2); [~,ang_est] = estimator(x);
Постройте пространственный спектр, следующий из процесса оценки.
plotSpectrum(estimator)
График показывает peaks на уровне 30 ° и 60 °.
Симулируйте получение двух некоррелированых входящих сигналов, которые имеют различные уровни мощности. Вектор под названием scov
хранит уровни мощности.
Создайте универсальную линейную матрицу с 8 элементами, элементы которой расположены половина длины волны с интервалами независимо.
fc = 3e8; c = 3e8; lambda = c/fc; ha = phased.ULA(8,lambda/2);
Симулируйте 100 снимков состояния полученного сигнала в массиве. Примите, что один входящий сигнал происходит из 30 азимутов степеней и имеет силу 3 Вт. Второй входящий сигнал происходит из 60 азимутов степеней и имеет силу 1 Вт. Два сигнала не коррелируются друг с другом. Шум является белым через все элементы массива, и ОСШ составляет 10 дБ.
ang = [30 60];
scov = [3 1];
x = sensorsig(getElementPosition(ha)/lambda,...
100,ang,db2pow(-10),scov);
Используйте beamscan пространственное средство оценки спектра, чтобы оценить направления прибытия, на основе симулированных данных.
hdoa = phased.BeamscanEstimator('SensorArray',ha,... 'PropagationSpeed',c,'OperatingFrequency',fc,... 'DOAOutputPort',true,'NumSignals',2); [~,ang_est] = step(hdoa,x);
Постройте пространственный спектр, следующий из процесса оценки.
plotSpectrum(hdoa);
График показывает высокий пик в 30 градусах и более низкий пик в 60 градусах.
Симулируйте прием трех сигналов, два из которых коррелируются.
Создайте ковариационную матрицу сигнала, в которой первое и треть из трех сигналов коррелируются друг с другом.
scov = [1 0 0.6;... 0 2 0;... 0.6 0 1];
Симулируйте получение 100 снимков состояния трех входящих сигналов от 30 °, 40 °, и азимута на 60 °, соответственно. Массив, который получает сигналы, является универсальной линейной матрицей с 8 элементами, элементы которой являются распределенной половиной длины волны независимо. Шум является белым через все элементы массива, и ОСШ составляет 10 дБ.
pos = (0:7)*0.5; ns = 100; ang = [30 40 60]; ncov = db2pow(-10); x = sensorsig(pos,ns,ang,ncov,scov);
Симулируйте получение сигнала в URA. Сравните теоретическую ковариацию сигнала с ее выборочной ковариацией.
Создайте универсальную прямоугольную разрядку массивов 2 на 2 элементы 1/4-wavelength независимо.
pos = 0.25 * [0 0 0 0; -1 1 -1 1; -1 -1 1 1];
Задайте шумовую степень независимо для каждого из этих четырех элементов массива. Каждая запись в ncov
шумовая степень элемента массива. Это положение элемента является соответствующим столбцом в pos
. Примите, что шум является некоррелированым через элементы.
ncov = db2pow([-9 -10 -10 -11]);
Симулируйте 100 снимков состояния полученного сигнала в массиве и сохраните теоретические и эмпирические ковариационные матрицы. Примите, что один входящий сигнал происходит из азимута на 30 ° и вертикального изменения на 10 °. Второй входящий сигнал происходит из азимута на 50 ° и вертикального изменения на 0 °. Сигналы имеют силу 1 Вт и являются некоррелироваными.
ns = 100;
ang1 = [30; 10];
ang2 = [50; 0];
ang = [ang1, ang2];
rng default
[x,rt,r] = sensorsig(pos,ns,ang,ncov);
Просмотрите величины теоретической ковариации и выборочной ковариации.
abs(rt)
ans = 4×4
2.1259 1.8181 1.9261 1.9754
1.8181 2.1000 1.5263 1.9261
1.9261 1.5263 2.1000 1.8181
1.9754 1.9261 1.8181 2.0794
abs(r)
ans = 4×4
2.2107 1.7961 2.0205 1.9813
1.7961 1.9858 1.5163 1.8384
2.0205 1.5163 2.1762 1.8072
1.9813 1.8384 1.8072 2.0000
Симулируйте получение сигнала в ULA, где шум между различными датчиками коррелируется.
Создайте универсальную линейную матрицу с 4 элементами, элементы которой являются распределенной половиной длины волны независимо.
pos = 0.5 * (0:3);
Задайте шумовую ковариационную матрицу. Значение в (k, _j _) положение в ncov
матрица является ковариацией между k и j элементами массива, перечисленными в массиве.
ncov = 0.1 * [1 0.1 0 0; 0.1 1 0.1 0; 0 0.1 1 0.1; 0 0 0.1 1];
Симулируйте 100 снимков состояния полученного сигнала в массиве. Примите, что один входящий сигнал происходит из азимута на 60 °.
ns = 100; ang = 60; [x,rt,r] = sensorsig(pos,ns,ang,ncov);
Просмотрите теоретические матрицы и матрицы выборочной ковариации для полученного сигнала.
rt,r
rt = 4×4 complex
1.1000 + 0.0000i -0.9027 - 0.4086i 0.6661 + 0.7458i -0.3033 - 0.9529i
-0.9027 + 0.4086i 1.1000 + 0.0000i -0.9027 - 0.4086i 0.6661 + 0.7458i
0.6661 - 0.7458i -0.9027 + 0.4086i 1.1000 + 0.0000i -0.9027 - 0.4086i
-0.3033 + 0.9529i 0.6661 - 0.7458i -0.9027 + 0.4086i 1.1000 + 0.0000i
r = 4×4 complex
1.1059 + 0.0000i -0.8681 - 0.4116i 0.6550 + 0.7017i -0.3151 - 0.9363i
-0.8681 + 0.4116i 1.0037 + 0.0000i -0.8458 - 0.3456i 0.6578 + 0.6750i
0.6550 - 0.7017i -0.8458 + 0.3456i 1.0260 + 0.0000i -0.8775 - 0.3753i
-0.3151 + 0.9363i 0.6578 - 0.6750i -0.8775 + 0.3753i 1.0606 + 0.0000i
pos
— Положения элементов в сенсорной матрицеПоложения элементов в сенсорной матрице, заданной как N-вектор-столбец или матрица. Значения в матрице находятся в модулях длины волны сигнала. Например, [0 1 2]
описывает три элемента, которые расположены одна длина волны сигнала с интервалами независимо. N является числом элементов в массиве.
Размерности pos
:
Для линейной матрицы вдоль оси y задайте y координаты элементов в векторе 1 на n.
Для плоского массива в yz плоскости задайте y и z координаты элементов в столбцах 2 N матрицей.
Для массива произвольной формы задайте x, y, и z координаты элементов в столбцах 3 N матрицей.
Типы данных: double
ns
— Количество снимков состояния симулированного сигналаКоличество снимков состояния симулированного сигнала, заданного как положительный целочисленный скаляр. Функция возвращает это количество выборок на элемент массива.
Типы данных: double
ang
— Направления входящих сигналов плоской волныНаправления входящих сигналов плоской волны, заданных как M-вектор-столбец или матрица в градусах. M является количеством входящих сигналов.
Размерности ang
:
Если ang
2 M матрицей, каждый столбец задает направление. Каждый столбец находится в форме [azimuth; elevation]
. Угол азимута должен быть между –180 и 180 градусами, включительно. Угол вертикального изменения должен быть между –90 и 90 градусами, включительно.
Если ang
1 M вектором, каждая запись задает угол азимута. В этом случае соответствующий угол вертикального изменения принят, чтобы быть 0.
Типы данных: double
ncov
— Шумовые характеристикиШумовые характеристики, заданные как неотрицательный скаляр, вектор 1 на n положительных чисел или N на n положительная определенная матрица.
Размерности ncov
:
Если ncov
скаляр, он представляет шумовую степень белого шума через все элементы датчика получения в ваттах. В частности, значение 0
указывает, что нет никакого шума.
Если ncov
вектор 1 на n, каждая запись представляет шумовую степень одного из элементов датчика в ваттах. Шум является некоррелированым через датчики.
Если ncov
N на n матрица, она представляет ковариационную матрицу для шума через все элементы датчика.
Типы данных: double
scov
— Характеристики входящего сигналаХарактеристики входящего сигнала, заданные как положительная скалярная величина, 1 M вектором положительных чисел или M-by-M положительной полуопределенной матрицей.
Размерности scov
:
Если scov
скаляр, он представляет степень всех входящих сигналов в ваттах. В этом случае все входящие сигналы являются некоррелироваными и совместно используют тот же уровень мощности.
Если scov
1 M вектором, каждая запись представляет степень одного из входящих сигналов в ваттах. В этом случае все входящие сигналы являются некоррелироваными друг с другом.
Если scov
M-by-M матрица, она представляет ковариационную матрицу для всех входящих сигналов. Матрица описывает корреляцию среди входящих сигналов. В этом случае, scov
может быть действительным или комплексным.
Типы данных: double
taper
— Заострение элемента массиваЗаострение элемента массива, заданное как скалярный или N с комплексным знаком-by-1 вектор-столбец. Размерность N является количеством элементов массива. Если taper
скаляр, все элементы в массиве используют то же значение. Если taper
вектор, каждая запись указывает, что заострение применилось к соответствующему элементу массива.
Типы данных: double
Поддержка комплексного числа: Да
x
— Полученный сигналns
- N матрицаПолученный сигнал в сенсорной матрице, возвращенной как комплексный ns
- N матрица. Каждый столбец представляет полученный сигнал в соответствующем элементе массива. Каждая строка представляет снимок состояния.
rt
— Теоретическая ковариационная матрицаТеоретическая ковариационная матрица полученного сигнала, возвращенного как комплексная N на n матрица.
r
— Матрица выборочной ковариацииМатрица выборочной ковариации полученного сигнала, возвращенного как комплексная N на n матрица. N является количеством элементов массива. Функция выводит эту матрицу из x
.
Если вы задаете этот выходной аргумент, считаете создание ns
больше, чем или равный N. В противном случае, r
имеет неполный ранг.
azimuth angle вектора является углом между x - ось и ортогональной проекцией вектора на плоскость xy. Угол положителен в движении от оси x к оси y. Углы азимута находятся между –180 и 180 градусами. elevation angle является углом между вектором и его ортогональной проекцией на xy - плоскость. Угол положителен при движении к положительному z - ось от плоскости xy. Эти определения принимают, что направлением опорного направления является положительный x - ось.
Угол вертикального изменения иногда задается в литературе как угол, который вектор делает с положительным z - ось. MATLAB® и продукты Phased Array System Toolbox™ не используют это определение.
Этот рисунок иллюстрирует угол азимута и угол вертикального изменения для вектора, показавшего зеленой сплошной линией. Система координат относительно центра универсальной линейной матрицы, элементы которой появляются как синие диски.
Указания и ограничения по применению:
Не поддерживает входные параметры переменного размера.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.