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

AFCS.SIP1 Getting more restrictive PSD output than the test vector mask #48

Closed alexcpn closed 7 months ago

alexcpn commented 9 months ago

Hi, For the following test vector AFCS.SIP1

https://github.com/Wireless-Innovation-Forum/6-GHz-AFC/blob/main/src/harness/inquiries/AFCS.SIP.1.json https://github.com/Wireless-Innovation-Forum/6-GHz-AFC/blob/main/src/harness/masks/AFCS.SIP.1_mask.json

These are the incumbent details I am getting after cross-checking multiple times

2023-12-08 20:33:57,508 [INFO] --------------------------------------------------------------------------------
2023-12-08 20:33:57,508 [INFO] uuid: 3297962
2023-12-08 20:33:57,508 [INFO] call_sign: WQNW580
2023-12-08 20:33:57,509 [INFO] frequency_assigned: [6330.665]
2023-12-08 20:33:57,509 [INFO] receiver_loc: (18.17088888888889, -66.75069444444445)
2023-12-08 20:33:57,509 [INFO] receiver_to_ap_dist_m: 3154.7897923933397
2023-12-08 20:33:57,509 [INFO] ap_freq: (5925.0, 6425.0)
2023-12-08 20:33:57,509 [INFO] r_height_to_center_raat: 30.5
2023-12-08 20:33:57,509 [INFO] r_gain: 33.0
2023-12-08 20:33:57,509 [INFO] r_diversity_gain: None
2023-12-08 20:33:57,509 [INFO] r_azimuth: None
2023-12-08 20:33:57,509 [INFO] r_antenna_make: CERAGON
2023-12-08 20:33:57,509 [INFO] r_antenna_model: AM-3-6-A
2023-12-08 20:33:57,509 [INFO] r_loc_num: 9
2023-12-08 20:33:57,509 [INFO] r_path_num: 16
2023-12-08 20:33:57,509 [INFO] r_ant_num: 1
2023-12-08 20:33:57,509 [INFO] polarization_code: None
2023-12-08 20:33:57,509 [INFO] line_loss: None
2023-12-08 20:33:57,509 [INFO] r_diameter_ft: 3.0
2023-12-08 20:33:57,509 [INFO] r_diameter_m: 0.91
2023-12-08 20:33:57,509 [INFO] ant_category: B2
2023-12-08 20:33:57,509 [INFO] transmitter_loc: (18.167361111111113, -66.57655555555556)
2023-12-08 20:33:57,509 [INFO] t_height_to_center_raat: 16.8
2023-12-08 20:33:57,509 [INFO] t_gain: 33.0
2023-12-08 20:33:57,509 [INFO] t_diversity_gain: None
2023-12-08 20:33:57,509 [INFO] t_azimuth: 271.2
2023-12-08 20:33:57,509 [INFO] t_antenna_make: CERAGON
2023-12-08 20:33:57,510 [INFO] t_antenna_model: AM-3-6-A
2023-12-08 20:33:57,510 [INFO] t_loc_num: 1
2023-12-08 20:33:57,510 [INFO] t_path_num: 16
2023-12-08 20:33:57,510 [INFO] t_ant_num: 16
2023-12-08 20:33:57,510 [INFO] bandwidth: 60.0
2023-12-08 20:33:57,510 [INFO] accesspoint_loc: (18.16277, -66.722083)
2023-12-08 20:33:57,510 [INFO] accesspoint_ht_m: 10.0
2023-12-08 20:33:57,510 [INFO] accesspoint_vtunc_m: 2
2023-12-08 20:33:57,510 [INFO] --------------------------------------------------------------------------------
2023-12-08 20:33:57,510 [INFO] uuid: 3902436
2023-12-08 20:33:57,510 [INFO] call_sign: WQZA729
2023-12-08 20:33:57,510 [INFO] frequency_assigned: [6389.965]
2023-12-08 20:33:57,510 [INFO] receiver_loc: (18.233055555555556, -66.75972222222222)
2023-12-08 20:33:57,510 [INFO] receiver_to_ap_dist_m: 8768.618025396141
2023-12-08 20:33:57,510 [INFO] ap_freq: (5925.0, 6425.0)
2023-12-08 20:33:57,510 [INFO] r_height_to_center_raat: 18.3
2023-12-08 20:33:57,510 [INFO] r_gain: 34.8
2023-12-08 20:33:57,510 [INFO] r_diversity_gain: None
2023-12-08 20:33:57,510 [INFO] r_azimuth: None
2023-12-08 20:33:57,510 [INFO] r_antenna_make: RFS
2023-12-08 20:33:57,510 [INFO] r_antenna_model: SB4-W60A
2023-12-08 20:33:57,510 [INFO] r_loc_num: 2
2023-12-08 20:33:57,510 [INFO] r_path_num: 1
2023-12-08 20:33:57,510 [INFO] r_ant_num: 1
2023-12-08 20:33:57,510 [INFO] polarization_code: None
2023-12-08 20:33:57,510 [INFO] line_loss: None
2023-12-08 20:33:57,511 [INFO] r_diameter_ft: 4.0
2023-12-08 20:33:57,511 [INFO] r_diameter_m: 1.22
2023-12-08 20:33:57,511 [INFO] ant_category: B2
2023-12-08 20:33:57,511 [INFO] transmitter_loc: (18.472527777777778, -66.71886111111111)
2023-12-08 20:33:57,511 [INFO] t_height_to_center_raat: 18.3
2023-12-08 20:33:57,511 [INFO] t_gain: 34.8
2023-12-08 20:33:57,511 [INFO] t_diversity_gain: None
2023-12-08 20:33:57,511 [INFO] t_azimuth: 189.2
2023-12-08 20:33:57,511 [INFO] t_antenna_make: RFS
2023-12-08 20:33:57,511 [INFO] t_antenna_model: SB4-W60A
2023-12-08 20:33:57,511 [INFO] t_loc_num: 1
2023-12-08 20:33:57,511 [INFO] t_path_num: 1
2023-12-08 20:33:57,511 [INFO] t_ant_num: 1
2023-12-08 20:33:57,511 [INFO] bandwidth: 60.0
2023-12-08 20:33:57,511 [INFO] accesspoint_loc: (18.16277, -66.722083)
2023-12-08 20:33:57,511 [INFO] accesspoint_ht_m: 10.0
2023-12-08 20:33:57,511 [INFO] accesspoint_vtunc_m: 2
2023-12-08 20:33:57,511 [INFO] --------------------------------------------------------------------------------
2023-12-08 20:33:57,511 [INFO] uuid: 2795557
2023-12-08 20:33:57,511 [INFO] call_sign: WQEQ218
2023-12-08 20:33:57,511 [INFO] frequency_assigned: [6875.0]
2023-12-08 20:33:57,511 [INFO] receiver_loc: (18.233055555555556, -66.75972222222222)
2023-12-08 20:33:57,511 [INFO] receiver_to_ap_dist_m: 8768.618025396141
2023-12-08 20:33:57,511 [INFO] ap_freq: (6525.0, 6875.0)
2023-12-08 20:33:57,511 [INFO] r_height_to_center_raat: 106.7
2023-12-08 20:33:57,512 [INFO] r_gain: 43.6
2023-12-08 20:33:57,512 [INFO] r_diversity_gain: 41.3
2023-12-08 20:33:57,512 [INFO] r_azimuth: None
2023-12-08 20:33:57,512 [INFO] r_antenna_make: ANDREW CORP
2023-12-08 20:33:57,512 [INFO] r_antenna_model: PAR10-65 RF
2023-12-08 20:33:57,512 [INFO] r_loc_num: 2
2023-12-08 20:33:57,512 [INFO] r_path_num: 1
2023-12-08 20:33:57,512 [INFO] r_ant_num: 1
2023-12-08 20:33:57,512 [INFO] polarization_code: None
2023-12-08 20:33:57,512 [INFO] line_loss: None
2023-12-08 20:33:57,512 [INFO] r_diameter_ft: 10.0
2023-12-08 20:33:57,512 [INFO] r_diameter_m: 3.05
2023-12-08 20:33:57,512 [INFO] ant_category: B2
2023-12-08 20:33:57,512 [INFO] transmitter_loc: (18.42216666666667, -66.06905555555555)
2023-12-08 20:33:57,512 [INFO] t_height_to_center_raat: 20.1
2023-12-08 20:33:57,512 [INFO] t_gain: 43.9
2023-12-08 20:33:57,512 [INFO] t_diversity_gain: None
2023-12-08 20:33:57,512 [INFO] t_azimuth: 254.1
2023-12-08 20:33:57,512 [INFO] t_antenna_make: ANDREW CORP
2023-12-08 20:33:57,512 [INFO] t_antenna_model: HP10-65G
2023-12-08 20:33:57,512 [INFO] t_loc_num: 1
2023-12-08 20:33:57,512 [INFO] t_path_num: 1
2023-12-08 20:33:57,512 [INFO] t_ant_num: 1
2023-12-08 20:33:57,512 [INFO] bandwidth: 25.0
2023-12-08 20:33:57,512 [INFO] accesspoint_loc: (18.16277, -66.722083)
2023-12-08 20:33:57,512 [INFO] accesspoint_ht_m: 10.0
2023-12-08 20:33:57,513 [INFO] accesspoint_vtunc_m: 2
2023-12-08 20:33:57,513 [INFO] ********************************************************************************

