Wireless-Innovation-Forum / 6-GHz-AFC

This repository contains code and data for testing the compliance of Automated Frequency Coordinator (AFC) software. The AFC is defined by the FCC in proceeding 18-295 on Unlicensed Use of the 6 GHz Band. This repository contains procedures, documentation, and tests for such software, and for the devices authorized by it. To contribute, please first read the CONTRIBUTING file in the repository for instructions.
14 stars 3 forks source link

AFC.SIP3 PSD values are not matching #51

Open sbasu07 opened 7 months ago

sbasu07 commented 7 months ago

Hi @AEgbert , according to the response mask of SIP3 in (6182 - 6213) MHz frequency range expected PSD value is 12.6 - 14.6 dBm/MHz. I am getting 23 dBm/MHz for all the incumbents in this frequency range. Could you help me with the incumbent callsign and its pathloss value that is causing the lower value of PSD? Thank you.

AEgbert commented 6 months ago

Is there a distance away from the AFC device that you use to filter out incumbents? I don't have a list of specific callsigns impacting SIP-3, but I'm seeing some incumbents in that frequency range at a greater distance than have typically been discussed here but with small discrimination angles that could be the source of the PSD limit. It may be that one of those are contributing to the PSD limit for that frequency range, but that you haven't included them because of their distance from the AFC request location.

sbasu07 commented 6 months ago

Hi @AEgbert, I have set 150km search radius to find out incumbents from the center location of the SPD. Could you let me know what radius is being used for this test case? Is there a fixed value of search-radius, or is it chosen dynamically for each of test vectors? If that is the case, what are the criteria to determine the search radius?

alexcpn commented 6 months ago

@AEgbert

Is it possible to get from Wifi6 Alliance the max distance to which to check.

I am also not getting the incumbent at (6182-6213) for SIP.3 even with 500 km search radius. The closest I could get for this and with the lowest PSD is below

