exponenta event banner

propagationData

Создание контейнера данных распространения RF

Описание

Используйте propagationData объект для импорта и визуализации геолокационных данных распространения. Данные измерения могут быть данными о потерях в тракте, измерениями уровня сигнала, данными отношения сигнал/шум (SNR) или сотовой информацией.

Создание

Описание

pd = propagationData(filename) создает объект контейнера данных распространения путем чтения данных из файла, указанного в filename.

pd = propagationData(table) создает объект контейнера данных распространения из объекта таблицы, указанного table.

пример

pd = propagationData(latitude,longitude,varname,varvalue) создает объект-контейнер данных распространения с помощью latitude и longitude координаты с данными, заданными с помощью varname и varvalue.

пример

pd = propagationData(___,Name,Value) задает свойства, используя одну или несколько пар имя-значение. Заключите каждое имя свойства в кавычки.

Входные аргументы

развернуть все

Имя файла, содержащего данные распространения, указанное как символьный вектор или строковый скаляр. Файл должен находиться в текущем каталоге, в каталоге по пути MATLAB или быть указан с использованием полного или относительного пути. Файл должен быть совместим с readtable функция. Позвоните в readtable если для импорта файла и последующей передачи table объект для propagationData объект.

Данные распространения в файле должны иметь одну переменную, соответствующую значениям широты, одну переменную, соответствующую значениям долготы, и по меньшей мере одну переменную, содержащую числовые данные.

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

Таблица, содержащая данные распространения, заданная как объект таблицы.

Данные распространения в файле должны иметь одну переменную, соответствующую значениям широты, одну переменную, соответствующую значениям долготы, и по меньшей мере одну переменную, содержащую числовые данные.

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

Значения координат широты, заданные как вектор в десятичных градусах со ссылкой на эллипсоидную модель Земли WGS-84. Координаты широты должны находиться в диапазоне [-90 90].

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

Значения координат долготы, заданные как вектор в десятичных градусах относительно эллипсоида Земли. WGS-84 модели.

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

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

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

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

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

Выходные аргументы

развернуть все

Данные распространения, возвращенные как propagationData объект.

Свойства

развернуть все

Имя данных распространения, указанное как вектор символа или скаляр строки.

Пример: 'Name','propdata'

Пример: pd.Name = 'propdata'

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

Это свойство доступно только для чтения.

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

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

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

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

Функции объекта

plotПечать данных распространения на карте
contourОтображение карты контуров
locationКоординаты местоположения данных
getDataVariableПолучение значений переменных данных точек данных в объекте данных распространения
interpИнтерполяция географических данных

Примеры

свернуть все

Запустите Site Viewer с базовыми картами и файлами зданий для Манхэттена. Для получения дополнительной информации о файле osm см. [1].

viewer = siteviewer("Basemap","streets_dark",...
        "Buildings","manhattan.osm");

Показать площадку датчика на здании.

tx = txsite("Latitude",40.7107,...
        "Longitude",-74.0114,...
        "AntennaHeight",80);
show(tx)

Создание приемных площадок вдоль близлежащих улиц.

latitude = [linspace(40.7088, 40.71416, 50), ...
        linspace(40.71416, 40.715505, 25), ...
        linspace(40.715505, 40.7133, 25), ...
        linspace(40.7133, 40.7143, 25)]';
longitude = [linspace(-74.0108, -74.00627, 50), ...
        linspace(-74.00627 ,-74.0092, 25), ...
        linspace(-74.0092, -74.0110, 25), ...
        linspace(-74.0110, -74.0132, 25)]';
rxs = rxsite("Latitude", latitude, "Longitude", longitude);

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

signalStrength = sigstrength(rxs, tx)';

Создать propagationData объект для хранения данных вычисленного уровня сигнала.

tbl = table(latitude, longitude, signalStrength);
pd = propagationData(tbl);

Постройте график данных уровня сигнала на карте в виде цветных точек.

legendTitle = "Signal" + newline + "Strength" + newline + "(dB)";
plot(pd, "LegendTitle", legendTitle, "Colormap", parula);

Приложение

[1] OSM-файл загружается из https://www.openstreetmap.org, что обеспечивает доступ к данным карты, полученным от толпы, по всему миру. Данные лицензированы по лицензии Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.

Определите названия и местоположения сайтов вокруг Бостона.

names = ["Fenway Park","Faneuil Hall","Bunker Hill Monument"];
lats = [42.3467,42.3598,42.3763];
lons = [-71.0972,-71.0545,-71.0611];

Создайте массив узлов передатчика.

txs = txsite("Name",names,...
       "Latitude",lats,...
       "Longitude",lons, ...
       "TransmitterFrequency",2.5e9);
show(txs)   

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

sv1 = siteviewer("Name","SINR map");
sinr(txs,"MaxRange",5000)

Возвращает данные распространения SINR.

pd = sinr(txs,"MaxRange",5000);
[sinrDb,lats,lons] = getDataVariable(pd,"SINR"); 

Вычислить ёмкость с помощью теоремы Шеннона - Хартли.

bw = 1e6; % Bandwidth is 1 MHz
sinrRatio = 10.^(sinrDb./10); % Convert from dB to power ratio
capacity = bw*log2(1+sinrRatio)/1e6; % Unit: Mbps

Создайте новые данные распространения для карты мощностей и просмотрите контурный график.

pdCapacity = propagationData(lats,lons,"Capacity",capacity);
sv2 = siteviewer("Name","Capacity map");
legendTitle = "Capacity" + newline + "(Mbps)";
contour(pdCapacity,"LegendTitle",legendTitle);

См. также

| | |

Представлен в R2020a