This translates to the following PSD

 {'uuid': Decimal('3297962'), 'callsign': 'WQNW580', 'path_loss': 118.45016737628876, 'receiver_bandwidth_mhz': 60.0, 'receiver_gain_effective': 8.404784091775035, 'ap_indoor': False, 'receiver_Freq': 6330.665, 'psd_dbm_per_Mhz': -5.9546167154862815}

{'uuid': Decimal('3902436'), 'callsign': 'WQZA729', 'path_loss': 127.41036481274702, 'receiver_bandwidth_mhz': 60.0, 'receiver_gain_effective': -4.1473705534220375, 'ap_indoor': False, 'receiver_Freq': 6389.965, 'psd_dbm_per_Mhz': 15.557735366169055}

 {'uuid': Decimal('2795557'), 'callsign': 'WQEQ218', 'path_loss': 128.04584927505064, 'receiver_bandwidth_mhz': 25.0, 'receiver_gain_effective': -8.444512871294236, 'ap_indoor': False, 'receiver_Freq': 6875.0, 'psd_dbm_per_Mhz': 20.990362146344864}

incumbent_list=[
{'incumbent_freq': (6300.665, 6360.665), 'psd_calc': -5.9546167154862815, 'psd': -5.9546167154862815},
{'incumbent_freq': (6359.965, 6419.965), 'psd_calc': 15.557735366169055, 'psd': 15.557735366169055},
{'incumbent_freq': (6862.5, 6887.5), 'psd_calc': 20.990362146344864, 'psd': 20.990362146344864}, 
{'incumbent_freq': (6650, 6675.2), 'psd': 0}]