[INFO] ********************************************************************************
[INFO] Going to process UUID = 4488054 call_sign = 'WRNS563
[INFO] accesspoint_loc =(33.8291, -107.388916) receiver_loc=(33.625638888888886, -107.15780555555556)
[INFO] Processing UUID = 4488054 call_sign = 'WRNS563' R to AP Dist =31113.692811158537 m, CF =6197.24 Mhz r_antenna_make= ANDREW CORPORATION r_antenna_model=USX8-6W
[INFO] uuid: 4488054
[INFO] call_sign: WRNS563
[INFO] frequency_assigned: 6197.24
[INFO] receiver_loc: (33.625638888888886, -107.15780555555556)
[INFO] t_loc_num: 1
[INFO] t_path_num: 1
[INFO] t_ant_num: 1
[INFO] receiver_to_ap_dist_m: 31113.692811158537
[INFO] r_height_to_center_raat: 64.0
[INFO] r_gain: 41.6
[INFO] r_diversity_gain: 41.6
[INFO] r_azimuth: None
[INFO] r_antenna_make: ANDREW CORPORATION
[INFO] r_antenna_model: USX8-6W
[INFO] r_loc_num: 2
[INFO] r_path_num: 1
[INFO] r_ant_num: 1
[INFO] polarization_code: None
[INFO] line_loss: None
[INFO] r_diameter_ft: 8.005249599999999
[INFO] r_diameter_m: 2.44
[INFO] ant_category: B2
[INFO] transmitter_loc: (34.03802777777778, -107.44636111111112)
[INFO] t_height_to_center_raat: 70.1
[INFO] t_gain: 41.6
[INFO] t_diversity_gain: None
[INFO] t_azimuth: 149.6
[INFO] t_antenna_make: ANDREW CORPORATION
[INFO] t_antenna_model: USX8-6W
[INFO] bandwidth: 30.0
[INFO] frequency_range: (6182.24, 6212.24)  # the lowest PSD with this range
[INFO] accesspoint_loc: (33.8291, -107.388916)
[INFO] accesspoint_ht_m: 12.0
[INFO] accesspoint_vtunc_m: 2
[INFO] accesspoint_hzunc_x: 150
[INFO] accesspoint_hzunc_y: 150
[INFO] Free Space Path Loss =138.16576789038345
[INFO] Total distance of segments =0.00 km Total profiles= 1
[INFO] Total distance of segments =0.00 km Total profiles= 1
[INFO] receiver_elev=1495.0 transmitter_elev=2322.0
[INFO] Total distance of segments =0.00 km Total profiles= 1
[INFO] accesspoint_elev=2136.0
[INFO] GRx = 41.6  GDRx= 41.6 dB
[INFO] centerFreq of Receiver =6197.24 Mhz
[INFO] ant_category = B2 
[INFO] Angle 1: Azimuthal discrimination angle:R-AP The azimuthal discrimination angle,  θAZ_Disc= -13.220849658064822 degress
[INFO] Angle 2: Elevation angle: R-T The receive antenna boresight elevation angle (from transmmitter) θEL_Disc= 0.7225797105372381 degrees
[INFO] Angle 3:elevation angle: R-AP The elevation angle from the  receive antenna to the evaluation phi= 0.9796826670583919 degrees
[INFO] --------------------------------------------------------------------------------
[INFO] Overall discrimination angle, 𝛾 =13.22187328853602 degress
[INFO] --------------------------------------------------------------------------------
[INFO] 2.d GRx=41.6 >= 38:/A  rpe=-29 from Radiation Supression Table 
[INFO] GRx=41.6 >= 38:HP Calcualted:rpe=6.93250725735809 rpe2-GRx=-34.66749274264191
[INFO] 2.d GRx=41.6 >= 38:/A :Got Max rpe=-34.66749274264191
[INFO] 2.d GRx=41.6 >= 38:/A  rpe=-29 from Radiation Supression Table 
[INFO] GRx=41.6 >= 38:HP Calcualted:rpe=6.93250725735809 rpe2-GRx=-34.66749274264191
[INFO] 2.d GRx=41.6 >= 38:/A :Got Max rpe=-34.66749274264191
[INFO] getRPE Diversity Antenna GDAZ_Disc=-34.66749274264191 GDEL_Disc=-34.66749274264191 
[INFO] getRPE gamma=-13.220849658064822 ant_category=B2 rpe=-34.66749274264191 rpe_d=-34.66749274264191 
[INFO] The azimuthal discrimination= GAZ-Disc =-34.66749274264191 This should be negative
[INFO] The elevation discrimination  GEL-Disc in dB = -34.66749274264191 contribution This should be Negative!)
[INFO] --------------------------------------------------------------------------------
[INFO] Taking Max of GRx_Effectivein dB = 6.9325072573580915 GDRx_Effective=6.9325072573580915
[INFO] GRx_Effectivein dB = 3.9325072573580915 polarization mismatch=3
[INFO] ----GRx_Effective in dB = 3.9325072573580915-----------
[INFO] Near field adjustments do not have to be done
[INFO] Total distance of segments =31.12 km Total profiles= 1037
[INFO] ITM loss is 186.38218798184693
[INFO] Path Loss used =186.38218798184693
[INFO] building_entry_loss = 0 ap_indoor=False
[INFO] interference = -182.44968072448884 
[INFO] transmit_power PSD = 66.44968072448884 dBm/MHz
[INFO] ********************************************************************************

I could not find this RPE in the legacy dump but could find it after some search here https://www.commscope.com/globalassets/digizuite/46980-7396-5-16-19-pdf.pdf and for 13 degrees is about -41 to -42(H/H) .

So this is deviating a bit from the calculated RPE from the log file I put above, but even putting this value does not making much difference as Path loss is very high here.

