Link
설명
Link 객체는 Transmitter에 속하는 링크 분석 객체를 정의합니다.
생성
Transmitter 객체나 Receiver 객체의 link 객체 함수를 사용하여 Link 객체를 만들 수 있습니다.
속성
이 속성은 Link를 호출할 때만 설정할 수 있습니다. Link를 호출한 후에는 이 속성은 읽기 전용입니다.
송신기나 수신기의 ID로, 양수로 구성된 벡터로 지정됩니다.
링크 선의 시각적 너비(단위: 픽셀)로, 범위 (0 10] 내의 스칼라로 지정됩니다.
선 너비는 픽셀 너비보다 얇을 수 없습니다. 사용자 시스템의 픽셀 너비보다 작은 값으로 선 너비를 설정하면, 선이 1픽셀 너비로 표시됩니다.
링크 선의 색으로, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다.
사용자 지정 색의 경우 RGB 3색이나 16진수 색 코드를 지정합니다.
RGB 3색은 색의 빨간색, 녹색, 파란색 성분의 농도를 지정하는 요소를 3개 가진 행 벡터입니다. 농도는
[0,1]범위 안에 있어야 합니다(예:[0.4 0.6 0.7]).16진수 색 코드는 해시 기호(
#)로 시작하고 그 뒤에 3자리 또는 6자리 16진수(범위:0~F)가 오는 string형 스칼라 또는 문자형 벡터입니다. 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드"#FF8800","#ff8800","#F80","#f80"은 동일합니다.
또는 일반적인 몇몇 색을 이름으로 지정할 수도 있습니다. 아래 표에는 이름이 지정된 색 옵션, 그에 해당하는 RGB 3색, 16진수 색 코드가 나열되어 있습니다.
| 색 이름 | 짧은 이름 | RGB 3색 | 16진수 색 코드 | 모양 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
"none" | 해당 없음 | 해당 없음 | 해당 없음 | 색 없음 |
아래 표에는 플롯의 라이트 테마와 다크 테마에서 사용하는 디폴트 색상 팔레트가 나와 있습니다.
| 팔레트 | 팔레트 색 |
|---|---|
R2025a 이전: 대부분의 플롯에서 기본적으로 이 색을 사용합니다. |
|
|
|
이 팔레트에 대한 RGB 3색과 16진수 색 코드는 orderedcolors 함수와 rgb2hex 함수를 사용하여 구할 수 있습니다. 예를 들어 "gem" 팔레트의 RGB 3색을 구한 다음 16진수 색 코드로 변환합니다.
RGB = orderedcolors("gem");
H = rgb2hex(RGB);R2023b 이전: RGB = get(groot,"FactoryAxesColorOrder")를 사용하여 RGB 3색을 구합니다.
R2024a 이전: H = compose("#%02X%02X%02X",round(RGB*255))를 사용하여 16진수 색 코드를 구합니다.
예: 'blue'
예: [0 0 1]
예: '#0000FF'
객체 함수
ebno | Eb/No at final node of link |
linkPercentage | Percentage of time when link between first and last node in link analysis is closed |
linkIntervals | Intervals during which link is closed |
linkStatus | Status of link closure between first and last node |
show | Show object in satellite scenario viewer |
sigstrength | Calculate received signal strength at last node of link |
hide | Hide satellite scenario entity from viewer |
예제
satellite scenario 객체를 만듭니다.
startTime = datetime(2020,11,25,0,0,0);
stopTime = startTime + days(1);
sampleTime = 60; % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime)sc =
satelliteScenario with properties:
StartTime: 25-Nov-2020
StopTime: 26-Nov-2020
SampleTime: 60
AutoSimulate: 1
Satellites: [1×0 matlabshared.satellitescenario.Satellite]
GroundStations: [1×0 matlabshared.satellitescenario.GroundStation]
Platforms: [1×0 matlabshared.satellitescenario.Platform]
Viewers: [0×0 matlabshared.satellitescenario.Viewer]
AutoShow: 1
시나리오에 위성을 추가합니다.
semiMajorAxis = 10000000; % meters eccentricity = 0; inclination = 60; % degrees rightAscensionOfAscendingNode = 0; % degrees argumentOfPeriapsis = 0; % degrees trueAnomaly = 0; % degrees sat = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode, ... argumentOfPeriapsis,trueAnomaly,Name="Satellite");
위성에 짐벌을 추가합니다. 이 짐벌은 위성 수신기 안테나를 첫 번째 지상국을 향해 조준하고, 송신기 안테나를 두 번째 지상국을 향해 조준할 수 있게 합니다.
gimbalrxSat = gimbal(sat); gimbaltxSat = gimbal(sat);
위성의 첫 번째 짐벌에 수신기를 추가합니다.
gainToNoiseTemperatureRatio = 5; % dB/K systemLoss = 3; % dB rxSat = receiver(gimbalrxSat,Name="Satellite Receiver",GainToNoiseTemperatureRatio= ... gainToNoiseTemperatureRatio,SystemLoss=systemLoss)
rxSat =
Receiver with properties:
Name: Satellite Receiver
ID: 4
MountingLocation: [0; 0; 0] meters
MountingAngles: [0; 0; 0] degrees
Antenna: [1x1 satcom.satellitescenario.GaussianAntenna]
SystemLoss: 3 decibels
PreReceiverLoss: 3 decibels
GainToNoiseTemperatureRatio: 5 decibels/Kelvin
RequiredEbNo: 10 decibels
CoordinateAxes: [1x1 matlabshared.satellitescenario.CoordinateAxes]
위성의 두 번째 짐벌에 송신기를 추가합니다.
frequency = 27e9; % Hz power = 20; % dBW bitRate = 20; % Mbps systemLoss = 3; % dB txSat = transmitter(gimbaltxSat,Name="Satellite Transmitter",Frequency=frequency, ... power=power,BitRate=bitRate,SystemLoss=systemLoss)
txSat =
Transmitter with properties:
Name: Satellite Transmitter
ID: 5
MountingLocation: [0; 0; 0] meters
MountingAngles: [0; 0; 0] degrees
Antenna: [1x1 satcom.satellitescenario.GaussianAntenna]
SystemLoss: 3 decibels
Frequency: 2.7e+10 Hertz
BitRate: 20 Mbps
Power: 20 decibel-watts
Links: [1x0 satcom.satellitescenario.Link]
CoordinateAxes: [1x1 matlabshared.satellitescenario.CoordinateAxes]
중계기의 안테나 사양을 지정합니다.
dishDiameter = 0.5; % meters
apertureEfficiency = 0.5;
gaussianAntenna(txSat,DishDiameter=dishDiameter,ApertureEfficiency=apertureEfficiency);
gaussianAntenna(rxSat,DishDiameter=dishDiameter,ApertureEfficiency=apertureEfficiency);시나리오에 두 개의 지상국을 추가합니다.
gs1 = groundStation(sc,Name="Ground Station 1"); latitude = 52.2294963; % degrees longitude = 0.1487094; % degrees gs2 = groundStation(sc,latitude,longitude,Name="Ground Station 2");
시뮬레이션 지속 시간 동안 위성의 짐벌이 두 지상국을 향하도록 합니다.
pointAt(gimbaltxSat,gs2); pointAt(gimbalrxSat,gs1);
지상국에 짐벌을 추가합니다. 이 짐벌은 지상국 안테나가 위성을 향해 조준할 수 있게 합니다.
gimbalgs1 = gimbal(gs1); gimbalgs2 = gimbal(gs2);
지상국 gs1에 송신기를 추가합니다.
frequency = 30e9; % Hz power = 40; % dBW bitRate = 20; % Mbps txGs1 = transmitter(gimbalgs1,Name="Ground Station 1 Transmitter",Frequency=frequency, ... Power=power,BitRate=bitRate);
지상국 gs2에 수신기를 추가합니다.
requiredEbNo = 14; % dB rxGs2 = receiver(gimbalgs2,Name="Ground Station 2 Receiver",RequiredEbNo=requiredEbNo);
지상국의 안테나 사양을 정의합니다.
dishDiameter = 5; % meters
gaussianAntenna(txGs1,DishDiameter=dishDiameter);
gaussianAntenna(rxGs2,DishDiameter=dishDiameter);시뮬레이션 지속 시간 동안 지상국의 짐벌이 위성을 향하도록 합니다.
pointAt(gimbalgs1,sat); pointAt(gimbalgs2,sat);
송신기 txGs1에 링크 분석을 추가합니다.
lnk = link(txGs1,rxSat,txSat,rxGs2)
lnk =
Link with properties:
Sequence: [10 4 5 11]
LineWidth: 2
LineColor: [0.3922 0.8314 0.0745]
지상국 gs1이 위성을 통해 지상국 gs2로 데이터를 보낼 수 있는 시간을 확인합니다.
linkIntervals(lnk)
ans=4×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
______________________________ ___________________________ ______________ ____________________ ____________________ ________ __________ ________
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 1 25-Nov-2020 00:20:00 25-Nov-2020 00:40:00 1200 NaN NaN
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 2 25-Nov-2020 03:19:00 25-Nov-2020 03:36:00 1020 NaN NaN
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 3 25-Nov-2020 06:15:00 25-Nov-2020 06:36:00 1260 NaN NaN
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 4 25-Nov-2020 22:20:00 25-Nov-2020 22:38:00 1080 NaN NaN
위성 시나리오 뷰어를 사용하여 링크를 시각화합니다.
play(sc);

