Grayver, Eugene, et. al, “Extreme Software Defined Radio—GHz in Real-time”, In Proceedings of the IEEE Aerospace Conference 2020, September, 2020.
Miller, David, “Demonstration of GNU Radio High Data Rate BPSK 10 Mbps Modem Real-Time with Only Multi-Core General Purpose Processors”, In Proceedings of the 11th GNU Radio Conference, September 2021.
In the wireless communications industry, high data rate (HDR) Software Defined Radio (SDR) modulators and demodulators currently largely depend on Field Programmable Gate Array (FPGA) components and Application Specific Integrated Circuit (ASIC) components embedded in SDRs to achieve data rates >5.0 Mbps. The FPGA and ASIC components conduct the customized Digital Signal Processing (DSP) intensive processing synchronization functions in real-time.
However, FPGAs and ASICs are typically relatively expensive to develop, purchase, and/or reconfigure and one could reasonably conclude that SDRs with FPGAs and ASICs are not literally true SDRs because they depend on “firmware” or hardware components rather than “software” for their high speed DSP demodulation functions. Using firmware and hardware based components does not provide flexibility to quickly implement new waveforms and algorithms.
On the other hand, a General Purpose Processor (GPP) SDR using only software has a technical and financial advantage when one needs to modify or add new waveforms and algorithms quickly to the SDR. The GPP SDR approach also has much lower upfront costs for the baseline hardware, software, and development activity. Software SDRs are also easily portable from one GPP based PC/server unit/chassis to another.
The past disadvantage of SDRs using only General Purpose Processor (GPP) components in a Commercial-Off-The-Shelf (COTS) Personal Computers (PC) unit or server is that GPP SDRs have generally been limited to data rates of 5.0 Megabits per second (Mbps) in real-time because of the DSP processing speed limitations of GPP components with COTS operating systems and COTS software like C++.
However, a SDR implementer can now expand the real-time data rate capability of a GPP SDR by using a multi-core GPP PC or server at a relatively very low cost because of the following three recent trends in the Personal Computer (PC) and Server market and software industry:
Moore's Law on increasing the speeds on an individual GPP single core has mostly stagnated for at least the last 10 years. However, the PC/Server industry trend to expand the number of cores in a GPP now provides a path forward to greatly expand GPP SDR performance speeds to support much higher SDR real-time data rates.
Successful specific algorithm feasibility attempts at higher data rates with GPP SDRs and without FPGA or ASIC components have recently been achieved with the SDR prior art as discussed in the “Other Publications” references of this claim, but with one significant limitation. The limitation of the previous attempts is that those GPP HDR SDR approaches require a frame counter to recover the original transmitted frame stream after parallel chain processing. That frame counter approach may greatly reduce the commercial potential of the approach for customers of a satellite network for example who do not want to provide information to the network operator about their internal frame structure or even want a Network operator to “break” into their frames to process a counter. It is much more desirable to demodulate a HDR waveform in a more generic manner with parallel GPP core chains and recover the bits and frames in the original transmitted order without needing the detailed internal bit structure or counter inside the frames. Also, some frame structures like Consultative Committee for Space Data Systems (CCSDS) use virtual channels in their downlink frames with a separate frame counter for each virtual channel that makes the prior art approach awkward or possibly not even practical commercially.
Also, other parallel multi-core processing SDR attempts as discussed in the “U.S. Patent Documents” references of this claim for example provide general concepts of a SDR with parallel cores and/or complex approaches very different from the algorithm method of this claim to achieve high data rate operations with a GPP SDR. Therefore, those previous art approaches seem to lack a specific and straight-forward algorithm demodulation approach like adding preamble markers as complex I/O channel samples directly to fixed length chunks created from the incoming sample stream to efficiently take advantage of GPP multi-cores, COTS hardware, and COTS software in order to implement a cost-effective HDR GPP SDR demodulation unit.
Therefore, the wireless industry and especially the satellite ground station industry requires more cost effective and improved HDR SDR parallel multi-core algorithm methods that can be used with today's available COTS operating systems, COTS PC/servers, and existing COTS SDR Frameworks to implement a SDR demodulation unit.
The algorithm method of this claim provides a flexible and relatively cost effective method to achieve high date rates (>5.0 Mbps) with only a multi-core GPP SDR, a single COTS PC/server, COTS operating system, COTS and Modified-COTS SDR framework software for cost effectiveness and flexibility. The algorithm method of this claim also eliminates the limitations of the previous art implementations. For example, as discussed above, previous art limitations include the need to use frame counters, FPGAs/ASICs, or other proprietary and maybe overly complex customized methods to implement a HDR SDR Demodulator with today's available hardware and software.
The present algorithm method overcomes the problems and disadvantages of the prior art for high data rate (HDR) demodulation with a multi-core General Purpose Processor (GPP) Software Defined Radio (SDR) by adding a “preamble” as I/O channel complex samples directly to chunks of received complex I/O channel samples created from an incoming single continuous digital serial complex I/O channel sample stream before conducting parallel synchronization intensive processing.
When the Radio Frequency (RF) transmitting source uses Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), or higher order modulation waveforms, a continuous bit stream >5.0 Megabits per second (Mbps), and equal length frames with a fixed bit pattern Acquisition Synchronization Marker (ASM), the algorithm method along with a multi-core GPP can be used to support real-time HDR SDR demodulation functions.
Specifically, the algorithm method conducts real-time HDR SDR demodulation functions by first breaking the incoming single serial complex I/O channel sample stream into parallel overlapping “chunk” streams and adds a complex I/O fixed pattern “Preamble” to each individual chunk in each chunk stream. Adding a preamble in complex I/O format to each chunk is only mildly similar to adding metadata tags as text and/or in “real type” format to samples and then the tags would propagate with the sample stream through the SDR demodulator processing blocks via a separate data flow or via extra processing at each SDR processing block. The tag approach would significantly impact the processing speed required by a HDR GPP SDR. Therefore, the approach of this preamble algorithm method does not use a metadata tag approach, but first directly inserts a preamble in complex I/O format into each chunk of each chunk stream for processing efficiency with a GPP SDR framework that streams samples/bits quickly into and out of each processing block. Then, secondly, the algorithm method sends the overlapping chunk streams with preambles to parallel symbol synchronization and carrier synchronization chains and each synchronization chain is assigned its own core. Then, thirdly and lastly, after conducting processing intensive synchronization functions using parallel synchronization chains and cores, the added chunk preamble along with the known frame ASM and known frame length are used to recover the original frame data stream that the original RF transmitting source generated, modulated, and radiated.
Along with the algorithm method of this claim, a SDR implementer only needs to use a Commercial-Off-The-Shelf (COTS) Personal Computer (PC) or server with a multi-core GPP, a COTS operating system, and COTS and Modified COTS software to implement a SDR Demodulator that can perform at real-time data rates >5.0 Mbps.
For a more complete understanding of the algorithm method in this claim, and the advantages thereof compared to the prior art, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
A multi-core General Purpose Processor (GPP) Software Defined Radio (SDR) unit that includes the algorithm method in this claim can demodulate waveforms at high data rates >5.0 Megabits per second (Mbps) in real-time and consists of three main parts.
The first part of the SDR Demodulator is called the “SDR Demodulator Front-End” that creates parallel chunk chain streams by generating multiple overlapping complex I/O channel sample streams from the incoming single continuous digital serial complex I/O channel sample stream. Creating each final chunk includes adding a known fixed pattern and fixed length “Preamble” in complex I/O format within each chunk in each chunk chain stream. The preamble approach is the key part of the algorithm method of this claim.
The second part of the SDR Demodulator is called the “SDR Demodulator Parallel Synchronization Chains” that process each chunk chain stream through its own separate Symbol Synchronization and Carrier Synchronization chain. At least one separate GPP core is allocated to each synchronization chain.
The third part of the SDR Demodulator is called the “SDR Demodulator Back-End” that conducts the frame recovery process by using the added chunk preamble marker of the preamble along with the known frame Acquisition Synchronization Marker (ASM) and known frame length to recover the original transmit source frame data stream in the correct order with no lost frames, no missing bits in frames, no duplicate frames from overlapping chunks, and no extra bits between frames because of the overlapping chunk parallel approach.
The multi-core GPP SDR Demodulator along with the algorithm method in this claim can perform demodulation processes under the following three communications link scope items at data rates >5.0 Mbps in real-time:
The SDR Demodulator Front-End 202 creates multiple overlapping complex I/O sample chunk chain streams from the incoming single serial complex I/O channel sample stream 205 via the Digital Complex I/O Sample Splitter 206 and Delay and Delete Functions for each chunk chain 213, 220, except the first chain. The SDR Demodulator Front-End creates each chunk with “M” samples from a block of “S” samples from the incoming serial complex I/O sample stream 205 with an overlap process 208, 215, and 222. Then, the SDR Demodulator Front-End adds a fixed pattern Preamble in complex I/O format to the front of each chunk in each chunk chain 210, 217, and 224. I/O sample data flows between blocks in 202 are depicted by 207, 209, 212, 214, 216, 219, 221, and 223. The resulting multiple parallel chunk chain streams 211, 218, and 225 then flow onto the second part of the SDR Demodulator. Adding a preamble in complex I/O format to each chunk is only mildly similar to adding metadata tags as text and/or in “real type” format to samples and then the tags would propagate with the sample stream through the SDR demodulator processing blocks via a separate data flow or via extra processing at each SDR processing block. The tag approach would significantly impact the processing speed required by a HDR GPP SDR. Therefore, the approach of this preamble algorithm method does not use a metadata tag approach, but directly inserts a preamble in complex I/O format into each chunk of each chunk stream for processing efficiency with a GPP SDR framework that streams samples/bits quickly into and out of each processing block.
The SDR Demodulator Parallel Synchronization Chains 203 conduct the processing intensive symbol synchronization and carrier synchronization functions. The inputs to 203 have a complex I/O type format, but the outputs from 203 are demodulated bits with a real type format. Each synchronization chain has a symbol synchronizer 226, 230, and 234 and a carrier synchronizer 228, 232, and 236. I/O sample data flows between the symbol synchronizer blocks and the carrier synchronizer blocks are depicted by 227, 231, and 235. Typically, for HDR SDR applications, a nominal two samples per symbol (or specifically two samples per bit if BPSK) are used and sufficient to achieve both good processing efficiency and good demodulation performance quality, but four samples per symbol could be used. The transmitting source symbol clock frequency and SDR Demodulator symbol clock frequency will not be identical, therefore the number of demodulated output symbols in a chunk will be about half the number of samples in the original chunk, but not always exactly half the number of samples. For example, the number of output bits per chunk with BPSK can vary by a few bits from exactly half. The non-deterministic number of bits per chunk of samples is actually the main reason the preamble is required to recombine or “stitch” the parallel chains' overlapping output streams back together into the exact original transmitter source single serial frame stream (bit stream) with no errors. The continuous re-synchronization at the beginning of each chunk that causes bad or degraded bits until synchronization lock is the reason that each chunk requires overlap relative to a previous chunk on the previous parallel chain.
The SDR Demodulator Back-End 204 recombines (“stitches”) the incoming chunk bit data flow streams 229, 233, and 237 from the Parallel Synchronization Chains 203 outputs back together into the original transmitting source frame/data stream order with no lost frames, no duplicate frames from overlapping chunks, no extra bits between frames, and no missing bits. The SDR Demodulator Back-End first extracts the chunks 238, 240, and 242 from each chunk chain and multiplexes the chunk chains 244 into a single serial stream of chunks 245 that flows onto the final functions 246 of the SDR Demodulator Back-End 204 and also the SDR Demodulator 201. The bit data flows between the chunk extraction blocks and the multiplexer are depicted by 239, 241, and 243. The final functions 246 use the frame ASM and known frame length to extract and recombine the frames into the original transmitted stream of frames. Specifically, the final functions 246 include using the known frame ASM and known frame length to remove the duplicate bits that still exist in the single multiplexed chunk stream 245 because of the earlier chain stream overlapping process. The output 247 of the SDR Demodulator now matches the input 100 to the original Transmit Source 101 of
The chunk length can vary for each communications link depending on the frame length of the frame stream generated by the original transmitting source. Typically, a chunk length of about 10-20 frames provides simultaneously both efficient HDR processing performance and sufficiently low processing time latency between the SDR Demodulator input 205 and SDR Demodulator output 247.
The blocks in 702 correspond to the functional blocks in the
The blocks in 703 correspond to the functional blocks in the
The blocks in 704 correspond to the functional blocks in the
GNU Radio C++ In-Tree blocks (Blocks already available with GNU Radio with no changes required) and customized modified GNU Radio C++ blocks were used to implement the prototype SDR Demodulator with the algorithm method of this claim. However, the algorithm method claim extends to other SDR frameworks, not just GNU Radio or SDR frameworks based on C++ code. Also, different RF loop test scenarios were conducted with the prototype HDR GPP SDR of