This description relates to encoding.
Continuous phase modulation (CPM) is a nonlinear modulation scheme in which the information symbols are used to modulate the phase of a complex exponential, for example. It has been shown that a conventional CPM may be decomposed into a linear continuous phase encoder followed by a memory-less modulator. It may be desirable to adapt CPM systems for more complex systems.
According to an example embodiment, a method may include placing a multi-modulation index continuous phase encoder (CPE) in a known initial state prior to receiving a data block, receiving, at the CPE, a data block that includes one or more symbols, determining one or more termination symbols to be appended to the received data block, receiving, at the CPE, the one or more termination symbols, wherein an ending state of the CPE after receiving the one or more termination symbols is the same as the known initial state of the CPE.
According to another example embodiment, a method may include placing a multi-modulation index continuous phase encoder (CPE) in an initial zero state prior to receiving a data block, the state of the CPE being based on one or more received symbols and a partial cumulative phase for each of a plurality of modulation indexes, receiving a data block including one or more symbols, and determining one or more termination symbols to be appended to the received data block that forces each of the partial cumulative phases to zero after receiving the data block and the one or more termination symbols, and receiving the determined termination symbols to cause the CPE to end at the zero state.
According to another example embodiment, a method may include receiving, at a multiple modulation index continuous phase encoder (CPE), a data block that includes one or more symbols, determining one or more termination symbols to be appended to the received data block that forces a partial cumulative phase associated with each of a plurality of modulation indexes for the CPE to a zero state, and inputting the determined termination symbols to the CPE.
According to an example embodiment, an apparatus may include a multiple modulation index continuous phase encoder (CPE) configured to receive a data block that includes one or more symbols, and a termination symbol generator that is configured to: determine one or more termination symbols to be appended to the received data block that forces a partial cumulative phase associated with each of a plurality of modulation indexes for the CPE to a zero state, and input the determined termination symbols to the CPE.
According to yet another example embodiment, an apparatus may include a multiple modulation index continuous phase encoder (CPE) configured to perform continuous phase encoding on one or more received symbols and to output CPE encoded symbols, the CPE being configured to a known initial state prior to receiving a data block of one or more symbols, and a termination symbol (TS) generator coupled to the CPE, the TS generator configured to generate one or more termination symbols to be appended to the received data block, wherein an ending state of the CPE after receiving the one or more termination symbols is the same as the known initial state of the CPE.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
The base station 104 may include a cellular or WiMAX base station (BS), a node B, an 802.11 access point, or other infrastructure node, according to various example embodiments. The term “base station” (BS) may be used herein and may include any type of infrastructure node. The mobile stations 106, 108, 110 may include laptop or notebook computers, smartphones, personal digital assistants (PDAs), cellular telephones, WiMAX device, subscriber station, or any other wireless device, according to example embodiments. The term “wireless node” may include any type of wireless node, such as base stations, mobile stations, etc. While the present disclosure may use some of the terminology of WiMax or other wireless standards, aspects of the present disclosure may be applicable to any networking or wireless technologies.
According to an example embodiment, a continuous phase modulation (CPM) transmitter may include a continuous phase encoder (CPE) to perform continuous phase encoding on received symbols, and a phase modulator to phase modulate an output signal based on one or more CPE encoded symbols received from the CPE. According to an example embodiment, a trellis termination symbol generator may be provided to determine (or calculate) and generate one or more termination symbols. The termination symbols may be appended to the end of a block of data symbols that are input to a continuous phase encoder (CPE). The CPE may be provided in a known initial state, such as the zero state, prior to receiving the data block, although any known initial state may be used. The termination symbols input to the CPE may operate to force or drive the ending state of the CPE (e.g., prior to receipt of the next block, such as after the data block and termination symbols have been input to the CPE) to the same state as the initial state of the CPE. Thus, in this manner, by generating or input termination symbols that may drive or force the ending state of the CPE to be the same as the initial state of the CPE for a data block, phase discontinuities between data blocks may at least be decreased and/or avoided, which may improve spectral efficiency of the CPM transmitter.
Continuous phase modulation (CPM) is a modulation scheme in which the information symbols are used to modulate the phase of a complex exponential. The CPM waveform may, for example, operate or change, as a finite state machine, where the phase output by the CPM for the current (or kth) symbol may be a function of the current (or kth) symbol and L−1 previous symbols, for example.
A continuous phase modulation (CPM) transmitter may include, for example, a continuous phase encoder (CPE) that performs continuous phase encoding on received symbols, followed by a phase modulator (such as a memoryless modulator) that may phase modulate a signal based on the received CPE encoded symbols output by the CPE. The continuous phase encoder (CPE) may typically define the phase trellis upon which the signal is designed. CPM may be modelled or provided as a CPE followed by a memoryless modulator, wherein the memoryless characteristic of the modulator typically means that it operates only on the current input (i.e., without regard to the past input or past inputs). This is merely an example, and other types of modulators may be used. This decomposition (which is known as Rimoldi's tilted phase decomposition) exposes a simpler state space model for CPM (and CPM-derived schemes) and results in a phase trellis that has fewer states. Thus, the tilted phase decomposition leads to reduced complexity receiver design and is otherwise convenient for decoupling the finite state machine nature of CPM from the modulation with which it is concatenated.
In general, a CPE may operate as a finite state machine on a linear mapping of the sequence of information symbols and transitions according to a pre-defined time-dependent state evolution model. Depending on the number of memory elements, L, in the CPE, the resulting scheme can either be classified as full-response (L=1) or partial response (L>1). In the former case, a single symbol causes a time-varying system response for a single symbol interval and is thereafter absorbed as a constant contributor into a cumulative phase term. For partial response schemes, a single symbol actively contributes over L consecutive symbol intervals before entering the phase accumulation unit where a cumulative phase is calculated.
Thus, according to an example embodiment, a CPM system can be decomposed into a linear continuous phase encoder followed by a memory-less modulator or phase modulator. Data symbols may be modified to allow only positive symbol values, for example. The modified symbols may be input to the CPE (continuous phase encoder), where the modified symbols may have a value between 0 and M−1, e.g., Uk ε {0, . . . , M−1}. Thus, for a binary system in which M=2, the input symbols Uk may have a value of either 0 or 1, as a simple example. These symbols are input to the CPE to produce CPE encoded symbols that are input into the phase modulator or memoryless modulator. The CPE can be applied to any CPM-based scheme which operates over the same phase trellis as CPM, according to an example embodiment. Hence, it is widely applicable to a number of communications scenarios.
The output of the CPE is the (L+1)×1 vector, yk, which has elements yk=(θk−L,Uk−(L−1), . . . ,Uk)T. The state of the CPE is defined by xk=(θk−L,Uk−(L−1), . . . ,Uk−1)T. Uk is the current or most recently received input symbol. Thus, the state of the CPE may be defined based on the L−1 most recently received symbols before the current symbol interval (Uk−1, . . . Uk−(L−1)) (which are inputs to the CPE), and a cumulative phase (or cumulative phase term) θk−L which may include contributions from input symbols older than the L most recent symbols. Because it includes contributions from multiple older symbols, the cumulative phase θk−L may operate as a smoothing function between symbols, and thus, may reduce or decrease (or in some cases may eliminate) phase discontinuities between symbols within a data block. By decreasing discontinuities between symbols, the cumulative phase θk−L may improve spectral efficiency of the CPM transmitter, according to an example embodiment of a CPM transmitter. However, in some cases, discontinuities may still exist between data blocks.
Thus, according to an example embodiment, a trellis termination symbol generator may be provided to determine (or calculate) and generate one or more termination symbols to be appended to the end of the modified data symbols of a block that is input to the CPE. The CPE may be provided in a known initial state, such as the zero state, prior to receiving the data block, although any known state may be used. The termination symbols may operate to force or drive the ending state of the CPE (e.g., after the data block and termination symbols have been input to the CPE) to the same state as the initial state of the CPE. Thus, in this manner, by generating or input termination symbols that may drive or force the ending state of the CPE to be the same as the initial state of the CPE for a data block, the phase discontinuities between blocks may be avoided or at least decreased, which may improve spectral efficiency of a CPM transmitter. The operation of the CPE and the example trellis termination generator are described in greater detail below.
For partial response schemes (L>1), the following terminology may be used, by way of example:
The following illustrates an example. However, other examples or embodiments may be used. When the modulation index hk may be expressed as a rational number (such as hk=Kk/P), where Kk and P are relatively prime integers, then the CPM-based scheme operates over a finite trellis and it has a well-defined state space representation. Typically, for multi-index schemes, the modulation indices may be selected in a modulo fashion from a finite set, such that hk=h(k), where h(k)=hk mod Nh, and Nh denotes the number of modulation indices in the set {h0, . . . ,hN
The cumulative phase term may for example operate over the ring of integers modulo P, i.e., θk−L ε {0, . . . ,P−1}[1]. The output of the CPE is the (L+1)×1 vector, yk, which has elements
y
k=(θk−L,Uk−(L−1), . . . ,Uk)T.
The state vector xk (state of the CPE) for the current or kth symbol interval may, for example, have L components, and may be defined as follows:
x
k=(θk−L,Uk−(L−1), . . . ,Uk−1)T.
For the general, multi-index case (wherein Nh>1), the matrices which comprise the state-space of the CPE may be defined as follows:
The CPE has the following state space representation:
x
k+1
=A
k
x
k
+Bu
k
y
k
=Cx
k
+Du
k
Thus, in an example embodiment, the state (xk+1) of the CPE for the next (or k+1) symbol interval may be a function of the current state xk and the current symbol uk that has been input to the CPE, e.g., defined based on the matrices A and B, shown above. Similarly, the output (yk+1)of the CPE for the next (or k+1) symbol interval may be a function of the current state xk and the current symbol uk that has been input to the CPE, e.g., based on matrices C and D, shown above, according to an example embodiment.
Also, the first element of xk[1]=yk[1]=θk−L may typically be computed modulo P.
For L=1 (full-response), the state space representation undergoes the following modification—
and the corresponding state equations are given by
x
k+1
=Ax
k
+B
k
u
k
y
k
=Cx
k
+Du
k.
As in the partial response case, we note that the first element of xk[1]=yk[1]=θk L is computed modulo P, where P is the denominator of the modulation index, for example.
The output of the CPE may be used in a variety of CPM-based schemes. For example, in conventional CPM, the output, yk, of the continuous phase encoder is fed into the input of a memory-less modulator or a in order to construct the continuous-time multi-index CPM signal. Over the kth symbol interval, the complex low-pass equivalent CPM signal may be represented as follows:
which is a constant envelope, continuous phase modulation having multiple modulation indices (i.e., multi-h CPM). T denotes the symbol interval and q(t) is a phase response function, which is defined in order to control the spectral containment of the CPM waveform. In general, smoothly varying longer pulses may typically result in higher spectral efficiency and less leakage into adjacent channels.
In addition, according to an example embodiment, one or more termination (or tail) symbols t0, . . . ,tT−1 may be generated that return the state of the CPE (xk=(θk−L,Uk−(L−1), . . . ,Uk−1)T.) to a known final state (e.g, where the final state of the CPE may be the state of the CPE just prior to the CPE receiving the next data block, and/or the state of the CPE after receiving a data block and the termination symbols for the data block). An extended block may include a data block plus the appended termination symbols. Thus, the termination symbols may be generated to return the state of the CPE at the end of the extended block to the same as the state of the CPE at the beginning of the extended block, for example (e.g., return the CPE to the known zero state or other known state for the end of the extended block, which may be just before receipt of a new data block). The various embodiments and techniques described herein may be useful, for example, in a wide variety of applications and schemes, such as, by way of example, in APP-based decoding schemes (such as max-log-APP and related turbo coding) wherein the initial and final state of the encoder is assumed to be known for calculation of the appropriate path metrics. The various embodiments and techniques described herein may also be used in a variety of other applications or systems. The various techniques and embodiments described herein may also be useful, for example, for blockwise a posterior probability decoding techniques wherein the final state is assumed to be known. For many popular iterative decoding techniques (such as max-log-APP decoding and related turbo decoding), it is advantageous when the decoder both starts and ends in a known state, since the initial and final conditions may typically be used to initialize the calculation of the path metrics. In addition, for CPM-OFDMA, returning the phase state back to its initial value can be used to remove, or at least decrease, phase discontinuity from the transmission and thereby reduce the transmission bandwidth, for a higher spectral efficiency.
According to an example embodiment, a trellis termination symbol generator 218 may be coupled to the multi index CPE 210 and the phase modulator 210. Termination symbol generator 218 may be provided to determine (or calculate) and generate one or more termination symbols. The termination symbols may be appended to the end of a block of data symbols Uk that are input to a continuous phase encoder (CPE) 210. The CPE 210 may be provided in a known initial state, such as the zero state, prior to receiving the data block, although any known initial state may be used. The termination symbols input to the CPE may operate to force or return the block ending state of the CPE (e.g., prior to receipt of the next block, such as after the data block and termination symbols have been input to the CPE 210) to the same state as the initial state of the CPE 210. Thus, in this manner, by generating and inputting termination symbols to CPE 210 that may return the ending state of the CPE 210 to the same state as the initial state of the CPE for a data block, phase discontinuities between data blocks may at least be decreased and/or avoided, which may improve spectral efficiency of the CPM transmitter 200, at least in some cases.
According to an example embodiment, a technique is provided for terminating the trellis of a CPE 210 into a known state by the use of termination symbols, which are generated and appended to a block of data that is input to the CPE. The CPE of a multi-index scheme has a time-varying state space description since the elements of the state matrix (for L>1) or the control matrix (for L=1) are time-dependent. A model for the CPE which takes into account the time-varying nature of the applied modulation index is described. In addition, for example, it may be assumed that a block of N (possibly coded) data symbols {U0, . . . ,UN−1} arrive serially at the CPE 210. After processing the last data symbol, UN−1, the termination symbol generator 218 inputs or sends a series of trellis termination symbols, {t0,t1, . . . ,tT 1} (where ti ε {0, . . . ,M−1}) to the CPE 210. The trellis termination symbols may be numerically calculated, for example, such that the CPE 210 transitions to a known final state xN−r. The length of the termination sequence may be defined based on the value of the cumulative phase when the first termination symbol enters the modulo P adder, the cardinality of the CPM-based scheme (M) and the value of P. The length of the termination sequence may also be defined, according to an example embodiment, such that it is independent of the data sequence. This is described in more detail herein.
In an example embodiment, the data symbols U are received from symbol intervals k=0, . . . , N−1. Then, T trellis termination symbols are generated and sent from termination symbol generator 218 and input to the CPE 210. Thus, in an example embodiment, after the last termination symbol has been sent (or input to CPE 210), there has been sent (or input to CPE 210) a total of N+T symbols (N data symbols, followed by T termination symbols). The last termination symbol appears at time (or symbol interval) N+T−1 (since the block of data starts with a zero index, for example). After sending the last termination symbol, the next state of the CPE will be the zero state (or other desired state) at time N+T.
According to an example embodiment, the all-zero state (which may be referred to as the zero state of the CPE 210) may be selected as the known initial state for CPE 210, although any state of the CPE may be selected as the known initial state. The zero state is merely an example. The all-zero state may be illustrated as xN+T=(0 0 . . . 0), and may be provided as both the initial CPE state and as the (desired) final CPE state. xN+T may refer to the state (X) of the CPE 210 after the CPE has received the last termination symbol, where there may be T termination symbols provided or appended to a block of data, including t0, t1, . . . tT−1, to return the CPE state to the initial state. Thus, if the zero (or all-zero) state is selected as the initial state, then the termination symbols, which are appended to the data block, may be selected and generated by termination symbol generator 218 to return (or force) the state of CPE 210 back to the zero state at the end of the extended block (e.g., after the data block and associated termination symbols have been input into the CPE 210). Thus, the CPE state may be zero (e.g., just prior to receiving the data block) and the ending state for the CPE (e.g., after receiving the data block and associated termination symbols) may also be the zero state. Thus, for example, by using a same (or common) CPE state for both the beginning or initial state and an ending state of an extended block (including data and termination symbols) for a CPE 210, this may avoid or at least decrease the discontinuities in phase (e.g., output by the phase modulator 212) between data blocks. For example, if the ending state of the CPE for a first data block is the same as the initial state for a second data block (e.g., both states being the zero state), then the phase of the signal output by the CPM transmitter may be continuous (or substantially continuous or without discontinuities) at the junction between the first and second data blocks. This is merely an example. In another example embodiment, the trellis for the CPE 210 may be terminated (or ended for a block) into any desired state.
According to an example embodiment, a block-wise transmission may be provided, where N (possibly coded) data symbols, U0, . . . ,UN−1, may be input to the CPE 210 and the last data symbol may be followed by a sequence of one or more termination symbols. the transition that occurs when to (or the first termination symbol) reaches the modulo-P adder, e.g., when the first termination symbol begin contributing to the cumulative phase θk−L. In order to begin (and assuming L>1) the generic k th symbol interval is considered. The state vector evolves in the following manner:
By definition, the cumulative phase may be the modulo P summation of the modified data symbols, each weighted by its respective modulation index factor, K(i):
By the principles of linear superposition (over the ring of integers modulo P), this summation may be equivalently expressed in terms of the partial contributions of terms that are weighted by the same modulation index factor
Referring to the equation above, the bracket in the last U term for each K group is a ceiling operation which rounds up to the nearest integer.
For example, for k=13, L=3, Nh=3, (Nh=3 means there are three modulation indexes in this example), the cumulative phase can be expressed as follows:
θk−L=θ10=(K0(U0+U3+U6+U9)+K1(U1+U4+U7)+K2(U2+U5+U8))mod P
This may provide a partial cumulative phase associated with each modulation index (or associated with each modulation index factor K). Thus, there will be Nh partial cumulative phases (or Nh partial cumulative phase terms) as follows, for example (where n identifies the modulation index):
θk−Ln=(Un+Un+N
n=0, . . . , Nh−1
Thus, it can be seen from the above equation, that each partial cumulative phase (for each modulation index n) may be calculated or determined based on a group of received symbols, for example.
In order to return the cumulative phase term to the zero state, each of the partial cumulative phases should be returned to the zero state, according to an example embodiment. If each of the partial cumulative phases are zero, then the different K's (for the different partial cumulative phases) can be pulled out or ignored, since any number multiplied by zero is zero, for example. Since the cumulative phase is the linear superposition (over the ring of integers modulus P) of the partial cumulative phase terms, the cumulative phase can be returned to the zero state by returning each of its partial components (partial cumulative phases) back to the zero state. Thus, according to an example embodiment, a number of steps may be taken to accomplish this, such as: (1) first return each of the cumulative phases to the zero state (e.g., select and generate termination symbols to cause each partial cumulative phase to be equal to zero, θn=0 at some future time, n≧k−L) and (2) to reset the remainder of the CPE state (the U input symbols) to be equal to the all zeros-vector, so that xn=(0,0, . . . ,0)T at future time n≧k−L.
Similarly, the input symbols U are sequentially input to CPE 210 via line 412, e.g., one symbol U input every symbol interval T. The input symbols U are temporarily stored in L memory elements (not shown, but provided between delay elements T) as the input symbols U sequentially pass through delay elements. Each delay element T is for one symbol interval. Input symbols U that are older than L symbols, such as Uk−L+1, are each multiplied by or scaled by an associated modulation index factor K at multiplier 414, and then input to a modulo P adder 416. After a delay element, the next term output from the multiplier 414 is added to current sum at adder 416 to generate the cumulative phase θk−L for CPE 210, which is output via line 418. Thus, according to an example embodiment, the output of the CPE 210, as shown in
In addition, the diagram of
θk−L=θ10=(K0(U0+U3+U6+U9)+K1(U1+U4+U7)+K2(U2+U5+U8))mod P
. . . where the switch 424 corresponding to the first partial cumulative phase θk−L output via line 434 may select inputs U0, U3, U6, U9, etc. to be scaled (or multiplied by multiplier 428) by a modulation index K and summed by adder 430. Multiplier 436 and modulo P adder 438 may similarly operate for another partial cumulative phase for the last partial cumulative phase, for example. In this manner, for example, the partial phase terms may be calculated. The first partial cumulative phase θ0k−L may be output via line 434, . . . and the last partial cumulative phase θNh−1k−L is output via line 442. The other partial cumulative phases may be similarly generated and output. The partial cumulative phases may be used, for example, by the termination symbol generator 218 to determine and generate one or more termination symbols to return an ending state of the CPE 210 to the same as the initial state of the CPE 210 (e.g., by determining termination symbols that force each partial cumulative phase to zero), according to an example embodiment.
In an example embodiment, the circuit (e.g., switches 424, multipliers 428, 436, adders 430438 and delay elements 432 and 440) for generating the partial cumulative phase terms may be provided in the CPE 210. In another example embodiment, the circuit for generating the partial cumulative phases may be provided within termination symbol generator 218.
In an example embodiment for
As noted above, phase discontinuities between data blocks may be eliminated or at least decreased by forcing the ending state of the CPE to be the same as the initial state of the CPE. For example, if the initial state of the CPE is the zero state, then phase discontinuities between data blocks may be decreased by returning the CPE to the zero state at approximately the end of the data block (e.g., prior to receiving the next data block). The cumulative phase can be returned to the zero state (e.g., example known state) by returning each of its partial components (partial cumulative phases) back to the zero state. Thus, according to an example embodiment, a number of operations may be performed to accomplish this, including: (1) return each of the cumulative phases to the zero state (e.g., select and generate termination symbols to cause each partial cumulative phase to be equal to zero, θn=0 at some future time, n≧k−L) and (2) to reset the remainder of the CPE state (the U input symbols) to be equal to the all zeros-vector, so that xn=(0,0, . . . ,0)T at future time n≧k−L. Aspects of this algorithm are described in greater detail below, according to an example embodiment. This is merely an example, and other ways or techniques may be used as well. In a general case, the partial phase(s) may be modulo P, while the termination symbols may be modulo M, where M and P may be different. Operations 1-10 below may be performed, for example, by termination symbol generator 218 (
1) The termination symbol generator 218 (and/or CPE 210) calculates and stores the values of the partial cumulative phase terms as the data symbols pass through the CPE 210. The termination symbol generator may receive the data symbols or Us, as they are input to the CPE 210, or as they are output from the CPE 210 (as shown).
2) After the last data symbol, UN−1, (for a data block of N data symbols) has entered the CPE 210, the termination symbol generator 218 may determine and generate a group or series of T termination symbols. Termination symbol generator 218 begins to send this series of M-ary trellis termination symbols, {t0, . . . ,tT 1}, where ti ε {0, . . . ,M−1} for i=0, . . . ,T−1. For example, for a binary system (M=2), the trellis termination symbols may be either 0 or 1.
3) For L>1, we compute the value of the cumulative phase when the first termination symbol to reaches the modulo P adder 416 (or first contributes to the cumulative phase): θ(N+L 1) L.
4) For n=0, . . . ,Nh−1: (in other words, for each modulation index), the termination symbol generator 218 will calculate the first trellis termination symbol t0 associated with each modulation index factor: t0n=[((P−1−θn(N−L−1)−L)mod(M−1)]+1. The bracket in this operation is a flooring operation which rounds down to the nearest integer.
5) Calculate the number of additional trellis termination symbols (which have a non-zero value) that are required to force the nth partial cumulative phase term to return to zero; Each partial cumulative phase may require a different number of additional termination symbols to force that partial cumulative phase to zero (0). The bracket here is also a flooring operation:
For example, for three modulation indexes:
(T0(n=0))=5, meaning that 5 additional non-zero termination symbols are required to force the partial cumulative phase associated with n=0 (or associated with the first modulation index) to zero;
(T1(n=1))=2, meaning that 2 additional non-zero termination symbols are required to force the partial cumulative phase associated with n=1 (or second modulation index) to zero;
(T2(n=2))=3, meaning that 3 additional non-zero termination symbols are required to force the partial cumulative phase associated with n=2 (or third modulation index) to zero.
6) For all T0(n)≧1, define t1n=. . . =tnT
7) Calculate the maximum number of additional trellis termination symbols,
which are required to return each partial cumulative phase term, θk−Ln, to the zero state. This enables the use of fixed transmission block sizes, from one block to the next.
8) Based on the calculation in 7), set tT
9) Since it may be desired to return the state of the trellis back to the zero-state, construct an L×1 vector of zeros (0,0, . . . ,0). This vector will be used to flush the encoder after the cumulative phase has been returned to the zero state.
10) Map the partial trellis termination symbols {tkn} and the L×1 vector of zeros in (9) to a set of trellis termination symbols: {t0, t1, t2, . . . ,tT−1}, where
Although the order of the mapping does not matter, the convention may be used, for example, that the non-zero termination symbols are input or sent through, in ascending order of the modulation index factor, followed by a string of zeros. In general, the termination symbols can be represented as follows:
11) These termination symbols are then input to the CPE. For example, the termination symbol generator 218 may generate these termination symbols which are input to the CPE 210. Once these termination symbols have been sent through the CPE 210, the cumulative phase state will be equal to zero.
A simple yet illustrative example of the trellis termination technique outlined above will now be provided, according to an example embodiment. In this example, the following may be defined:
θ127=(K0θ1270+K1θ1271+K2θ1272)mod P=3
When the first termination symbol enters the modulo P adder 416, the cumulative phase term is given by
where θ127n ε {0,1,2,3,4}. Following the procedure enumerated above, the initial value of the partial termination symbols may be defined or calculated as follows—
t
0
0=((P−1)−θ1270)mod(M−1)+1=2
t
0
1=((P−1)−θ1271)mod(M−1)+1=1
t
0
2=((P−1)−θ1272)mod(M−1)+1=1
The number of additional termination symbols that are required to return each of the partial cumulative phases to the zero state may be calculated as
In addition,
From the outlined procedure for calculating the remaining trellis termination symbols (for the purposes of zero-padding), it is found that
t
T
(0)+1
0
=t
1
0=0.
Hence, the trellis termination symbols are defined as:
{t0,t1,t2,t3,t4,t5,t6,t7,t8}={t00,t01,t11,t02,t12,t10,0,0,0}={2,1,3,1,3,0,0,0,0}.
It can be shown that this approach does indeed return the final state of the trellis to the all-zeros state by considering the evolution of the state space model:
At the next symbol interval,
Advancing one symbol interval,
Continuing (after next symbol interval),
Continuing (after next symbol interval),
Taking one more time step (another symbol interval),
Finally, the last termination symbol is sent into the CPE 210 and the state representation is
Hence, the algorithm has successfully terminated the encoder in the all-zeros state, since x137=(0,0,0)T. We note that although the zero state was reached before the last termination symbol was sent into the encoder, that in order to maintain a constant block size, we are constrained, in this exmple, to use the maximum number of termination symbols for each of the partial cumulative phase terms.
According to an example embodiment, the number of termination symbols for a set of selected CPM-based schemes are listed in Table 1 below.
In the flow chart illustrated in
In the flow chart illustrated in
In the flow chart illustrated in
In the flow chart illustrated in
In the flow chart of
The flow chart of
According to another example embodiment, an apparatus may include a multiple modulation index continuous phase encoder (CPE) configured to receive a data block that includes one or more symbols, and a termination symbol generator that is configured to: determine one or more termination symbols to be appended to the received data block that forces a partial cumulative phase associated with each of a plurality of modulation indexes for the CPE to a zero state and input the determined termination symbols to the CPE.
According to another example embodiment, an apparatus may include a multiple modulation index continuous phase encoder (CPE) configured to perform continuous phase encoding on one or more received symbols and to output CPE encoded symbols, the CPE being configured to a known initial state prior to receiving a data block of one or more symbols, and a termination symbol (TS) generator coupled to the CPE, the TS generator configured to generate one or more termination symbols to be appended to the received data block, wherein an ending state of the CPE after receiving the one or more termination symbols is the same as the known initial state of the CPE.
In an example embodiment, the apparatus may further include a phase modulator configured to phase modulate the CPE symbols output from the multiple modulation index CPE onto one or more subcarriers, and a radio transmitter to amplify and transmit the phase modulated signal via a transmission carrier.
In another example embodiment, the state of the CPE may be based upon one or more received symbols and a cumulative phase, the TS generator may be configured to determine, based on the cumulative phase, a partial cumulative phase associated with each of a plurality of modulation indexes for the CPE, determine the one or more termination symbols that forces each of the partial cumulative phases to zero after the CPE has received the termination symbols, and generate the determined termination symbols.
In another example embodiment, the state of the CPE may be based upon one or more received symbols and a cumulative phase, the TS generator may be configured to determine, after the data symbols have been received by the CPE, a partial cumulative phase associated with each of a plurality of modulation indexes for the CPE, determine one or more partial termination symbols having a non-zero value for each modulation index, determine one or more partial termination symbols having a zero value for one or more of the modulation indexes, wherein the partial termination symbols are determined to force the partial cumulative phase associated with each of the modulation indexes to zero after the CPE has received the data block and the termination symbols, map the partial termination symbols to one or more termination symbols, generate the termination symbols to be input to the CPE.
In addition, a storage medium may be provided that includes stored instructions, which when executed by a controller or processor may result in a controller, or processor, performing one or more of the functions or tasks described above.
Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, a data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the various embodiments.