The Expected Frequency is

 5925-6300,upperBound:23.0 nominalValue:23.0
 6300-6361,upperBound:-1.1 nominalValue:-3.1
 6361-6425,upperBound:23.0 nominalValue:23.0
6525-6650,upperBound:23.0 nominalValue:23.0
6676-6875,upperBound:23.0 nominalValue:23.0

The Calculated Frequency is

 5925.0-6300.665  psd: 23.0 --->OK
 6300.665-6360.665  psd: -5.9546167154862815  --> Ok
 6360.665-6419.965  psd: 15.557735366169055--------------> Not OK
 6419.965-6425.0  psd: 23.0 --->Ok
 6525.0-6650  psd: 23.0 --> Ok
 6650-6675.2  psd: 0 ---> Ok (Radio astronomy)
 6675.2-6862.5  psd: 23.0 --> Ok
 6862.5-6875.0  psd: 20.990362146344864 --> Not ok

It seems from the expected mask that only the incumbent with uuid 3297962 and callsign WQNW580 is taken into consideration; Whereas from the ULS data, the other two incumbents are present and they are contributing the following PSD restriction for the frequency range to the AP.

 6360.665-6419.965  psd: 15.557735366169055--------------> Not OK
 6862.5-6875.0  psd: 20.990362146344864 --> Not ok

I am not able to figure out why these should not be there with the data in ULS.

AEgbert commented 8 months ago

Without diving deep into the derivations myself, (which would take considerable time that I do not currently have), I would recommend you confirm the receiver_gain_effective values for uuid: 3902436.

For UUID 3902436, I see an total discrimination angle of around 140-145 degrees. This angle seems reasonable when plotting the TX, RX, and SPD lat/lon on a map. I would expect a lower effective receiver gain for that large of an angle. Let me know if I'm mistaken.

Your values for UUID 2795557 appear reasonable (to me) compared to the 23dBm limit in the test vector. I see your limit for 6300-6360MHz is about 2.85dB lower than the test vector. Assuming a similar offset exists with your calculation for 6862.5-6875 MHz would give a (presumed) test vector value of 23.84dBm/MHz, which is over the 23dBm/MHz limit and grouped with the adjacent frequencies. I am not able to discern the root cause of any differences with the test vector that are this small.

alexcpn commented 8 months ago

Yes I am getting an overall discrimination angle of 143 degrees for UUID 3902436 .

2023-12-12 15:03:27,292 [INFO] ********************************************************************************
Processing UUID = 3902436             call_sign = 'WQZA729' R to AP Dist =8768.618025396141 m, CF =6389.965 Mhz             r_antenna_make= RFS r_antenna_model=SB4-W60A
2023-12-12 20:07:09,017 [INFO] Free Space Path Loss =127.41036481274702
2023-12-12 20:07:09,148 [INFO] access_point_loc = (18.16277, -66.722083) receiver_loc=(18.233055555555556, -66.75972222222222) transmitter_loc =(18.472527777777778, -66.71886111111111)
2023-12-12 20:07:09,148 [INFO] access_point_elev = 501.63299560546875 receiver_elev=926.2332153320312 transmitter_elev =10.010351181030273
2023-12-12 20:07:09,148 [INFO] HEP_AM = 10.0 m HFS_Rx_AGL = 18.3 m HFS_Tx_AGL=18.3 m
2023-12-12 20:07:09,148 [INFO] HEP_ASML_km=0.5116329956054687 km HFS_Rx_ASML_km = 0.9445332153320313 km HFS_Tx_ASML_km = 0.028310351181030275 km
2023-12-12 20:07:09,148 [INFO] GRx = 34.8 dB
2023-12-12 20:07:09,148 [INFO] ap_freq = (5925.0, 6425.0) centerFreq of Receiver =6389.965 Mhz
2023-12-12 20:07:09,148 [INFO] θAZ-Bearing-To-Eval:  Bearing angle between receiver to access_point = 153.0301416371032
2023-12-12 20:07:09,148 [WARNING] θAZ-Boresight:Rx antenna boresight direction of the azimuth plane (wrto N): azimuth field is None in ULS!!
2023-12-12 20:07:09,148 [INFO] θAZ-Boresight: receiver_loc to  transmitter_loc = 9.192805921884128
2023-12-12 20:07:09,148 [INFO] ThetaAZ_Bearing_To_Eval - ThetaAZ_Boresight = 143.8373357152191
2023-12-12 20:07:09,148 [INFO] Angle 1: Azimuthal discrimination angle:R-AP The azimuthal discrimination angle,  θAZ_Disc= 143.8373357152191 degress
2023-12-12 20:07:09,148 [INFO] Receiver to Transmitter Distance dFSTx_FSRx = 26.85537827472672 km
2023-12-12 20:07:09,148 [INFO] Angle 2: Elevation angle: R-T The receive antenna boresight elevation angle (from transmmitter) θEL_Disc= -2.044399370044944 degrees
2023-12-12 20:07:09,148 [INFO] Angle 3:elevation angle: R-AP The elevation angle from the  receive antenna to the evaluation phi= -2.855836333563217 degrees
2023-12-12 20:07:09,148 [INFO] --------------------------------------------------------------------------------
2023-12-12 20:07:09,149 [INFO] Overall discrimination angle, 𝛾 =143.51877044000895 degress
2023-12-12 20:07:09,149 [INFO] --------------------------------------------------------------------------------

