Real-Time Telemetry Group Variant of Shaped Offset Quadrature Phase Shift Keying (SOQPSK-TG) Communications with CUDA Andrew D. McMurdie Brigham Young University
Outline ▪ Telemetry Application ▪ SOQPSK-TG & iNET ▪ Receiver System ▪ Preamble Detection ▪ Frequency Offset Estimation ▪ Channel Estimation ▪ Equalization ▪ Results/Conclusions
Telemetry Application ▪ Building a system for the test range at Edwards Air Force Base ▪ Telemetry receivers won’t lock because of multipath - plane can’t get clearance to take off ▪ Need real-time equalizer to help capture telemetry ▪ Can we build SDR in GPU to solve problem?
SOQPSK-TG ▪ Shaped Offset Quadrature Phase Shift Keying – Telemetry Group ▪ Partial response CPM waveform with h=.5, raised cosine pulse shape ▪ TG version has constrained ternary alphabet with precoding function
iNET Formatting ▪ integrated Network Enhanced Telemetry (iNET) ▪ Specifies packetized transmission mode ▪ Preamble, Attached Sync Marker, LDPC codeword Preamble ASM Data 128 bits 64 bits 6144 bits CD98 CD98 CD98 CD98 CD98 CD98 CD98 CD98
Receiver System Received samples r[n] frequency SOQPSK- channel preamble estimate compute TG h ( n ) estimator channel detector equalizer noise data equalizer detector
Receiver System Implemented on GPU Received samples r[n] frequency SOQPSK- channel preamble estimate compute TG h ( n ) estimator channel detector equalizer noise data equalizer detector
Preamble Detection frequency SOQPSK- channel preamble estimate compute TG h ( n ) estimator channel detector equalizer noise data equalizer detector
Preamble Detection ▪ Must be robust in presence of unknown multipath, unknown frequency and phase offset ▪ All detectors prototyped were Maximum-Likelihood (ML) detectors ▪ The optimal detectors were too computationally complex to allow us to run in real-time
Preamble Detection Function ▪ Non-Coherent Post Detection Integration (NCPDI) ▪ r(n) are received SOQPSK-TG samples ▪ p(n) are samples of local (good) copy of preamble ▪ Function evaluated over a packet’s worth of data
Preamble Detection Preamble 128 bits q(l) q(l) q(l) q(l) q(l) q(l) q(l) q(l) ▪ Leveraged preamble structure ▪ q(l) are samples of modulated CD98 sequence
Preamble Detection L NCPDI-1 [u]
Preamble Detection L NCPDI-1 [u] L NCPDI-1 [u+1]
Preamble Detection L NCPDI-1 [u] L NCPDI-1 [u+1] L NCPDI-1 [u+2]
Preamble Detection L NCPDI-1 [u] L NCPDI-1 [u+1] L NCPDI-1 [u+2] L NCPDI-1 [u+L q ]
Preamble Detection L NCPDI-1 [u] L NCPDI-1 [u+1] L NCPDI-1 [u+2] L NCPDI-1 [u+L q ] But wait! We’ve computed these correlations previously
Preamble Detection L NCPDI-1 [u] L NCPDI-1 [u+1] L NCPDI-1 [u+2] L NCPDI-1 [u+L q ] L NCPDI-1 [u+L q +1] And these ones, too
Preamble Detection ▪ Modified kernel to first calculate all inner sums once, perform outer sums second ▪ Increased speed by a factor of 20 ▪ Preamble detector was no longer processing bottleneck
Frequency Offset Estimation frequency SOQPSK- channel preamble estimate compute TG h ( n ) estimator channel detector equalizer noise data equalizer detector
Frequency Offset Estimation ▪ Once we have preamble locations, this is simply a different correlation over inner six q(l) sequences Preamble q(l) q(l) q(l) q(l) q(l) q(l) q(l) q(l) ▪ Performed on all packets in our data buffer at once ▪ Very efficient on GPU
Channel Estimation frequency SOQPSK- channel preamble estimate compute TG h ( n ) estimator channel detector equalizer noise data equalizer detector
Channel Estimation ▪ Is a vector matrix multiplication ▪ Use cuBLAS cgemm() function to evaluate SOQPSK- channel preamble frequency estimate TG h ( n ) detector estimator channel noise
Channel Estimation ▪ Is a vector matrix multiplication ▪ Use cuBLAS cgemm() function to evaluate frequency SOQPSK- channel preamble estimate estimator TG h ( n ) detector channel noise
Channel Estimation ▪ Is a matrix-vector multiplication ▪ Use cuBLAS cgemm() function to evaluate estimate channel SOQPSK- preamble Preamble ASM channel h ( n ) TG detector noise x[n] Can use knowledge of x[n] to estimate channel
Channel Estimation ▪ Build convolution matrix X with x[n] 𝑠 𝑜 = 𝑦 𝑜 ∗ ℎ 𝑜 + 𝑥[𝑜] 𝒔 = Xh + w ▪ Use left-sided pseudo-inverse to solve for h = 𝒀 ∗ 𝒀 −1 𝒀 ∗ 𝒔 𝒊 𝒀 ∗ 𝒀 −1 𝒀 ∗ ▪ We precompute and store
Equalization frequency SOQPSK- channel preamble estimate compute TG h ( n ) estimator channel detector equalizer noise data equalizer detector
Equalization ▪ Implementing four equalizers 1. Zero-Forcing 2. MMSE in time 3. MMSE in frequency 4. Constant Modulus Algorithm (Constant Envelope)
Equalization ▪ Zero-Forcing and MMSE equalizers require matrix inversion to evaluate (naïve solution)
Equalization ▪ Using batched processing and solving for inverse through LU decomposition, could not process in real-time ▪ Can’t use bank of GPUs to solve ▪ Stopped our experiments; don’t have results yet
Equalization ▪ Matrices to be inverted are all Toeplitz ▪ Can use recursive Levinson-Durbin algorithm to solve linear equation (𝐈 † 𝐈)𝑑 𝑎𝐺 = 𝐈 † 𝑣 𝑜 0 2 (𝐇𝐇 † + 𝜏 w 2 I 𝑀 2 +𝑀 1 +1 )𝑑 𝑁𝑁𝑇𝐹 = g † 𝜏 𝑡
Equalization ▪ Levinson Durbin gives us solution in O(n^2) time ▪ Runs fast enough for real-time solution
Detection frequency SOQPSK- channel preamble estimate compute TG h ( n ) estimator channel detector equalizer noise data equalizer detector
Detection ▪ For CPM waveform, optimal thing to do is use Viterbi algorithm for detection ▪ Viterbi can be complicated to implement ▪ Need something simpler
Detection ▪ Use OQPSK detector to make final bit decisions
Results ▪ We measure system performance by bit error rate (BER) ▪ Send PN11 pseudo-random sequence for data ▪ If you’d like the results of the experiments or to know more about the GPU implementation, contact me by email
Conclusions ▪ GPU allows us to construct a real-time Software Defined Radio system for SOQPSK-TG communications ▪ We gain the ability to run several equalizers at once with much less equipment ▪ GPU offers flexibility in implementing new features
Questions? Andrew McMurdie amcmurdie@gmail.com Please complete the Presenter Evaluation sent to you by email or through the GTC Mobile App. Your feedback is important!
Recommend
More recommend