propagationData

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

Описание

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

Создание

Описание

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

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

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Запустите Средство Просмотра с основными картами и файлами создания для Manhattan. Для получения дополнительной информации о файле 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