이 예제에서는 위성의 경사각 변화에 따라 링크와 링크 구간이 변하는 시나리오를 보여줍니다.
startTime = datetime(2024,6,1,0,0,0);
stopTime = startTime + hours(4);
sampleTime = 60;% seconds
sc = satelliteScenario(startTime,stopTime,sampleTime);시나리오에 위성 1을 추가하고 이 위성에 송신기를 추가합니다.
sat1 = satellite(sc,10e6,0,0,0,0,0,Name="Satellite 1"); txSat1 = transmitter(sat1,Name="Satellite 1 Transmitter");
시나리오에 위성 2를 추가하고 이 위성에 수신기를 추가합니다.
sat2= satellite(sc,10e6,0,0,10,0,0,Name="Satellite 2"); rxSat2 = receiver(sat2,Name="Satellite 2 Receiver");
시나리오에 지상국을 추가합니다.
latitude = 49.8728; % degrees longitude = 8.6512; % degrees gs = groundStation(sc,latitude,longitude,Name="Ground Station");
두 위성이 지상국을 향하도록 합니다.
pointAt(sat1,gs) pointAt(sat2,gs)
지상국에 짐벌을 추가합니다.
gimbalrxGs = gimbal(gs); gimbaltxGs = gimbal(gs);
지상국에 송신기와 수신기를 추가합니다.
rxGs = receiver(gimbalrxGs,Name="Ground Station Receiver"); txGs = transmitter(gimbaltxGs,Name="Ground Station Transmitter");
지상국의 송신기와 수신기가 위성을 향하도록 합니다.
pointAt(gimbalrxGs,sat1) pointAt(gimbaltxGs,sat2)
지상국과 위성 간의 링크를 계산합니다.
lnk1 = link(txSat1,rxGs,txGs,rxSat2)
lnk1 =
Link with properties:
Sequence: [2 8 9 4]
LineWidth: 2
LineColor: [0.3922 0.8314 0.0745]
링크 구간을 구합니다.
linkIntervals(lnk1)
ans=1×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
_________________________ ______________________ ______________ ____________________ ____________________ ________ __________ ________
"Satellite 1 Transmitter" "Satellite 2 Receiver" 1 01-Jun-2024 02:10:00 01-Jun-2024 02:14:00 240 1 1
lnk1의 링크 구간을 보면, satellit1에서 지상국을 거쳐 satellite2로 가는 유효한 링크가 7560초 동안 존재함을 알 수 있습니다.
위성이 서로를 향하도록 시나리오를 업데이트합니다.
pointAt(sat1,sat2) pointAt(sat2,sat1)
업데이트된 시나리오를 사용하여 lnk1의 링크 구간을 계산합니다.
linkIntervals(lnk1)
ans =
0×8 empty table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
______ ______ ______________ _________ _______ ________ __________ ________
두 위성 안테나가 더 이상 지상국을 향하지 않기 때문에, 시나리오 지속 시간 동안 lnk1의 linkInterval에 구간이 존재하지 않는 것으로 나타납니다.
satellite 1에서 satellite 2로 직접 연결되는 새 링크 객체 lnk2를 만듭니다.
lnk2 = link(txSat1,rxSat2)
lnk2 =
Link with properties:
Sequence: [2 4]
LineWidth: 2
LineColor: [0.3922 0.8314 0.0745]
업데이트된 시나리오에서 lnk2의 링크 구간을 계산합니다.
linkIntervals(lnk2)
ans=1×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
_________________________ ______________________ ______________ ___________ ____________________ ________ __________ ________
"Satellite 1 Transmitter" "Satellite 2 Receiver" 1 01-Jun-2024 01-Jun-2024 04:00:00 14400 1 2
두 위성이 전체 시나리오 동안 서로를 향하고 있으므로 링크 구간이 전체 시나리오에 걸쳐 나타납니다.
버전 내역
R2021a에 개발됨이제 sigstrength 객체 함수를 사용하여 링크의 마지막 노드에서 수신된 신호 강도를 계산할 수 있습니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)









