SLIDE 1 Real-Time Telemetry Group Variant of Shaped Offset Quadrature Phase Shift Keying (SOQPSK-TG) Communications with CUDA
Andrew D. McMurdie Brigham Young University
SLIDE 2 Outline
▪ Telemetry Application ▪ SOQPSK-TG & iNET ▪ Receiver System ▪ Preamble Detection ▪ Frequency Offset Estimation ▪ Channel Estimation ▪ Equalization ▪ Results/Conclusions
SLIDE 3
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?
SLIDE 4
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
SLIDE 5 iNET Formatting
▪ integrated Network Enhanced Telemetry (iNET) ▪ Specifies packetized transmission mode ▪ Preamble, Attached Sync Marker, LDPC codeword
Preamble 128 bits ASM 64 bits Data 6144 bits
CD98 CD98 CD98 CD98 CD98 CD98 CD98 CD98
SLIDE 6 Receiver System
channel h(n) SOQPSK- TG
noise
estimate channel compute equalizer equalizer data detector preamble detector frequency estimator
Received samples r[n]
SLIDE 7 Receiver System
channel h(n) SOQPSK- TG
noise
estimate channel compute equalizer equalizer data detector preamble detector frequency estimator
Received samples r[n] Implemented on GPU
SLIDE 8 Preamble Detection
channel h(n) SOQPSK- TG
noise
estimate channel compute equalizer equalizer data detector preamble detector frequency estimator
SLIDE 9
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
SLIDE 10
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
SLIDE 11 Preamble Detection
▪ Leveraged preamble structure ▪ q(l) are samples of modulated CD98 sequence
Preamble 128 bits q(l) q(l) q(l) q(l) q(l) q(l) q(l) q(l)
SLIDE 12 Preamble Detection
LNCPDI-1[u]
SLIDE 13 Preamble Detection
LNCPDI-1[u] LNCPDI-1[u+1]
SLIDE 14 Preamble Detection
LNCPDI-1[u] LNCPDI-1[u+1] LNCPDI-1[u+2]
SLIDE 15 Preamble Detection
LNCPDI-1[u] LNCPDI-1[u+1] LNCPDI-1[u+2] LNCPDI-1[u+Lq]
SLIDE 16 Preamble Detection
LNCPDI-1[u] LNCPDI-1[u+1] LNCPDI-1[u+2] LNCPDI-1[u+Lq] But wait! We’ve computed these correlations previously
SLIDE 17 Preamble Detection
LNCPDI-1[u] LNCPDI-1[u+1] LNCPDI-1[u+2] LNCPDI-1[u+Lq] And these ones, too LNCPDI-1[u+Lq+1]
SLIDE 18 Preamble Detection
▪ Modified kernel to first calculate all inner sums
- nce, perform outer sums second
▪ Increased speed by a factor of 20 ▪ Preamble detector was no longer processing bottleneck
SLIDE 19 Frequency Offset Estimation
channel h(n) SOQPSK- TG
noise
estimate channel compute equalizer equalizer data detector preamble detector frequency estimator
SLIDE 20 Frequency Offset Estimation
▪ Once we have preamble locations, this is simply a different correlation over inner six q(l) sequences ▪ Performed on all packets in our data buffer at once ▪ Very efficient on GPU
Preamble q(l) q(l) q(l) q(l) q(l) q(l) q(l) q(l)
SLIDE 21 Channel Estimation
channel h(n) SOQPSK- TG
noise
estimate channel compute equalizer equalizer data detector preamble detector frequency estimator
SLIDE 22 Channel Estimation
▪ Is a vector matrix multiplication ▪ Use cuBLAS cgemm() function to evaluate
channel h(n) SOQPSK- TG
noise
estimate channel preamble detector frequency estimator
SLIDE 23 Channel Estimation
▪ Is a vector matrix multiplication ▪ Use cuBLAS cgemm() function to evaluate
channel h(n) SOQPSK- TG
noise
estimate channel preamble detector frequency estimator
SLIDE 24 Channel Estimation
▪ Is a matrix-vector multiplication ▪ Use cuBLAS cgemm() function to evaluate
channel h(n) SOQPSK- TG
noise
estimate channel preamble detector
Preamble ASM
Can use knowledge of x[n] to estimate channel x[n]
SLIDE 25
Channel Estimation
▪ Build convolution matrix X with x[n] ▪ Use left-sided pseudo-inverse to solve for h ▪ We precompute and store 𝑠 𝑜 = 𝑦 𝑜 ∗ ℎ 𝑜 + 𝑥[𝑜] 𝒔 = Xh + w 𝒊 = 𝒀∗𝒀 −1𝒀∗𝒔 𝒀∗𝒀 −1𝒀∗
SLIDE 26 Equalization
channel h(n) SOQPSK- TG
noise
estimate channel compute equalizer equalizer data detector preamble detector frequency estimator
SLIDE 27 Equalization
▪ Implementing four equalizers
- 1. Zero-Forcing
- 2. MMSE in time
- 3. MMSE in frequency
- 4. Constant Modulus Algorithm (Constant Envelope)
SLIDE 28
Equalization
▪ Zero-Forcing and MMSE equalizers require matrix inversion to evaluate (naïve solution)
SLIDE 29
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
SLIDE 30
Equalization
▪ Matrices to be inverted are all Toeplitz ▪ Can use recursive Levinson-Durbin algorithm to solve linear equation
(𝐈†𝐈)𝑑𝑎𝐺= 𝐈†𝑣𝑜0 (𝐇𝐇† + 𝜏 w
2
𝜏𝑡
2 I𝑀2+𝑀1+1)𝑑𝑁𝑁𝑇𝐹= g†
SLIDE 31
Equalization
▪ Levinson Durbin gives us solution in O(n^2) time ▪ Runs fast enough for real-time solution
SLIDE 32 Detection
channel h(n) SOQPSK- TG
noise
estimate channel compute equalizer equalizer data detector preamble detector frequency estimator
SLIDE 33
Detection
▪ For CPM waveform, optimal thing to do is use Viterbi algorithm for detection ▪ Viterbi can be complicated to implement ▪ Need something simpler
SLIDE 34
Detection
▪ Use OQPSK detector to make final bit decisions
SLIDE 35
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
SLIDE 36 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
- nce with much less equipment
▪ GPU offers flexibility in implementing new features
SLIDE 37 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!