メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

ebno

リンクの最終ノードのEb/No

R2021a 以降

    説明

    e = ebno(lnk) は、ベクトル lnk 内の各マルチホップ リンクの最終ノードにおける、ビットあたりのエネルギー対ノイズ電力スペクトル密度 (Eb/No) の dB 単位の受信値の履歴の行列 e を返します。行列の行は lnk 内のリンク オブジェクトに対応し、列は時間サンプルに対応します。

    e = ebno(lnk,timeIn) は、指定された日時 timein のベクトル lnk で定義された各リンクの最終ノードにおける Eb/No e の列ベクトル (dB 単位) を返します。e の各要素は lnk のリンクに対応します。timeIn でタイム ゾーンが指定されていない場合、タイム ゾーンは協定世界時(UTC) であると見なされます。

    [e,timeOut] = ebno(___) は受信した Eb/No 値と対応する時刻を UTC で返します。

    すべて折りたたむ

    衛星シナリオ オブジェクトを作成します。

    startTime = datetime(2021,12,12,10,42,0);
    stopTime = startTime + days(1);
    sampleTime = 5000;                                       % seconds
    sc = satelliteScenario(startTime,stopTime,sampleTime);

    シナリオに衛星を追加します。

    semiMajorAxis = 10000000;                               % meters
    eccentricity = 0;
    inclination = 0;                                        % degrees
    rightAscensionOfAscendingNode = 0;                      % degrees
    argumentOfPeriapsis = 0;                                % degrees
    trueAnomaly = 210;                                      % degrees
    sat = satellite(sc,semiMajorAxis,eccentricity, ...
        inclination,rightAscensionOfAscendingNode, ...
        argumentOfPeriapsis,trueAnomaly);

    衛星に送信機を追加します。

    tx = transmitter(sat);

    シナリオに地上局を追加します。

    latitude = 0;                             % degrees
    longitude = 30;                           % degrees
    gs = groundStation(sc,latitude,longitude);

    地上局に受信機を追加します。

    rx = receiver(gs,MountingAngles=[0; 180; 0]);

    送信機にリンク解析を追加します。

    lnk = link(tx,rx);

    受信機の Eb/No 履歴と時間サンプルを取得します。

    [e,t] = ebno(lnk)
    e = 1×19
    
      -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf  -Inf
    
    
    t = 1×19 datetime
       12-Dec-2021 10:42:00   12-Dec-2021 12:05:20   12-Dec-2021 13:28:40   12-Dec-2021 14:52:00   12-Dec-2021 16:15:20   12-Dec-2021 17:38:40   12-Dec-2021 19:02:00   12-Dec-2021 20:25:20   12-Dec-2021 21:48:40   12-Dec-2021 23:12:00   13-Dec-2021 00:35:20   13-Dec-2021 01:58:40   13-Dec-2021 03:22:00   13-Dec-2021 04:45:20   13-Dec-2021 06:08:40   13-Dec-2021 07:32:00   13-Dec-2021 08:55:20   13-Dec-2021 10:18:40   13-Dec-2021 10:42:00
    
    

    この例では、宇宙対地上無線リンクの送信アンテナと受信アンテナでランダム指向損失を組み込むための簡単な手法を示します。ポインティング損失なしでリンク マージンを計算し、その結果にポインティング損失のランダムシーケンスを追加します。

    ポインティング エラー シミュレーションのパラメーターを定義します。

    freq = 8;                 % Carrier frequency, GHz
    satAntDiam = 0.4;         % Satellite antenna diameter, m
    satAntEff = 0.43;         % Satellite antenna efficiency, (0,1]
    satAntPtErr = 0.5;        % Satellite antenna std. dev. pointing error, deg
    gsAntDiam = 2.7;          % Ground antenna diameter, m
    gsAntEff = 0.63;          % Ground antenna efficiency, (0,1]
    gsAntPtErr = 0.2;         % Ground antenna std. dev. pointing error, deg
    gsNoiseTemp = 150;        % Ground system noise temperature, Kelvin
    reqEbNo = 13.0;           % Required Eb/No for 8PSK BER=1e-5, decibels

    衛星シナリオ オブジェクトを作成します。

    startTime = datetime(2020,8,19,22,35,0);              
    stopTime = datetime(2020,8,19,23,15,0);    
    sampleTime = 1;                                       % Seconds
    sc = satelliteScenario(startTime,stopTime,sampleTime);

    太陽同期衛星の衛星軌道要素を追加します。

    sat = satellite(sc,7*1e6,0.0002178,97.8356,359.1795,135.7406,224.3991);
    satTx = transmitter(sat,Frequency=freq*1e9,BitRate=60,Power=3);    
    satAnt = gaussianAntenna(satTx,DishDiameter=satAntDiam, ...
        ApertureEfficiency=satAntEff); 
    
    gs = groundStation(sc,Latitude=69.649208,Longitude=18.955324, ...
        Altitude=0.35,MinElevationAngle=5.0); 
    gsGim = gimbal(gs,MountingAngles=[0;180;0], ...
        MountingLocation=[0;0;-5]);    
    waveLen = physconst("lightspeed")/(freq*1e9);         
    pkG = 10*log10(gsAntEff*((pi*gsAntDiam)/waveLen)^2);                % Peak antenna gain, dBi
    gsRx = receiver(gsGim,MountingLocation=[0;0;1], ...
        GainToNoiseTemperatureRatio=pkG-10*log10(gsNoiseTemp), ...
        RequiredEbNo=reqEbNo);                     
    
    pointAt(sat,gs);
    pointAt(gsGim,sat);
    lnk = link(satTx,gsRx);
    [e, time] = ebno(lnk);         

    送信アンテナと受信アンテナの指向損失のランダムなシーケンスを生成します。

    satAntPtErrRad = deg2rad(satAntPtErr);
    satRanAngle = (satAntPtErrRad)*randn(1,length(time));           % Random pointing angle error, radians
    satRanAngle = filter(ones(1,10)/sqrt(10),1,satRanAngle);        % Model control loop filtering
    satBeamWidth = (waveLen/(satAntDiam*sqrt(satAntEff)));          % 3 dB beamwidth, radians
    satPeakGain = 10*log10(satAntEff*((pi*satAntDiam)/waveLen)^2);  % Peak gain, dBi
    satRanAntGain = 10*log10(satAntEff*(((pi.*satAntDiam)./ ...
        waveLen).^2).*exp(-2.76*((satRanAngle./satBeamWidth).^2))); % Antenna gain at off-boresight angle, dBi,
                                                                    % from Satellite Communications, Gagliardi
    satRanPtLoss = satPeakGain - satRanAntGain;                     % Random pointing loss, dB
    
    gsAntPtErrRad = deg2rad(gsAntPtErr);
    gsRanAngle = (gsAntPtErrRad)*randn(1,length(time));             % Random pointing angle error, radians
    gsRanAngle = filter(ones(1,10)/sqrt(10),1,gsRanAngle);          % Model control loop filtering
    gsBeamWidth = waveLen/(gsAntDiam*sqrt(gsAntEff));               % 3 dB beamwidth, radians
    gsPeakGain = 10*log10(gsAntEff*((pi*gsAntDiam)/waveLen)^2);     % Peak gain, dBi
    gsRanAntGain = 10*log10(gsAntEff*(((pi.*gsAntDiam)./ ...
        waveLen).^2).*exp(-2.76*((gsRanAngle./gsBeamWidth).^2)));   % Antenna gain at off-boresight angle, dBi,
                                                                    % from Satellite Communications, Gagliardi
    gsRanPtLoss = gsPeakGain - gsRanAntGain;                        % Random pointing loss, dB   

    複合ポインティング損失を計算します。

    totRanPtLoss = satRanPtLoss + gsRanPtLoss; 

    リンク マージンを計算します。

    margin = e-totRanPtLoss-gsRx.RequiredEbNo;
    plot(time,margin,LineWidth=2);
    title("Link Margin vs. Time");
    ylim([-3 16]);
    xlabel("Time");
    ylabel("Link Margin (dB)");
    grid on;

    Figure contains an axes object. The axes object with title Link Margin vs. Time, xlabel Time, ylabel Link Margin (dB) contains an object of type line.

    入力引数

    すべて折りたたむ

    リンク解析オブジェクト。Link オブジェクト ベクトルまたはスカラーとして指定されます。

    出力が計算される時間。datetime スカラーとして指定されます。timeIn でタイム ゾーンが指定されていない場合、タイム ゾーンは UTC であると見なされます。

    出力引数

    すべて折りたたむ

    ビットあたりのエネルギー対ノイズ電力スペクトル密度 (Eb/No)。スカラー、ベクトル、または行列として返されます。timeIn が指定されていない場合、e は行ベクトルまたは行列になります。

    出力 Eb/No の時間サンプル。スカラーまたはベクトルとして返されます。Eb/No の時間履歴が返される場合、timeOut は行ベクトルになります。

    メモ

    衛星シナリオの AutoSimulate プロパティが true の場合、StartTime から StopTime までの Eb/No 履歴が返されます。プロパティが false の場合、StartTime から SimulationTime までの Eb/No 履歴が返されます。

    アルゴリズム

    Eb/No (dB) は

    EbNo = txPower + txAntennaGain - txSystemLoss - pathloss + rxAntGaintoNoiseTempRatio - 10*log10(K) - rxSystemLoss - 10*log10(bitRate) - 60

    として計算されます。

    • txPower は dBW 単位の送信機電力です。

    • txAntennaGain は送信機アンテナ ゲイン(dB)です。

    • txSystemLoss は送信機システムの損失(dB 単位)です。

    • pathloss は dB 単位のパス ロスです。

    • rxAntGaintoNoiseTempRatio は受信機のアンテナ ゲインと雑音温度の比です。

    • K はボルツマン定数です。

    • rxSystemLoss は受信機システムの損失(dB 単位)です。

    • bitRate は Mbps 単位のビット レートです。

    バージョン履歴

    R2021a で導入