Expected Frequency
[INFO] 5925-6182,upperBound:23.0 nominalValue:23.0
[INFO] 6182-6213,upperBound:14.6 nominalValue:12.6
[INFO] 6213-6241,upperBound:18.9 nominalValue:16.9
[INFO] 6241-6272,upperBound:14.6 nominalValue:12.6
[INFO] 6272-6310,upperBound:23.0 nominalValue:23.0
[INFO] 6310-6321,upperBound:23.0 nominalValue:22.5
[INFO] 6321-6425,upperBound:23.0 nominalValue:23.0
[INFO] 6525-6650,upperBound:23.0 nominalValue:23.0
[INFO] 6676-6875,upperBound:23.0 nominalValue:23.0
[INFO] Calculated Frequency
[INFO] 5925.0-5930.025  psd: 23.0
[INFO] 5930.025-6167.925  psd: 23.0
[INFO] 6167.925-6182.065  psd: 23.0
[INFO] 6182.065-6419.965  psd: 23.0
[INFO] 6419.965-6425.0  psd: 23.0
[INFO] 6525.0-6540.0  psd: 23.0
[INFO] 6540.0-6570.0  psd: 23.0
[INFO] 6570.0-6580.0  psd: 23.0
[INFO] 6580.0-6650.0  psd: 23.0
[INFO] 6650.0-6675.2  psd: 0
[INFO] 6675.2-6680.0  psd: 23.0
[INFO] 6680.0-6697.5  psd: 23.0
[INFO] 6697.5-6840.0  psd: 23.0
[INFO] 6840.0-6847.5  psd: 23.0
[INFO] 6847.5-6852.5  psd: 23.0
[INFO] 6852.5-6857.5  psd: 23.0
[INFO] 6857.5-6860.0  psd: 23.0
[INFO] 6860.0-6875.0  psd: 23.0
AEgbert commented 6 months ago

I'll see if I can get some guidance on a recommended distance for AFC calculations. I believe this was left as an implementation detail for each AFC system operator, so I expect that there may not be a specific number I can provide, but I'll see what I can find.

AEgbert commented 6 months ago

@alexcpn The unofficial guidance I've received is that a distance of 200km should be sufficient to handle the cases presented in the test vectors--however, this is not a guarantee that some other situation would not show impact at a greater distance.

Regarding your results for (6182-6213), I believe you've identified the correct incumbent; however, I think the path loss in this instance should be close to the free space path loss. I have not had a chance to investigate more closely--assuming your ITM loss is calculated correctly, my blind suggestion would be to ensure that you are accounting for the SPD location uncertainty in accordance with R2-AIP-22, as I don't believe it has been discussed in any of the opened issues to date.

alexcpn commented 6 months ago

Thanks @AEgbert ;

I am using the uncertainty points here;

