Интерференция от спутниковой группировки на линии связи

В этом примере показано, как анализировать интерференцию на нисходящем канале от созвездия спутников. Нисходящий канал происходит с геосинхронного спутника на наземную станцию, расположенную в Тихом океане. Вмешивающееся созвездие состоит из 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):

EIRPTx=PTx-LOSSTx+GTxAntenna,

где:

  • EIRPTx EIRP антенны передатчика (в dBW).

  • PTx степень передатчика (в dBW).

  • LOSSTx общая системная потеря передатчика (в дБ).

  • GTxAntenna усиление антенны передатчика в направлении антенны приемника (в дБ).

2) В спутниковом сценарии все расчеты потери на пути принимают модель распространения свободного пространства. Вычислите потери при распространении в свободном пространстве от передатчика к приемнику антенна как

FSPL=10log10((4πdfc)2),

где:

  • FSPL потери при распространении в свободном пространстве от передатчика к приемнику антенна (в дБ).

  • d расстояние между передатчиком и антенной приемника (в m).

  • f частота передатчика (в Гц).

  • c скорость света в вакууме (в m/s).

3) Вычислите полученную изотропную степень как

RIPRx=EIRPTx-FSPL,

где RIPRx полученная изотропная степень в полученной антенне (в dBW).

4) Вычислите несущую к шумовому отношению плотности как

C/N0=RIPRx+(G/T)Rx-10log10kB-LOSSRxSystem,

где:

  • C/N0 несущая к шумовому отношению плотности (в дБ).

  • (G/T)Rx усиление к шумовому температурному отношению антенны приемника (в dB/K).

  • kB Постоянная Больцмана (в m2kgs-2K-1).

  • LOSSRx общая системная потеря передатчика.

Усиление антенны приемника вычисляется в направлении антенны передатчика. Шумовая температура принята, чтобы быть константой и выведена из GainToNoiseTemperatureRatio свойство приемника, который в свою очередь основан на усилении антенны приемника вперед z- ось приемника. В сущности:

(G/T)z-axis=(GRx)z-axis-10log10T,

где:

  • (G/T)z-axis усиление антенны приемника к шумовому температурному отношению вперед z- ось приемника (в дБ).

  • (GRx)z-axis усиление антенны приемника в направлении z- ось приемника (в дБ).

  • T шумовая температура (в K).

Реорганизация вышеупомянутого уравнения приводит к

10log10T=(GRx)z-axis-(G/T)z-axis.

Следовательно,

(G/T)Rx=(GRx)-10log10T.

5) Вычислите энергию приемника на бит к отношению спектральной плотности мощности шума как

Eb/N0=C/N0-10log10(BITRATE)-60,

где:

  • Eb/N0 полученная энергия на бит к отношению плотности шумовой мощности (в дБ).

  • BITRATE битрейт ссылки (в Мбит/с).

60 значений появляются в уравнении, потому что битрейт находится в Мбит/с.

6) Вычислите поле ссылки как

MARGIN=Eb/N0-(Eb/N0)Required,

где:

  • MARGIN поле ссылки (в дБ).

  • (Eb/N0)Required минимальная полученная энергия на бит к отношению спектральной плотности мощности шума, которое требуется, чтобы закрывать ссылку (в дБ).

Ссылка закрывается, когда поле ссылки больше или равно 0 дБ.

С учетом интерференции сигнал, полученный в антенне наземной станции от каждого вмешивающегося передатчика, должен быть обработан как шум и должен быть добавлен к шумовой мощности. Вычислить новое получило Eb/No и поле ссылки, принимаемая мощность сигнала от каждого передатчика в сценарии должна быть вычислена.

Вычислите принимаемую мощность сигнала после антенны приемника, соответствующей, чтобы передать в нисходящем направлении от геосинхронного спутника орбиты

Мощность приемника после антенны является количеством RIPRx+GRxAntenna. Эта мощность приемника может быть получена путем запуска с Eb/N0 и использование уравнений в предыдущем разделе назад. Во-первых, принимаемая мощность сигнала, соответствующая передатчику на борту геосинхронного спутника орбиты, должна быть вычислена. Получите полученный Eb/N0 соответствие этому передатчику.

ebnoDownlink = ebno(downlink); % In dB

Используйте эти уравнения, чтобы вычислить соответствующую принимаемую мощность сигнала после антенны.

C/N0=Eb/N0+10log10(BITRATE)+60

RIPRx+GRxAntenna=C/N0+10log10kB+10log10T+LOSSRx

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) Вычислить RIPRx+GRx, который соответствует каждому вмешивающемуся передатчику, с помощью тех же уравнений, используемых для передатчика от геосинхронного спутника орбиты.

2) Преобразуйте количества в Уоттса.

3) Добавьте количества в Уоттсе, и итоговая сумма является общей вмешивающейся степенью, IW, в Уоттсе.

% 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) Вычислите несущую к шуму плюс интерференционное отношение плотности энергии как

C/(N0+I0)=RIPRx+GRx-10log10(IWTxBandwidth+kBT)-LOSSRx,

где:

  • C/(N0+I0) несущая к шуму плюс интерференционное отношение плотности энергии (в дБ).

  • IW интерференционная степень сигнала после антенны приемника, которая вмешивается в полосу пропускания сигнала (в W).

  • TxBandwidth нисходящая полоса пропускания передачи от геосинхронного спутника (в Гц).

2) Вычислите энергию на бит к шуму плюс интерференционное отношение спектральной плотности мощности как

Eb/(N0+I0)=C/(N0+I0)-10log10(BITRATE)-60,

где Eb/(N0+I0) энергия на бит к шуму плюс интерференционное отношение спектральной плотности мощности (в дБ).

3) Вычислите составление поля ссылки интерференции:

MARGIN=Eb/(N0+I0)-(Eb/N0)Required.

% 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) от несущей к шумовому отношению плотности и несущей к шуму плюс интерференционная плотность энергии как:

C/N=C/N0-10log10(TxBandwidth) и

C/(N+I)=C/(N0+I0)-10log10(TxBandwidth),

где:

  • C/N несущая к шумовому отношению

  • C/(N+I) несущая к шуму плюс интерференционное отношение.

  • TxBandwidth нисходящая полоса пропускания передачи от геосинхронного спутника (в Гц).

cByN = CNoDownlink - 10*log10(txBandwidth);
cByNPlusI = CNoPlusInterference - 10*log10(txBandwidth);

График C/N и C/(N+I).

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

Смотрите также

Объекты

Функции

Связанные примеры

Больше о