implemented task4 1-4, documentation needs to be written
This commit is contained in:
+15
-4
@@ -13,12 +13,17 @@ satConfig.orbitPropagator = "two-body-keplerian";
|
|||||||
groundStation.Lat = 52.515744683039436;
|
groundStation.Lat = 52.515744683039436;
|
||||||
groundStation.Lon = 13.325825073341306;
|
groundStation.Lon = 13.325825073341306;
|
||||||
groundStation.Name = "HFT building at Einsteinufer 25";
|
groundStation.Name = "HFT building at Einsteinufer 25";
|
||||||
|
|
||||||
|
% below altitude was taken from:
|
||||||
% https://www.randymajors.org/elevation-on-google-maps?x=13.3258251&y=52.5157447&cx=13.3258251&cy=52.5157447&zoom=15&labels=show
|
% https://www.randymajors.org/elevation-on-google-maps?x=13.3258251&y=52.5157447&cx=13.3258251&cy=52.5157447&zoom=15&labels=show
|
||||||
groundStation.Altitude = 37;
|
groundStation.Altitude = 37;
|
||||||
|
|
||||||
calc_task1 = true;
|
% configure which task should be calculated
|
||||||
calc_task2 = true;
|
calc_task1 = false;
|
||||||
calc_task3 = true;
|
calc_task2 = false;
|
||||||
|
calc_task3 = false;
|
||||||
|
calc_task4 = false;
|
||||||
|
calc_task4_4 = true;
|
||||||
|
|
||||||
if calc_task1
|
if calc_task1
|
||||||
task1;
|
task1;
|
||||||
@@ -40,4 +45,10 @@ if calc_task3
|
|||||||
end
|
end
|
||||||
task3;
|
task3;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if calc_task4 || calc_task4_4
|
||||||
|
only_define_baseline_vars = true;
|
||||||
|
task2;
|
||||||
|
only_define_baseline_vars = false;
|
||||||
|
task4;
|
||||||
|
end
|
||||||
@@ -1,3 +1,11 @@
|
|||||||
|
<style>
|
||||||
|
newpage{
|
||||||
|
display: block;
|
||||||
|
page-break-after: always;
|
||||||
|
break-after: page;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<h2 style="text-align: center;">
|
<h2 style="text-align: center;">
|
||||||
Lab 5 - Wireless Networking Technologies
|
Lab 5 - Wireless Networking Technologies
|
||||||
</h2>
|
</h2>
|
||||||
@@ -187,6 +195,8 @@ requiredAntennaGain = max(requiredTxPower - amplifiedTxPower, 0);
|
|||||||
|
|
||||||
With the 30dB amplifier, the remaining required antenna gain is between 30.99dB and 57.54dB.
|
With the 30dB amplifier, the remaining required antenna gain is between 30.99dB and 57.54dB.
|
||||||
|
|
||||||
|
<newpage></newpage>
|
||||||
|
|
||||||
### Task3
|
### Task3
|
||||||
|
|
||||||
#### 3.1
|
#### 3.1
|
||||||
@@ -209,6 +219,22 @@ The blue line shows the Doppler shift returned by MATLAB's `dopplershift` functi
|
|||||||
|
|
||||||
In this scenario, Doppler shift can support localization because it constrains the relative radial motion between satellite and ground station. However, Doppler alone is not sufficient for unique localization: the satellite orbit, time, and additional measurements such as range or elevation are still required.
|
In this scenario, Doppler shift can support localization because it constrains the relative radial motion between satellite and ground station. However, Doppler alone is not sufficient for unique localization: the satellite orbit, time, and additional measurements such as range or elevation are still required.
|
||||||
|
|
||||||
|
### Task4
|
||||||
|
|
||||||
|
#### 4.1 - 4.3
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The plot compares the PER over SNR without Doppler pre-compensation, with ideal pre-compensation, and with imperfect pre-compensation errors of 10 Hz, 100 Hz, 1000 Hz, and 5000 Hz.
|
||||||
|
|
||||||
|
Only small differences between the curves are visible. The maximum PER difference between no pre-compensation and ideal pre-compensation is 0.018, which corresponds to about 18 packets out of 1000. Therefore, Doppler pre-compensation has only a small visible effect in this simulation setup.
|
||||||
|
|
||||||
|
A likely reason is that the 802.11 receiver still performs coarse and fine CFO correction using the WiFi preamble. Pilot tracking is disabled as required by the task, but the preamble-based CFO correction is still active. Because of this, even the case without transmitter-side pre-compensation can still decode many packets successfully. The additional benefit of ideal pre-compensation is therefore limited at the simulated 2.4 GHz carrier frequency.
|
||||||
|
|
||||||
|
#### 4.4
|
||||||
|
|
||||||
|
For this compare only the test with ideal pre-compensation and without pre-compensation is run.
|
||||||
|
|
||||||
#### Special Thanks
|
#### Special Thanks
|
||||||
|
|
||||||
This lab was solved with contribution of GPT 5.5.
|
This lab was solved with contribution of GPT 5.5.
|
||||||
|
|||||||
@@ -0,0 +1,838 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg width="456.142mm" height="294.569mm"
|
||||||
|
viewBox="0 0 1293 835"
|
||||||
|
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
|
||||||
|
<title>Qt SVG Document</title>
|
||||||
|
<desc>MATLAB, The MathWorks, Inc. Version 26.1.0.3251617 R2026a Update 2</desc>
|
||||||
|
<defs>
|
||||||
|
</defs>
|
||||||
|
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
|
||||||
|
|
||||||
|
<g fill="#ffffff" fill-opacity="1" stroke="none" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family=".AppleSystemUIFont" font-size="13" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M320,115 L2856,115 L2856,1745 L320,1745 L320,115"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#ffffff" fill-opacity="1" stroke="none" transform="matrix(5.09881e-05,0,0,5.1224e-05,-163.192,-59.0724)"
|
||||||
|
font-family=".AppleSystemUIFont" font-size="13" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M3.86e+06,1.42e+06 L3.86e+06,1.688e+07 L2.686e+07,1.688e+07 L2.686e+07,1.42e+06 L3.86e+06,1.42e+06"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="0.14902" stroke="#212121" stroke-opacity="0.14902" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family=".AppleSystemUIFont" font-size="13" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 386,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="673.5,142 673.5,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="961,142 961,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1248.5,142 1248.5,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1536,142 1536,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1823.5,142 1823.5,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2111,142 2111,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2398.5,142 2398.5,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2686,142 2686,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1534.79 2686,1534.79 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1380.04 2686,1380.04 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1225.28 2686,1225.28 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1070.53 2686,1070.53 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,915.774 2686,915.774 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,761.019 2686,761.019 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,606.264 2686,606.264 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,451.509 2686,451.509 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,296.755 2686,296.755 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 2686,142 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,596.532,831.201)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.0625" font-family="Helvetica" font-size="22" font-weight="400" font-style="normal"
|
||||||
|
>SNR [dB]</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1688 2686,1688 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1688 386,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="673.5,1688 673.5,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="961,1688 961,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1248.5,1688 1248.5,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1536,1688 1536,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1823.5,1688 1823.5,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2111,1688 2111,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2398.5,1688 2398.5,1665 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2686,1688 2686,1665 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,30.8182,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,177.409,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>5</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,321.196,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>10</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,467.787,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>15</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,614.377,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>20</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,760.968,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>25</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,907.559,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>30</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1054.15,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>35</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1200.74,817.371)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>40</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0,-0.51224,0.509881,0,9.6581,421.153)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.0625" font-family="Helvetica" font-size="22" font-weight="400" font-style="normal"
|
||||||
|
>PER</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1688 386,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1534.79 409,1534.79 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1380.04 409,1380.04 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1225.28 409,1225.28 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,1070.53 409,1070.53 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,915.774 409,915.774 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,761.019 409,761.019 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,606.264 409,606.264 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,451.509 409,451.509 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,296.755 409,296.755 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 409,142 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,729.671)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.1</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,650.4)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.2</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,571.128)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.3</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,491.857)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.4</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,412.585)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.5</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,333.313)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.6</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,254.042)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.7</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,174.77)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.8</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,15.2668,95.4986)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>0.9</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,23.9348,16.2269)"
|
||||||
|
font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="0.390625" font-family="Helvetica" font-size="20" font-weight="400" font-style="normal"
|
||||||
|
>1</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,496.085,9.69584)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.0625" font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>PER over SNR with Doppler pre-compensation</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#1171be" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 443.5,142 501,142 558.5,142 616,142 673.5,142 731,142 788.5,142 846,142 903.5,142 961,142 1018.5,142 1076,142 1133.5,142 1191,142 1248.5,142 1306,142 1363.5,168.308 1421,236.4 1478.5,275.089 1536,309.135 1593.5,335.443 1651,364.847 1708.5,405.083 1766,448.414 1823.5,499.483 1881,558.29 1938.5,614.002 1996,669.714 2053.5,754.829 2111,822.921 2168.5,906.489 2226,968.39 2283.5,1047.32 2341,1121.6 2398.5,1206.71 2456,1285.64 2513.5,1380.04 2571,1475.99 2628.5,1545.63 2686,1588.96 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#1171be" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M392,142 C392,138.686 389.314,136 386,136 C382.686,136 380,138.686 380,142 C380,145.314 382.686,148 386,148 C389.314,148 392,145.314 392,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M449.5,142 C449.5,138.686 446.814,136 443.5,136 C440.186,136 437.5,138.686 437.5,142 C437.5,145.314 440.186,148 443.5,148 C446.814,148 449.5,145.314 449.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M507,142 C507,138.686 504.314,136 501,136 C497.686,136 495,138.686 495,142 C495,145.314 497.686,148 501,148 C504.314,148 507,145.314 507,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M564.5,142 C564.5,138.686 561.814,136 558.5,136 C555.186,136 552.5,138.686 552.5,142 C552.5,145.314 555.186,148 558.5,148 C561.814,148 564.5,145.314 564.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M622,142 C622,138.686 619.314,136 616,136 C612.686,136 610,138.686 610,142 C610,145.314 612.686,148 616,148 C619.314,148 622,145.314 622,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M679.5,142 C679.5,138.686 676.814,136 673.5,136 C670.186,136 667.5,138.686 667.5,142 C667.5,145.314 670.186,148 673.5,148 C676.814,148 679.5,145.314 679.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M737,142 C737,138.686 734.314,136 731,136 C727.686,136 725,138.686 725,142 C725,145.314 727.686,148 731,148 C734.314,148 737,145.314 737,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M794.5,142 C794.5,138.686 791.814,136 788.5,136 C785.186,136 782.5,138.686 782.5,142 C782.5,145.314 785.186,148 788.5,148 C791.814,148 794.5,145.314 794.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M852,142 C852,138.686 849.314,136 846,136 C842.686,136 840,138.686 840,142 C840,145.314 842.686,148 846,148 C849.314,148 852,145.314 852,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M909.5,142 C909.5,138.686 906.814,136 903.5,136 C900.186,136 897.5,138.686 897.5,142 C897.5,145.314 900.186,148 903.5,148 C906.814,148 909.5,145.314 909.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M967,142 C967,138.686 964.314,136 961,136 C957.686,136 955,138.686 955,142 C955,145.314 957.686,148 961,148 C964.314,148 967,145.314 967,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1024.5,142 C1024.5,138.686 1021.81,136 1018.5,136 C1015.19,136 1012.5,138.686 1012.5,142 C1012.5,145.314 1015.19,148 1018.5,148 C1021.81,148 1024.5,145.314 1024.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1082,142 C1082,138.686 1079.31,136 1076,136 C1072.69,136 1070,138.686 1070,142 C1070,145.314 1072.69,148 1076,148 C1079.31,148 1082,145.314 1082,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1139.5,142 C1139.5,138.686 1136.81,136 1133.5,136 C1130.19,136 1127.5,138.686 1127.5,142 C1127.5,145.314 1130.19,148 1133.5,148 C1136.81,148 1139.5,145.314 1139.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1197,142 C1197,138.686 1194.31,136 1191,136 C1187.69,136 1185,138.686 1185,142 C1185,145.314 1187.69,148 1191,148 C1194.31,148 1197,145.314 1197,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1254.5,142 C1254.5,138.686 1251.81,136 1248.5,136 C1245.19,136 1242.5,138.686 1242.5,142 C1242.5,145.314 1245.19,148 1248.5,148 C1251.81,148 1254.5,145.314 1254.5,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1312,142 C1312,138.686 1309.31,136 1306,136 C1302.69,136 1300,138.686 1300,142 C1300,145.314 1302.69,148 1306,148 C1309.31,148 1312,145.314 1312,142 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1369.5,168.308 C1369.5,164.995 1366.81,162.308 1363.5,162.308 C1360.19,162.308 1357.5,164.995 1357.5,168.308 C1357.5,171.622 1360.19,174.308 1363.5,174.308 C1366.81,174.308 1369.5,171.622 1369.5,168.308 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1427,236.4 C1427,233.087 1424.31,230.4 1421,230.4 C1417.69,230.4 1415,233.087 1415,236.4 C1415,239.714 1417.69,242.4 1421,242.4 C1424.31,242.4 1427,239.714 1427,236.4 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1484.5,275.089 C1484.5,271.775 1481.81,269.089 1478.5,269.089 C1475.19,269.089 1472.5,271.775 1472.5,275.089 C1472.5,278.403 1475.19,281.089 1478.5,281.089 C1481.81,281.089 1484.5,278.403 1484.5,275.089 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1542,309.135 C1542,305.821 1539.31,303.135 1536,303.135 C1532.69,303.135 1530,305.821 1530,309.135 C1530,312.449 1532.69,315.135 1536,315.135 C1539.31,315.135 1542,312.449 1542,309.135 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1599.5,335.443 C1599.5,332.13 1596.81,329.443 1593.5,329.443 C1590.19,329.443 1587.5,332.13 1587.5,335.443 C1587.5,338.757 1590.19,341.443 1593.5,341.443 C1596.81,341.443 1599.5,338.757 1599.5,335.443 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1657,364.847 C1657,361.533 1654.31,358.847 1651,358.847 C1647.69,358.847 1645,361.533 1645,364.847 C1645,368.161 1647.69,370.847 1651,370.847 C1654.31,370.847 1657,368.161 1657,364.847 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1714.5,405.083 C1714.5,401.769 1711.81,399.083 1708.5,399.083 C1705.19,399.083 1702.5,401.769 1702.5,405.083 C1702.5,408.397 1705.19,411.083 1708.5,411.083 C1711.81,411.083 1714.5,408.397 1714.5,405.083 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1772,448.414 C1772,445.101 1769.31,442.414 1766,442.414 C1762.69,442.414 1760,445.101 1760,448.414 C1760,451.728 1762.69,454.414 1766,454.414 C1769.31,454.414 1772,451.728 1772,448.414 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1829.5,499.483 C1829.5,496.17 1826.81,493.483 1823.5,493.483 C1820.19,493.483 1817.5,496.17 1817.5,499.483 C1817.5,502.797 1820.19,505.483 1823.5,505.483 C1826.81,505.483 1829.5,502.797 1829.5,499.483 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1887,558.29 C1887,554.977 1884.31,552.29 1881,552.29 C1877.69,552.29 1875,554.977 1875,558.29 C1875,561.604 1877.69,564.29 1881,564.29 C1884.31,564.29 1887,561.604 1887,558.29 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1944.5,614.002 C1944.5,610.688 1941.81,608.002 1938.5,608.002 C1935.19,608.002 1932.5,610.688 1932.5,614.002 C1932.5,617.316 1935.19,620.002 1938.5,620.002 C1941.81,620.002 1944.5,617.316 1944.5,614.002 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2002,669.714 C2002,666.4 1999.31,663.714 1996,663.714 C1992.69,663.714 1990,666.4 1990,669.714 C1990,673.027 1992.69,675.714 1996,675.714 C1999.31,675.714 2002,673.027 2002,669.714 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2059.5,754.829 C2059.5,751.515 2056.81,748.829 2053.5,748.829 C2050.19,748.829 2047.5,751.515 2047.5,754.829 C2047.5,758.143 2050.19,760.829 2053.5,760.829 C2056.81,760.829 2059.5,758.143 2059.5,754.829 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2117,822.921 C2117,819.607 2114.31,816.921 2111,816.921 C2107.69,816.921 2105,819.607 2105,822.921 C2105,826.235 2107.69,828.921 2111,828.921 C2114.31,828.921 2117,826.235 2117,822.921 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2174.5,906.489 C2174.5,903.175 2171.81,900.489 2168.5,900.489 C2165.19,900.489 2162.5,903.175 2162.5,906.489 C2162.5,909.802 2165.19,912.489 2168.5,912.489 C2171.81,912.489 2174.5,909.802 2174.5,906.489 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2232,968.39 C2232,965.077 2229.31,962.39 2226,962.39 C2222.69,962.39 2220,965.077 2220,968.39 C2220,971.704 2222.69,974.39 2226,974.39 C2229.31,974.39 2232,971.704 2232,968.39 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2289.5,1047.32 C2289.5,1044 2286.81,1041.32 2283.5,1041.32 C2280.19,1041.32 2277.5,1044 2277.5,1047.32 C2277.5,1050.63 2280.19,1053.32 2283.5,1053.32 C2286.81,1053.32 2289.5,1050.63 2289.5,1047.32 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2347,1121.6 C2347,1118.28 2344.31,1115.6 2341,1115.6 C2337.69,1115.6 2335,1118.28 2335,1121.6 C2335,1124.91 2337.69,1127.6 2341,1127.6 C2344.31,1127.6 2347,1124.91 2347,1121.6 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2404.5,1206.71 C2404.5,1203.4 2401.81,1200.71 2398.5,1200.71 C2395.19,1200.71 2392.5,1203.4 2392.5,1206.71 C2392.5,1210.03 2395.19,1212.71 2398.5,1212.71 C2401.81,1212.71 2404.5,1210.03 2404.5,1206.71 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2462,1285.64 C2462,1282.32 2459.31,1279.64 2456,1279.64 C2452.69,1279.64 2450,1282.32 2450,1285.64 C2450,1288.95 2452.69,1291.64 2456,1291.64 C2459.31,1291.64 2462,1288.95 2462,1285.64 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2519.5,1380.04 C2519.5,1376.72 2516.81,1374.04 2513.5,1374.04 C2510.19,1374.04 2507.5,1376.72 2507.5,1380.04 C2507.5,1383.35 2510.19,1386.04 2513.5,1386.04 C2516.81,1386.04 2519.5,1383.35 2519.5,1380.04 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2577,1475.99 C2577,1472.67 2574.31,1469.99 2571,1469.99 C2567.69,1469.99 2565,1472.67 2565,1475.99 C2565,1479.3 2567.69,1481.99 2571,1481.99 C2574.31,1481.99 2577,1479.3 2577,1475.99 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2634.5,1545.63 C2634.5,1542.31 2631.81,1539.63 2628.5,1539.63 C2625.19,1539.63 2622.5,1542.31 2622.5,1545.63 C2622.5,1548.94 2625.19,1551.63 2628.5,1551.63 C2631.81,1551.63 2634.5,1548.94 2634.5,1545.63 "/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2692,1588.96 C2692,1585.64 2689.31,1582.96 2686,1582.96 C2682.69,1582.96 2680,1585.64 2680,1588.96 C2680,1592.27 2682.69,1594.96 2686,1594.96 C2689.31,1594.96 2692,1592.27 2692,1588.96 "/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#dd5400" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 443.5,142 501,142 558.5,142 616,142 673.5,142 731,142 788.5,142 846,142 903.5,142 961,142 1018.5,142 1076,142 1133.5,142 1191,142 1248.5,142 1306,142 1363.5,162.118 1421,228.663 1478.5,270.446 1536,312.23 1593.5,352.466 1651,381.87 1708.5,419.011 1766,449.962 1823.5,511.864 1881,562.933 1938.5,624.835 1996,697.57 2053.5,767.209 2111,843.039 2168.5,908.036 2226,976.128 2283.5,1044.22 2341,1126.24 2398.5,1209.81 2456,1305.76 2513.5,1401.7 2571,1466.7 2628.5,1525.51 2686,1588.96 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#dd5400" fill-opacity="1" stroke="#dd5400" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="381.757,137.757 390.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="381.757,146.243 390.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="439.257,137.757 447.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="439.257,146.243 447.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="496.757,137.757 505.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="496.757,146.243 505.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="554.257,137.757 562.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="554.257,146.243 562.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="611.757,137.757 620.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="611.757,146.243 620.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="669.257,137.757 677.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="669.257,146.243 677.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="726.757,137.757 735.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="726.757,146.243 735.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="784.257,137.757 792.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="784.257,146.243 792.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="841.757,137.757 850.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="841.757,146.243 850.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="899.257,137.757 907.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="899.257,146.243 907.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="956.757,137.757 965.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="956.757,146.243 965.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1014.26,137.757 1022.74,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1014.26,146.243 1022.74,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1071.76,137.757 1080.24,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1071.76,146.243 1080.24,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1129.26,137.757 1137.74,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1129.26,146.243 1137.74,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1186.76,137.757 1195.24,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1186.76,146.243 1195.24,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1244.26,137.757 1252.74,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1244.26,146.243 1252.74,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1301.76,137.757 1310.24,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1301.76,146.243 1310.24,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1359.26,157.875 1367.74,166.361 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1359.26,166.361 1367.74,157.875 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1416.76,224.42 1425.24,232.905 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1416.76,232.905 1425.24,224.42 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1474.26,266.204 1482.74,274.689 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1474.26,274.689 1482.74,266.204 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1531.76,307.988 1540.24,316.473 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1531.76,316.473 1540.24,307.988 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1589.26,348.224 1597.74,356.709 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1589.26,356.709 1597.74,348.224 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1646.76,377.627 1655.24,386.112 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1646.76,386.112 1655.24,377.627 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1704.26,414.768 1712.74,423.254 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1704.26,423.254 1712.74,414.768 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1761.76,445.719 1770.24,454.205 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1761.76,454.205 1770.24,445.719 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1819.26,507.621 1827.74,516.107 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1819.26,516.107 1827.74,507.621 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1876.76,558.69 1885.24,567.176 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1876.76,567.176 1885.24,558.69 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1934.26,620.592 1942.74,629.077 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1934.26,629.077 1942.74,620.592 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1991.76,693.327 2000.24,701.812 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1991.76,701.812 2000.24,693.327 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2049.26,762.967 2057.74,771.452 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2049.26,771.452 2057.74,762.967 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2106.76,838.796 2115.24,847.282 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2106.76,847.282 2115.24,838.796 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2164.26,903.793 2172.74,912.279 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2164.26,912.279 2172.74,903.793 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2221.76,971.885 2230.24,980.371 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2221.76,980.371 2230.24,971.885 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2279.26,1039.98 2287.74,1048.46 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2279.26,1048.46 2287.74,1039.98 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2336.76,1122 2345.24,1130.48 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2336.76,1130.48 2345.24,1122 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2394.26,1205.57 2402.74,1214.05 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2394.26,1214.05 2402.74,1205.57 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2451.76,1301.51 2460.24,1310 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2451.76,1310 2460.24,1301.51 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2509.26,1397.46 2517.74,1405.95 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2509.26,1405.95 2517.74,1397.46 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2566.76,1462.46 2575.24,1470.94 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2566.76,1470.94 2575.24,1462.46 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2624.26,1521.26 2632.74,1529.75 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2624.26,1529.75 2632.74,1521.26 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2681.76,1584.71 2690.24,1593.2 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2681.76,1593.2 2690.24,1584.71 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#edb120" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 443.5,142 501,142 558.5,142 616,142 673.5,142 731,142 788.5,142 846,142 903.5,142 961,142 1018.5,142 1076,142 1133.5,142 1191,142 1248.5,142 1306,142 1363.5,162.118 1421,230.21 1478.5,270.446 1536,310.683 1593.5,354.014 1651,383.417 1708.5,420.559 1766,449.962 1823.5,513.411 1881,562.933 1938.5,624.835 1996,697.57 2053.5,767.209 2111,843.039 2168.5,908.036 2226,976.128 2283.5,1044.22 2341,1124.69 2398.5,1209.81 2456,1305.76 2513.5,1401.7 2571,1466.7 2628.5,1525.51 2686,1588.96 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#edb120" fill-opacity="1" stroke="#edb120" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,136 386,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="380,142 392,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="381.757,137.757 390.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="381.757,146.243 390.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="443.5,136 443.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="437.5,142 449.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="439.257,137.757 447.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="439.257,146.243 447.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="501,136 501,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="495,142 507,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="496.757,137.757 505.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="496.757,146.243 505.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="558.5,136 558.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="552.5,142 564.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="554.257,137.757 562.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="554.257,146.243 562.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="616,136 616,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="610,142 622,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="611.757,137.757 620.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="611.757,146.243 620.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="673.5,136 673.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="667.5,142 679.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="669.257,137.757 677.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="669.257,146.243 677.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="731,136 731,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="725,142 737,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="726.757,137.757 735.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="726.757,146.243 735.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="788.5,136 788.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="782.5,142 794.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="784.257,137.757 792.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="784.257,146.243 792.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="846,136 846,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="840,142 852,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="841.757,137.757 850.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="841.757,146.243 850.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="903.5,136 903.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="897.5,142 909.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="899.257,137.757 907.743,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="899.257,146.243 907.743,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="961,136 961,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="955,142 967,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="956.757,137.757 965.243,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="956.757,146.243 965.243,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1018.5,136 1018.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1012.5,142 1024.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1014.26,137.757 1022.74,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1014.26,146.243 1022.74,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1076,136 1076,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1070,142 1082,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1071.76,137.757 1080.24,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1071.76,146.243 1080.24,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1133.5,136 1133.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1127.5,142 1139.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1129.26,137.757 1137.74,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1129.26,146.243 1137.74,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1191,136 1191,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1185,142 1197,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1186.76,137.757 1195.24,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1186.76,146.243 1195.24,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1248.5,136 1248.5,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1242.5,142 1254.5,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1244.26,137.757 1252.74,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1244.26,146.243 1252.74,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1306,136 1306,148 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1300,142 1312,142 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1301.76,137.757 1310.24,146.243 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1301.76,146.243 1310.24,137.757 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1363.5,156.118 1363.5,168.118 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1357.5,162.118 1369.5,162.118 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1359.26,157.875 1367.74,166.361 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1359.26,166.361 1367.74,157.875 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1421,224.21 1421,236.21 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1415,230.21 1427,230.21 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1416.76,225.968 1425.24,234.453 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1416.76,234.453 1425.24,225.968 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1478.5,264.446 1478.5,276.446 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1472.5,270.446 1484.5,270.446 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1474.26,266.204 1482.74,274.689 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1474.26,274.689 1482.74,266.204 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1536,304.683 1536,316.683 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1530,310.683 1542,310.683 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1531.76,306.44 1540.24,314.925 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1531.76,314.925 1540.24,306.44 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1593.5,348.014 1593.5,360.014 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1587.5,354.014 1599.5,354.014 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1589.26,349.771 1597.74,358.257 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1589.26,358.257 1597.74,349.771 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1651,377.417 1651,389.417 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1645,383.417 1657,383.417 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1646.76,379.175 1655.24,387.66 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1646.76,387.66 1655.24,379.175 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1708.5,414.559 1708.5,426.559 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1702.5,420.559 1714.5,420.559 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1704.26,416.316 1712.74,424.801 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1704.26,424.801 1712.74,416.316 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1766,443.962 1766,455.962 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1760,449.962 1772,449.962 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1761.76,445.719 1770.24,454.205 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1761.76,454.205 1770.24,445.719 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1823.5,507.411 1823.5,519.411 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1817.5,513.411 1829.5,513.411 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1819.26,509.169 1827.74,517.654 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1819.26,517.654 1827.74,509.169 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1881,556.933 1881,568.933 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1875,562.933 1887,562.933 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1876.76,558.69 1885.24,567.176 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1876.76,567.176 1885.24,558.69 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1938.5,618.835 1938.5,630.835 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1932.5,624.835 1944.5,624.835 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1934.26,620.592 1942.74,629.077 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1934.26,629.077 1942.74,620.592 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1996,691.57 1996,703.57 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1990,697.57 2002,697.57 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1991.76,693.327 2000.24,701.812 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="1991.76,701.812 2000.24,693.327 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2053.5,761.209 2053.5,773.209 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2047.5,767.209 2059.5,767.209 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2049.26,762.967 2057.74,771.452 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2049.26,771.452 2057.74,762.967 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2111,837.039 2111,849.039 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2105,843.039 2117,843.039 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2106.76,838.796 2115.24,847.282 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2106.76,847.282 2115.24,838.796 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2168.5,902.036 2168.5,914.036 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2162.5,908.036 2174.5,908.036 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2164.26,903.793 2172.74,912.279 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2164.26,912.279 2172.74,903.793 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2226,970.128 2226,982.128 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2220,976.128 2232,976.128 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2221.76,971.885 2230.24,980.371 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2221.76,980.371 2230.24,971.885 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2283.5,1038.22 2283.5,1050.22 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2277.5,1044.22 2289.5,1044.22 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2279.26,1039.98 2287.74,1048.46 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2279.26,1048.46 2287.74,1039.98 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2341,1118.69 2341,1130.69 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2335,1124.69 2347,1124.69 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2336.76,1120.45 2345.24,1128.94 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2336.76,1128.94 2345.24,1120.45 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2398.5,1203.81 2398.5,1215.81 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2392.5,1209.81 2404.5,1209.81 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2394.26,1205.57 2402.74,1214.05 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2394.26,1214.05 2402.74,1205.57 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2456,1299.76 2456,1311.76 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2450,1305.76 2462,1305.76 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2451.76,1301.51 2460.24,1310 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2451.76,1310 2460.24,1301.51 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2513.5,1395.7 2513.5,1407.7 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2507.5,1401.7 2519.5,1401.7 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2509.26,1397.46 2517.74,1405.95 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2509.26,1405.95 2517.74,1397.46 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2571,1460.7 2571,1472.7 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2565,1466.7 2577,1466.7 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2566.76,1462.46 2575.24,1470.94 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2566.76,1470.94 2575.24,1462.46 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2628.5,1519.51 2628.5,1531.51 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2622.5,1525.51 2634.5,1525.51 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2624.26,1521.26 2632.74,1529.75 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2624.26,1529.75 2632.74,1521.26 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2686,1582.96 2686,1594.96 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2680,1588.96 2692,1588.96 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2681.76,1584.71 2690.24,1593.2 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2681.76,1593.2 2690.24,1584.71 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#8516d1" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 443.5,142 501,142 558.5,142 616,142 673.5,142 731,142 788.5,142 846,142 903.5,142 961,142 1018.5,142 1076,142 1133.5,142 1191,142 1248.5,142 1306,142 1363.5,165.213 1421,231.758 1478.5,267.351 1536,310.683 1593.5,346.276 1651,383.417 1708.5,417.463 1766,449.962 1823.5,513.411 1881,566.028 1938.5,621.74 1996,699.117 2053.5,770.304 2111,841.492 2168.5,904.941 2226,976.128 2283.5,1042.67 2341,1124.69 2398.5,1216 2456,1305.76 2513.5,1400.16 2571,1468.25 2628.5,1528.6 2686,1587.41 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#8516d1" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M381.32,137.32 L381.32,146.68 L390.68,146.68 L390.68,137.32 L381.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M438.82,137.32 L438.82,146.68 L448.18,146.68 L448.18,137.32 L438.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M496.32,137.32 L496.32,146.68 L505.68,146.68 L505.68,137.32 L496.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M553.82,137.32 L553.82,146.68 L563.18,146.68 L563.18,137.32 L553.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M611.32,137.32 L611.32,146.68 L620.68,146.68 L620.68,137.32 L611.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M668.82,137.32 L668.82,146.68 L678.18,146.68 L678.18,137.32 L668.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M726.32,137.32 L726.32,146.68 L735.68,146.68 L735.68,137.32 L726.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M783.82,137.32 L783.82,146.68 L793.18,146.68 L793.18,137.32 L783.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M841.32,137.32 L841.32,146.68 L850.68,146.68 L850.68,137.32 L841.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M898.82,137.32 L898.82,146.68 L908.18,146.68 L908.18,137.32 L898.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M956.32,137.32 L956.32,146.68 L965.68,146.68 L965.68,137.32 L956.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1013.82,137.32 L1013.82,146.68 L1023.18,146.68 L1023.18,137.32 L1013.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1071.32,137.32 L1071.32,146.68 L1080.68,146.68 L1080.68,137.32 L1071.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1128.82,137.32 L1128.82,146.68 L1138.18,146.68 L1138.18,137.32 L1128.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1186.32,137.32 L1186.32,146.68 L1195.68,146.68 L1195.68,137.32 L1186.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1243.82,137.32 L1243.82,146.68 L1253.18,146.68 L1253.18,137.32 L1243.82,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1301.32,137.32 L1301.32,146.68 L1310.68,146.68 L1310.68,137.32 L1301.32,137.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1358.82,160.533 L1358.82,169.893 L1368.18,169.893 L1368.18,160.533 L1358.82,160.533"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1416.32,227.078 L1416.32,236.438 L1425.68,236.438 L1425.68,227.078 L1416.32,227.078"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1473.82,262.671 L1473.82,272.031 L1483.18,272.031 L1483.18,262.671 L1473.82,262.671"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1531.32,306.003 L1531.32,315.363 L1540.68,315.363 L1540.68,306.003 L1531.32,306.003"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1588.82,341.596 L1588.82,350.956 L1598.18,350.956 L1598.18,341.596 L1588.82,341.596"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1646.32,378.737 L1646.32,388.097 L1655.68,388.097 L1655.68,378.737 L1646.32,378.737"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1703.82,412.783 L1703.82,422.143 L1713.18,422.143 L1713.18,412.783 L1703.82,412.783"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1761.32,445.282 L1761.32,454.642 L1770.68,454.642 L1770.68,445.282 L1761.32,445.282"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1818.82,508.731 L1818.82,518.091 L1828.18,518.091 L1828.18,508.731 L1818.82,508.731"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1876.32,561.348 L1876.32,570.708 L1885.68,570.708 L1885.68,561.348 L1876.32,561.348"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1933.82,617.06 L1933.82,626.42 L1943.18,626.42 L1943.18,617.06 L1933.82,617.06"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1991.32,694.437 L1991.32,703.797 L2000.68,703.797 L2000.68,694.437 L1991.32,694.437"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2048.82,765.624 L2048.82,774.984 L2058.18,774.984 L2058.18,765.624 L2048.82,765.624"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2106.32,836.812 L2106.32,846.172 L2115.68,846.172 L2115.68,836.812 L2106.32,836.812"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2163.82,900.261 L2163.82,909.621 L2173.18,909.621 L2173.18,900.261 L2163.82,900.261"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2221.32,971.448 L2221.32,980.808 L2230.68,980.808 L2230.68,971.448 L2221.32,971.448"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2278.82,1037.99 L2278.82,1047.35 L2288.18,1047.35 L2288.18,1037.99 L2278.82,1037.99"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2336.32,1120.01 L2336.32,1129.37 L2345.68,1129.37 L2345.68,1120.01 L2336.32,1120.01"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2393.82,1211.32 L2393.82,1220.68 L2403.18,1220.68 L2403.18,1211.32 L2393.82,1211.32"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2451.32,1301.08 L2451.32,1310.44 L2460.68,1310.44 L2460.68,1301.08 L2451.32,1301.08"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2508.82,1395.48 L2508.82,1404.84 L2518.18,1404.84 L2518.18,1395.48 L2508.82,1395.48"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2566.32,1463.57 L2566.32,1472.93 L2575.68,1472.93 L2575.68,1463.57 L2566.32,1463.57"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2623.82,1523.92 L2623.82,1533.28 L2633.18,1533.28 L2633.18,1523.92 L2623.82,1523.92"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2681.32,1582.73 L2681.32,1592.09 L2690.68,1592.09 L2690.68,1582.73 L2681.32,1582.73"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#3baa32" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 443.5,142 501,142 558.5,142 616,142 673.5,142 731,142 788.5,142 846,142 903.5,142 961,142 1018.5,142 1076,142 1133.5,142 1191,142 1248.5,142 1306,142 1363.5,171.403 1421,241.043 1478.5,270.446 1536,313.778 1593.5,343.181 1651,369.49 1708.5,398.893 1766,456.152 1823.5,501.031 1881,566.028 1938.5,624.835 1996,697.57 2053.5,770.304 2111,843.039 2168.5,911.131 2226,971.486 2283.5,1033.39 2341,1121.6 2398.5,1220.64 2456,1307.3 2513.5,1393.97 2571,1471.34 2628.5,1530.15 2686,1578.12 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#3baa32" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M380,142 L386,149.98 L392,142 L386,134.02 L380,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M437.5,142 L443.5,149.98 L449.5,142 L443.5,134.02 L437.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M495,142 L501,149.98 L507,142 L501,134.02 L495,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M552.5,142 L558.5,149.98 L564.5,142 L558.5,134.02 L552.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M610,142 L616,149.98 L622,142 L616,134.02 L610,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M667.5,142 L673.5,149.98 L679.5,142 L673.5,134.02 L667.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M725,142 L731,149.98 L737,142 L731,134.02 L725,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M782.5,142 L788.5,149.98 L794.5,142 L788.5,134.02 L782.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M840,142 L846,149.98 L852,142 L846,134.02 L840,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M897.5,142 L903.5,149.98 L909.5,142 L903.5,134.02 L897.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M955,142 L961,149.98 L967,142 L961,134.02 L955,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1012.5,142 L1018.5,149.98 L1024.5,142 L1018.5,134.02 L1012.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1070,142 L1076,149.98 L1082,142 L1076,134.02 L1070,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1127.5,142 L1133.5,149.98 L1139.5,142 L1133.5,134.02 L1127.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1185,142 L1191,149.98 L1197,142 L1191,134.02 L1185,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1242.5,142 L1248.5,149.98 L1254.5,142 L1248.5,134.02 L1242.5,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1300,142 L1306,149.98 L1312,142 L1306,134.02 L1300,142"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1357.5,171.403 L1363.5,179.383 L1369.5,171.403 L1363.5,163.423 L1357.5,171.403"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1415,241.043 L1421,249.023 L1427,241.043 L1421,233.063 L1415,241.043"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1472.5,270.446 L1478.5,278.426 L1484.5,270.446 L1478.5,262.466 L1472.5,270.446"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1530,313.778 L1536,321.758 L1542,313.778 L1536,305.798 L1530,313.778"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1587.5,343.181 L1593.5,351.161 L1599.5,343.181 L1593.5,335.201 L1587.5,343.181"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1645,369.49 L1651,377.47 L1657,369.49 L1651,361.509 L1645,369.49"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1702.5,398.893 L1708.5,406.873 L1714.5,398.893 L1708.5,390.913 L1702.5,398.893"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1760,456.152 L1766,464.132 L1772,456.152 L1766,448.172 L1760,456.152"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1817.5,501.031 L1823.5,509.011 L1829.5,501.031 L1823.5,493.051 L1817.5,501.031"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1875,566.028 L1881,574.008 L1887,566.028 L1881,558.048 L1875,566.028"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1932.5,624.835 L1938.5,632.815 L1944.5,624.835 L1938.5,616.855 L1932.5,624.835"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1990,697.57 L1996,705.55 L2002,697.57 L1996,689.59 L1990,697.57"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2047.5,770.304 L2053.5,778.284 L2059.5,770.304 L2053.5,762.324 L2047.5,770.304"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2105,843.039 L2111,851.019 L2117,843.039 L2111,835.059 L2105,843.039"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2162.5,911.131 L2168.5,919.111 L2174.5,911.131 L2168.5,903.151 L2162.5,911.131"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2220,971.486 L2226,979.466 L2232,971.486 L2226,963.506 L2220,971.486"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2277.5,1033.39 L2283.5,1041.37 L2289.5,1033.39 L2283.5,1025.41 L2277.5,1033.39"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2335,1121.6 L2341,1129.58 L2347,1121.6 L2341,1113.62 L2335,1121.6"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2392.5,1220.64 L2398.5,1228.62 L2404.5,1220.64 L2398.5,1212.66 L2392.5,1220.64"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2450,1307.3 L2456,1315.28 L2462,1307.3 L2456,1299.32 L2450,1307.3"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2507.5,1393.97 L2513.5,1401.95 L2519.5,1393.97 L2513.5,1385.99 L2507.5,1393.97"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2565,1471.34 L2571,1479.32 L2577,1471.34 L2571,1463.36 L2565,1471.34"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2622.5,1530.15 L2628.5,1538.13 L2634.5,1530.15 L2628.5,1522.17 L2622.5,1530.15"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2680,1578.12 L2686,1586.1 L2692,1578.12 L2686,1570.14 L2680,1578.12"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#2fbeef" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="386,142 443.5,142 501,142 558.5,142 616,142 673.5,142 731,142 788.5,142 846,142 903.5,142 961,142 1018.5,142 1076,142 1133.5,142 1191,142 1248.5,142 1306,142 1363.5,163.666 1421,231.758 1478.5,262.709 1536,298.302 1593.5,333.896 1651,384.965 1708.5,423.654 1766,449.962 1823.5,510.316 1881,553.648 1938.5,595.431 1996,663.524 2053.5,753.281 2111,805.898 2168.5,884.823 2226,952.915 2283.5,1044.22 2341,1126.24 2398.5,1208.26 2456,1293.38 2513.5,1386.23 2571,1480.63 2628.5,1536.34 2686,1593.6 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#2fbeef" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M386,134.02 L379.089,145.99 L392.911,145.99 L386,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M443.5,134.02 L436.589,145.99 L450.411,145.99 L443.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M501,134.02 L494.089,145.99 L507.911,145.99 L501,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M558.5,134.02 L551.589,145.99 L565.411,145.99 L558.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M616,134.02 L609.089,145.99 L622.911,145.99 L616,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M673.5,134.02 L666.589,145.99 L680.411,145.99 L673.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M731,134.02 L724.089,145.99 L737.911,145.99 L731,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M788.5,134.02 L781.589,145.99 L795.411,145.99 L788.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M846,134.02 L839.089,145.99 L852.911,145.99 L846,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M903.5,134.02 L896.589,145.99 L910.411,145.99 L903.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M961,134.02 L954.089,145.99 L967.911,145.99 L961,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1018.5,134.02 L1011.59,145.99 L1025.41,145.99 L1018.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1076,134.02 L1069.09,145.99 L1082.91,145.99 L1076,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1133.5,134.02 L1126.59,145.99 L1140.41,145.99 L1133.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1191,134.02 L1184.09,145.99 L1197.91,145.99 L1191,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1248.5,134.02 L1241.59,145.99 L1255.41,145.99 L1248.5,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1306,134.02 L1299.09,145.99 L1312.91,145.99 L1306,134.02"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1363.5,155.686 L1356.59,167.656 L1370.41,167.656 L1363.5,155.686"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1421,223.778 L1414.09,235.748 L1427.91,235.748 L1421,223.778"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1478.5,254.729 L1471.59,266.699 L1485.41,266.699 L1478.5,254.729"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1536,290.322 L1529.09,302.292 L1542.91,302.292 L1536,290.322"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1593.5,325.916 L1586.59,337.886 L1600.41,337.886 L1593.5,325.916"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1651,376.985 L1644.09,388.955 L1657.91,388.955 L1651,376.985"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1708.5,415.674 L1701.59,427.644 L1715.41,427.644 L1708.5,415.674"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1766,441.982 L1759.09,453.952 L1772.91,453.952 L1766,441.982"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1823.5,502.336 L1816.59,514.306 L1830.41,514.306 L1823.5,502.336"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1881,545.668 L1874.09,557.638 L1887.91,557.638 L1881,545.668"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1938.5,587.451 L1931.59,599.421 L1945.41,599.421 L1938.5,587.451"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M1996,655.544 L1989.09,667.514 L2002.91,667.514 L1996,655.544"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2053.5,745.301 L2046.59,757.271 L2060.41,757.271 L2053.5,745.301"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2111,797.918 L2104.09,809.888 L2117.91,809.888 L2111,797.918"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2168.5,876.843 L2161.59,888.813 L2175.41,888.813 L2168.5,876.843"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2226,944.935 L2219.09,956.905 L2232.91,956.905 L2226,944.935"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2283.5,1036.24 L2276.59,1048.21 L2290.41,1048.21 L2283.5,1036.24"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2341,1118.26 L2334.09,1130.23 L2347.91,1130.23 L2341,1118.26"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2398.5,1200.28 L2391.59,1212.25 L2405.41,1212.25 L2398.5,1200.28"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2456,1285.4 L2449.09,1297.37 L2462.91,1297.37 L2456,1285.4"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2513.5,1378.25 L2506.59,1390.22 L2520.41,1390.22 L2513.5,1378.25"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2571,1472.65 L2564.09,1484.62 L2577.91,1484.62 L2571,1472.65"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2628.5,1528.36 L2621.59,1540.33 L2635.41,1540.33 L2628.5,1528.36"/>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2686,1585.62 L2679.09,1597.59 L2692.91,1597.59 L2686,1585.62"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#ffffff" fill-opacity="1" stroke="none" transform="matrix(5.09881e-05,0,0,5.1224e-05,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2.714e+07,1.42e+06 L2.714e+07,2.78e+06 L2.853e+07,2.78e+06 L2.853e+07,1.42e+06 L2.714e+07,1.42e+06"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#1171be" fill-opacity="1" stroke="#1171be" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2719.98,155.525 2779.76,155.525 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#1171be" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2755.87,155.525 C2755.87,152.211 2753.18,149.525 2749.87,149.525 C2746.56,149.525 2743.87,152.211 2743.87,155.525 C2743.87,158.839 2746.56,161.525 2749.87,161.525 C2753.18,161.525 2755.87,158.839 2755.87,155.525 "/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#dd5400" fill-opacity="1" stroke="#dd5400" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2719.98,177.315 2779.76,177.315 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#dd5400" fill-opacity="1" stroke="#dd5400" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2745.63,173.072 2754.11,181.558 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2745.63,181.558 2754.11,173.072 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#edb120" fill-opacity="1" stroke="#edb120" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2719.98,199.105 2779.76,199.105 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#edb120" fill-opacity="1" stroke="#edb120" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2749.87,193.105 2749.87,205.105 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2743.87,199.105 2755.87,199.105 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2745.63,194.862 2754.11,203.348 " />
|
||||||
|
<polyline fill="none" vector-effect="none" points="2745.63,203.348 2754.11,194.862 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#8516d1" fill-opacity="1" stroke="#8516d1" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2719.98,220.895 2779.76,220.895 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#8516d1" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2745.19,216.215 L2745.19,225.575 L2754.55,225.575 L2754.55,216.215 L2745.19,216.215"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#3baa32" fill-opacity="1" stroke="#3baa32" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2719.98,242.685 2779.76,242.685 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#3baa32" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2743.87,242.685 L2749.87,250.665 L2755.87,242.685 L2749.87,234.705 L2743.87,242.685"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#2fbeef" fill-opacity="1" stroke="#2fbeef" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="round" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<polyline fill="none" vector-effect="none" points="2719.98,264.475 2779.76,264.475 " />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#2fbeef" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="22" font-weight="700" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2749.87,256.495 L2742.96,268.465 L2756.78,268.465 L2749.87,256.495"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1256.44,23.1549)"
|
||||||
|
font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.140625" font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>none</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1256.44,34.3167)"
|
||||||
|
font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.140625" font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>ideal</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1256.44,45.4784)"
|
||||||
|
font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.140625" font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>10Hz</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1256.44,56.6401)"
|
||||||
|
font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.140625" font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>100Hz</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1256.44,67.8019)"
|
||||||
|
font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.140625" font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>1000Hz</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="#212121" fill-opacity="1" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(0.509881,0,0,0.51224,1256.44,78.9636)"
|
||||||
|
font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<text fill="#212121" fill-opacity="1" stroke="none" xml:space="preserve" x="0" y="-0.140625" font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>5000Hz</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g fill="none" stroke="#212121" stroke-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="5" transform="matrix(0.509881,0,0,0.51224,-163.192,-59.0724)"
|
||||||
|
font-family="Helvetica" font-size="18" font-weight="400" font-style="normal"
|
||||||
|
>
|
||||||
|
<path vector-effect="none" fill-rule="evenodd" d="M2714,278 L2714,142 L2853,142 L2853,278 L2714,278"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 74 KiB |
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 149 KiB |
@@ -1,4 +1,4 @@
|
|||||||
function res = perform_access_analysis(satSim, queryTime)
|
function res = perform_access_analysis(satSim, queryTime, carrierFrequency)
|
||||||
sat = satSim.sat;
|
sat = satSim.sat;
|
||||||
ue = satSim.ue;
|
ue = satSim.ue;
|
||||||
|
|
||||||
@@ -17,7 +17,10 @@ function res = perform_access_analysis(satSim, queryTime)
|
|||||||
res.distanceToSatellite = r;
|
res.distanceToSatellite = r;
|
||||||
res.elevationAngleToSatellite = el;
|
res.elevationAngleToSatellite = el;
|
||||||
|
|
||||||
carrierFrequency = 2.4e9;
|
if nargin < 3
|
||||||
|
carrierFrequency = 2.4e9;
|
||||||
|
end
|
||||||
|
|
||||||
[fshift,~,dopplerInfo] = dopplershift( ...
|
[fshift,~,dopplerInfo] = dopplershift( ...
|
||||||
sat,ue,queryTime,Frequency=carrierFrequency);
|
sat,ue,queryTime,Frequency=carrierFrequency);
|
||||||
res.rangeRate = -1*dopplerInfo.RelativeVelocity;
|
res.rangeRate = -1*dopplerInfo.RelativeVelocity;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
function [numPacketErrors, numPacketsSimulated, cfrMagnitudes, rxPower, pathLoss]= simulateTransmission(accessAnalysisResults, cfgEHT, channel, maxChDelay, snr, maxNumErrors, simParameters)
|
function [numPacketErrors, numPacketsSimulated, cfrMagnitudes, rxPower, pathLoss]= simulateTransmission(accessAnalysisParameters, cfgEHT, channel, maxChDelay, snr, maxNumErrors, simParameters)
|
||||||
numPacketErrors = 0;
|
numPacketErrors = 0;
|
||||||
numPacketsSimulated = 0;
|
numPacketsSimulated = 0;
|
||||||
cfrMagnitudes = [];
|
cfrMagnitudes = [];
|
||||||
rxPower = zeros(size(accessAnalysisResults.elevationAngles));
|
rxPower = zeros(size(accessAnalysisParameters.elevationAngles));
|
||||||
pathLoss = zeros(size(accessAnalysisResults.elevationAngles));
|
pathLoss = zeros(size(accessAnalysisParameters.elevationAngles));
|
||||||
|
|
||||||
ofdmInfo = wlanEHTOFDMInfo('EHT-Data', cfgEHT);
|
ofdmInfo = wlanEHTOFDMInfo('EHT-Data', cfgEHT);
|
||||||
ind = wlanFieldIndices(cfgEHT);
|
ind = wlanFieldIndices(cfgEHT);
|
||||||
@@ -26,11 +26,11 @@ function [numPacketErrors, numPacketsSimulated, cfrMagnitudes, rxPower, pathLoss
|
|||||||
lambda = physconst("lightspeed") / simParameters.CarrierFrequency;
|
lambda = physconst("lightspeed") / simParameters.CarrierFrequency;
|
||||||
includePathLoss = isfield(simParameters, 'IncludeFreeSpacePathLoss') && simParameters.IncludeFreeSpacePathLoss;
|
includePathLoss = isfield(simParameters, 'IncludeFreeSpacePathLoss') && simParameters.IncludeFreeSpacePathLoss;
|
||||||
|
|
||||||
while (powerOnlySimulation || numPacketErrors < maxNumErrors) && numPacketsSimulated < numel(accessAnalysisResults.elevationAngles)
|
while (powerOnlySimulation || numPacketErrors < maxNumErrors) && numPacketsSimulated < numel(accessAnalysisParameters.elevationAngles)
|
||||||
numPacketsSimulated = numPacketsSimulated + 1;
|
numPacketsSimulated = numPacketsSimulated + 1;
|
||||||
|
|
||||||
if includePathLoss
|
if includePathLoss
|
||||||
packetDistance = accessAnalysisResults.distances(numPacketsSimulated);
|
packetDistance = accessAnalysisParameters.distances(numPacketsSimulated);
|
||||||
pathLoss(numPacketsSimulated) = 20 * log10(4 * pi * packetDistance / lambda);
|
pathLoss(numPacketsSimulated) = 20 * log10(4 * pi * packetDistance / lambda);
|
||||||
else
|
else
|
||||||
pathLoss(numPacketsSimulated) = 0;
|
pathLoss(numPacketsSimulated) = 0;
|
||||||
@@ -45,15 +45,38 @@ function [numPacketErrors, numPacketsSimulated, cfrMagnitudes, rxPower, pathLoss
|
|||||||
|
|
||||||
tx = tx * sqrt(10^((txPower - 30) / 10)) / sqrt(stfPower);
|
tx = tx * sqrt(10^((txPower - 30) / 10)) / sqrt(stfPower);
|
||||||
|
|
||||||
|
packetElevationAngle = accessAnalysisParameters.elevationAngles(numPacketsSimulated);
|
||||||
|
if isfield(accessAnalysisParameters, "dopplerShifts") && isfinite(accessAnalysisParameters.dopplerShifts(numPacketsSimulated))
|
||||||
|
packetDopplerShift = accessAnalysisParameters.dopplerShifts(numPacketsSimulated);
|
||||||
|
else
|
||||||
|
packetDopplerShift = dopplerShiftCircularOrbit(packetElevationAngle, simParameters.SatelliteAltitude, simParameters.MobileAltitude, simParameters.CarrierFrequency);
|
||||||
|
end
|
||||||
|
|
||||||
|
if ~isfinite(packetDopplerShift)
|
||||||
|
packetDopplerShift = 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
channel.SatelliteDopplerShift = packetDopplerShift;
|
||||||
|
|
||||||
txPad = [tx; zeros(maxChDelay, cfgEHT.NumTransmitAntennas)];
|
txPad = [tx; zeros(maxChDelay, cfgEHT.NumTransmitAntennas)];
|
||||||
|
|
||||||
|
if isfield(accessAnalysisParameters, "preCompensation")
|
||||||
|
predictedDopplerShift = [];
|
||||||
|
if isnumeric(accessAnalysisParameters.preCompensation)
|
||||||
|
predictedDopplerShift = packetDopplerShift + accessAnalysisParameters.preCompensation;
|
||||||
|
elseif string(accessAnalysisParameters.preCompensation) == "ideal"
|
||||||
|
predictedDopplerShift = packetDopplerShift;
|
||||||
|
end
|
||||||
|
|
||||||
|
if ~isempty(predictedDopplerShift) && isfinite(predictedDopplerShift)
|
||||||
|
txPad = frequencyOffset(txPad, simParameters.SampleRate, -predictedDopplerShift);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if powerOnlySimulation
|
if powerOnlySimulation
|
||||||
continue;
|
continue;
|
||||||
end
|
end
|
||||||
|
|
||||||
packetElevationAngle = accessAnalysisResults.elevationAngles(numPacketsSimulated);
|
|
||||||
channel.SatelliteDopplerShift = dopplerShiftCircularOrbit(packetElevationAngle, simParameters.SatelliteAltitude, simParameters.MobileAltitude, simParameters.CarrierFrequency);
|
|
||||||
|
|
||||||
reset(channel);
|
reset(channel);
|
||||||
rx = awgn(channel(txPad) * db2mag(-pathLoss(numPacketsSimulated)), snrVal);
|
rx = awgn(channel(txPad) * db2mag(-pathLoss(numPacketsSimulated)), snrVal);
|
||||||
|
|
||||||
@@ -90,7 +113,9 @@ function [numPacketErrors, numPacketsSimulated, cfrMagnitudes, rxPower, pathLoss
|
|||||||
rxData = rx(packetOffset + (ind.EHTData(1) : ind.EHTData(2)), :);
|
rxData = rx(packetOffset + (ind.EHTData(1) : ind.EHTData(2)), :);
|
||||||
demodSym = wlanEHTDemodulate(rxData, "EHT-Data", cfgEHT);
|
demodSym = wlanEHTDemodulate(rxData, "EHT-Data", cfgEHT);
|
||||||
|
|
||||||
demodSym = wlanEHTTrackPilotError(demodSym, chanEstimate, cfgEHT, "EHT-Data");
|
if ~isfield(accessAnalysisParameters, "enablePilotTracking") || accessAnalysisParameters.enablePilotTracking
|
||||||
|
demodSym = wlanEHTTrackPilotError(demodSym, chanEstimate, cfgEHT, "EHT-Data");
|
||||||
|
end
|
||||||
|
|
||||||
nVarEst = wlanEHTDataNoiseEstimate(demodSym(ofdmInfo.PilotIndices, :, :),pilotEstimate, cfgEHT);
|
nVarEst = wlanEHTDataNoiseEstimate(demodSym(ofdmInfo.PilotIndices, :, :),pilotEstimate, cfgEHT);
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ progressQueue = parallel.pool.DataQueue;
|
|||||||
parfor_waitbar(f, progressTotal, progressStartText, true);
|
parfor_waitbar(f, progressTotal, progressStartText, true);
|
||||||
progressListener = afterEach(progressQueue, @(info) parfor_waitbar(f, progressTotal, info, false));
|
progressListener = afterEach(progressQueue, @(info) parfor_waitbar(f, progressTotal, info, false));
|
||||||
|
|
||||||
parfor idx = 1:numel(sampleTimes)
|
parfor idx = 1 : numel(sampleTimes)
|
||||||
res = perform_access_analysis(satSim, sampleTimes(idx));
|
res = perform_access_analysis(satSim, sampleTimes(idx));
|
||||||
distancesToSat(idx) = res.distanceToSatellite;
|
distancesToSat(idx) = res.distanceToSatellite;
|
||||||
elevationAnglesToSat(idx) = res.elevationAngleToSatellite;
|
elevationAnglesToSat(idx) = res.elevationAngleToSatellite;
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ amplifierGain = 30;
|
|||||||
cfgEHT.User{1}.MCS = 3;
|
cfgEHT.User{1}.MCS = 3;
|
||||||
simParameters.TransmitPower = txPower;
|
simParameters.TransmitPower = txPower;
|
||||||
|
|
||||||
|
if exist("only_define_baseline_vars", "var") && only_define_baseline_vars
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
[~, numPacketsSimulated, ~, rxPower, pathLoss] = simulateTransmission(accessAnalysisResults, cfgEHT, channel, maxChDelay, [], inf, simParameters);
|
[~, numPacketsSimulated, ~, rxPower, pathLoss] = simulateTransmission(accessAnalysisResults, cfgEHT, channel, maxChDelay, [], inf, simParameters);
|
||||||
|
|
||||||
packetIdx = 1:numPacketsSimulated;
|
packetIdx = 1:numPacketsSimulated;
|
||||||
|
|||||||
+268
@@ -0,0 +1,268 @@
|
|||||||
|
minutesToSimulate = 10;
|
||||||
|
satConfig.stopTime = satConfig.startTime + minutes(minutesToSimulate);
|
||||||
|
|
||||||
|
snrs = 0:1:40;
|
||||||
|
|
||||||
|
if exist("satSim", "var")
|
||||||
|
clear satSim;
|
||||||
|
end
|
||||||
|
|
||||||
|
satSim = create_satellite_sim(satConfig, groundStation);
|
||||||
|
packetsToTransmit = 1000;
|
||||||
|
|
||||||
|
sampleTimes = satConfig.startTime:seconds(satConfig.sampleTime):satConfig.stopTime;
|
||||||
|
packetsPerTimeSlot = packetsToTransmit / numel(sampleTimes);
|
||||||
|
|
||||||
|
packetTimes = satConfig.startTime + seconds(linspace(0, minutesToSimulate * 60, packetsToTransmit));
|
||||||
|
|
||||||
|
% viewer = satelliteScenarioViewer(satSim.sc);
|
||||||
|
|
||||||
|
preCompensations = {"none", "ideal", 10, 100, 1000, 5000};
|
||||||
|
preCompensationLabels = [
|
||||||
|
"none"
|
||||||
|
"ideal"
|
||||||
|
"10Hz"
|
||||||
|
"100Hz"
|
||||||
|
"1000Hz"
|
||||||
|
"5000Hz"
|
||||||
|
];
|
||||||
|
|
||||||
|
markers = 'ox*sd^v><ph+ox*sd^v><ph+';
|
||||||
|
|
||||||
|
if calc_task4
|
||||||
|
distances = zeros(1, packetsToTransmit);
|
||||||
|
elevationAngles = zeros(1, packetsToTransmit);
|
||||||
|
dopplerShifts = zeros(1, packetsToTransmit);
|
||||||
|
|
||||||
|
progressStartText = "Starting packet parameter calculation ...";
|
||||||
|
f = waitbar(0, progressStartText, "Name", "Task 4 packet times");
|
||||||
|
|
||||||
|
progressTotal = numel(packetTimes);
|
||||||
|
progressQueue = parallel.pool.DataQueue;
|
||||||
|
|
||||||
|
parfor_waitbar(f, progressTotal, progressStartText, true);
|
||||||
|
progressListener = afterEach(progressQueue, @(info) parfor_waitbar(f, progressTotal, info, false));
|
||||||
|
|
||||||
|
parfor timeIdx = 1 : numel(packetTimes)
|
||||||
|
[~, elevationAngles(timeIdx), distances(timeIdx)] = aer(satSim.ue, satSim.sat, packetTimes(timeIdx));
|
||||||
|
dopplerShifts(timeIdx) = dopplershift(satSim.sat, satSim.ue, packetTimes(timeIdx), Frequency=carrier_frequency);
|
||||||
|
send(progressQueue, sprintf("Packet: %d", timeIdx));
|
||||||
|
|
||||||
|
%{
|
||||||
|
res = perform_access_analysis(satSim, packetTimes(timeIdx));
|
||||||
|
|
||||||
|
distances(timeIdx) = res.distanceToSatellite;
|
||||||
|
elevationAngles(timeIdx) = res.elevationAngleToSatellite;
|
||||||
|
dopplerShifts(timeIdx) = res.fshift;
|
||||||
|
send(progressQueue, sprintf("Packet: %d", timeIdx));
|
||||||
|
%}
|
||||||
|
end
|
||||||
|
|
||||||
|
delete(progressListener);
|
||||||
|
if ishandle(f)
|
||||||
|
close(f);
|
||||||
|
end
|
||||||
|
|
||||||
|
accessAnalysisParameters.times = packetTimes;
|
||||||
|
accessAnalysisParameters.distances = distances;
|
||||||
|
accessAnalysisParameters.elevationAngles = elevationAngles;
|
||||||
|
accessAnalysisParameters.dopplerShifts = dopplerShifts;
|
||||||
|
accessAnalysisParameters.enablePilotTracking = false;
|
||||||
|
|
||||||
|
simParameters.IncludeFreeSpacePathLoss = false;
|
||||||
|
|
||||||
|
progressStartText = "Starting PER sweep ...";
|
||||||
|
f = waitbar(0, progressStartText, "Name", "Task 4");
|
||||||
|
|
||||||
|
progressTotal = numel(preCompensations) * numel(snrs);
|
||||||
|
progressQueue = parallel.pool.DataQueue;
|
||||||
|
|
||||||
|
parfor_waitbar(f, progressTotal, progressStartText, true);
|
||||||
|
progressListener = afterEach(progressQueue, @(info) parfor_waitbar(f, progressTotal, info, false));
|
||||||
|
|
||||||
|
errorCounts = zeros(numel(preCompensations), numel(snrs));
|
||||||
|
packetCounts = zeros(numel(preCompensations), numel(snrs));
|
||||||
|
errorRates = zeros(numel(preCompensations), numel(snrs));
|
||||||
|
cfrMagnitudesBySnr = cell(numel(preCompensations), numel(snrs));
|
||||||
|
|
||||||
|
for preCompensationIdx = 1 : numel(preCompensations)
|
||||||
|
scenarioParameters = accessAnalysisParameters;
|
||||||
|
scenarioParameters.preCompensation = preCompensations{preCompensationIdx};
|
||||||
|
scenarioLabel = preCompensationLabels(preCompensationIdx);
|
||||||
|
|
||||||
|
errorCountsForScenario = zeros(1, numel(snrs));
|
||||||
|
packetCountsForScenario = zeros(1, numel(snrs));
|
||||||
|
errorRatesForScenario = zeros(1, numel(snrs));
|
||||||
|
cfrMagnitudesForScenario = cell(1, numel(snrs));
|
||||||
|
|
||||||
|
parfor snrIdx = 1 : numel(snrs)
|
||||||
|
localChannel = clone(channel);
|
||||||
|
[numPacketErrors, numPacketsSimulated, cfrMagnitudes, ~, ~] = simulateTransmission(scenarioParameters, cfgEHT, localChannel, maxChDelay, snrs(snrIdx), inf, simParameters);
|
||||||
|
errorCountsForScenario(snrIdx) = numPacketErrors;
|
||||||
|
packetCountsForScenario(snrIdx) = numPacketsSimulated;
|
||||||
|
errorRatesForScenario(snrIdx) = numPacketErrors / numPacketsSimulated;
|
||||||
|
cfrMagnitudesForScenario{snrIdx} = cfrMagnitudes;
|
||||||
|
send(progressQueue, sprintf("Pre-Compensation: %s, SNR: %d", char(scenarioLabel), snrs(snrIdx)));
|
||||||
|
end
|
||||||
|
|
||||||
|
errorCounts(preCompensationIdx, :) = errorCountsForScenario;
|
||||||
|
packetCounts(preCompensationIdx, :) = packetCountsForScenario;
|
||||||
|
errorRates(preCompensationIdx, :) = errorRatesForScenario;
|
||||||
|
cfrMagnitudesBySnr(preCompensationIdx, :) = cfrMagnitudesForScenario;
|
||||||
|
end
|
||||||
|
|
||||||
|
delete(progressListener);
|
||||||
|
if ishandle(f)
|
||||||
|
close(f);
|
||||||
|
end
|
||||||
|
|
||||||
|
plotErrorRates = max(errorRates, 1 / packetsToTransmit);
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
for preCompensationIdx = 1 : numel(preCompensations)
|
||||||
|
semilogy(snrs, plotErrorRates(preCompensationIdx, :), ['-' markers(preCompensationIdx)]);
|
||||||
|
end
|
||||||
|
|
||||||
|
grid on;
|
||||||
|
xlabel("SNR [dB]");
|
||||||
|
ylabel("PER");
|
||||||
|
ylim([1 / packetsToTransmit 1]);
|
||||||
|
legend(preCompensationLabels, "Location", "NorthEastOutside");
|
||||||
|
title("PER over SNR with Doppler pre-compensation");
|
||||||
|
|
||||||
|
% greatest difference between no pre compensation and ideal
|
||||||
|
max(abs(errorRates(1,:) - errorRates(2,:)))
|
||||||
|
end % calc_task4
|
||||||
|
|
||||||
|
|
||||||
|
% 4.4
|
||||||
|
% carrierFrequenciesF = [2.4e9, 5e9, 6e9, 10e9, 20e9, 60e9];
|
||||||
|
carrierFrequenciesF = [20e9, 40e9, 60e9, 80e9, 120e9, 240e9];
|
||||||
|
preCompensationsF = {"none", "ideal"};
|
||||||
|
preCompensationLabelsF = [
|
||||||
|
"none"
|
||||||
|
"ideal"
|
||||||
|
];
|
||||||
|
|
||||||
|
if calc_task4_4
|
||||||
|
errorCountsF = zeros(numel(carrierFrequenciesF), numel(preCompensationsF), numel(snrs));
|
||||||
|
packetCountsF = zeros(numel(carrierFrequenciesF), numel(preCompensationsF), numel(snrs));
|
||||||
|
errorRatesF = zeros(numel(carrierFrequenciesF), numel(preCompensationsF), numel(snrs));
|
||||||
|
cfrMagnitudesBySnrF = cell(numel(carrierFrequenciesF), numel(preCompensationsF), numel(snrs));
|
||||||
|
|
||||||
|
for carrierFrequencyIdxF = 1 : numel(carrierFrequenciesF)
|
||||||
|
carrierFrequencyF = carrierFrequenciesF(carrierFrequencyIdxF);
|
||||||
|
|
||||||
|
[cfgEHTF, simParametersF, channelF, ~, maxChDelayF, ~, ~] = create_baseline_configuration(profile, bandwidth, false, delay_model, carrierFrequencyF, mobile_speed, mobile_altitude, satellite_altitude, random_stream, seed, tx_antenna_count, rx_antenna_count, apep);
|
||||||
|
cfgEHTF.User{1}.MCS = 3;
|
||||||
|
simParametersF.TransmitPower = txPower;
|
||||||
|
simParametersF.IncludeFreeSpacePathLoss = false;
|
||||||
|
|
||||||
|
distancesF = zeros(1, packetsToTransmit);
|
||||||
|
elevationAnglesF = zeros(1, packetsToTransmit);
|
||||||
|
dopplerShiftsF = zeros(1, packetsToTransmit);
|
||||||
|
|
||||||
|
progressStartTextF = sprintf("Starting packet parameter calculation for %.1f GHz ...", carrierFrequencyF / 1e9);
|
||||||
|
waitbarF = waitbar(0, progressStartTextF, "Name", "Task 4.4 packet times");
|
||||||
|
|
||||||
|
progressTotalF = numel(packetTimes);
|
||||||
|
progressQueueF = parallel.pool.DataQueue;
|
||||||
|
|
||||||
|
parfor_waitbar(waitbarF, progressTotalF, progressStartTextF, true);
|
||||||
|
progressListenerF = afterEach(progressQueueF, @(info) parfor_waitbar(waitbarF, progressTotalF, info, false));
|
||||||
|
|
||||||
|
parfor timeIdxF = 1 : numel(packetTimes)
|
||||||
|
[~, elevationAnglesF(timeIdxF), distancesF(timeIdxF)] = aer(satSim.ue, satSim.sat, packetTimes(timeIdxF));
|
||||||
|
dopplerShiftsF(timeIdxF) = dopplershift(satSim.sat, satSim.ue, packetTimes(timeIdxF), Frequency=carrierFrequencyF);
|
||||||
|
send(progressQueueF, sprintf("Packet: %d", timeIdxF));
|
||||||
|
end
|
||||||
|
|
||||||
|
delete(progressListenerF);
|
||||||
|
if ishandle(waitbarF)
|
||||||
|
close(waitbarF);
|
||||||
|
end
|
||||||
|
|
||||||
|
accessAnalysisParametersF.times = packetTimes;
|
||||||
|
accessAnalysisParametersF.distances = distancesF;
|
||||||
|
accessAnalysisParametersF.elevationAngles = elevationAnglesF;
|
||||||
|
accessAnalysisParametersF.dopplerShifts = dopplerShiftsF;
|
||||||
|
accessAnalysisParametersF.enablePilotTracking = false;
|
||||||
|
|
||||||
|
progressStartTextF = sprintf("Starting PER sweep for %.1f GHz ...", carrierFrequencyF / 1e9);
|
||||||
|
waitbarF = waitbar(0, progressStartTextF, "Name", "Task 4.4");
|
||||||
|
|
||||||
|
progressTotalF = numel(preCompensationsF) * numel(snrs);
|
||||||
|
progressQueueF = parallel.pool.DataQueue;
|
||||||
|
|
||||||
|
parfor_waitbar(waitbarF, progressTotalF, progressStartTextF, true);
|
||||||
|
progressListenerF = afterEach(progressQueueF, @(info) parfor_waitbar(waitbarF, progressTotalF, info, false));
|
||||||
|
|
||||||
|
for preCompensationIdxF = 1 : numel(preCompensationsF)
|
||||||
|
scenarioParametersF = accessAnalysisParametersF;
|
||||||
|
scenarioParametersF.preCompensation = preCompensationsF{preCompensationIdxF};
|
||||||
|
scenarioLabelF = preCompensationLabelsF(preCompensationIdxF);
|
||||||
|
|
||||||
|
errorCountsForScenarioF = zeros(1, numel(snrs));
|
||||||
|
packetCountsForScenarioF = zeros(1, numel(snrs));
|
||||||
|
errorRatesForScenarioF = zeros(1, numel(snrs));
|
||||||
|
cfrMagnitudesForScenarioF = cell(1, numel(snrs));
|
||||||
|
|
||||||
|
parfor snrIdxF = 1 : numel(snrs)
|
||||||
|
localChannelF = clone(channelF);
|
||||||
|
[numPacketErrorsF, numPacketsSimulatedF, cfrMagnitudesF, ~, ~] = simulateTransmission(scenarioParametersF, cfgEHTF, localChannelF, maxChDelayF, snrs(snrIdxF), inf, simParametersF);
|
||||||
|
|
||||||
|
errorCountsForScenarioF(snrIdxF) = numPacketErrorsF;
|
||||||
|
packetCountsForScenarioF(snrIdxF) = numPacketsSimulatedF;
|
||||||
|
errorRatesForScenarioF(snrIdxF) = numPacketErrorsF / numPacketsSimulatedF;
|
||||||
|
cfrMagnitudesForScenarioF{snrIdxF} = cfrMagnitudesF;
|
||||||
|
|
||||||
|
send(progressQueueF, sprintf("%.1f GHz | Pre-Compensation: %s | SNR: %d", carrierFrequencyF / 1e9, char(scenarioLabelF), snrs(snrIdxF)));
|
||||||
|
end
|
||||||
|
|
||||||
|
errorCountsF(carrierFrequencyIdxF, preCompensationIdxF, :) = reshape(errorCountsForScenarioF, 1, 1, []);
|
||||||
|
packetCountsF(carrierFrequencyIdxF, preCompensationIdxF, :) = reshape(packetCountsForScenarioF, 1, 1, []);
|
||||||
|
errorRatesF(carrierFrequencyIdxF, preCompensationIdxF, :) = reshape(errorRatesForScenarioF, 1, 1, []);
|
||||||
|
cfrMagnitudesBySnrF(carrierFrequencyIdxF, preCompensationIdxF, :) = reshape(cfrMagnitudesForScenarioF, 1, 1, []);
|
||||||
|
end
|
||||||
|
|
||||||
|
delete(progressListenerF);
|
||||||
|
if ishandle(waitbarF)
|
||||||
|
close(waitbarF);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
plotErrorRatesF = max(errorRatesF, 1 / packetsToTransmit);
|
||||||
|
carrierFrequencyLabelsF = string(carrierFrequenciesF / 1e9) + " GHz";
|
||||||
|
|
||||||
|
figure;
|
||||||
|
tiledlayout(1, numel(preCompensationsF));
|
||||||
|
for preCompensationIdxF = 1 : numel(preCompensationsF)
|
||||||
|
nexttile;
|
||||||
|
hold on;
|
||||||
|
for carrierFrequencyIdxF = 1 : numel(carrierFrequenciesF)
|
||||||
|
semilogy(snrs, squeeze(plotErrorRatesF(carrierFrequencyIdxF, preCompensationIdxF, :)), ['-' markers(carrierFrequencyIdxF)]);
|
||||||
|
end
|
||||||
|
|
||||||
|
grid on;
|
||||||
|
xlabel("SNR [dB]");
|
||||||
|
ylabel("PER");
|
||||||
|
ylim([1 / packetsToTransmit 1]);
|
||||||
|
legend(carrierFrequencyLabelsF, "Location", "NorthEastOutside");
|
||||||
|
title("Pre-compensation: " + preCompensationLabelsF(preCompensationIdxF));
|
||||||
|
end
|
||||||
|
|
||||||
|
targetPERF = 1e-1;
|
||||||
|
minErrorRatesF = min(errorRatesF, [], 3);
|
||||||
|
usableCarrierFrequenciesF = nan(1, numel(preCompensationsF));
|
||||||
|
|
||||||
|
for preCompensationIdxF = 1 : numel(preCompensationsF)
|
||||||
|
usableCarrierFrequencyIdxF = find(minErrorRatesF(:, preCompensationIdxF) <= targetPERF, 1, "last");
|
||||||
|
if ~isempty(usableCarrierFrequencyIdxF)
|
||||||
|
usableCarrierFrequenciesF(preCompensationIdxF) = carrierFrequenciesF(usableCarrierFrequencyIdxF);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
fprintf("Maximum usable carrier frequency without pre-compensation: %.1f GHz\n", usableCarrierFrequenciesF(1) / 1e9);
|
||||||
|
fprintf("Maximum usable carrier frequency with ideal pre-compensation: %.1f GHz\n", usableCarrierFrequenciesF(2) / 1e9);
|
||||||
|
end % calc_task4_4
|
||||||
Reference in New Issue
Block a user