Packet prioritization for network-based software defined radio
By grouping and prioritizing ADC samples in a network-based software-defined radio system, and prioritizing the transmission of important data based on valid bits and data type, data loss caused by network problems is resolved, thereby improving system performance and user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2021-09-03
- Publication Date
- 2026-05-12
AI Technical Summary
In network-based software-defined radio systems, network problems lead to data loss, especially signaling and sensitive data. Existing grouping methods result in overall sample loss and cannot prioritize data based on type.
By grouping ADC samples and prioritizing them according to the importance of the significant bits and data type, priority is given to transmitting groups of highly significant bits or important data. Edge computing and feedback mechanisms are used to reduce latency and data loss.
It effectively reduces data loss due to network problems, ensures the transmission of important data, improves system performance and user experience, and reduces overall latency.
Smart Images

Figure CN116458069B_ABST
Abstract
Description
Technical Field
[0001] The embodiments relate to software-defined radio. Some embodiments relate to network-based software-defined radio. Background Technology
[0002] Software-defined radio (SDR) is a device that uses radio frequency (RF) communication to send and receive data. Many components, typically implemented in dedicated hardware such as mixers, filters, amplifiers, modulators / demodulators, and detectors, are implemented in general-purpose computing devices such as desktop computers or embedded systems. In an SDR, the RF front-end receives radio signals and passes them in analog form to an analog-to-digital converter (ADC), which samples the radio signals to produce a digital representation of the signals. Depending on the SDR configuration, the RF front-end may include one or more antennas, frequency-converting oscillators, mixers, filters, low-noise amplifiers, and / or bandpass filters. Digital processing components can be implemented on general-purpose computing hardware via software instructions, and then the transmitted data stream can be retrieved to complete the processing of the signal by performing operations such as mixing, filtering, amplifying, demodulating, and performing other operations. For data transmission, a reverse process is employed, where the input data stream is processed by the digital processing components, sent to the front-end components for conversion into an analog signal (e.g., by a digital-to-analog converter (DAC)), and then transmitted.
[0003] SDR allows for increased flexibility by using software to replace components that are conventionally implemented in dedicated hardware. By changing the software, the same hardware can be adapted to meet the capabilities of an SDR. For example, by modifying the software, an SDR can be made to receive and transmit different radio protocols, making it more flexible and adaptable to changing conditions. Attached Figure Description
[0004] In the accompanying drawings, which are not necessarily drawn to scale, similar numerals may describe similar components in different views. Similar numerals with different letter suffixes may represent different instances of similar components. The accompanying drawings generally illustrate the various embodiments discussed in this document by way of example rather than limitation.
[0005] Figure 1 The diagram illustrates some examples of SDR systems according to this disclosure.
[0006] Figure 2 The diagram illustrates a network-based SDR system according to some examples of this disclosure.
[0007] Figure 3 The diagram illustrates a centralized, network-based SDR system according to some examples of this disclosure.
[0008] Figure 4The diagram illustrates an SDR system based on edge network computing according to some examples of this disclosure.
[0009] Figure 5 An exemplary diagram illustrating a grouping construction according to some examples of this disclosure is shown.
[0010] Figure 6 The diagram illustrates network congestion management in a network-based SDR system according to some examples of this disclosure.
[0011] Figure 7 The diagram illustrates feedback instructions sent from a network-based digital processing computing device or transceiver, according to some examples of this disclosure, to determine the priority of one or more samples output from an ADC.
[0012] Figure 8 The illustration shows a flowchart of a method for grouping samples output by an ADC of an SDR according to some examples of this disclosure.
[0013] Figure 9 The diagram illustrates a flowchart of a method for prioritizing the delivery of packets according to some examples of this disclosure.
[0014] Figure 10 The illustration shows a flowchart of a method for prioritizing groups of ADC samples representing specific data types in a radio RF front-end device according to some examples of this disclosure.
[0015] Figure 11 The illustration shows a flowchart of a method by which a digital processing computing device provides feedback on the data type of a sample, according to some examples of this disclosure.
[0016] Figure 12 The diagram illustrates a flowchart of a method by which a transmitting device, according to some examples of this disclosure, provides feedback on the data type of a sample.
[0017] Figure 13 A block diagram illustrating an example of a machine on which one or more embodiments described herein may be implemented. Detailed Implementation
[0018] In a conventional SDR, the computing device that performs the digital processing components to process the ADC output, referred to herein as the digital processing computing device, is typically connected to the ADC and RF front-end devices via a local connection. In a conventional SDR model, each SDR requires a local computing device. In some examples, to leverage the increased computing power, availability, centralized maintenance, and cost savings of network-based computing devices (sometimes referred to as cloud computing), the network-based SDR groups the ADC output and sends it over the network to a centralized server. The centralized server then implements the digital processing components for one or more RF front-end devices on the network-based computing device.
[0019] Instead of sending data to a centralized server, network-based SDR systems can be further modified to leverage the concept of edge computing, where computing resources closer to the RF front-end equipment are used to implement digital processing components. Because the digital processing components are provided by edge computing resources closer to the RF front-end equipment (compared to centralized network-based computing devices), latency is reduced, and the chance of network congestion is decreased, as data typically has to traverse fewer network links. The edge computing resources can then pass the data to other computing resources, such as communication servers.
[0020] In conventional network-based software-defined radio implementations (typical centralized cloud or edge computing concepts), the sample stream output by the ADC is packetized when it is sampled and sent to the digital processing component. For example, if the packet size is 32 bits and each sample is 8 bits, then four consecutive samples are packetized and transmitted. If a packet is lost, then four consecutive samples are lost. This can cause problems, especially when the lost data is signaling data or other loss-sensitive data (such as audio data).
[0021] Systems, methods, apparatuses, and machine-readable media for improved communication between software-defined radio front-end devices and network-based computing devices are disclosed in some examples. Instead of grouping samples together, identical bit positions from multiple ADC samples can be grouped together. For example, the most significant bit of a group of ADC samples can be grouped together, the second most significant bit of the group can be grouped together, and so on. If the Quality of Service (QoS) metric of the network connection between the RF front-end device and the network-based processing computation falls below a threshold, the RF front-end device can prioritize transmitting packets with higher significant bits over packets with lower significant bits. By grouping samples in this way, some accuracy in the ADC output may be lost if a packet containing lower significant bits is lost; however, this method ensures that at least some estimation of the signal is possible. This contrasts with current grouping methods, which result in sample loss for at least a period of time.
[0022] This solution addresses the technical problem of data loss due to network issues in network-based SDR by prioritizing specific packets based on the validity of their bit values. It allows packets with lower significant bits to be discarded or delayed to support packets carrying higher significant bits. Although some precision is lost, the entire sample is not lost, and the processing components can reconstruct the lost bits, for example, using error-correcting codes. In this way, the system essentially rounds the values of the samples.
[0023] Because RF front-end devices lack high-level knowledge of the signal content (since it hasn't been processed yet), there's no way to prioritize certain data types over others using conventional SDR. For example, signaling and control data might be more important than other data types. Similarly, for a specific application, some data might be more important than others. For instance, in real-time communication applications, audio data might be more important than video or screen-sharing data. When dealing with network issues, prioritizing packets that include ADC samples corresponding to the most important data types over packets that have samples corresponding to less important data types will improve performance.
[0024] Techniques are also disclosed that provide RF front-end devices with knowledge of which data types the signals processed by the ADC represent, in order to determine the importance of the data and prioritize groups containing those samples accordingly. Samples can be prioritized using a prioritization scheme that specifies one or more data types and the priority of each data type. This prioritization scheme can be specific to a wireless protocol, upper-layer protocol, end-user equipment, application, etc. For example, samples representing signaling data may be prioritized over all other data. Samples representing data of a specific media type may be prioritized over other media types. For example, if a wireless transmission is transmitting media for a network-based communication session (e.g., the application is online conferencing), samples encoding audio data may be prioritized over samples encoding video data. In terms of user experience, audio data is more sensitive to discontinuities caused by network noise than video data. Data type-based sample prioritization is typically not performed at the RF front-end device because the RF front-end device is usually unaware of the signal payload and therefore does not know which samples encode which data.
[0025] RF front-end devices can determine the payload in a variety of ways. For example, a processing computing device can signal to the RF front-end device to inform it of the type of media being transmitted. Similarly, a device that transmits data received at the RF front-end device (referred to herein as a transmitter) can signal to the RF front-end device about the type of media being transmitted—whether in-band (e.g., as part of an RF transmission) or out-of-band (e.g., via another network connection).
[0026] Examples of prioritizing grouping based on data type can be applied to, in addition to or replacing, the previously described techniques that group the most significant bits of a set of samples together, the second most significant bits of a set of samples together, and so on. For example, samples can first be grouped based on the data type they encode, and then the sample groups can be grouped individually such that the most significant bits of each group are grouped together, and so on. Various prioritization schemes can then select which groups to prioritize. For example, the grouping of the most significant bits of signaling data can take precedence over the less significant bits of signaling data. The less significant bits of signaling data can take precedence over the most significant bits of audio data. The less significant bits of audio data can take precedence over the most significant bits of video data, and the most significant bits of video data can take precedence over the less significant bits of video data, and so on.
[0027] This addresses the technical problem of data loss due to network issues in network-based SDR by implementing feedback from processing components running on the processing computing device or transmitter to allow RF front-end devices to make informed decisions about prioritized data. This improves system performance in the event of network problems between the RF front-end device and the digital processing computing device by prioritizing critical data required to maintain connectivity or an acceptable user experience. Packets with more important content can be prioritized over packets with less important content. This ensures that sessions remain connected (e.g., both application-layer and lower-level connections) and delivers the most important media without delay, at the expense of less important media.
[0028] Turn now Figure 1 A diagram of an SDR system 100 is shown according to some examples of this disclosure. RF front-end device 105 may include one or more antennas 107, radio frequency (RF) hardware 110, analog-to-digital converter (ADC) 115, and digital-to-analog converter (DAC) 120. RF hardware 110 may include multiple components depending on the configuration. Exemplary configurations may include heterodyne, zero IF, digital low IF, bandpass sampling, and direct RF sampling configurations. For example, for a digital IF heterodyne configuration, RF hardware 110 may include a first RF bandpass filter (BPF), a low-noise amplifier, a second BPF, a mixer, an IF BPF, and an IF amplifier. In a direct conversion / zero IF configuration, RF hardware 110 may include an RF BPF, a low-noise amplifier, and then the RF signal is directly converted to zero frequency (DC) by an I / Q demodulator, low-pass filters for the I and Q channels, and one or more variable gain amplifiers.
[0029] The ADC 115 converts an analog signal into a digital signal by sampling at periodic time intervals set by the ADC clock. In some examples, the samples may be samples of the amplitude of an RF signal. The output of the ADC 115 is a digital representation of the analog signal. The digital processing component 125, which executes on a digital processing computing device 127 (such as a personal computer), may process the digital representation of the analog signal, for example, by performing baseband processing. The transmitted information is converted from a digital signal to an analog signal by the DAC 120 and then transmitted by the RF hardware 110 and the antenna 107. In some examples, the digital processing computing device 127 may be in the form of a personal computing device, a server computing device, or other general-purpose computing device.
[0030] Figure 2The diagram illustrates a network-based SDR system 200 according to some examples of this disclosure. The RF front-end device 205 includes one or more antennas 207 (which may be the same component as or similar to antenna 107), RF hardware 210 (which may be the same component as or similar to RF hardware 110), an ADC 215 (which may be the same component as or similar to ADC 215), and a DAC 220 (which may be the same component as or similar to DAC 120). Additionally, the RF front-end device 205 may have a packet interface 222. The packet interface acquires signal samples generated by the ADC 215, groups them, and sends them via network 230 to a network-based digital processing component 225 (which may be the same component as or similar to ADC 120). Figure 1 The digital processing computing device 235 (which may be a general-purpose computing device such as a server computer) is the same as or similar to the digital processing component 125. In addition to the functions described for the digital processing component 125, the network-based digital processing component 225 may also include a packet interface 227 that unpacks digital samples before further processing.
[0031] Packet interfaces 222 and 227 can also implement one or more protocols, such as Transmission Control Protocol (TCP), Internet Protocol (IP), etc. Network 230 is any type of data communication network, including packet-based networks such as the Internet. Packet interface 222 can be implemented by software executing on the processing device of RF front-end device 205, or by an integrated circuit having hardware logic or a combination of software and hardware logic.
[0032] Figure 3 A diagram of a centralized network-based SDR system 300 according to some examples of this disclosure is illustrated. Transceivers 310, 312, and 314 transmit and receive radio signals using RF front-end devices 316, 318, and 320, respectively. Transceivers 310, 312, and 314 may be conventional radio transmitting and receiving devices relying on conventional, specially designed hardware such as a mobile phone, or one or more of transceivers 310, 312, and 314 may be an SDR (including a network-based SDR). RF front-end devices 316, 318, and 320 may be examples of RF front-end device 205, which can group the output of an ADC and send it to a centralized network-based digital processing computing device 325. The centralized network-based digital processing computing device 325 may be... Figure 2 Example of a digital processing computing device 235.
[0033] Figure 4 The diagram illustrates an SDR system 400 based on edge network computing according to some examples of this disclosure. Figure 4 In the image, the text is not shown to increase clarity. Figure 3 The transceivers shown are (transceivers 310, 312, and 314). RF front-end devices 410 and 412 can packetize data from their respective ADC devices and transmit it to a network-based digital processing computing device 420. RF front-end devices 414 and 416 can packetize data from their respective ADC devices and transmit it to a network-based digital processing computing device 422. RF front-end device 418 can packetize data from its respective ADC device and transmit said data to a network-based digital processing computing device 424. The network-based digital processing computing devices 420, 422, and 424 can communicate with other network-based digital processing computing devices or with a server computing device 426. For example, some processing of ADC samples can be performed on one of the network-based digital processing computing devices 420, 422, and 424, while other processing can be performed on another of the network-based digital processing computing devices 420, 422, and 424 or on the server computing device 426.
[0034] In other examples, network-based digital processing computing devices 420, 422, or 424 may communicate with another of them to forward data destined for one of RF front-end devices 410, 412, 414, 416, and 418. For example, the destination of data received at RF front-end device 410 could be a receiver receiving data transmitted by RF front-end device 414. In this example, the ADC output is packetized and transmitted from RF front-end device 410, processed by network-based digital processing computing device 420, sent to network-based digital processing computing device 422, and then transmitted by RF front-end device 414.
[0035] In some examples, various network-based digital processing computing devices 420, 422 and / or 424 may be positioned such that they are geographically close to RF front-end devices used to reduce latency.
[0036] Turn now Figure 5 An example diagram of a grouping configuration 500 according to some examples of this disclosure is shown. The received analog waveform 505 is plotted. Figure 5 The figure illustrates an exemplary amplitude sampling of the waveform as sample 510 {001, 010, 011, 010, 000, 111, 110, 101, 110, 111}. Those skilled in the art who benefit from this disclosure will recognize that other forms of sampling can be used, and... Figure 5 The outputs shown and discussed herein are exemplary and are used to illustrate the grouping of samples.
[0037] exist Figure 5 In the example, the ADC samples analog waveform 505 and produces ten samples 510. Each sample 510 is three bits long. The samples 510 are then rearranged into groups 512, 514, and 516. The most significant bit of each sample is assigned to group 512, the middle bit of each sample is assigned to group 514, and the least significant bit is assigned to group 516. The order of the bits within the groups can correspond to the order of the samples output by the ADC. In other examples, the bits can be arranged in a different order. Although in Figure 5 In this example, each bit of the sample is grouped into a separate group; in other examples, multiple bits of the sample can be sent in a single group. For example, the most significant bit and the middle bit can be included in the same group.
[0038] Turn now Figure 6 The diagram illustrates network congestion management in a network-based SDR system 600 according to some examples of this disclosure. An RF front-end device 610 receives radio signals, and an ADC converts them into digital samples. The RF front-end device 610 may be... Figure 2 An example of an RF front-end device 205. Additionally, the RF front-end device 610 can determine Quality of Service (QoS) information 608 for network 617, which is used to send packetized samples to a network-based digital processing computing device 616. The network-based digital processing computing device 616 may be... Figure 2 An example of a network-based digital processing computing device 225. System 600 can be a centralized computing model or an edge computing model, as in... Figure 3 or Figure 4 As shown in the diagram. The RF front-end device 610 is based on the description herein and... Figure 5 The method shown is used to group the samples.
[0039] exist Figure 6In the example, QoS information indicates that the network's QoS metrics meet pre-specified criteria. For example, bandwidth is below a threshold bandwidth amount; quality is below a threshold quality; packet loss measurement is above a threshold; and so on. In response, RF front-end device 610 can take one or more actions. For example, RF front-end device 610 can set one or more QoS fields for packets 612, 614, or 615 such that the first packet 612 has the highest priority, the second packet 614 has the second highest priority, and the third packet 615 has the lowest priority. Devices in network 617 can then process the packets according to the QoS parameters. In other examples, RF front-end device 610 can discard one or more lower-priority packets (e.g., the third packet). As shown, the third packet 615 is discarded, and the first and second packets 612 and 614 are therefore received by the digital processing computing device 616. This produces sample 618, which is shown as graph 619 next to the original waveform. Although the reconstructed waveform is not a perfect match, it is closer to the correct waveform than a reconstructed waveform with completely lost samples.
[0040] Figure 7 The diagram illustrates feedback instructions sent from a network-based digital processing computing device or transceiver according to some examples of this disclosure to determine the priority of one or more samples from the output of an ADC. In example 700, a network-based digital processing computing device 715 (which may be from...) is used to... Figure 2 An example of a network-based digital processing computing device 225) can process data from an RF front-end device 710 (which may be from... Figure 2 (Example of RF front-end device 205) receives packetized samples. The samples can be decoded, and the data type corresponding to the sample can be determined. The data type can be sent back to RF front-end device 710 using feedback message passing 720.
[0041] In Example 730, the digital processing computing device 745 may not provide feedback. In these examples, transceiver 735 transmits feedback message 750 along with data 748 to RF front-end device 740. The feedback in feedback message 750 describes or indicates the type of data 748. Feedback message 750 may be transmitted as part of data 748 (e.g., metadata) or may be transmitted separately. In the example where feedback message 750 is transmitted as part of data 748, feedback message 750 may be sent to RF front-end device 740 as an easily identifiable symbolic pattern. RF front-end device 740 can identify the pattern and decode it to determine the data type of the subsequent data. In other examples, sideband or a second radio link or channel may be used to transmit feedback message 750.
[0042] In other examples, feedback message 750 can be sent via an out-of-band connection, for example, by using a second radio frequency connection with a different wireless protocol than the one used to send data 748. For example, via WiFi connection to a wireless access point through transceiver 735 (in... Figure 7 (Not shown in the image) and transmitted via a network to RF front-end device 740. This can be used in situations where the WiFi connection has lower bandwidth because the feedback data in the feedback message pass 750 may be much larger in size than the media transmitted via the radio link between transceiver 735 and RF front-end device 740. Other connections include direct connections or other wired and / or wireless connections via one or more intermediate devices.
[0043] The feedback data in feedback message passing 720, 750 can be an indication of the type of data currently being transmitted; a timestamp indicating when a specific type of data will begin; signal pattern information that can be used by RF front-end devices 710, 740 to look up a specific type of data; etc. For example, transceiver 735 can use a specific structure to send packets, allowing signaling and other information to be sent first in the header, followed by the payload. In some examples, the header can carry signaling information and can be prioritized by RF front-end devices 710, 740 over payload data that may have a less important media type.
[0044] As previously described, Figure 7 The system can be connected with about Figure 5 The described grouping system works together. For example, samples corresponding to different media data types can be grouped together, and Figure 5 The process can be applied to those groups. In some examples where the media type can be distributed across the received analog signals, the RF front-end device can transmit reconstruction information (e.g., information about the order in which the samples were created, such as serial numbers) to the digital processing computing device to help the digital processing computing device reconstruct the samples in the proper order.
[0045] Figure 8A flowchart of method 800 for grouping samples of an ADC output from an SDR according to some examples of this disclosure is illustrated. At operation 810, a computing device (e.g., a processor) of an RF front-end device receives the output of the ADC. The output may be multiple digital samples of an RF signal received by the RF front-end device. Each digital sample may be a digital representation of the RF signal at a specific time and includes multiple bits, including the most significant bit and a second bit below the most significant bit. In some examples, method 800 is applied to multiple samples. The number of samples may be selected based on the number of bits per sample grouped in the same group and the group size. For example, if the group size is 32 bits and each sample placed in the same group has two bits, then the number of samples processed in method 800 may be 16.
[0046] At operation 820, the first group can be created using the most significant bit (MSB) of the first sample and the second sample. Depending on the number of samples being processed and the group size, additional MSBs of additional samples can also be included. As previously mentioned, additional bits for each sample can also be included in the first group.
[0047] At operation 830, a second group can be created using the second bit of the first sample and the second bit of the second sample. Depending on the number of samples being processed and the group size, additional bits from additional samples not placed in the first group may also be included. As previously mentioned, additional bits for each sample may also be included in the first group. In some examples, one or more bits may be copied across groups. That is, the first bit of a sample may be grouped into multiple groups to add extra redundancy, thereby ensuring that these bits reach the digital processing computing device.
[0048] At operation 835, the RF front-end device may prioritize the delivery of a first packet over a second packet. In some examples, this can be achieved by setting QoS parameters in the first packet, causing the network to prioritize the first packet over the second. In some examples, this is achieved by discarding (not sending) the second packet and sending only the first packet if network conditions meet a specific QoS criterion. In some examples, QoS parameters can be set and the second packet can be discarded. In still other examples, other actions can be taken besides or instead of discarding packets and / or setting QoS criterions. For example, the first packet may be sent twice, but only once. In cases where the RF front-end device does not send packets, in some examples, the RF front-end device sends an indicator to notify the digital processing computing device of a bit loss from the sample. This prevents the digital processing computing device from waiting for lost data and reduces latency. In some examples, the indicator is sent with the sent packets; in still other examples, the packets are sent to the digital processing computing device containing the indicator. These indicators may be smaller than the unsent packets, so they may be unaffected by network congestion or affect network congestion in the same way.
[0049] Figure 9 A flowchart illustrating a method 900 for prioritizing packet delivery according to some examples of this disclosure is shown. Method 900 may be an example of operation 835. At operation 940, a metric for the network connectivity between an RF front-end device computing device and a server computing device may be determined. The server computing device may be a network-based digital processing computing device. The metric may be a QoS metric such as bandwidth metric, packet delay metric, packet loss metric, packet error metric, packet quality metric, etc. The QoS metric may be determined based on previously transmitted packets, test packets, polling packets, etc.
[0050] At operation 950, the RF front-end device can determine whether a metric indicates a QoS problem. This is done, for example, by comparing the metric to a threshold (e.g., the metric exceeds the threshold, falls below the threshold, etc.). If the metric indicates a QoS problem, at operation 955, a first packet is sent, but a second packet is not. If the metric does not indicate a QoS problem, both packets are sent at operation 950. When a packet containing the sample bits of the ADC is not sent or is lost by the network, the digital processing computing device can replace one or more bits. For example, all lost bits can be assigned as zero bits, one bit, etc.
[0051] Turn now Figure 10According to some examples of this disclosure, a flowchart of a method 1000 for a radio RF front-end device to prioritize groups of ADC samples representing specific data types is shown. At operation 1010, the radio RF front-end device may receive feedback identifying the data type of one or more samples in the samples. As mentioned, the feedback may be an indication of the data type currently received or transmitted (such as control data, voice data, video data, etc.); it may be a pattern of the received or transmitted data (e.g., every three samples are video data); and so on. The feedback may be received from a digital processing computing device or a transmitter. The feedback may be received from metadata in the radio signal, a second radio signal, or from an out-of-band network connection.
[0052] At operation 1020, the RF front-end device uses feedback to associate samples from the ADC with data types. For example, if the feedback is a pattern, samples corresponding to each data type can be identified. If the feedback is an indication of the currently received data type, the current sample is associated with a data type.
[0053] At operation 1030, the radio RF front-end device prioritizes packets containing samples according to a prioritization scheme, thereby prioritizing these samples based on their relevant data types. Exemplary prioritization schemes may include prioritizing samples representing signaling or control data highest, followed by samples representing audio, then samples representing video, and finally samples representing other data (such as chat communications, files, or other data) lowest. Those skilled in the art who benefit from this disclosure will recognize that other prioritization schemes can be used. Samples can be prioritized by setting QoS parameters in the packets. A computing device, such as a router on the network path between the radio RF front-end device and the network-based digital processing computing device 225, can use this QoS information to determine the priority of queued packets, guarantee delivery, and other parameters. QoS parameters can represent different processing for different packets.
[0054] In other examples, in addition to or besides QoS parameters, radio (RF) front-end devices can determine network QoS metrics that indicate QoS problems. For example, as in... Figure 9 As discussed in [the document], in response to determining QoS metrics to indicate QoS issues, radio (RF) front-end devices may first send high-priority packets, and in some examples, may not send lower-priority packets.
[0055] As mentioned herein, this disclosure discusses dropping packets in response to network QoS issues. Those skilled in the art who benefit from this disclosure will recognize that other responses can be used instead of dropping packets, or other responses besides dropping packets. For example, lower-priority packets may be queued for a short period. These queued packets can be sent if the network QoS issue is resolved, or if it becomes possible to send queued packets without affecting higher-priority packets. For example, if the QoS measurement results are bandwidth measurements, and if the bandwidth is insufficient to send all waiting packets at time t, the RF front-end device can queue lower-priority packets while sending higher-priority packets. If the bandwidth increases at time t+1, or the amount of high-priority packets to be sent does not utilize all available bandwidth (e.g., the transmitter reduces its transmission rate), the queued packets can be sent.
[0056] Turn now Figure 11 Based on some examples of this disclosure, a flowchart of a method 1100 of a digital processing computing device for providing feedback on the data type of a sample is shown. At operation 1110, the digital processing computing device may receive packets of ADC samples including radio signals. The packets may be sorted based on a packet number or some other data within the packet. At operation 1120, the packets may be sorted according to a specified sorting, and the sorting may be used to reconstruct the received signal. The signal may then be processed, for example, by baseband processing algorithms, error correction, encryption, modulation, demodulation, channelization, coding, and other operations.
[0057] At operation 1130, feedback for the RF front-end device can be determined. For example, data types can be identified, and the correlation between samples and data types can be determined. In some examples, where one data type is sent at a time, the identified data type can be provided as feedback. In other examples, where different data types are scattered together, patterns can be determined that identify which data types are associated with a particular data type.
[0058] For example, one or more machine learning algorithms can be created, employing supervised or unsupervised learning. Exemplary algorithms may include sequence labeling methods such as conditional random fields, hidden Markov models, maximum entropy Markov models, recurrent neural networks, etc., which identify sequences in samples to determine the data type being received. In some examples, instead of a digital processing computing device using the model, the model may be created by the digital processing computing device and sent to a radio RF front-end device. The radio RF front-end device then applies the model to determine the data type corresponding to the sample using the sequence labeling method. This allows the radio RF front-end device to prioritize packets without receiving periodic feedback from the digital processing computing device or the transmitter, in addition to receiving the model and any updates to the model.
[0059] At operation 1140, feedback can be sent to the RF front-end device. As mentioned, the feedback can be a pattern applied by the RF front-end device. For example, samples 1-9 correspond to control information, samples 10-20 to audio data, samples 21-32 to further control information, and then samples 33-64 to video data. The RF front-end device can use this pattern information to classify the samples and prioritize important parts of the signal. In other examples, the feedback can simply be an indication of the type of data currently received.
[0060] Turn now Figure 12 Based on some examples of this disclosure, a flowchart of a method 1200 for a transmitter device to provide feedback on the data type of a sample is shown. The transmitting device transmits data to an RF front-end device via one or more radio links. As mentioned, the transmitting device can be a base station, a WiFi access point, another software-defined radio device, etc. The device is referred to as a transmitter, but it can also be a transceiver.
[0061] At operation 1210, the transmitter can prepare data for transmission. This data may be received from another device or from one or more applications running on the transmitter. At operation 1220, the data type can be determined and correlated with a specific transmission time. At operation 1230, feedback can be sent to the RF front-end device. The feedback can be a correlation between the data type and transmission time used by the RF front-end device to determine which samples are correlated with which data types. Feedback data can be transmitted using one or more radio links or channels, out-of-band connections, etc.
[0062] While the disclosure herein describes how RF front-end devices decide to discard packets with lower priority samples (e.g., samples with fewer significant bits), in other examples, packets may be marked with bit validity, and other network nodes (e.g., routers) may discard or slow down packets with fewer significant bits. For example, a router may determine that two packets in a queue originate from the same RF front-end, and the first packet has more significant bits than the second packet (e.g., the packet may be marked). The router may process the first packet with a higher priority than the second packet. For example, the router may transmit the first packet to the next hop toward the destination but not the second packet.
[0063] Furthermore, as described, the digital processing computing device can use 0 or 1 to fill in missing bits in a sample. In other examples, the digital processing computing device can perform interpolation on the samples to minimize the mean square error. Interpolation can be achieved by passing bits through a digital low-pass filter.
[0064] Figure 13 A block diagram of an exemplary machine 1300 on which any one or more of the techniques (e.g., methods) discussed herein can be executed. In alternative embodiments, machine 1300 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, machine 1300 may operate as a server machine, a client machine, or both in a server-client network environment. In the example, machine 1300 may act as a peer-to-peer (P2P) (or other distributed) network environment. Machine 1300 may take the form of a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, smartphone, web device, network router, switch, or bridge, or any machine capable of executing instructions (sequential or otherwise) specifying actions to be taken by said machine. Machine 1300 may be configured to implement Figure 1-11 The RF front-end device, digital processing computing device, and transceiver are described. Additionally, machine 1300 is shown with specific components; however, those skilled in the art will understand that additional or fewer components may be included in a particular example of machine 1300. For example, if machine 1300 is configured as an RF front-end, it may include additional radio hardware and may not include components such as U / I navigation device 1314, video display 1310, or alphanumeric input device 1312. Furthermore, although only a single machine is illustrated, the term "machine" should also be understood to include any collection of machines that individually or jointly execute one or more sets of instructions to perform any one or more methods discussed herein, such as cloud computing, Software as a Service (SaaS), and other computer cluster configurations. Machine 1300 can be configured to implement... Figure 5-11 One or more of the methods or systems.
[0065] Examples as described herein may include logic or multiple components, modules, or mechanisms on which or on which they may operate. A module is a tangible entity (e.g., hardware) capable of performing a specified operation and which may be configured or arranged in a certain manner. In the examples, circuitry may be arranged as a module in a specified manner (e.g., internal or external to other circuitry). In the examples, all or part of one or more computer systems (e.g., standalone, client, or server computer systems) or one or more hardware processors may be configured by firmware or software (e.g., instructions, application portions, or applications) to operate to perform a specified operation. In the examples, the software may reside on a machine-readable medium. In the examples, when executed by the underlying hardware of the module, the software causes the hardware to perform the specified operation.
[0066] Therefore, the term "module" is understood to include tangible entities, that is, entities that are physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., provisionally) configured (e.g., programmed) to operate or perform any of the operations described herein in a particular manner. Considering the example of temporarily configured modules, each module does not need to be instantiated at any given time. For example, in the case where a module includes a general-purpose hardware processor configured using software, the general-purpose hardware processor can be configured as different modules at different times. The software can accordingly configure the hardware processor, for example, to constitute a particular module at one time instance and different modules at different time instances.
[0067] Machine (e.g., computer system) 1300 may include a hardware processor 1302 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), main memory 1304, and static memory 1306, some or all of which may communicate with each other via an interconnect (e.g., a bus) 1308. Machine 1300 may also include a display unit 1310, an alphanumeric input device 1312 (e.g., a keyboard), and a user interface (UI) navigation device 1314 (e.g., a mouse). In this example, the display unit 1310, the input device 1312, and the UI navigation device 1314 may be a touchscreen display. Machine 1300 may also include a storage device (e.g., a drive unit) 1316, a signal generation device 1318 (e.g., a speaker), a network interface device 1320, and one or more sensors 1321, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensors. Machine 1300 may include output controller 1328, for example, serial (e.g., Universal Serial Bus (USB), parallel or other wired or wireless (e.g., infrared (IR), near field communication (NFC) etc.)) connection, to communicate or control one or more peripheral devices (e.g., printer, card reader, etc.).
[0068] Storage device 1316 may include machine-readable medium 1322 on which one or more sets of data structures or instructions 1324 (e.g., software) are stored, which data structures or instructions are embodied in or used by any one or more of the techniques or functions described herein. Instructions 1324 may also reside wholly or at least partially within main memory 1304, static memory 1306, or hardware processor 1302 during execution by machine 1300. In the example, one or any combination of hardware processor 1302, main memory 1304, static memory 1306, or storage device 1316 may constitute a machine-readable medium.
[0069] Although machine-readable medium 1322 is shown as a single medium, the term "machine-readable medium" can include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) configured to store one or more instructions 1324.
[0070] The term "machine-readable medium" can include any medium capable of storing, encoding, or carrying instructions for execution by machine 1300 and enabling machine 1300 to perform any one or more of the technologies disclosed herein, or any medium capable of storing, encoding, or carrying data structures used by or associated with those instructions. Examples of non-limiting machine-readable media can include solid-state memory as well as optical and magnetic media. Specific examples of machine-readable media can include: non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; disks, such as internal hard disks and removable hard disks; magneto-optical disks; random access memory (RAM); solid-state drives (SSDs); and CD-ROMs and DVD-ROMs. In some examples, machine-readable media can include non-transient machine-readable media. In some examples, machine-readable media can include machine-readable media that are not transient propagating signals.
[0071] Instruction 1324 can also be sent or received on communication network 1326 via a transmission medium through network interface device 1320. Machine 1300 can communicate with one or more other machines using any of a variety of transport protocols (e.g., Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Exemplary communication networks may include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile phone networks (e.g., cellular networks), ordinary old-style telephone (POTS) networks, and wireless data networks (e.g., referred to as wireless networks). The Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard series, known as The standards include the IEEE 802.16 series, IEEE 802.15.4 series, Long Term Evolution (LTE) series, Universal Mobile Telecommunications System (UMTS) series, peer-to-peer (P2P) networks, etc. In the example, network interface device 1320 may include one or more physical jacks (e.g., Ethernet, coaxial, or telephone jacks) or one or more antennas to connect to communication network 1326. In the example, network interface device 1320 may include multiple antennas to perform wireless communication using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technologies. In some examples, network interface device 1320 may use multi-user MIMO technology for wireless communication.
[0072] Other notes and examples
[0073] Example 1 is a method for prioritizing packets for a network-based software-defined radio system, the method comprising: at a computing device, using one or more processors: receiving the output of an analog-to-digital converter (ADC), the output including a plurality of digital samples of a radio frequency (RF) signal, each digital sample representing an RF signal at a different time, and including a plurality of bits, the plurality of bits including a most significant bit and a second bit below the most significant bit; creating a first packet including the value of the most significant bit of a first digital sample from the plurality of digital samples and the value of the most significant bit of a second digital sample from the plurality of digital samples; creating a second packet including the value of the second bit of the first digital sample and the value of the second bit of the second digital sample; determining a metric of a network connection between the computing device and a server computing device, the server computing device providing baseband processing for the network-based software-defined radio system; determining whether the metric of the network connection between the computing device and the server computing device indicates that the quality of service (QoS) of the network connection is below a threshold; and in response to determining that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below the threshold, sending the first packet to the server computing device through the network connection without sending the second packet to the server computing device.
[0074] In Example 2, the subject of Example 1 includes: receiving metadata from a transmitter computing device or the server computing device, the metadata indicating the data type transmitted by the transmitter and received in the RF signal; assigning a priority to the first packet based on the metadata; and setting the priority field in the header of the first packet to the priority.
[0075] In Example 3, the subject of Example 2 includes: wherein the data type includes audio, video, or signaling data.
[0076] In Example 4, the subject of Example 3 includes: wherein assigning the priority to the first group includes: assigning signaling data a higher priority than audio or video data, and assigning audio data a higher priority than video data.
[0077] In Example 5, the subject of Examples 2-4 includes: wherein the priority field of the header is a quality of service parameter.
[0078] In Example 6, the subject matter of Examples 1-5 includes: wherein the metric indicates one or more of the following: congestion, low bandwidth, packet loss, interference, or packet error.
[0079] In Example 7, the subject of Examples 1-6 includes: wherein the method further includes: in response to determining that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, sending the first packet twice.
[0080] In Example 8, the subject matter of Examples 1-7 includes: for a third packet created from the plurality of digital samples, determining a first type of data to be transmitted by a transmitter; and for a fourth packet created from the plurality of digital samples, determining a second type of data to be transmitted by a transmitter, wherein the first type of data and the second type of data are different types; assigning a first priority to the third packet based on the first type of data; assigning a second priority to the fourth packet based on the second type of data, wherein the second priority is greater than the first priority; and in response to determining that a metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, transmitting the third packet to the server computing device through the network connection, and discarding the fourth packet without transmitting the fourth packet to the server computing device.
[0081] Example 9 is a computing device for prioritizing packets for a network-based software-defined radio system, the computing device comprising: one or more processors; and a memory including instructions that, when executed, cause the one or more processors to perform operations including: receiving the output of an analog-to-digital converter (ADC), the output comprising a plurality of digital samples of a radio frequency (RF) signal, each digital sample representing an RF signal at a different time and comprising a plurality of bits, the plurality of bits including a most significant bit and a second bit below the most significant bit; creating a first packet comprising the value of the most significant bit of a first digital sample of the plurality of digital samples and the value of the most significant bit of a second digital sample of the plurality of digital samples; creating a packet comprising the... The system comprises: a second grouping of the values of the second bit of the first digital sample and the second bit of the second digital sample; determining a metric for a network connection between the computing device and a server computing device, the server computing device providing baseband processing for the network-based software-defined radio system; determining whether the metric for the network connection between the computing device and the server computing device indicates that the quality of service (QoS) of the network connection is below a threshold; and in response to determining that the metric for the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, sending the first packet to the server computing device via the network connection, without sending the second packet to the server computing device.
[0082] In Example 10, the subject of Example 9 includes: wherein the operation further includes: receiving metadata from a transmitter computing device or the server computing device, the metadata indicating the data type transmitted by the transmitter and received in the RF signal; assigning a priority to the first packet based on the metadata; and setting the priority field of the header of the first packet to the priority.
[0083] In Example 11, the subject of Example 10 includes: wherein the data type includes audio, video, or signaling data.
[0084] In Example 12, the subject of Example 11 includes: wherein the operation of assigning the priority to the first group includes: assigning signaling data to a higher priority than audio or video data, and assigning audio data to a higher priority than video data.
[0085] In Example 13, the subject of Examples 10-12 includes: wherein the priority field of the header is a quality of service parameter.
[0086] In Example 14, the subject of Examples 9-13 includes: wherein the metric indicates one or more of the following: congestion, low bandwidth, packet loss, interference, or packet error.
[0087] In Example 15, the subject of Examples 9-14 includes: wherein the operation further includes: in response to determining that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, sending the first packet twice.
[0088] In Example 16, the subject matter of Examples 9-15 includes: wherein the operation further includes: for a third packet created from the plurality of digital samples, determining a first type of data to be transmitted by a transmitter, and for a fourth packet created from the plurality of digital samples, determining a second type of data to be transmitted by a transmitter, the first type of data being a different type from the second type of data; assigning a first priority to the third packet based on the first type of data; assigning a second priority to the fourth packet based on the second type of data, the second priority being greater than the first priority; and in response to determining that a metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, transmitting the third packet to the server computing device through the network connection, and discarding the fourth packet without transmitting the fourth packet to the server computing device.
[0089] Example 17 is a machine-readable medium for prioritizing packets for a network-based software-defined radio system, the machine-readable medium storing instructions that, when executed by a computing device, cause the computing device to perform operations including: receiving the output of an analog-to-digital converter (ADC), the output including a plurality of digital samples of a radio frequency (RF) signal, each digital sample representing an RF signal at a different time, and including a plurality of bits, the plurality of bits including a most significant bit and a second bit below the most significant bit; creating a first packet including the value of the most significant bit of a first digital sample of the plurality of digital samples and the value of the most significant bit of a second digital sample of the plurality of digital samples; creating a packet including the first digital sample... A second group of the second bit value and the second bit value of the second digital sample; determining a metric for a network connection between the computing device and a server computing device, the server computing device providing baseband processing for the network-based software-defined radio system; determining whether the metric for the network connection between the computing device and the server computing device indicates that the quality of service (QoS) of the network connection is below a threshold; and in response to determining that the metric for the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, sending the first packet to the server computing device through the network connection without sending the second packet to the server computing device.
[0090] In Example 18, the subject of Example 17 includes: wherein the operation further includes: receiving metadata from a transmitter computing device or the server computing device, the metadata indicating the data type transmitted by the transmitter and received in the RF signal; assigning a priority to the first packet based on the metadata; and setting the priority field of the header of the first packet to the priority.
[0091] In Example 19, the subject of Example 18 includes: wherein the data type includes audio, video, or signaling data.
[0092] In Example 20, the subject of Example 19 includes: wherein the operation of assigning the priority to the first group includes: assigning signaling data to a higher priority than audio or video data, and assigning audio data to a higher priority than video data.
[0093] In Example 21, the subject of Examples 18-20 includes: wherein the priority field of the header is a quality of service parameter.
[0094] In Example 22, the subject of Examples 17-21 includes: wherein the metric indicates one or more of the following: congestion, low bandwidth, packet loss, interference, or packet error.
[0095] In Example 23, the subject of Examples 17-22 includes: wherein the operation further includes: in response to determining that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, sending the first packet twice.
[0096] In Example 24, the subject matter of Examples 17-23 includes: wherein the operation further includes: for a third packet created from the plurality of digital samples, determining a first type of data transmitted by the transmitter, and for a fourth packet created from the plurality of digital samples, determining a second type of data transmitted by the transmitter, wherein the first type of data and the second type of data are different types; assigning a first priority to the third packet based on the first type of data; assigning a second priority to the fourth packet based on the second type of data, wherein the second priority is greater than the first priority; and in response to determining that a metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold, transmitting the third packet to the server computing device through the network connection, and discarding the fourth packet without transmitting the fourth packet to the server computing device.
[0097] Example 25 is a computing device for prioritizing packets for a network-based software-defined radio system. The computing device includes: a unit for receiving the output of an analog-to-digital converter (ADC), the output including a plurality of digital samples of a radio frequency (RF) signal, each digital sample representing an RF signal at a different time and including a plurality of bits, the plurality of bits including a most significant bit and a second bit below the most significant bit; a unit for creating a first packet including the value of the most significant bit of a first digital sample and the value of the most significant bit of a second digital sample; and a unit for creating a second packet including the value of the second bit of the first digital sample and the value of the second bit of the second digital sample. The system includes: a packet-gathering unit; a unit for determining a metric of a network connection between the computing device and a server computing device, the server computing device providing baseband processing for the network-based software-defined radio system; a unit for determining whether the metric of the network connection between the computing device and the server computing device indicates that the network connection has a quality of service (QoS) below a threshold; and a unit for sending the first packet to the server computing device via the network connection without sending the second packet to the server computing device in response to determining that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold.
[0098] In Example 26, the subject of Example 25 includes: a unit for receiving metadata from a transmitter computing device or the server computing device, the metadata indicating the data type transmitted by the transmitter and received in the RF signal; a unit for assigning a priority to the first packet based on the metadata; and a unit for setting a priority field in the header of the first packet to the priority.
[0099] In Example 27, the subject of Example 26 includes: wherein the data type includes audio, video, or signaling data.
[0100] In Example 28, the subject of Example 27 includes: wherein the unit for assigning the priority to the first group includes: a unit for assigning signaling data to a higher priority than audio or video data, and assigning audio data to a higher priority than video data.
[0101] In Example 29, the topics of Examples 26-28 include: wherein the priority field of the header is a quality of service parameter.
[0102] In Example 30, the subject of Examples 25-29 includes: wherein the metric indicates one or more of the following: congestion, low bandwidth, packet loss, interference, or packet error.
[0103] In Example 31, the subject of Examples 25-30 includes: wherein the computing device further includes: a unit for sending the first packet twice in response to determining that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below a threshold.
[0104] In Example 32, the subject matter of Examples 25-31 includes: units for determining a first type of data transmitted by a transmitter for a third packet created from the plurality of digital samples and a second type of data transmitted by the transmitter for a fourth packet created from the plurality of digital samples, wherein the first type of data and the second type of data are different types; units for assigning a first priority to the third packet based on the first type of data; units for assigning a second priority to the fourth packet based on the second type of data, wherein the second priority is greater than the first priority; and units for transmitting the third packet to the server computing device via the network connection and discarding the fourth packet without transmitting the fourth packet to the server computing device in response to a metric indicating that the QoS of the network connection between the computing device and the server computing device is below a threshold.
[0105] Example 33 is at least one machine-readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform an operation to implement any one of Examples 1-32.
[0106] Example 34 is a device that includes a unit that implements any one of Examples 1-32.
[0107] Example 35 is a system for implementing any one of Examples 1-32.
[0108] Example 36 is a method for implementing any one of Examples 1-32.
Claims
1. A method for prioritizing packets for a network-based software-defined radio system, the method comprising: At the computing device, one or more processors are used: The output of the analog-to-digital converter (ADC) is received, the output including multiple digital samples of a radio frequency (RF) signal, each digital sample representing the RF signal at a different time and including multiple bits, the multiple bits including the most significant bit and a second bit below the most significant bit; Create a first grouping that includes the value of the most significant bit of a first digital sample from the plurality of digital samples and the value of the most significant bit of a second digital sample from the plurality of digital samples; Create a second group that includes the value of the second bit of the first digit sample and the value of the second bit of the second digit sample; Determine the metric for the network connection between the computing device and the server computing device, the server computing device providing baseband processing for the network-based software-defined radio system; Determine whether the metric for the network connection between the computing device and the server computing device indicates that the quality of service (QoS) of the network connection is below a threshold; as well as In response to the determination that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below the threshold, the first packet is sent to the server computing device through the network connection, but the second packet is not sent to the server computing device.
2. The method according to claim 1, further comprising: Receive metadata from the transmitter computing device or the server computing device, the metadata indicating the data type sent by the transmitter and received in the RF signal; Priority is assigned to the first group based on the metadata; as well as Set the priority field of the header of the first group to the specified priority.
3. The method according to claim 2, wherein, The data types include audio, video, or signaling data.
4. The method according to claim 3, wherein, Assigning the priority to the first group includes: assigning signaling data a higher priority than audio or video data, and assigning audio data a higher priority than video data.
5. The method according to claim 2, wherein, The priority field in the header is a quality of service parameter.
6. A computing device for prioritizing packets for a network-based software-defined radio system, the computing device comprising: One or more processors; The memory includes instructions that, when executed, cause the one or more processors to perform operations including: The output of the analog-to-digital converter (ADC) is received, the output including multiple digital samples of a radio frequency (RF) signal, each digital sample representing the RF signal at a different time and including multiple bits, the multiple bits including the most significant bit and a second bit below the most significant bit; Create a first grouping that includes the value of the most significant bit of a first digital sample from the plurality of digital samples and the value of the most significant bit of a second digital sample from the plurality of digital samples; Create a second group that includes the value of the second bit of the first digit sample and the value of the second bit of the second digit sample; Determine the metric for the network connection between the computing device and the server computing device, the server computing device providing baseband processing for the network-based software-defined radio system; Determine whether the metric for the network connection between the computing device and the server computing device indicates that the quality of service (QoS) of the network connection is below a threshold; as well as In response to the determination that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below the threshold, the first packet is sent to the server computing device through the network connection, but the second packet is not sent to the server computing device.
7. The computing device according to claim 6, wherein, The operation also includes: Receive metadata from the transmitter computing device or the server computing device, the metadata indicating the data type sent by the transmitter and received in the RF signal; Priority is assigned to the first group based on the metadata; and Set the priority field of the header of the first group to the specified priority.
8. The computing device according to claim 7, wherein, The data types include audio, video, or signaling data.
9. The computing device according to claim 8, wherein, The operation of assigning the priority to the first group includes: assigning signaling data a higher priority than audio or video data, and assigning audio data a higher priority than video data.
10. The computing device according to claim 7, wherein, The priority field in the header is a quality of service parameter.
11. The computing device according to claim 6, wherein, The metric indicates one or more of the following: congestion, low bandwidth, packet loss, interference, or packet error.
12. The computing device according to claim 6, wherein, The operation also includes: In response to the determination that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below the threshold, the first packet is sent twice.
13. The computing device according to claim 6, wherein, The operation also includes: For a third packet created from the plurality of digital samples, a first type of data transmitted by the transmitter is determined, and for a fourth packet created from the plurality of digital samples, a second type of data transmitted by the transmitter is determined, wherein the first type of data and the second type of data are different types; Based on the first type of the data, a first priority is assigned to the third group; Based on the second type of the data, a second priority is assigned to the fourth group, where the second priority is greater than the first priority; and In response to the determination that the metric of the network connection between the computing device and the server computing device indicates that the QoS of the network connection is below the threshold, the third packet is sent to the server computing device through the network connection, and the fourth packet is discarded without being sent to the server computing device.
14. A computing device for prioritizing packets for a network-based software-defined radio system, the computing device comprising: A unit for receiving the output of an analog-to-digital converter (ADC), the output including multiple digital samples of a radio frequency (RF) signal, each digital sample representing the RF signal at a different time and including multiple bits, the multiple bits including the most significant bit and a second bit below the most significant bit; A unit for creating a first group including the value of the most significant bit of a first digital sample among the plurality of digital samples and the value of the most significant bit of a second digital sample among the plurality of digital samples; A unit for creating a second group that includes the value of the second bit of the first digital sample and the value of the second bit of the second digital sample; A unit for determining a metric of network connectivity between the computing device and a server computing device, the server computing device providing baseband processing for the network-based software-defined radio system; A unit for determining whether the metric of the network connection between the computing device and the server computing device indicates that the quality of service (QoS) of the network connection is below a threshold; as well as A unit for sending the first packet to the server computing device without sending the second packet to the server computing device in response to a metric indicating that the QoS of the network connection between the computing device and the server computing device is lower than the threshold.
15. The computing device of claim 14, further comprising: A unit for receiving metadata from a transmitter computing device or a server computing device, the metadata indicating the data type sent by the transmitter and received in the RF signal; Units used to assign priorities to the first group based on the metadata; as well as A unit used to set the priority field of the header of the first group to the priority.