. I would expect a lower effective receiver gain for that large of an angle

I am still getting GRx_Effective in dB = -4.1473705534220375

2023-12-12 20:07:09,149 [INFO] freMhz= 6389.965 MHz wave_lenth=0.04694861395954438 meters D2RxNFA_m= 1.22 meters
2023-12-12 20:07:09,149 [INFO] D_by_lambda =25.985857666666664
2023-12-12 20:07:09,149 [INFO] G_max=GRx =34.8
2023-12-12 20:07:09,149 [INFO] G_1 =23.22105583013305
2023-12-12 20:07:09,149 [INFO] phi =143.51877044000895 degrees  phi_m=2.6189512853892802 degrees 
2023-12-12 20:07:09,149 [INFO] G_phi calcualted =-4.147370553422034 case=4
2023-12-12 20:07:09,149 [INFO] freMhz= 6389.965 MHz wave_lenth=0.04694861395954438 meters D2RxNFA_m= 1.22 meters
2023-12-12 20:07:09,149 [INFO] --------------------------------------------------------------------------------
2023-12-12 20:07:09,149 [INFO] The azimuthal discrimination= GAZ-Disc =-4.147370553422034 contribution = GAZ-Dis-GRx =-38.94737055342203 This should be negative
2023-12-12 20:07:09,149 [INFO] --------------------------------------------------------------------------------
2023-12-12 20:07:09,149 [INFO] The elevation discrimination  GEL-Disc in dB = -4.147370553422034 contribution = GEL_Disc-Grx= -38.94737055342203(This should be Negative!)
2023-12-12 20:07:09,149 [INFO] beta = -0.07855679655637995
2023-12-12 20:07:09,149 [INFO] wA = 0.9825427021636182
2023-12-12 20:07:09,149 [INFO] wE = 0.01745729783638183
2023-12-12 20:07:09,149 [INFO] ----GRx_Effective in dB = -4.1473705534220375
2023-12-12 20:07:09,149 [INFO]  ap_frequency=(5925.0, 6425.0) FcUNIIband= 6175000000 , D2RxNFA=4.0 **Caluclated d_limit = 61.192109333333335**
2023-12-12 20:07:09,149 [INFO] Near field adjustments do not have to be done
2023-12-12 20:07:09,149 [INFO] ap_freq = (5925.0, 6425.0) centerFreq =6175.0 Mhz
2023-12-12 20:07:09,213 [INFO] Elevation Profile and ITM losss caluclate  in 0.063555 seconds
2023-12-12 20:07:09,213 [INFO] ITM loss is 123.98700488526863 for accesspoint_ht 511.63299560546875
2023-12-12 20:07:09,213 [INFO] Path Loss used =127.41036481274702
2023-12-12 20:07:09,213 [INFO] building_entry_loss = 0 ap_indoor=False
2023-12-12 20:07:09,213 [INFO] interference = -131.55773536616906 
2023-12-12 20:07:09,213 [INFO] transmit_power PSD = 15.557735366169055 dBm/MHz
2023-12-12 20:07:09,213 [INFO] ********************************************************************************
AEgbert commented 8 months ago

Thanks for the extra info. I expect the calculations for the test vectors used a greater antenna discrimination value at 145deg than you have employed. The manufacturer RPE shows a discrimination of around -61dB at that angle, as opposed to your calculated -38.9dB.

If I'm reading R2-AIP-07 correctly, then to instead use a default RPE instead of the manufacturer RPE, the second bullet of R2-AIP-07b.ii.2 should be used, as GRX = 34.8dBi < 38dBi and |θDisc| = 143deg > 5deg. This bullet states that a value from Table 2 (the reference to Table 3 is a typo) should be used for Category B2 and the 5925-6425MHz band, which gives a discrimination value of -60dB for |θDisc| > 140deg.

alexcpn commented 8 months ago

From R2-AIP-07, θDisc is defined as

image

That is the angle between Rx and Tx

    θEL_Disc = math.atan((HFS_Tx_ASML - HFS_Rx_ASML)/dFSTx_FSRx - dFSTx_FSRx/(2*rEarth) )
  Angle 2: Elevation angle: R-T The receive antenna boresight elevation angle (from transmitter) θEL_Disc= -2.044399370044944 degrees

The angle of 143 degrees you have mentioned is the Azimutal discrimination angle between Rx and Access Point

Azimuthal discrimination angle:R-AP The azimuthal discrimination angle,  θAZ_Disc= 143.8373357152191 degress