[INFO] Uncertanity Points =[(33.82880842609996, -107.3895749292709, 10), (33.82908707562165, -107.3895826860881, 10), (33.82936572512915, -107.3895904430119, 10), (33.828536239068114, -107.38923383172852, 10), (33.82881488867156, -107.38924158735955, 10), (33.82909353826082, -107.38924934309718, 10), (33.82937218783588, -107.38925709894141, 10), (33.829650837396784, -107.38926485489226, 10), (33.828542700672166, -107.38890049079043, 10), (33.82882135034317, -107.38890824534192, 10), (33.82909999999999, -107.388916, 10), (33.82937864964262, -107.38892375476468, 10), (33.829657299271084, -107.38893150963594, 10), (33.828549161376245, -107.38856714974611, 10), (33.82882781111479, -107.38857490321806, 10), (33.82910646083917, -107.38858265679659, 10), (33.82938511054935, -107.38859041048167, 10), (33.82966376024536, -107.38859816427335, 10), (33.82883427098644, -107.38824156098796, 10), (33.82911292077836, -107.38824931348692, 10), (33.82939157055608, -107.38825706609245, 10), (33.82880842609996, -107.3895749292709, 11), (33.82908707562165, -107.3895826860881, 11), (33.82936572512915, -107.3895904430119, 11), (33.828536239068114, -107.38923383172852, 11), (33.82881488867156, -107.38924158735955, 11), (33.82909353826082, -107.38924934309718, 11), (33.82937218783588, -107.38925709894141, 11), (33.829650837396784, -107.38926485489226, 11), (33.828542700672166, -107.38890049079043, 11), (33.82882135034317, -107.38890824534192, 11), (33.82909999999999, -107.388916, 11), (33.82937864964262, -107.38892375476468, 11), (33.829657299271084, -107.38893150963594, 11), (33.828549161376245, -107.38856714974611, 11), (33.82882781111479, -107.38857490321806, 11), (33.82910646083917, -107.38858265679659, 11), (33.82938511054935, -107.38859041048167, 11), (33.82966376024536, -107.38859816427335, 11), (33.82883427098644, -107.38824156098796, 11), (33.82911292077836, -107.38824931348692, 11), (33.82939157055608, -107.38825706609245, 11), (33.82880842609996, -107.3895749292709, 12), (33.82908707562165, -107.3895826860881, 12), (33.82936572512915, -107.3895904430119, 12), (33.828536239068114, -107.38923383172852, 12), (33.82881488867156, -107.38924158735955, 12), (33.82909353826082, -107.38924934309718, 12), (33.82937218783588, -107.38925709894141, 12), (33.829650837396784, -107.38926485489226, 12), (33.828542700672166, -107.38890049079043, 12), (33.82882135034317, -107.38890824534192, 12), (33.82909999999999, -107.388916, 12), (33.82937864964262, -107.38892375476468, 12), (33.829657299271084, -107.38893150963594, 12), (33.828549161376245, -107.38856714974611, 12), (33.82882781111479, -107.38857490321806, 12), (33.82910646083917, -107.38858265679659, 12), (33.82938511054935, -107.38859041048167, 12), (33.82966376024536, -107.38859816427335, 12), (33.82883427098644, -107.38824156098796, 12), (33.82911292077836, -107.38824931348692, 12), (33.82939157055608, -107.38825706609245, 12), (33.82880842609996, -107.3895749292709, 13), (33.82908707562165, -107.3895826860881, 13), (33.82936572512915, -107.3895904430119, 13), (33.828536239068114, -107.38923383172852, 13), (33.82881488867156, -107.38924158735955, 13), (33.82909353826082, -107.38924934309718, 13), (33.82937218783588, -107.38925709894141, 13), (33.829650837396784, -107.38926485489226, 13), (33.828542700672166, -107.38890049079043, 13), (33.82882135034317, -107.38890824534192, 13), (33.82909999999999, -107.388916, 13), (33.82937864964262, -107.38892375476468, 13), (33.829657299271084, -107.38893150963594, 13), (33.828549161376245, -107.38856714974611, 13), (33.82882781111479, -107.38857490321806, 13), (33.82910646083917, -107.38858265679659, 13), (33.82938511054935, -107.38859041048167, 13), (33.82966376024536, -107.38859816427335, 13), (33.82883427098644, -107.38824156098796, 13), (33.82911292077836, -107.38824931348692, 13), (33.82939157055608, -107.38825706609245, 13), (33.82880842609996, -107.3895749292709, 14), (33.82908707562165, -107.3895826860881, 14), (33.82936572512915, -107.3895904430119, 14), (33.828536239068114, -107.38923383172852, 14), (33.82881488867156, -107.38924158735955, 14), (33.82909353826082, -107.38924934309718, 14), (33.82937218783588, -107.38925709894141, 14), (33.829650837396784, -107.38926485489226, 14), (33.828542700672166, -107.38890049079043, 14), (33.82882135034317, -107.38890824534192, 14), (33.82909999999999, -107.388916, 14), (33.82937864964262, -107.38892375476468, 14), (33.829657299271084, -107.38893150963594, 14), (33.828549161376245, -107.38856714974611, 14), (33.82882781111479, -107.38857490321806, 14), (33.82910646083917, -107.38858265679659, 14), (33.82938511054935, -107.38859041048167, 14),
 (33.82966376024536, -107.38859816427335, 14), (33.82883427098644, -107.38824156098796, 14), (33.82911292077836, -107.38824931348692, 14), (33.82939157055608, -107.38825706609245, 14)]

