PERFORMING ENVIRONMENTAL RADIO FREQUENCY MONITORING
20230148340 · 2023-05-11
Assignee
Inventors
- Taliver Heath (Mountain View, CA)
- Mathew Varghese (Los Altos, CA, US)
- Andrew Clegg (Mountain View, CA, US)
- Karthik Yogeeswaran (Mountain View, CA, US)
Cpc classification
H04W16/14
ELECTRICITY
H04B17/382
ELECTRICITY
International classification
H04B17/382
ELECTRICITY
G01R23/00
PHYSICS
Abstract
An environmental frequency sensing device, includes logic that performs signal strength (SS) level separation on a received band of frequencies to produce SS level separated frequencies. The logic performs frequency grouping on the SS level separated frequencies for each signal strength level to produce magnitude information for each grouping. The logic generates peak data by detecting peaks of the produced magnitude information. The logic generates an edge event indicating a signal edge based on arrival or departure of a given peak and compares, on a frequency basis, generated edges to stored fingerprint data of a signal of interest. Based on the comparison, the logic provides detected signal data indicating current use of a range of frequencies in an environment.
Claims
1. A computer-implemented method executed by data processing hardware that causes the data processing hardware to perform operations comprising: detecting, using a plurality of environmental radio frequency (RF) sensors, signal data from a plurality of antennas, the detected signal data representing one or more RF frequencies that are in use by each of the plurality of antennas; based on the detected signal data, determining a defined protection region corresponding to a location of a source device transmitting the RF frequencies that are in use by each of the plurality of antennas; and preventing user devices located in the defined protection region from using the RF frequencies that are in use by each of the plurality of antennas.
2. The method of claim 1, wherein determining the defined protection region comprises using GPS location information associated with the plurality of environmental RF sensors.
3. The method of claim 1, wherein determining the defined protection region comprises determining, using the detected signal data, frequency use in a particular geographical area associated with the source device.
4. The method of claim 1, wherein preventing user devices located in the defined protection region comprises refusing assignment of frequency to one or more of the user devices.
5. The method of claim 1, wherein the operations further comprise: determining, using the detected signal data, a particular RF frequency that is not in use in the defined protection region; and based on determining that the particular RF frequency is not in use, allowing the user devices located in the defined protection region to use the particular RF frequency.
6. The method of claim 1, wherein the source device comprises a mobile device.
7. The method of claim 1, wherein the source device comprises a non-mobile device.
8. The method of claim 1, wherein: each environmental RF sensor is associated with a respective geographical area; and determining the defined protection region is based on the respective geographical areas.
9. The method of claim 1, wherein preventing the user devices located in the defined protection region comprises preventing the user devices via an application executing on the user devices.
10. The method of claim 1, wherein the plurality of antennas comprises a left antenna and a right antenna that are co-located.
11. A system comprising: data processing hardware; and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising: detecting, using a plurality of environmental radio frequency (RF) sensors, signal data from a plurality of antennas, the detected signal data representing one or more RF frequencies that are in use by each of the plurality of antennas; based on the detected signal data, determining a defined protection region corresponding to a location of a source device transmitting the RF frequencies that are in use by each of the plurality of antennas; and preventing user devices located in the defined protection region from using the RF frequencies that are in use by each of the plurality of antennas.
12. The system of claim 11, wherein determining the defined protection region comprises using GPS location information associated with the plurality of environmental RF sensors.
13. The system of claim 11, wherein determining the defined protection region comprises determining, using the detected signal data, frequency use in a particular geographical area associated with the source device.
14. The system of claim 11, wherein preventing user devices located in the defined protection region comprises refusing assignment of frequency to one or more of the user devices.
15. The system of claim 11, wherein the operations further comprise: determining, using the detected signal data, a particular RF frequency that is not in use in the defined protection region; and based on determining that the particular RF frequency is not in use, allowing the user devices located in the defined protection region to use the particular RF frequency.
16. The system of claim 11, wherein the source device comprises a mobile device.
17. The system of claim 11, wherein the source device comprises a non-mobile device.
18. The system of claim 11, wherein: each environmental RF sensor is associated with a respective geographical area; and determining the defined protection region is based on the respective geographical areas.
19. The system of claim 11, wherein preventing the user devices located in the defined protection region comprises preventing the user devices via an application executing on the user devices.
20. The system of claim 11, wherein the plurality of antennas comprises a left antenna and a right antenna that are co-located.
Description
DESCRIPTION OF THE DRAWINGS
[0014] The disclosure will be more readily understood in view of the following description when accompanied by the below figures and wherein like reference numerals represent like elements, wherein:
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
DETAILED DESCRIPTION
[0033]
[0034] The environmental frequency sensing devices 102-106 are positioned, for example, along a coastline, within any particular city location, rural location or any other suitable location in an effort to detect radio frequency transmissions emanating from the wireless spectrum source 116. The spectrum access system 100 may also include one or more user equipments 120 and 122 such as smartphones, laptops, wearables or any other suitable wireless devices that can use the frequencies of the broadband employed by wireless spectrum source 116 when the frequencies are available for use. As shown in this example, the UEs 120 and 122 are currently in communication with a different wireless spectrum source 124 but can be instructed to use the frequencies of the source 116 if the spectrum analysis access server 108 determines that the frequencies are available. UEs that are currently not in communication with any base station may also be candidates for use of the wireless spectrum employed by the wireless spectrum source 116.
[0035] In this example, each of the environmental radio frequency sensors 102-106 employ a left antenna 126 and right antenna 128. As used herein, an antenna can include any suitable antenna structure and the left and right antennas may include more than one antenna. In one example, each ERFS includes three antennas: a pair of receive antennas and a transmit antenna such as with a −10 dB coupling to the two receive antennas. The antenna pattern is designed to maximize the redundancy between ERFS sites by setting the gain maxima at an angle of 30° off bore site (e.g., for 3550 MHz, BW=45.6 deg. and for 3650 MHz, BW=44.6 deg.). This may be useful if a single ERFS is allowed to determine which quadrant of an antenna pattern a signal is arriving from and can do this cost effectively. The single ERFS performs this operation by doing a simplified two antenna angle of arrival detection by comparing amplitude of the two signals in the incoming phase. The gain would be approximately 18.5 dBi. By way of example, the disclosed system can accommodate a wide range of signal strength levels such as −89 dB to +20 dB or approximately 130 dB of range.
[0036] Referring also to
[0037] In one example, the RF signals strength separator 200, for each of the left and right antenna, performs signal strength level separation on the received band of frequencies from each antenna. The received band of frequencies is shown as signals 212 and 214, respectively. The output from the RF signal strength separator 200 is signal strength level separated frequency information that indicates those frequencies within the wide band of incoming frequencies from the left antenna that are above a high signal strength threshold shown as 216 and those frequencies within the same band that have a signal strength above a low threshold shown as 218, as illustrated in
[0038] Referring to
[0039]
[0040]
Input Sampling
[0041] In some implementations, input data is sampled at 100 MSps or higher (higher in the case of the x310 where the fractional decimation filter doesn't have enough alias rejection) on 2 input channels.
STFT Processor
[0042] Referring to
Peak Extraction Processor
[0052] Referring to
[0056] The next stage 1105 interleaves the two time offsets of each of the 4 FFT streams (2 channels×2 FFT lengths). The order of interleaving must be carefully done to prevent a single pulse at a certain frequency in time to look like 3 pulses. The delayed stream data counterintuitively comes first. This is because the delay works by inserting zeros at the front of the data stream so the first FFT it is calculating the spectrum of only the first half of the time data so that means that in time this FFT comes first.
[0057] The goal of the peak finder process is to make a streaming peak finder which outputs the integer log value and the frequency bin index for the top 3 local maxima for each FFT data stream and sums up the linear values and count for all the remaining elements of the FFT.
[0058] To accomplish this goal the program uses a struct with the following elements (FFT start index U8, FFT stop index U8, Max index U8, Max value FXP s16.11, count U8, linear sum FXP s64.28). The FFT start index represents the first element index of a given peak which occurs at the first rising element or first element of the FFT. The FFT stop index represents the last element that is part of the same peak (i.e. the last element before the next first rising element). The Max index and Max value represent the value from the input of the largest value between the start and stop indices. The count is a tally of the number of elements that are part of the peak and the linear sum is the sum of all the linear input values between the start and stop indices.
[0059] The program keeps 4 of these structs in memory. The first is the current_state struct. The other three structs represent the struct for the top 3 peaks (Peak1, Peak2, Peak3). In addition there is a fifth struct which has (count U8, linear sum FXP s64.28) called the noise floor which is used to accrue the linear sum and count for any peak which is supplanted from the top 3 peak structs.
[0060] The program works by checking each new element to see if it is the first element of the FFT or the first rising element (i.e. a high value following a low value following a higher value). In either of these conditions the program assumes that the previous state struct is closed and it updates the 3 peak value structs and the noise_floor struct (this process is explained in the next paragraph). If it is the first element of the FFT then the 3 peak structs are output from this block as is the noise_floor struct. In the clock cycle after this the noise_floor struct and all 3 peak value structs are cleared.
[0061] The decision to update the 3 peak values and noise_floor structs are performed by first comparing the max value of the 3 peak value structs and then determining the struct with the smallest value. The peak value struct with the smallest value's Max value is then compared to the current_state struct's Max value. If the current value is smaller, the peak value structs are left alone and instead the count and linear sum elements of the current_state structs are added to the noise floor struct. If the current value is larger, then the count and linear sum from the peak value are taken and added to the count and linear sum of the noise_floor struct and afterwards that particular peak value struct is replaced by the current_value struct.
[0062] For the linear sum steps a signed 64 bit with 28 integer bits is used to accrue the linear sum values. When samples are output from this block they are output as two structs. The first struct takes the Max index cast as a U8 type and Max value cast as a U8 type for each of the top 3 peaks. The noise_floor struct is output without changing the data type.
[0063]
Feature Extractor Processor
[0064] Referring to
[0066] The goal of the amplitude algorithm is to identify rising and falling edges of peaks which exceed a threshold while making sure the events are not caused by an elevated noise floor. This algorithm works by using an array of Boolean ‘state_array’ equal to the length of the FFT on whose data it is operating with its values initialized to False.
[0067] When a new struct of peaks and noise floor is fed into the algorithm a check is made for each of the three peak values that the peak is above the threshold while the noise floor is below the threshold value. This Boolean condition is then stored in the ‘state_array’ at the index of the peak.
[0068] The algorithm keeps a copy of the ‘state_array’ from the previous iteration, along with the peak values and indices and the noise floor. We shall refer to them with the suffix ‘_old’ here and the current values with the suffix ‘_new’. The algorithm keeps an array of length of the FFT and stores the maximum values and the corresponding noise floor values. These values are reset to −128 on reaching a falling edge.
[0069] At each iteration a check is made at the 3 current peak indices and the 3 peak indices from the previous iterations on both ‘state_array_new’ and ‘state_array_old’. If ‘state_array_old’ at a given index is True while ‘state_array_new’ shows a False, that indicates a falling edge of a peak and in this case the max value, index and noise floor from the stored array is output along with header and timestamp. If ‘state_array_old’ at a given index is False while ‘state_array_new’ shows a True, that indicates the rising edge of a peak and in this case the peak value, index and noise floor from the current iteration is output along with the header and timestamp. If ‘state_array_old’ at a given index is True while ‘state_array_new’ shows a True that indicates we are still in the middle of a peak and in this case we do not output anything. If ‘state_array_old’ at a given index is False while ‘state_array_new’ shows a False we do not output anything.
[0070] The header is defined by 4 conditions. Edge (Rising=0, Falling=1), Channel (Channel 1=0, Channel 2=1), FFT length (32 point=0, 128 point=1), Algorithm type (Amplitude algorithm=0, Peak tracking algorithm=1). The header is stored in a U8. Bits 0 . . . 1 represent the edge. Bits 2 . . . 3 represent Channel. Bits 4 . . . 5 represent FFT length and Bits 6 . . . 7 represent Algorithm type.
[0071] Referring to
[0072] As shown in block 1806, the method includes generating peak data shown as 612 by detecting peaks of the detected magnitude information. For example, peaks that are beyond a threshold for each pulse type, such as a detected short pulse or detected long pulse has its peak detected by the peak extraction processor 608 as described above. As shown in block 1808, the method includes generating an edge event indicating a signal edge based on arrival or departure of a given peak. This is performed by the pulse edge detector 610. The process is carried out by the ESC signal processor 502 and is performed in real time and hence the system described performs a real time spectral analysis.
[0073] As shown in block 1810, the method includes comparing, on a frequency basis, the generated edges to stored fingerprint data of a signal of interest. This is done by the host unit 231 in this example. As noted above the fingerprint information can include any suitable criteria to determine whether a frequency or range of frequencies has been detected by the detectors.
[0074] As shown in block 1812, if a match exists, the detected signal data 232 is provided for the SAS server, however it will be recognized that the SAS server can perform operations of the sensor such as determining if a match occurs, as well as any other suitable operations. The detected signal data 232 indicates a current use of a range of frequencies by an incumbent device, base station, system or any other source of the wireless RF spectrum that has been detected. This is shown in block 1814. The process repeats for each 100 MHz sub-band within a band of received signals until no other sub-bands are left. Referring back to block 1812, if no match is detected, the process proceeds to perform signal strength level separation on received frequencies to continue the process.
[0075]
[0076] Referring to
[0077]
[0078] In another example, the SAS server or spectrum decision unit compares the data representing the one or more frequencies detected via each of the multiple antennas from each of the multiple environmental radio frequency sensors to be in use, to each other, to determine whether at least one of the environmental radio frequency sensors provided data containing error. For example, if three sensors are employed, if one of the sensors detects use of a frequency but the two others do not and the location of the other two sensors is known, the SAS server can infer that the detection by the one sensor should not be given high weight or should be given no weight at all since the other sensors should have detected similar frequency use.
[0079] Referring to
[0080] Stated another way, the spectrum decision unit 2202 or the SAS server evaluates detected signal data from a plurality of antennas (e.g., co-located left and right antennas) from each of multiple environmental radio frequency (RF) sensors. The detected signal data represents one or more RF frequencies that are in use as detected by each of the plurality of antennas from each respective environmental radio frequency (RF) sensor. The spectrum decision unit determines a defined protection region (e.g., a geographic area) corresponding to a source device that is transmitting the RF frequencies detected to be in use using the multiple environmental radio frequency (RF) sensors. The spectrum decision unit prevents user equipment located in the defined protection region from using the RF frequencies detected through any suitable app notification on the device, through a network connection such as a WWAN or WLAN connection or through any suitable mechanism.
[0081] In the preceding detailed description of the preferred embodiments, reference has been made to the accompanying drawings which form a part thereof, and in which is shown by way of illustration specific preferred embodiments in which the embodiments may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments, and it is to be understood that other embodiments may be utilized and that logical, mechanical, and electrical changes may be made without departing from the scope of the disclosure. To avoid detail not necessary to enable those skilled in the art to practice the embodiments, the description may omit certain information known to those skilled in the art. Furthermore, many other varied embodiments that incorporate the teachings of the disclosure may be easily constructed by those skilled in the art. Accordingly, the present disclosure is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the scope of the disclosure. The preceding detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present disclosure is defined only by the appended claims. The above detailed description of the embodiments and the examples described therein have been presented for the purposes of illustration and description only and not by limitation. It is therefore contemplated that the present disclosure cover any and all modifications, variations or equivalents that fall within the scope of the basic underlying principles disclosed above and claimed herein.