So using θEL_Disc which is -2.04 which is < 5 degrees there is no look-up in the table and the calculated value as per ITU-R F.699-8 is used

    # R2-AIP-07-b
    if GRx <38: #2. For primary receive antennas with GRx < 38 dBi:
        if math.degrees(θEL_Disc) < 5: #degrees
            rpe_p = calculate_GRx_Az_RPE(math.degrees(gamma),GRx,D2RxNFA_m,centerFreqMhz) <-----Code uses this
            rpe_n = calculate_GRx_Az_RPE(-math.degrees(gamma),GRx,D2RxNFA_m,centerFreqMhz)
        else:
            #Use the minimum radiation suppression in Table 3 for the Fc, FS-Rx, ULS (MHz) and Category B2 if | Disc| ≥ 5 degrees.
            rpe_p =getRadiationSupressionFromTable(centerFreqMhz,'B2',math.degrees(gamma))
            rpe_n =rpe_p
            log.info(f"GRx <38:B2: Got GRx_AZ_RPE={rpe_p} from Radiation Suppression Table 3 {centerFreqMhz},{ant_category}")
alexcpn commented 8 months ago

I am bit confused here as to which to use.As the beginning of the document gives this definition for θAZ_Disc

image

when I use this θEL_Disc I get FSP.30 correct as per mask and SIP.1 almost correct as below

 rpe_p = getRPE(gamma,θEL_Disc,GRx,D2RxNFA_m,centerFreqMhz,ant_category)
[INFO] Expected Frequency
[INFO] 5925-6300,upperBound:23.0 nominalValue:23.0
[INFO] 6300-6361,upperBound:-1.1 nominalValue:-3.1
[INFO] 6361-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-6300.665  psd: 23.0
[INFO] 6300.665-6360.665  psd: -5.9546167154862815
[INFO] 6360.665-6419.965  psd: 15.557735366169055
[INFO] 6419.965-6425.0  psd: 23.0
[INFO] 6525.0-6650  psd: 23.0
[INFO] 6650-6675.2  psd: 0
[INFO] 6675.2-6862.5  psd: 23.0
[INFO] 6862.5-6875.0  psd: 20.990362146344864
[INFO] Time in Milliseconds 0:00:04.844046

When I use the θAZ_Disc in the function I get this assertion as per the document, and if I ignore that assertion I get completely wrong values

AEgbert commented 8 months ago

θDisc and θDDisc (the off-boresight discrimination angles) are defined correctly in section 3.3 of TS-1014, and they are a function of both the azimuth and elevation discrimination angles, as mentioned in their definitions.

R2-AIP-07-b-ii-1 does not contradict this definition and makes no mention of the individual azimuth or elevation discrimination angles θAZ_Disc or θEL_Disc.

R2-AIP-37-a-i and R2-AIP-37-a-i-1 notes that the off-boresight discrimination angles, also denoted as γ, can be computed using R2-AIP-36-a and R2-AIP-36-b, as well as by other equivalent methods.

alexcpn commented 8 months ago

Thanks, @AEgbert for the clarification;

From the above comment it is neither θAZ_Disc nor θEL_Disc. So θDisc is the overall discrimination angle, 𝛾 calculated 143.5187.

One clarification: You mentioned

This bullet states that a value from Table 2 (the reference to Table 3 is a typo) should be used for Category B2 and the 5925-6425MHz band, which gives a discrimination value of -60dB for |θDisc| > 140deg.

But in Table 2 all values given are positive. Checking the manufactures RPE I guess we need to take these as negative. In the document, this is not evident unless you are familiar with RPE

Correcting the code for this change, I am getting RPE as -60 and PSD above 23 for UUID = 3902436 call_sign = 'WQZA729'. This is fine.

However, I am still getting PSD 10.94 for UUID = 2795557 call_sign = 'WQEQ218'. I am not able to find on the internet the manufacturer RPE for PAR10-65 RF other than a reference to RPE 1257 in a Andrew antenna datasheet