Attached is the log for this UUID (4488054) . However all the ITM values are in the 180 range still for all these points. I will cross check again if there is some bug in the uncertainty or vertical height calculations

out_AFCS.SIP.3_2024-02-24 13:04:29.961250.log

AEgbert commented 6 months ago

I think you may be using too small of an uncertainty region; the SDI defines the majorAxis and minorAxis variables to be the semi-major axis and semi-minor axis of the ellipse (e.g., for SIP-3, a value of 150 for majorAxis and minorAxis in the SDI request represents a circular uncertainty region with a radius of 150m). I believe your uncertainty points fall within a <70m radius.

alexcpn commented 6 months ago

Thanks @AEgbert

I corrected that to make it so that the distance from the centre point is at least 150 meters.

Given a radius of 150 meters, I am not getting a lower loss.

INFO] ITM loss is 186.35109059415248
[INFO] Path Loss used =186.35109059415248
[INFO] building_entry_loss = 0 ap_indoor=False
[INFO] interference = -179.2552910793028 
[INFO] transmit_power PSD = 63.25529107930279 dBm/MHz
[INFO] ****************************************Minimum transmit_power PSD = 50.87965361432555 dBm/MHz

[INFO] Calculated Frequency
[INFO] 5925.0-6182.24  psd: 23.0
[INFO] 6182.24-6212.24  psd: 23.0
[INFO] 6212.24-6241.54  psd: 23.0
[INFO] 6241.54-6271.54  psd: 23.0
[INFO] 6271.54-6425.0  psd: 23.0
[INFO] 6525.0-6650  psd: 23.0
[INFO] 6650-6675.2  psd: 0
[INFO] 6675.2-6875.0  psd: 23.0

If I increase it to 150*2=300 meters radius,from the given AP as the center point. I am getting lower loss values

[INFO] Calculated Frequency
[INFO] 5925.0-6182.24  psd: 23.0
[INFO] 6182.24-6212.24  psd: 15.222761530079453
[INFO] 6212.24-6241.54  psd: 23.0
[INFO] 6241.54-6271.54  psd: 15.346640049296923
[INFO] 6271.54-6425.0  psd: 23.0
[INFO] 6525.0-6650  psd: 23.0
[INFO] 6650-6675.2  psd: 0
[INFO] 6675.2-6875.0  psd: 23.0

(above is putting polarization mismatch as zero)

full logs for this UUID out_AFCS.SIP.3_2024-02-27 19:57:44.187113.log

Log snippet

[INFO] interference = -178.51524614002673 
[INFO] transmit_power PSD = 62.51524614002673 dBm/MHz
[INFO] Total distance of segments =30.84 km Total profiles= 1028
[INFO] ITM loss=185.07812179772048 for uncertainity=(33.827539775327644, -107.38651813914444)
[INFO] Path Loss used =185.07812179772048
[INFO] building_entry_loss = 0 ap_indoor=False
[INFO] interference = -178.1351154374165 
[INFO] transmit_power PSD = 62.13511543741649 dBm/MHz
[INFO] Total distance of segments =31.19 km Total profiles= 1039
[INFO] ITM loss=134.76480235103287 for uncertainity=(33.8278234525408, -107.39159596213267)
[INFO] Path Loss used =138.16576789038345
[INFO] building_entry_loss = 0 ap_indoor=False
[INFO] interference = -131.22276153007945 
[INFO] transmit_power PSD = 15.222761530079453 dBm/MHz

Is it that the radius should be 300 meters ( I was assuming that the diameter was 300 meters not the radius). If so I can stop debugging here.

Note I plotted this in QGIS with elevation to cross-check if the points etc are correctly distributed, checked ITM elevation resolution (30meter as in SAS and even 15 meter does not help with 150 meter radius )

