В этом примере показано, как анализировать интерференцию на нисходящем канале от созвездия спутников. Нисходящий канал происходит с геосинхронного спутника на наземную станцию, расположенную в Тихом океане. Вмешивающееся созвездие состоит из 40 спутников в низкой околоземной орбите. Этот пример определяет времена, в которые нисходящий канал закрывается, несущая к шуму плюс интерференционное отношение и поле ссылки.
Создайте спутниковый сценарий. Задайте время начала и время остановки сценария. Установите шаг расчета на 60 секунд.
startTime = datetime(2021,3,17); % 17 March 2021 12:00 AM UTC stopTime = startTime + days(1); % 18 March 2021 12:00 AM UTC sampleTime = 60; % In s sc = satelliteScenario(startTime,stopTime,sampleTime);
Добавьте спутник в геосинхронной орбите путем указывания ее Кеплеровских орбитальных элементов. Этот спутник является спутником, от которого переданы в нисходящем направлении данные.
earthAngularVelocity = 0.0000729211585530; % In rad/s orbitalPeriod = 2*pi/earthAngularVelocity; % In s earthStandardGravitationalParameter = 398600.4418e9; % In m^3/s^2 semiMajorAxis = (earthStandardGravitationalParameter ... /(earthAngularVelocity^2))^(1/3); % In m eccentricity = 0; inclination = 8; % In degrees raan = 0; % In degrees argOfPeriapsis = 0; % In degrees trueAnomaly = 0; % In degrees geoSat = satellite(sc, semiMajorAxis, ... eccentricity, ... inclination, ... raan, ... argOfPeriapsis, ... trueAnomaly, ... "Name","Geo Sat");
Добавьте вмешивающуюся спутниковую группировку из файла 2D линейного элемента (TLE). Устраните помехи визуализацию, которую вы запускаете позже в этом примере путем установки ShowLabel
свойство этой спутниковой группировки к false.
interferingSat = satellite(sc,"leoSatelliteConstellation.tle");
interferingSat.ShowLabel = false;
Запустите Спутниковое Средство просмотра Сценария. Скройте орбиты вмешивающихся спутников, чтобы далее устранить помехи визуализацию.
v = satelliteScenarioViewer(sc); hide(interferingSat.Orbit);
Добавьте передатчик в геосинхронный спутник орбиты. Этот передатчик используется для нисходящего канала. Задайте технические требования антенны и установите рабочую несущую частоту на 30 ГГц.
txGeoFreq = 30e9; % In Hz txGeoSat = transmitter(geoSat, ... "Frequency",txGeoFreq, ... % In Hz "Power",25); % In dBW gaussianAntenna(txGeoSat, ... "DishDiameter",1); % In m
Добавьте передатчик в каждый спутник во вмешивающемся созвездии, и затем задайте технические требования антенны. Эти передатчики - те, которые вмешиваются в нисходящий канал от геосинхронного спутника орбиты. Установите рабочую несущую частоту вмешивающихся спутников к 29,99 ГГц. Пример присваивает каждый вмешивающийся спутник случайная степень в диапазоне от 10 до 20 dBW.
interferenceFreq = 29.99e9; % In Hz rng("default"); for idx = 1:numel(interferingSat) txInterferingSat = transmitter(interferingSat(idx), ... "Frequency",interferenceFreq, ... % In Hz "Power",10+10*rand); % In dBW gaussianAntenna(txInterferingSat, ... "DishDiameter",0.2); % In m end
Добавьте наземную станцию в спутниковый сценарий путем определения его широты и долготы.
gs = groundStation(sc, ... 0, ... % Latitude in degrees 180, ... % Longitude in degrees "Name","Ground station");
Добавьте карданов подвес в наземную станцию путем определения ее местоположения монтирования и углов. Этот карданов подвес используется, чтобы заставить антенну приемника наземной станции отследить геосинхронный спутник орбиты.
gim = gimbal(gs, ... "MountingLocation",[0;0;-5], ... % In m "MountingAngles",[0;180;0]); % In m
Добавьте приемник в карданов подвес наземной станции, задав местоположение монтирования приемника относительно карданова подвеса. Задайте технические требования антенны приемника.
rxGs = receiver(gim, ... "MountingLocation",[0;0;1]); % In m gaussianAntenna(rxGs, ... "DishDiameter",3); % In m
Установите спутники отслеживать наземную станцию и карданов подвес наземной станции, чтобы отследить геосинхронный спутник орбиты. Это гарантирует, что антенны передатчика на борту каждого спутника отслеживают наземную станцию и что антенна наземной станции отслеживает геосинхронный спутник орбиты. Установка вмешивающихся спутниковых передатчиков отследить наземную станцию приводит к интерференции худшего случая на нисходящем канале.
pointAt(geoSat,gs); pointAt(gim,geoSat); for idx = 1:numel(interferingSat) pointAt(interferingSat(idx),gs); end
Визуализируйте диаграмму направленности антенны передатчика на борту геосинхронного спутника орбиты и приемника на борту наземной станции.
pattern(geoSat.Transmitters); pattern(rxGs,geoSat.Transmitters.Frequency);
Создайте нисходящий канал из передатчика на борту геосинхронного спутника орбиты к приемнику на борту наземной станции. Эта ссылка является нисходящим каналом, который сталкивается с интерференцией от спутниковой группировки.
downlink= link(txGeoSat,rxGs);
Создайте ссылку между передатчиком на борту каждого вмешивающегося спутника в созвездии и приемником на борту наземной станции. Эти ссылки являются ссылками interferer с желаемым нисходящим каналом.
for idx = 1:numel(interferingSat) link(interferingSat(idx).Transmitters,rxGs); end
Добавьте анализ доступа между каждым спутником во вмешивающемся созвездии и наземной станцией. Этот анализ включает визуализацию интерференции. Любое время, которым спутник в созвездии отображается к наземной станции, там немного находится на одном уровне интерференции от того видимого спутника.
for idx = 1:numel(interferingSat) ac = access(interferingSat(idx),gs); ac.LineColor = [1 1 0]; % Yellow end
Присутствие зеленой линии между передатчиком на борту геосинхронного спутника и приемником на борту наземной станции показывает, что нисходящий канал может быть закрыт, успешно приняв, что никакая интерференция от спутниковой группировки не существует. Присутствие желтых линий между данным спутником в созвездии и наземной станцией показывает, что интерференция от того спутника существует.
Проигрывайте сценарий в Спутниковом Средстве просмотра Сценария. Поставьте цель камеры к наземной станции. Поместите камеру в-10 широтах степени, 170 долготах степени и 4 000-километровой высоте. Кроме того, установите заголовок камеры и углы тангажа до 40 и-60 градусов, соответственно.
play(sc); camtarget(v,gs); campos(v,-10,170,4000000); camheading(v,40); campitch(v,-60);
Определите состояние закрытия желаемого нисходящего канала от геосинхронного спутника орбиты. linkStatus
функция пропускает интерференцию от других передатчиков. Любое время нисходящий канал близок, состояние, верно. В противном случае состояние является ложным. Состояние обозначается 1 и 0, соответственно в графике. Поскольку спутник, вовлеченный в нисходящий канал, находится в геосинхронной орбите над землей станция, нисходящий канал закрывается для длительности сценария.
[downlinkStatus,t] = linkStatus(downlink); plot(t,downlinkStatus,"-g","LineWidth", 2); xlabel("Time"); ylabel("Downlink Closure Status"); title("Link Status as a Function of Time"); grid on;
Несмотря на то, что linkStatus
функция пропускает интерференцию при определении времен, когда нисходящий канал закрывается, вручную вычислите интерференцию на основе данных, которые могут быть извлечены из сценария, возможно. Сделать это ручное вычисление, понимая как linkStatus
вычисляет закрытие ссылки, как показано на этих шагах, необходимо.
1) Вычислите эффективную изотропную излученную степень (EIRP):
,
где:
EIRP антенны передатчика (в dBW).
степень передатчика (в dBW).
общая системная потеря передатчика (в дБ).
усиление антенны передатчика в направлении антенны приемника (в дБ).
2) В спутниковом сценарии все расчеты потери на пути принимают модель распространения свободного пространства. Вычислите потери при распространении в свободном пространстве от передатчика к приемнику антенна как
,
где:
потери при распространении в свободном пространстве от передатчика к приемнику антенна (в дБ).
расстояние между передатчиком и антенной приемника (в m).
частота передатчика (в Гц).
скорость света в вакууме (в m/s).
3) Вычислите полученную изотропную степень как
,
где полученная изотропная степень в полученной антенне (в dBW).
4) Вычислите несущую к шумовому отношению плотности как
,
где:
несущая к шумовому отношению плотности (в дБ).
усиление к шумовому температурному отношению антенны приемника (в dB/K).
Постоянная Больцмана (в ).
общая системная потеря передатчика.
Усиление антенны приемника вычисляется в направлении антенны передатчика. Шумовая температура принята, чтобы быть константой и выведена из GainToNoiseTemperatureRatio
свойство приемника, который в свою очередь основан на усилении антенны приемника вперед - ось приемника. В сущности:
,
где:
усиление антенны приемника к шумовому температурному отношению вперед - ось приемника (в дБ).
усиление антенны приемника в направлении - ось приемника (в дБ).
шумовая температура (в K).
Реорганизация вышеупомянутого уравнения приводит к
.
Следовательно,
.
5) Вычислите энергию приемника на бит к отношению спектральной плотности мощности шума как
,
где:
полученная энергия на бит к отношению плотности шумовой мощности (в дБ).
битрейт ссылки (в Мбит/с).
60 значений появляются в уравнении, потому что битрейт находится в Мбит/с.
6) Вычислите поле ссылки как
,
где:
поле ссылки (в дБ).
минимальная полученная энергия на бит к отношению спектральной плотности мощности шума, которое требуется, чтобы закрывать ссылку (в дБ).
Ссылка закрывается, когда поле ссылки больше или равно 0 дБ.
С учетом интерференции сигнал, полученный в антенне наземной станции от каждого вмешивающегося передатчика, должен быть обработан как шум и должен быть добавлен к шумовой мощности. Вычислить новое получило Eb/No и поле ссылки, принимаемая мощность сигнала от каждого передатчика в сценарии должна быть вычислена.
Мощность приемника после антенны является количеством . Эта мощность приемника может быть получена путем запуска с и использование уравнений в предыдущем разделе назад. Во-первых, принимаемая мощность сигнала, соответствующая передатчику на борту геосинхронного спутника орбиты, должна быть вычислена. Получите полученный соответствие этому передатчику.
ebnoDownlink = ebno(downlink); % In dB
Используйте эти уравнения, чтобы вычислить соответствующую принимаемую мощность сигнала после антенны.
T = HelperGetNoiseTemperature(txGeoSat.Frequency,rxGs); % In K CNoDownlink = ebnoDownlink + 10*log10(txGeoSat.BitRate) + 60; kb = physconst("Boltzmann"); downlinkSigPower = CNoDownlink + 10*log10(kb) + 10*log10(T) + rxGs.SystemLoss; % In dBW
Общая вмешивающаяся степень сигнала после антенны приемника от всех вмешивающихся передатчиков вычисляется с помощью этих шагов.
1) Вычислить , который соответствует каждому вмешивающемуся передатчику, с помощью тех же уравнений, используемых для передатчика от геосинхронного спутника орбиты.
2) Преобразуйте количества в Уоттса.
3) Добавьте количества в Уоттсе, и итоговая сумма является общей вмешивающейся степенью, , в Уоттсе.
% Retrieve the interfering links lnkInterference = interferingSat.Transmitters.Links; % Initialize an array to store the received Eb/No history corresponding to % each interfering transmitter ebnoInterference = zeros(numel(lnkInterference), numel(t)); % Retrieve the Eb/No history corresponding to each interfering transmitter % and store it in the array for idx = 1:numel(lnkInterference) ebnoInterference(idx,:) = ebno(lnkInterference(idx)); end % Calculate the interfering signal power corresponding to each interfering % transmitter in Watts (in this example, the bit rate of each interfering % transmitter is the same as that of that of the geosynchronous orbit % satellite) bitRate = txGeoSat.BitRate; CNoInterference = ebnoInterference + 10*log10(bitRate) + 60; interferenceSigPower = CNoInterference + 10*log10(kb) ... + 10*log10(T) + rxGs.SystemLoss; interferenceSigPowerW = 10.^(interferenceSigPower/10); % In W % Add the interfering signal power from each transmitter interferenceSigPowerSumW = sum(interferenceSigPowerW); % In W
Вычислите сумму общей вмешивающейся степени сигнала, которая способствует интерференции в полосу пропускания сигнала путем выполнения этих шагов.
1) Вычислите перекрывающийся фрагмент полосы пропускания сигнала с полосой пропускания interferers. Этот пример рассматривает степень передачи вмешивающихся спутников и геосинхронного спутника как постоянную через целую полосу пропускания соответствующего геосинхронного спутника и вмешивающихся спутников.
2) Вычислите сумму интерференционной степени, которая действует как интерференция, чтобы сигнализировать о полосе пропускания.
Эта схема показывает график спектральной плотности мощности (PSD), который показывает фактическую интерференционную степень и смоделировал интерференционную степень, когда полоса пропускания передачи и вмешивающаяся полоса пропускания перекрываются. Фактическая интерференционная степень является областью, занятой интерференционной плотностью энергии в перекрытой области полосы пропускания. Эта фактическая интерференционная власть затем распространена через целую полосу пропускания передачи и приходится, чтобы быть подобной шуму.
Этот пример принимает, что передача (или сигнал) полоса пропускания геосинхронного спутника составляет 30 МГц и что полоса пропускания вмешивающегося сигнала составляет 20 МГц.
txBandwidth = 30e6; % In Hz interferenceBandWidth = 20e6; % In Hz % Get the overlap portion of the interfering bandwidth and the bandwidth of % interest. The assumption is to have same power across the whole % bandwidth. overlapFactor = getOverlapFactor(txGeoFreq,txBandwidth, ... interferenceFreq,interferenceBandWidth); % Get the interference power that contributes as interference to the signal % of interest from the total interference power interferenceSigPowActual = interferenceSigPowerSumW*overlapFactor; % In W
Вычислите нисходящее состояние закрытия, которое составляет интерференцию путем выполнения этих шагов.
1) Вычислите несущую к шуму плюс интерференционное отношение плотности энергии как
,
где:
несущая к шуму плюс интерференционное отношение плотности энергии (в дБ).
интерференционная степень сигнала после антенны приемника, которая вмешивается в полосу пропускания сигнала (в W).
нисходящая полоса пропускания передачи от геосинхронного спутника (в Гц).
2) Вычислите энергию на бит к шуму плюс интерференционное отношение спектральной плотности мощности как
,
где энергия на бит к шуму плюс интерференционное отношение спектральной плотности мощности (в дБ).
3) Вычислите составление поля ссылки интерференции:
.
% Calculate link status in the presence of interference CNoPlusInterference = downlinkSigPower - ... 10*log10((interferenceSigPowActual/txBandwidth) + T*kb) - rxGs.SystemLoss; ebNoPlusInterference = CNoPlusInterference - 10*log10(bitRate) - 60; marginWithInterference = ebNoPlusInterference - rxGs.RequiredEbNo; downlinkStatusWithInterference = marginWithInterference >= 0;
Постройте новое нисходящее состояние закрытия, которое составляет интерференцию. Сравните новое состояние ссылки с предыдущим случаем, когда интерференцией пропустили.
plot(t,downlinkStatusWithInterference,"-r",t,downlinkStatus,"--g","LineWidth",2); legend("Interference accounted","Interference neglected"); xlabel("Time"); ylabel("Downlink Closure Status"); title("Link Status as a Function of Time"); ylim([0 1.2]); grid on
График показывает, что времена существуют, когда нисходящий канал не может быть закрыт из-за интерференции. Интерференция особенно серьезна, когда по крайней мере один спутник летит наверху. Например, график показывает, что нисходящий канал повреждается время от времени, такие как 1:47, 2:33 и 3:26. Установите CurrentTime
свойство Спутникового Средства просмотра Сценария к этим временам, чтобы подтвердить, что существует вмешивающийся спутник, перелетающий через наземную станцию.
v.CurrentTime = datetime(2021,3,17,1,47,0);
v.CurrentTime = datetime(2021,3,17,2,33,0);
v.CurrentTime = datetime(2021,3,17,3,19,0);
Вычислите несущую к шумовому отношению (CNR) и несущая к шуму плюс интерференционное отношение (CNIR) от несущей к шумовому отношению плотности и несущей к шуму плюс интерференционная плотность энергии как:
и
,
где:
несущая к шумовому отношению
несущая к шуму плюс интерференционное отношение.
нисходящая полоса пропускания передачи от геосинхронного спутника (в Гц).
cByN = CNoDownlink - 10*log10(txBandwidth); cByNPlusI = CNoPlusInterference - 10*log10(txBandwidth);
График и .
plot(t,cByNPlusI,"-r",t,cByN,"--g","LineWidth",2); legend("C/(N+I)", "C/N","Location","south"); xlabel("Time"); ylabel("C/N or C/(N+I) (dB)"); title("CNR and CNIR as a Function of Time"); grid on
Нисходящие скачки указывают на интерференцию. Более серьезные скачки вызываются, когда одновременная интерференция от нескольких спутников существует или когда вмешивающийся спутник перелетает через наземную станцию.
Вычислите поле ссылки без интерференции.
marginWithoutInterference = ebnoDownlink - rxGs.RequiredEbNo;
Постройте поля ссылки с и без интерференции.
plot(t,marginWithInterference,"-r",t,marginWithoutInterference,"--g","LineWidth",2); legend("With interference","Without interference","Location","south"); xlabel("Time"); ylabel("Margin (dB)"); title("Link Margin as a Function of Time"); grid on
Любое время поле ссылки больше или равно 0 дБ, нисходящий канал закрывается. С интерференцией существуют времена, когда поле ссылки опускается ниже 0 дБ, и в эти времена нисходящий канал повреждается из-за интерференции.
Этот пример демонстрирует, как анализировать интерференцию на ссылке спутниковой связи. Времена закрытия ссылки являются функцией этих параметров:
Орбита спутников
Положение наземной станции
Технические требования передатчиков и приемника
И интерференционная полоса пропускания сигнала
Измените эти параметры, чтобы наблюдать их влияние на уровне интерференции на ссылке.
Пример использует функцию помощника HelperGetNoiseTemperature, чтобы получить шумовую температуру антенны приемника.
Пример также использует эту локальную функцию, чтобы вычислить сумму перекрытия между полосой пропускания передачи и вмешивающейся полосой пропускания.
function overlapFactor = getOverlapFactor(txFreq,txBW,interferenceFreq,interferenceBW) % getOverlapFactor provides the amount of interference bandwidth overlapped % with transmission bandwidth txFreq_Limits = [txFreq-(txBW/2) txFreq+(txBW/2)]; interferenceFreq_Limits = [interferenceFreq-(interferenceBW/2) ... interferenceFreq+(interferenceBW/2)]; if (interferenceFreq_Limits(2) < txFreq_Limits(1)) || ... (interferenceFreq_Limits(1) > txFreq_Limits(2)) % If no overlap exists between transmission bandwidth and % interfering bandwidth, then overlap factor is 0 overlapFactor = 0; elseif (interferenceFreq_Limits(2) <= txFreq_Limits(2)) && ... (interferenceFreq_Limits(1) >= txFreq_Limits(1)) % If interfering bandwidth lies completely within transmission % bandwidth, then overlap factor is 1 overlapFactor = 1; elseif (interferenceFreq_Limits(2) > txFreq_Limits(2)) && ... (interferenceFreq_Limits(1) < txFreq_Limits(1)) % If transmission bandwidth lies completely within interfering % bandwidth, then overlap factor is the ratio of transmission % bandwidth with that of interference bandwidth overlapFactor = txBW/interferenceBW; elseif (interferenceFreq_Limits(2) <= txFreq_Limits(2)) && ... (interferenceFreq_Limits(1) <= txFreq_Limits(1)) % If the start edge of transmission bandwidth lies within % interfering bandwidth, then overlap factor is the ratio of % difference from last edge of interfering bandwidth and first edge % of signal bandwidth, with that of interference bandwidth overlapFactor = (interferenceFreq_Limits(2)-txFreq_Limits(1))/interferenceBW; else % If the last edge of transmission bandwidth lies within % interfering bandwidth, then overlap factor is the ratio of difference % from last edge of signal bandwidth and first edge of interfering % bandwidth, with that of interference bandwidth overlapFactor = (-interferenceFreq_Limits(1)+txFreq_Limits(2))/interferenceBW; end end
satelliteScenario
| Satellite
| Access
| GroundStation
| satelliteScenarioViewer
| ConicalSensor
| Transmitter
| Receiver
| Gimbal