Expected Frequency
[INFO] 5925-6300,upperBound:23.0 nominalValue:23.0
[INFO] 6300-6361,upperBound:-1.1 nominalValue:-3.1
[INFO] 6361-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-6300.665  psd: 23.0
[INFO] 6300.665-6360.665  psd: -7.549832623711239
[INFO] 6360.665-6425.0  psd: 23.0
[INFO] 6525.0-6650  psd: 23.0
[INFO] 6650-6675.2  psd: 0
[INFO] 6675.2-6862.5  psd: 23.0
[INFO] 6862.5-6875.0  psd: 10.945849275050634 --------------> Not ok
[INFO] ********************************************************************************
[INFO] accesspoint_loc =(18.16277, -66.722083) receiver_loc=(18.233055555555556, -66.75972222222222)
[INFO] Processing UUID = 2795557 call_sign = 'WQEQ218' R to AP Dist =8768.618025396141 m, CF =6875.0 Mhz r_antenna_make= ANDREW CORP r_antenna_model=PAR10-65 RF
[INFO] uuid: 2795557
[INFO] call_sign: WQEQ218
[INFO] frequency_assigned: 6875.0
[INFO] receiver_loc: (18.233055555555556, -66.75972222222222)
[INFO] receiver_to_ap_dist_m: 8768.618025396141
[INFO] r_height_to_center_raat: 106.7
[INFO] r_gain: 43.6
[INFO] r_diversity_gain: 41.3
[INFO] r_azimuth: None
[INFO] r_antenna_make: ANDREW CORP
[INFO] r_antenna_model: PAR10-65 RF
[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: 10.0
[INFO] r_diameter_m: 3.05
[INFO] ant_category: B2
[INFO] transmitter_loc: (18.42216666666667, -66.06905555555555)
[INFO] t_height_to_center_raat: 20.1
[INFO] t_gain: 43.9
[INFO] t_diversity_gain: None
[INFO] t_azimuth: 254.1
[INFO] t_antenna_make: ANDREW CORP
[INFO] t_antenna_model: HP10-65G
[INFO] t_loc_num: 1
[INFO] t_path_num: 1
[INFO] t_ant_num: 1
[INFO] bandwidth: 25.0
[INFO] frequency_range: (6862.5, 6887.5)
[INFO] accesspoint_loc: (18.16277, -66.722083)
[INFO] accesspoint_ht_m: 10.0
[INFO] accesspoint_vtunc_m: 2
[INFO] Free Space Path Loss =128.04584927505064
[INFO] GRx = 43.6 dB
[INFO] centerFreq of Receiver =6875.0 Mhz
[INFO] ant_category = B2 
[WARNING] θAZ-Boresight:Rx antenna boresight direction of the azimuth plane (wrto N): azimuth field is None in ULS!!
[INFO] Angle 1: Azimuthal discrimination angle:R-AP The azimuthal discrimination angle,  θAZ_Disc= 79.2282694625921 degress
[INFO] Angle 2: Elevation angle: R-T The receive antenna boresight elevation angle (from transmmitter) θEL_Disc= -1.0176765380733248 degrees
[INFO] Angle 3:elevation angle: R-AP The elevation angle from the  receive antenna to the evaluation phi= -3.4317162033727024 degrees
[INFO] --------------------------------------------------------------------------------
[INFO] Overall discrimination angle, 𝛾 =79.18752280914396 degress
[INFO] --------------------------------------------------------------------------------
[INFO] GRx=43.6 >= 38:/A Got GRx_AZ_RPE=-42 from Radiation Supression Table 
[INFO] getRPE 79.18752280914396 Got rpe=-42
[INFO] GRx=43.6 >= 38:/A Got GRx_AZ_RPE=-42 from Radiation Supression Table 
[INFO] getRPE -79.18752280914396 Got rpe=-42
[INFO] getRPE gamma=79.18752280914396 centerFreqMhz=6875.0,ant_category=B2 rpe_p=-42 rpe_n=-42
[INFO] GAZ_Dis=-42
[INFO] --------------------------------------------------------------------------------
[INFO] The azimuthal discrimination= GAZ-Disc =-42 This should be negative
[INFO] The elevation discrimination  GEL-Disc in dB = -42 contribution This should be Negative!)
[INFO] --------------------------------------------------------------------------------
[INFO] ----GRx_Effective in dB = 1.6000000000000028
[INFO] Near field adjustments do not have to be done
[INFO] Elevation Profile and ITM losss caluclate  in 0.057785 seconds
[INFO] ITM loss is 124.6191346551278 for accesspoint_ht 511.63299560546875
[INFO] Path Loss used =128.04584927505064
[INFO] building_entry_loss = 0 ap_indoor=False
[INFO] interference = -126.44584927505063 
[INFO] transmit_power PSD = 10.945849275050634 dBm/MHz

Do you have any hint as to why this could happen?

Also in the response, the PSD mask and the EIRP mask do not match in some frequency. For example in this case from the AFC mask

   {
          "frequencyRange": {
            "lowFrequency": 6361,
            "highFrequency": 6425
          },
          "maxPsd": {
            "nominalValue": 23.0,
            "upperBound": 23.0
          }
        },