QGIS plot

image

Plotting this loss.csv, we can see that only towards the edges of > 244 meters from the AP center does the path loss reduce.

image

colab

AEgbert commented 6 months ago

150 meters is correct for the radius, not 300 meters.

I believe you should have line-of-sight ITM loss at an SPD evaluation point of (33.82874448418026, -107.3904676) [taken from your loss.csv file] of around 138dB. I'm not sure why you are obtaining a higher loss at that point.

alexcpn commented 6 months ago

Thanks @AEgbert . This has been very useful. There was a small decimal difference in the way I was calculating the latitude, and longitude to pixel index in the transformation, leading to variation in elevation values.

With this data, I could correct that and got a similar with 150 meter radius I am doing this differently from the SAS method by vectorising it for fastness and doing the affine transformation in one shot

[INFO] Expected Frequency
[INFO] 5925-6182,upperBound:23.0 nominalValue:23.0
[INFO] 6182-6213,upperBound:14.6 nominalValue:12.6
[INFO] 6213-6241,upperBound:18.9 nominalValue:16.9
[INFO] 6241-6272,upperBound:14.6 nominalValue:12.6
[INFO] 6272-6310,upperBound:23.0 nominalValue:23.0
[INFO] 6310-6321,upperBound:23.0 nominalValue:22.5
[INFO] 6321-6425,upperBound:23.0 nominalValue:23.0
[INFO] 6525-6650,upperBound:23.0 nominalValue:23.0
[INFO] 6676-6875,upperBound:23.0 nominalValue:23.0

[INFO] Calculated Frequency
[INFO] 5925.0-5930.025  psd: 23.0
[INFO] 5930.025-6167.925  psd: 23.0
[INFO] 6167.925-6182.065  psd: 23.0
[INFO] 6182.065-6182.24  psd: 23.0
[INFO] 6182.24-6212.24  psd: 12.524899024958955
[INFO] 6212.24-6241.54  psd: 16.907246794298658
[INFO] 6241.54-6271.54  psd: 12.60761722751667
[INFO] 6271.54-6419.965  psd: 23.0
[INFO] 6419.965-6425.0  psd: 23.0
[INFO] 6525.0-6540.0  psd: 23.0
[INFO] 6540.0-6570.0  psd: 23.0
[INFO] 6570.0-6580.0  psd: 23.0
[INFO] 6580.0-6650.0  psd: 23.0
[INFO] 6650.0-6675.2  psd: 0
[INFO] 6675.2-6680.0  psd: 23.0
[INFO] 6680.0-6697.5  psd: 23.0
[INFO] 6697.5-6840.0  psd: 23.0
[INFO] 6840.0-6847.5  psd: 23.0
[INFO] 6847.5-6852.5  psd: 23.0
[INFO] 6852.5-6857.5  psd: 23.0
[INFO] 6857.5-6860.0  psd: 23.0
[INFO] 6860.0-6862.5  psd: 23.0
[INFO] 6862.5-6875.0  psd: 23.0
[INFO] Time in Milliseconds 0:04:31.304769, processed_count=120960

With polarization mismatch set as 3. For some of the test cases putting polarization mismatch helps, for others it does not.
Is there any way to find out if polarization mismatch has to be added or not?

AEgbert commented 5 months ago

My current understanding is that the 3dB polarization mismatch can always be included when using the default antenna patterns, if an AFC system operator chooses to include it. Soon I'll have a more complete answer for cases where manufacturer data is used, but I believe this answers the question in your case (using default antenna patterns).

AEgbert commented 5 months ago

Building on my previous response, for completeness:

The polarization mismatch process described in R2-AIP-09 may be applied when using default or manufacturer provided antenna patterns (handling co- and cross-polarization RPE data when available), but R2-AIP-09 does not apply to analysis of billboard reflectors, which are not addressed by the methods of R2-AIP-23-a.