| 26 | | - SymbolSyncPoly |
| 27 | | - Multi-rateSynchronizer |
| 28 | | - FrameSynchronizer |
| | 26 | The multi-rate synchronization component library builds off three components, |
| | 27 | each implementing a polyphase filter bank for multi-rate resampling and |
| | 28 | simultaneous matched-filter decimation of digital symbols. |
| | 29 | |
| | 30 | \subsection SymbolSyncPoly Symbol Synchronizer (Polyphase Filter Bank) |
| | 31 | The SymbolSyncPoly component efficiently performs matched-filter decimation of |
| | 32 | received digital signals and returns the optimal sampling point by |
| | 33 | interpolating between available samples. These three steps are performed |
| | 34 | simultaneously by choosing the appropriate filter from a bank of |
| | 35 | matched-filter coefficients, each offset by a different sampling phase. |
| | 36 | |
| | 37 | Timing error is calculated by computing the derivative matched filter output |
| | 38 | and drives the loop and flow controls to produce both the appropriate output |
| | 39 | sample and the correct filter bank index from which it is calculated. The |
| | 40 | timing feedback loop operates at one sample per symbol. |
| | 41 | |
| | 42 | Although timing may be done asynchronously, the carrier offset must be small |
| | 43 | enough such that employing the matched filter does not introduce sufficient |
| | 44 | pulse distortion and inter-symbol interference (ISI). Typical carrier offsets |
| | 45 | should not exceed 5% of the signal bandwidth. |
| | 46 | |
| | 47 | The component uses the FIRPolyphaseFilterBank class in the OSSIE Signal |
| | 48 | Processing Library. For more information we direct the interested reader to |
| | 49 | the following reference: |
| | 50 | |
| | 51 | \cite M. Rice and fred harris, "Polyphase Filterbanks for Symbol Timing |
| | 52 | Synchronization in Sampled Data Receivers," in MILCOMM Proceedings, vol. |
| | 53 | 2, October 2002, pp. 982--986. |
| | 54 | |
| | 55 | \subsection MultirateSynchronizer Multi-rate Synchronizer |
| | 56 | The MultirateSynchronizer expands upon the functionality of the SymbolSyncPoly |
| | 57 | component by also adjusting carrier phase. Before matched filtering, the |
| | 58 | MultirateSynchronizer performs complex mixing on the input signal with a |
| | 59 | numerically-controlled oscillator. The phase of the oscillator is adjusted by |
| | 60 | the output error after timing correction. |
| | 61 | |
| | 62 | Phase error is calculated once per symbol, and the internal NCO is updated |
| | 63 | at the same rate. The phase error itself is specific to the modulation scheme |
| | 64 | used to transmit data. The current modulation schemes suppported by the |
| | 65 | MultirateSynchronizer component are |
| | 66 | - BPSK |
| | 67 | - QPSK |
| | 68 | - 8-PSK |
| | 69 | - 16-QAM |
| | 70 | - 4-PAM |
| | 71 | |
| | 72 | \subsection FrameSynchronizer Frame Synchronizer |
| | 73 | The FrameSynchronizer component extends functionality beyond the |
| | 74 | MultirateSynchronizer by introducing frames of data. Each frame contains a |
| | 75 | BPSK header which includes: |
| | 76 | - a preamble phasing pattern (\c 10101010...) for initial timing and phase |
| | 77 | recovery |
| | 78 | - a P/N code for identification and frame synchronization |
| | 79 | - control bits to determine modulation scheme and frame length |
| | 80 | - additinal control bits for future expansion |