For EIRP from mask.json

 "expectedChannelInfo": [
        {
          "globalOperatingClass": 131,
          "channelCfi": [
      {
            ...
           85
           ---
    }
   {
              "nominalValue": 32.5,
              "upperBound": 34.5
       },

Easier to see from my logs gc=131 cn=85,freq_range=(6365.0, 6385.0) is free of incumbents as is also as per expected PSD and hence upper-bound should be 36

[INFO] Expected Frequency
[INFO] 5925-6300,upperBound:23.0 nominalValue:23.0
[INFO] 6300-6361,upperBound:-1.1 nominalValue:-3.1
[INFO] 6361-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-6300.665  psd: 23.0
[INFO] 6300.665-6360.665  psd: -7.549832623711239
[INFO] 6360.665-6425.0  psd: 23.0
[INFO] 6525.0-6650  psd: 23.0
[INFO] 6650-6675.2  psd: 0
[INFO] 6675.2-6862.5  psd: 23.0
[INFO] 6862.5-6875.0  psd: 10.945849275050634
[ERROR] ERROR: gc=131 cn=85,freq_range=(6365.0, 6385.0) expected_eirp={'nominalValue': 32.5, 'upperBound': 34.5} calc_eirp=36
AEgbert commented 8 months ago

However, I am still getting PSD 10.94 for UUID = 2795557 call_sign = 'WQEQ218'. I am not able to find on the internet the manufacturer RPE for PAR10-65 RF other than a reference to RPE 1257 in a Andrew antenna datasheet

I've had luck finding the RPE data for Andrew antennas within the "Legacy Andrew Antenna Data" download available on this page: https://www.nsma.org/resources/tools/

Also in the response, the PSD mask and the EIRP mask do not match in some frequency.

I expect this is because of adjacent channel protection (i.e., the constraint on the frequency range 6300-6361MHz is in the channel adjacent to GOC 131 CFI 85 and limiting the allowable EIRP). You may find the discussion about adjacent channel protection in #44 helpful.

alexcpn commented 8 months ago

Thanks @AEgbert , I got the RPE from the above link by checking the .ADF file 1257_.ADF.txt manually to be between -49 and -50 dB for overall calculated discrimination angle of -79 degrees (assuming Horizontal polarization

-95.00,-50.00,
-60.00,-49.00, <---------here

Not that this (Andrew PAR10-65 RF) is not a high performance antenna as per the snapshot in this repo

From the document R2-AIP-07, this then goes to the last point

R2-AIP-07

For primary receive antennas with GRx ≥ 38 dBi:

    ▪Use the formulas in ITU-R F.699-8 [n.15] by using DRx and GRx
    determined in accordance with R2-AIP-05 if |θDisc| < 5 degrees.

▪If |θDisc| ≥ 5 degrees:
    •Use the minimum radiation suppression in Table 2 for the
    Fc, FS-Rx, ULS (MHz) and Category B1 if antenna model is blank in
    the ULS or is identified as a Category B1 antenna according to
    Category B1 Antenna data obtained as per R2-AIP-13.

    •Use the greater discrimination value of:

        o the minimum radiation suppression in Table 2 for the
        Fc, FS-Rx, ULS (MHz) and Category A and

        o GRx – GRx(θDisc), where GRx(θDisc) is determined using the
        formulas in ITU-R F.699-8 [n.15] by using DRx and GRx
        determined in accordance with R2-AIP-05 and Fc, FS-Rx, ULS

    if antenna model is identified as a high-performance antenna
    according to High Performance Antenna data obtained as per
    R2-AIP-13.

    •Use the minimum radiation suppression in Table 2 for the <----------------- This case 
    Fc, FS-Rx, ULS (MHz) and Category A otherwise.

"Use the minimum radiation suppression in Table 2 for the Fc, FS-Rx, ULS (MHz) and Category A otherwise."

In Table 2 the maximum for this angle 79 degrees is -42 dB; and if I use that, I get PSD 10. (logs below)

If I change the interpretation and code to handle this as a high-performance antenna, then the calculated RPE comes to -52 and if I use that I get PSD 20.9 which is closer to 23. I am not sure how to add the polarization mismatch as the polarization of the SPD is not available. If that is added (+3 dB) then it comes to 23.99 dB

[INFO] GRx=43.6 >= 38:Calcualted: Got GRx_AZ_RPE=-8.444512871294236 rpe2-GRx=-52.04451287129424
[INFO] GRx=43.6 >= 38:/A Got GRx_AZ_RPE=-42 from Radiation Supression Table 

If this is correct then the document has to be modified in R2-AIP-07 for non high-performance antenna as well ?

Logs

[INFO] ********************************************************************************
[INFO] uuid: 2795557
[INFO] call_sign: WQEQ218
[INFO] frequency_assigned: 6875.0
[INFO] receiver_loc: (18.233055555555556, -66.75972222222222)
...
[INFO] r_antenna_make: ANDREW CORP
[INFO] r_antenna_model: PAR10-65 RF
...
[INFO] ant_category = B2 
[WARNING] θAZ-Boresight:Rx antenna boresight direction of the azimuth plane (wrto N): azimuth field is None in ULS!!
[INFO] Angle 1: Azimuthal discrimination angle:R-AP The azimuthal discrimination angle,  θAZ_Disc= 79.2282694625921 degress
[INFO] Angle 2: Elevation angle: R-T The receive antenna boresight elevation angle (from transmmitter) θEL_Disc= -1.0176765380733248 degrees
[INFO] Angle 3:elevation angle: R-AP The elevation angle from the  receive antenna to the evaluation phi= -3.4317162033727024 degrees
[INFO] --------------------------------------------------------------------------------
[INFO] Overall discrimination angle, 𝛾 =79.18752280914396 degress
[INFO] --------------------------------------------------------------------------------
[INFO] GRx=43.6 >= 38:Calcualted: Got GRx_AZ_RPE=-8.444512871294236 rpe2-GRx=-52.04451287129424
[INFO] GRx=43.6 >= 38:/A Got GRx_AZ_RPE=-42 from Radiation Supression Table 
[INFO] getRPE 79.18752280914396 Got rpe=-42
[INFO] GRx=43.6 >= 38:Calcualted: Got GRx_AZ_RPE=-8.444512871294236 rpe2-GRx=-52.04451287129424
[INFO] GRx=43.6 >= 38:/A Got GRx_AZ_RPE=-42 from Radiation Supression Table 
[INFO] getRPE -79.18752280914396 Got rpe=-42
[INFO] getRPE gamma=79.18752280914396 centerFreqMhz=6875.0,ant_category=B2 rpe_p=-42 rpe_n=-42
[INFO] GAZ_Dis=-42
[INFO] --------------------------------------------------------------------------------
[INFO] The azimuthal discrimination= GAZ-Disc =-42 This should be negative
[INFO] The elevation discrimination  GEL-Disc in dB = -42 contribution This should be Negative!)
[INFO] --------------------------------------------------------------------------------
[INFO] GRx_Effectivein dB = 1.6000000000000028 [43.6 -41.86085787943851] [-0.13914212056148623]
[INFO] ----GRx_Effective in dB = 1.6000000000000028
[INFO] Near field adjustments do not have to be done
[INFO] Elevation Profile and ITM losss caluclate  in 0.057262 seconds
[INFO] ITM loss is 124.6191346551278 for accesspoint_ht 511.63299560546875
[INFO] Path Loss used =128.04584927505064
[INFO] building_entry_loss = 0 ap_indoor=False
[INFO] interference = -126.44584927505063 
[INFO] transmit_power PSD = 10.945849275050634 dBm/MHz

Updated code and logs

image

with this change logs

[INFO] --------------------------------------------------------------------------------
[INFO] Overall discrimination angle, 𝛾 =79.18752280914396 degress
[INFO] --------------------------------------------------------------------------------
[INFO] GRx=43.6 >= 38:Calcualted: Got GRx_AZ_RPE=-8.444512871294236 rpe2-GRx=-52.04451287129424
[INFO] GRx=43.6 >= 38:/A Got GRx_AZ_RPE=-42 from Radiation Supression Table 
[INFO] getRPE 79.18752280914396 Got rpe=-52.04451287129424
[INFO] GRx=43.6 >= 38:Calcualted: Got GRx_AZ_RPE=-8.444512871294236 rpe2-GRx=-52.04451287129424
[INFO] GRx=43.6 >= 38:/A Got GRx_AZ_RPE=-42 from Radiation Supression Table 
[INFO] getRPE -79.18752280914396 Got rpe=-52.04451287129424
[INFO] getRPE gamma=79.18752280914396 centerFreqMhz=6875.0,ant_category=B2 rpe_p=-52.04451287129424 rpe_n=-52.04451287129424
[INFO] GAZ_Dis=-52.04451287129424
[INFO] --------------------------------------------------------------------------------
[INFO] The azimuthal discrimination= GAZ-Disc =-52.04451287129424 This should be negative
[INFO] The elevation discrimination  GEL-Disc in dB = -52.04451287129424 contribution This should be Negative!)
[INFO] --------------------------------------------------------------------------------
[INFO] GRx_Effectivein dB = -8.444512871294236 [43.6 -51.872094207377536] [-0.17241866391670105]
[INFO] ----GRx_Effective in dB = -8.444512871294236
[INFO] Near field adjustments do not have to be done
[INFO] Elevation Profile and ITM losss caluclate  in 0.05806 seconds
[INFO] ITM loss is 124.6191346551278 for accesspoint_ht 511.63299560546875
[INFO] Path Loss used =128.04584927505064
[INFO] building_entry_loss = 0 ap_indoor=False
[INFO] interference = -136.49036214634486 
[INFO] transmit_power PSD = 20.990362146344864 dBm/MHz
AEgbert commented 8 months ago

Not that this (Andrew PAR10-65 RF) is not a high performance antenna as per the snapshot in this repo

From the document R2-AIP-07, this then goes to the last point ... "Use the minimum radiation suppression in Table 2 for the Fc, FS-Rx, ULS (MHz) and Category A otherwise."

In Table 2 the maximum for this angle 79 degrees is -42 dB; and if I use that, I get PSD 10. (logs below)

I believe this is correct, when using the default RPE according to R2-AIP-07-b-ii. Note that using the actual RPE provided by the manufacturer via R2-AIP-07-b-i is also a supported option, as stated in R2-AIP-07-b. I believe in this case, using the actual RPE via R2-AIP-07-b-i will result in a greater amount of discrimination than the default RPE, but either approach should be compliant with the test vector and can be used at the AFC System operator's discretion.

alexcpn commented 8 months ago

using the actual RPE via R2-AIP-07-b-i will result in a greater amount of discrimination than the default RPE, but either approach should be compliant with the test vector and can be used at the AFC System operator's discretion.

@AEgbert the same code using the RPE from the table is giving just -42db; as per R2-AIP-07-b and PSD of about 10 ; This is under the max limit of the test vector but too low; If we take a max of calculated value -52 db, which is closer to manufacture RPE and the RPE from table 2 look up , PSD is coming closer to the test vector of 23.

Hence the request to amend the documentation as described in my previous comment

AEgbert commented 8 months ago

The default RPE data (from Table 2) providing a conservative estimate compared to one based on more specific information (the manufacturer supplied data) is not an issue. My understanding is that Andrew PAR10-65 RF is not included in the high-performance antenna list as it differs sufficiently from the RPE specified by ITU-R F.699-8 in a way that may impact incumbent protection. As you noted, the calculated RPE from ITU-R F.699-8 predicts a lower gain than the manufacturer data indicates by 2-3dB. This difference may be greater still at other discrimination angles, and thus it is not appropriate to apply the calculated RPE from ITU-R F.699-8.

This leaves either the manufacturer specified RPE, or the RPE requirements from the FCC 101.115 rules (included in Table 2 in TS-1014).