METHOD AND APPARATUS FOR CONSTANT ENVELOPE MODULATION
Certain aspects of the present disclosure relate to a method for modulating single carrier signals using constant envelope 2CPM modulation and quasiconstant envelope filtered continuously rotated pseudoPSK modulation in a wireless communication system.
1. Field
Certain aspects of the present disclosure generally relate to constant envelope spreadspectrum coding and, more particularly, to a method for modulating a continuous phase modulated (CPM) signal.
2. Background
Spreadspectrum coding is a technique by which signals generated in a particular bandwidth can be spread in a frequency domain, resulting in a signal with a wider bandwidth. The spread signal has a lower power density, but the same total power as an unspread signal. The expanded transmission bandwidth minimizes interference to others transmissions because of its low power density. At the receiver, the spread signal can be decoded, and the decoding operation provides resistance to interference and multipath fading.
Spreadspectrum coding is used in standardized systems, e.g. GSM, General Packet Radio Service (GPRS), Enhanced Digital GSM Evolution (EDGE), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA or WCDMA), Orthogonal Frequency Division Multiplexing (OFDM), Orthogonal Frequency Division Multiple Access (OFDMA), Time Division Multiple Access (TDMA), Digital European Cordless Telecommunication (DECT), Infrared (IR), Wireless Fidelity (WiFi), Bluetooth, Zigbee, Global Positioning System (GPS), Millimeter Wave (mmWave), Ultra Wideband (UWB), other standardized as well as nonstandardized systems, wireless and wired communication systems.
In order to achieve good spreading characteristics in a system using spread spectrum, it is desirable to employ spreading codes which possess a near perfect periodic or aperiodic autocorrelation function, i.e. low sidelobes level as compared to the main peak, and an efficient correlatormatched filter to ease the processing at the receiver side. Spreading codes with high peak and low sidelobes level yields better acquisition and synchronization properties for communications, radar, and positioning applications.
In spread spectrum systems using multiple spreading codes, it is not sufficient to employ codes with good autocorrelation properties since such systems may suffer from multipleaccess interference (MAI) and possibly intersymbol interference (ISI). In order to achieve good spreading characteristics in a multi code DSCDMA system, it is necessary to employ sequences having good autocorrelation properties as well as low crosscorrelations. The crosscorrelation between any two codes should be low to reduce MAI and ISI.
Complementary codes, first introduced by Golay in M. Golay, “Complementary Series,” IRE Transaction on Information Theory, Vol. 7, Issue 2, April 1961, are sets of complementary pairs of equally long, finite sequences of two kinds of elements which have the property that the number of pairs of like elements with any one given separation in one code is equal to the number of unlike elements with the same given separation in the other code. The complementary codes first discussed by Golay were pairs of binary complementary codes with elements +1 and −1 where the sum of their respective aperiodic autocorrelation sequence is zero everywhere, except for the center tap.
Polyphase complementary codes described in R. Sivaswamy, “Multiphase Complementary Codes,” IEEE Transaction on Information Theory, Vol. 24, Issue 5, September 1978, are codes where each element is a complex number with unit magnitude.
An efficient Golay correlatormatched filter was introduced by S. Budisin, “Efficient Pulse Compressor for Golay Complementary Sequences,” Electronic Letters, Vol. 27, Issue 3, January 1991, along with a recursive algorithm to generate these sequences as described in S. Budisin “New Complementary Pairs of Sequences,” Electronic Letters, Vol. 26, Issue 13, June 1990, and in S. Budisin “New Multilevel Complementary Pairs of Sequences,” Electronic Letters, Vol. 26, Issue 22, October 1990. The Golay complementary sequences described by Budisin are the most practical, they have lengths that are power of two, binary or complex, 2 levels or multilevels, have good periodic and aperiodic autocorrelation functions and most importantly possess a highly efficient correlatormatched filter receiver.
However, Golay sequences are not without drawbacks. First, Golay sequences don't exist for every length, for example binary complementary Golay sequences are known for lengths 2^{M }as well as for some even lengths that can be expressed as sum of two squares. Second, an efficient Golay correlatormatched filter exists only for Golay sequences generated by Budisin's recursive algorithm and that are of length that is a power of two (i.e. 2^{M}). Third, the Golay sequences generated using Budisin's recursive algorithm might not possess the desired correlation properties. Furthermore, good spreading sequences such as msequences, Gold sequences, Barker sequences and other known sequences do not possess a highly efficient correlator matched/mismatched filter.
WBAN (Wireless Body Area Networks) are envisioned to be crystalless or will use cheap crystal oscillators. In both cases the system with have high ppm (parts per million) precision on the output frequency. For WBAN spread spectrum systems where there is a substantial frequency offset between the transmitter and the receiver, it might be advantageous to process the received signal differentially first. Golay sequences, msequences and other codes do not possess good correlation properties when detected differentially.
Finally, for low power applications such as wearable devices and wireless implants, there is a need for very low power radio that allows operation for long time before changing or charging the battery.
Therefore, there is a need in the art for a method of spread spectrum coding applied at the transmitter and an efficient method for despreading at the receiver that allows for large frequency drift between two communicating stations and for a method to reduce the power consumption at the receiver.
Furthermore, there is a need in the art for a practical constant envelope or quasiconstant envelope modulations that enable long battery life while still allowing practical encoding at the transmitter and practical decoding at the receiver.
A decomposition of binary CPM (Continuous Phase Modulation) as a sum of a finite number of time limited amplitude modulated pulse (AMP) was introduced by P. Laurent, “Exact and Approximate Construction of Digital Phase Modulations by Superposition of Amplitude Modulated Pulses (AMP),” IEEE Transaction on Communications, Vol. Com34, NO. 2, February 1982. This was later generalized to nonbinary CPM by U. Mengali & al., “Decomposition of Mary CPM Signals into PAM waveforms,” Vol. 41, No. 5, September 1995. In both cases, the number of pulses remained large for practical CPM modulations. Therefore, there is a need in the art for a single pulse representation of CPM signals which allow us to process CPM as a linear modulation in a similar fashion to BPSK, QPSK and QAM modulations.
SUMMARYCertain aspects provide a method for wireless and wired communications. The method generally includes spreading at least one of the fields of a data stream with one or plurality of spreading sequences wherein at least one of the spreading sequences is based on one of differential msequence and differential generalized Golay sequences, and transmitting the spread data stream.
Certain aspects provide a method for wireless and wired communications. The method generally includes receiving a spread data stream wherein at least one of the fields is spread with one or plurality of spreading sequences, and despreading the spread fields of the data stream using a differential detector followed by one of generalized efficient Golay correlator and efficient Walsh correlator.
Certain aspects provide a method for wireless and wired communications. The method generally includes spreading a preamble sequence with a Golay code or a generalized Golay code generated using an efficient Golay generator, prepending the preamble to a header and a payload to create a packet, and modulating the packet using one off binary CPM (Continuous Phase Modulation) such as GMSK/GFSK (Gaussian Minimum shift Keying/Gaussian Frequency Shift Keying), filtered and rotated differential pseudoBPSK, 4PAM CPM, and filtered and rotated generalized differential pseudoQPSK.
Certain aspects provide a method for wireless and wired communications. The method generally includes receiving a data stream comprising a preamble based on Golay or generalizedGolay spreading code, derotating the signal, applying a differentially detection operation, correlation using an efficient Golay or generalized Golay correlator, accumulating the outputs of the Golay correlator in a shift register and detecting the presence or absence of the packet by comparing the magnitude of the values in the shift register to a threshold and establishing timing and estimating the frequency offset and using the remainder of the preamble to estimate the CIR (channel impulse response) and end of preamble.
Certain aspects provide a method for wireless and wired communications. The method generally includes receiving a 2CPM modulated data stream, derotating the data stream, and decoding the data stream by modeling the received signal as a linear convolution between the pseudoBPSK symbols (chips) and the multipath channel.
Certain aspects provide a method for wireless and wired communications. The method generally includes prepending training sequence to the payload portion of the data stream, modulating the data stream including the training sequence using 4CPM or filtered rotated generalized differential pseudoQPSK and transmitting the packet.
Certain aspects provide a method for wireless and wired communications. The method generally includes receiving a 4CPM modulated data stream, derotating the data stream, obtaining a CIR estimate using correlation with the pseudoQPSK training sequence followed by correcting the CIR, and using the CIR to decode the payload by modeling the payload as a linear convolution between the pseudoQPSK symbols (chips) and the CIR.
So that the manner in which the aboverecited features of the present disclosure can be understood in detail, a more particular description, briefly summarized above, may be had by reference to aspects, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only certain typical aspects of this disclosure and are therefore not to be considered limiting of its scope, for the description may admit to other equally effective aspects.
Various aspects of the disclosure are described more fully hereinafter with reference to the accompanying drawings. This disclosure may, however, be embodied in many different forms and should not be construed as limited to any specific structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Based on the teachings herein one skilled in the art should appreciate that the scope of the disclosure is intended to cover any aspect of the disclosure disclosed herein, whether implemented independently of or combined with any other aspect of the disclosure. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method which is practiced using other structure, functionality, or structure and functionality in addition to or other than the various aspects of the disclosure set forth herein. It should be understood that any aspect of the disclosure disclosed herein may be embodied by one or more elements of a claim.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Although particular aspects are described herein, many variations and permutations of these aspects fall within the scope and spirit of the disclosure. Although some benefits and advantages of the preferred aspects are mentioned, the scope of the disclosure is not intended to be limited to particular benefits, uses, or objectives. Rather, aspects of the disclosure are intended to be broadly applicable to different wireless technologies, system configurations, networks, and transmission protocols, some of which are illustrated by way of example in the figures and in the following description of the preferred aspects. The detailed description and drawings are merely illustrative of the disclosure rather than limiting, the scope of the disclosure being defined by the appended claims and equivalents thereof.
An Example Wireless Communication SystemThe techniques described herein may be used for various wireless and wired communication systems, including communication systems that are based on a single carrier transmission. Aspects disclosed herein may be advantageous to systems employing Code Division Multiple Access (CDMA) signals. However, the present disclosure is not intended to be limited to such systems, as other coded signals may benefit from similar advantages.
A variety of algorithms and methods may be used for transmissions in the wireless communication system 100 between the SAPs 104 and the STAs 106 and betweens STAs 106 themselves. For example, signals may be sent and received between the SAPs 104 and the STAs 106 in accordance with CDMA technique and signals may be sent and received between STAs 106 in according with OFDM technique. If this is the case, the wireless communication system 100 may be referred to as a hybrid CDMA/OFDM system.
A communication link that facilitates transmission from a SAP 104 to a STA 106 may be referred to as a downlink (DL) 108, and a communication link that facilitates transmission from a STA 106 to a SAP 104 may be referred to as an uplink (UL) 110. Alternatively, a downlink 108 may be referred to as a forward link or a forward channel, and an uplink 110 may be referred to as a reverse link or a reverse channel. When two STAs communicate directly with each other, a first STA will act as the master of the link, and the link from the first STA to the second STA will be referred to as downlink 112, and the link from the second STA to the first STA will be referred to as uplink 114.
A BSS 102 may be divided into multiple sectors 112. A sector 116 is a physical coverage area within a BSS 102. SAPs 104 within a wireless communication system 100 may utilize antennas that concentrate the flow of power within a particular sector 116 of the BSS 102. Such antennas may be referred to as directional antennas.
The wireless device 202 may include a processor 204 which controls operation of the wireless device 202. The processor 204 may also be referred to as a central processing unit (CPU). Memory 206, which may include both readonly memory (ROM) and random access memory (RAM), provides instructions and data to the processor 204. A portion of the memory 206 may also include nonvolatile random access memory (NVRAM). The processor 204 typically performs logical and arithmetic operations based on program instructions stored within the memory 206. The instructions in the memory 206 may be executable to implement the methods described herein.
The wireless device 202 may also include a housing 208 that may include a transmitter 210 and a receiver 212 to allow transmission and reception of data between the wireless device 202 and a remote location. The transmitter 210 and receiver 212 may be combined into a transceiver 214. An antenna 216 may be attached to the housing 208 and electrically coupled to the transceiver 214. The wireless device 202 may include one or more wired peripherals 224 such as USB, HDMI, or PCIE. The wireless device 202 may also include (not shown) multiple transmitters, multiple receivers, multiple transceivers, and/or multiple antennas.
The wireless device 202 may also include a signal detector 218 that may be used in an effort to detect and quantify the level of signals received by the transceiver 214. The signal detector 218 may detect such signals as total energy, energy per subcarrier per symbol, power spectral density and other signals. The wireless device 202 may also include a digital signal processor (DSP) 220 for use in processing signals.
The various components of the wireless device 202 may be coupled together by a bus system 222, which may include a power bus, a control signal bus, and a status signal bus in addition to a data bus.
Data 306 to be transmitted are shown being provided as input to a forward error correction (FEC) encoder 308. The FEC encoder encodes the data 306 by adding redundant bits. The FEC encoder may encode the data 306 using convolutional encoder, Reed Solomon encoder, concatenated codes, Turbo encoder, low density parity check (LDPC) encoder, etc. The FEC encoder 308 outputs an encoded data stream 310.
The encoded data stream 310 may be prepended by a preamble 312 generated from one or multiple spreading sequences from the spreading codes generator 314, and the output stream 316 is input to modulator 318.
The modulator 318 may map the data stream 316 onto different constellation points. The mapping may be done using some modulation constellation, such as 2GMSK (i.e. binary Gaussian Minimum Shift Keying), 4GMSK (i.e. four levels Gaussian Minimum Shift Keying), binary phaseshift keying (BPSK), quadrature phase shift keying (QPSK), 8 phaseshift keying (8PSK), quadrature amplitude modulation (QAM), continuous phase modulation (CPM), etc.
The output stream 320 may then be converted to analog and upconverted to a desired transmit frequency band by a radio frequency (RF) front end 328 which may include a mixed signal and an analog section. An antenna 330 may then transmit the resulting signal 332.
The transmitted signal 332 is shown traveling over a wireless channel 334. When a signal 332′ is received by an antenna 330′, the received signal 332′ may be downconverted to a baseband signal by an RF front end 328′ which may include a mixed signal and an analog portion. Preamble detection and synchronization component 322′ may be used to establish timing, frequency and channel synchronization using one or multiple correlators that correlate with one or multiple spreading codes generated by the spreading code(s) generator 324′.
The output of the RF front end 328′ is input to the frequency and timing correction block which corrects for frequency errors between the transmitter 302 and receiver 304 and may interpolate to the best timing before being input to the data detection component 318′ along with the synchronization information from 322′. The block detection block may perform despreading and equalization.
A demapper 312′ may perform the inverse of the symbol mapping operation that was performed by the mapper/modulator 318 thereby outputting soft or hard decisions 310′. The soft or hard decisions 310′ are input to the FEC decoder which provides an estimate data stream 306′. Ideally, this data stream 306′ corresponds to the data 306 that was provided as input to the transmitter 302.
The wireless systems 100 illustrated in
In one aspect of the disclosure, spreading codes generated by spreading code(s) generator 314 in a transmitter 302 are based on Golay codes. A summary of Golay codes, their properties, generation and reception is provided next.
A Golay complementary pair of codes of length N=2^{M}, denoted here a and b, are specified by a delay vector D=[D_{1}, D_{2}, . . . , D_{M}] with elements chosen as any permutation of {1, 2, 4, . . . , 2^{M}} and a seed vector W=[W_{1}, W_{2}, . . . , W_{M}]. Binary Golay complementary sequences are generated when the seed vector elements {W_{m}} are +1 or −1. Polyphase Golay complementary sequences are generated when the seed vector elements {W_{m}} are arbitrary complex numbers with unit magnitude. Golay complementary pairs of length 1 are defined here as the pair of sequences a=[+1] and b=[+1]. Alternative Golay complementary pairs of length 1 can be used such as a=[+1] and b=[−1].
The following MATLAB code can be used to generate a pair of binary or polyphase Golay complementary codes a and b of length N=2^{M }with M≧1, using Budisin's recursive algorithm. The inputs to the MATLAB function being the delay vector D and seed vector W.
It should be appreciated that the Golay code generation describe above can be modified in many ways and still yields a pair of complementary Golay codes. The order of the adders and subtractors can be inverted, and the seed vector elements can multiply wither code a or b in the construction and still yields a pair of complementary Golay codes. To clarify the above, we provide one (out of many) alternative MATLAB Golay code generation, labeled “GolayGeneratorII”.
A brief example of Golay complementary codes will now be provided. Consider Golay complementary codes of length 8 generated using the delay vector D=[2, 1, 4] and seed vector W=[+1, +1, −1]. The MATLAB code “GolayGeneratorII” yields the following two Golay complementary codes
a=[+1, +1, +1, −1, −1, +1, −1, −1]
b=[+1, +1, +1, −1, +1, −1, +1, +1]
The aperiodic autocorrelation function of sequences a and b, denoted here R^{a }and R^{b }respectively, are
R^{a}=[−1, −2, −1, 0, +1, −2, +1, +8, +1, −2, +1, 0, −1, −2, −1]
R^{b}=[+1, +2, +1, 0, −1, +2, −1, +8, −1, +2, −1, 0, +1, +2, +1]
The sequences a and b are complementary in the sense that the sum, R, of their aperiodic autocorrelation functions, R^{a }and R^{b}, is perfect in the sense that it has a main peak and no sidelobes
R=[0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0]
Even though a pair of Golay codes is defined to be complementary in terms of their aperiodic autocorrelation functions, they have excellent periodic properties as well. The periodic autocorrelation functions C^{a }and C^{b }of the pair of above sequences a and b, are
C^{a}=[+8, 0, −4, 0, 0, 0, −4, 0]
C^{b}=[+8, 0, +4, 0, 0, 0, +4, 0]
And the sum, C, of their periodic autocorrelation functions is again perfect, i.e. a main of peak of strength 2N=16 and no sidelobes
C=[8, 0, 0, 0, 0, 0, 0, 0]
When used individually, we are interested in the correlation properties of either sequence a or sequence b of the Golay complementary pair. In the example above, the magnitude of the highest sidelobelevel of the aperiodic function of either code is 2 and the magnitude of the highest sidelobelevel of the periodic function of either code is 4. So when analyzed individually these codes may not be the best codes to be used as spreading codes.
When configured an efficient Golay generator, the input 402 is a Kronecker delta sequence δ(n) which has the value one at lag 0 (i.e. at n=0) and zero everywhere else. When configured as an efficient Golay correlator, the input 402 may be a quantized received signal x (n).
The Golay code generator/correlator of
In stage m, 416m, the position of multiplier 406m, adder 410m, and subtractor 408m can be exchanged while still being a Golay code generator/correlator. To clarify the above, an alternative Golay code generator/correlator is provided in
The Golay codes provided above have multiple drawbacks. The efficient Golay generator for a code length 2^{M }is of high complexity as compared for example to a maximallength sequence (msequence) generator for msequences of length 2^{M}−1. The latter uses a linear feedback shift register (LFSR) with M binary memory elements only. The second drawback is that Golay complementary codes do not exist for every length, for example there are no Golay codes of odd length. Finally, Golay complementary codes have perfect correlation properties when used together in specific ways, but when used individually, these codes are not necessarily optimal.
Preferred Golay GeneratorIn one aspect of the present disclosure, Golay codes may be used as spreading codes and the spreadingcode(s) generator 318 and/or the spreading code(s) generator 324 in transmitter 302 may be configured to generate Golay codes using a preferred Golay code generator.
The counter 508 is initialized to N−1 and decrements by 1 for each clock cycle of signal CLK. The most significant bit of the counter (i.e. bit of weight 2^{N−1}) is signal 5161 and the least significant bit of the counter (i.e. bit of weight 2^{0}) is signal 516M. The counter acts as a clock divider, and the signal 516m is actually a clock signal with frequency equal to the main signal CLK divided by 2^{M+1−m}, i.e. CLK/2^{M+1−m}. In another aspect of the disclosure, signal 516m is used as an enable signal that enables input 512m to be input to stage m block 504m.
The M bits out of the counter 508 are inverted before being input to the control unit 512 with inverters 5101 to 510M. The inverted input is equivalent to a counter initialized to zero and counting up by 1 for each clock cycle of signal CLK. The control unit 512 generates M control signals 5181 to 518M. The first control signal 5181 is 1 when the input to the control unit (i.e. the up counter) is equal to N/2 and zero otherwise. The m^{th }control signal 518m is 1 when the input to the control unit is in the following set of 2^{m−1 }integers {D_{m}, D_{m}+2^{M+1−m}, D_{m}+2^{M+2−m}, . . . , D_{m}+2^{M}−2M+1−m, and zero otherwise. The M^{th }control signal 518M is 1 when the input to the control unit is in the following set of N/2=2^{M−}1 integers {1, 3, 5, . . . , N−1} and zero otherwise.
The preferred Golay generator in
In another aspect of the disclosure, in the preferred efficient Golay generator in
In another aspect of the disclosure, the stages 1 to M in the preferred efficient Golay generator in
According to another aspect of the present disclosure, the stage m circuit in
According to another aspect of the disclosure, the stages 1 to M in the preferred efficient Golay generator in
In another aspect of the present disclosure, the spreadingcode(s) generator 314 in
A generalizedGolay spreading code is a code that has a Golay decomposition, i.e. a code formed by concatenating a plurality of Golay codes as shown in
In the following, an example of generalizedGolay code according to one aspect of the disclosure is provided. There are no Golay complementary sequences of length 24. In accordance to one aspect of the disclosure, a generalizedGolay sequence of length 24 can be generated by appending a Golay code of length 8 to a Golay code to a length 16. The Golay components should be chosen properly as for the generalized Golay code to have good correlation properties. A construction example is as follows. First, a pair of Golay complementary codes a_{1 }or sequence b_{1 }of length 16 can be generated using delay vector D=[4, 8, 1, 2] and seed vector W=[+1, +1, +1, +1]:
a_{1}=[+1, +1, +1, −1, +1, +1, +1, −1, +1, −1, +1, +1, −1, +1, −1, −1]
b_{1}=[+1, +1, −1, +1, +1, +1, −1, +1, +1, −1, −1, −1, −1, +1, +1, +1]
Second, a pair of Golay complementary codes a_{2 }and b_{2 }of length 8 can be generated using delay vector D=[4, 2, 1] and seed vector W=[+1, +1, +1]:
a_{2}=[+1, +1, +1, −1, +1, +1, −1, +1]
b_{2}=[+1, −1, +1, +1, +1, −1, −1, −1]
Finally, a generalizedGolay code c of length 24 is formed as follows
c=[a_{2 }b_{1}]=[+1, +1, +1, −1, +1, +1, +1, −1, +1, −1, +1, +1, −1, +1, −1, −1, +1, −1, +1, +1, +1, −1, −1, −1]
The generalizedGolay sequence c has good correlation properties. The maximum sidelobelevel magnitude of the aperiodic and periodic autocorrelation functions is 4 compared to a peak of magnitude 24 which makes it a good spreading code. The generalized code d=[b_{2 }a_{1}] (constructed from the sequences b_{2 }and a_{1 }complementary to the sequences a_{2 }and b_{1 }used to form c) is not complementary to c; the sum of their aperiodic autocorrelations have very few sidelobes and therefore it is pseudocomplementary.
A second example of a generalizedGolay code according to one aspect of the disclosure is provided next. A generalized code c of length 19 is generated by concatenating three short codes. The first constituent Golay code a_{1}=[1] is of type “a” and length 1, the second constituent Golay code a_{2}=[+1, +1] is of type “a” and length 2 generated using D_{2}=[1] and W_{2}=[+1], and the third constituent Golay code b_{3}=[+1, −1, −1, +1, −1, −1, +1, +1, −1, −1, −1, −1, +1, −1, +1, −1] is of type “b” and length 16 generated using D_{3}=[4, 1, 8, 2] and W_{3}=[−1, −1, −1, +1]. The resulting generalized code c is shown below
c=[+1, +1, +1, +1, −1, −1, +1, −1, −1, +1, +1, −1, −1, −1, −1, +1, −1, +1, −1]
This length 19 sequence has a periodic autocorrelation function with maximum sidelobelevel magnitude of 1 as compared to the main peak of 19 and has similar properties to maximal length sequences also known as msequences.
In one aspect of the disclosure, the generalized Golay codes can be generated by concatenating the outputs of a plurality of preferred Golay generators as shown in
x(n)=x_{1}(n)+x_{2}(n−N_{1})+ . . . +x_{L}(n−N_{1}−N_{2}− . . . −N_{L−1})
And therefore can be implemented as shown in
According to one aspect of the disclosure, a received spread data stream is processed at the receiver using a generalized efficient Golay correlator. As an example, the received signal 332′ in
According to one aspect of the disclosure, the memory components 8041 to 804(L−1) and the memory components in the first stages of efficient Golay correlators 8061 to 806L may be shared in order to reduce hardware complexity. An example of this aspect is provided next. Consider the matched filter implementation to the reverse of generalized Golay code of length 32
c=[b_{1 }b_{2}]=[+1, −1, +1, −1, +1, +1, −1, −1, +1, −1, −1, +1, +1, +1, +1, +1, +1, −1, −1, +1, −1, −1, −1, −1, +1, +1, −1, −1, −1, +1, −1, +1] constructed from two Golay codes of type “b”, code b_{1 }of length 16 generated using delay vector D=[8, 2, 4, 1] and seed vector W=[+1, +1, +1, +1], and code b_{2 }of length 16 is generated using delay vector D=[8, 1, 4, 2] and seed vector W=[+1, +1, +1, −1].
The generalized efficient Golay correlator/matched filter to a received signal spread with the reverse code c(N−n) is shown in
In one aspect of the disclosure, the generalized efficient Golay correlator can be used to despread a modulated data stream with a pair of pseudo complementary generalized Golay codes. For example, the circuit in
For high speed applications, it is advantageous to process the received signal in parallel according to one embodiment of the invention. As an example, if the received signal input 822 in
The above can be implemented in the stages as follows
Performing a polyphase decomposition of the above equations, using four phases, we obtain the circuit shown in
The third stage computes the four phases of signal p_{3}(n) and q_{3}(n) using memory components 9201 to 9144 comprising a single delay element each, subtractors 9221 to 9224, and adders 9241 to 9244. Like stage 1, the interconnections here between memory component 9201 to 9204 and subtractors 9221 to 9224, and adders 9241 to 9244 do not involve signals from other phases, i.e. subtractor 9221 and adder 9221 for the first phase for example do not use any signals from 9202, 9203 and 9204 that is memory components from phases 2, 3, and 4. This is because the delay in the multiplication
is z^{−4 }and therefore no interconnections between the different phases is required. Finally, the fourth stage computes the four phases of the desired output p_{4}(n). This stage comprises delay components 9261 to 9266 comprising a single delay element and adders 9281 to 9284. The outputs 9301 to 9304 are four phases of the desired output p_{4}(n).
Therefore, according to one aspect of the disclosure, a received spread data stream may be despread using a generalized efficient parallel Golay correlator/matched filter.
Wireless Body Area NetworksWBAN (Wireless Body Area Networks) consists of SC (Single Carrier) mobile sensors, either wearable or implanted into the human body, which monitor vital body parameters and movements. These devices, communicating through SC wireless technology (such as CDMA), transmit data from the body to a home base station, from where the data can be forwarded to a health center, hospital, clinic, or elsewhere, realtime.
The sensors/wireless devices used in WBAN would have to be low in complexity, small in form factor, light in weight, very power efficient, and easily configurable.
The battery life in WBAN devices is expected to be very long; therefore there is a need in the art for power efficient single carrier system.
Furthermore, the low cost WBAN stations (devices) would have to use low cost crystals with high ppm (parts per million) on the frequency uncertainty, and may even be crystalless and therefore have even higher ppm. As an example, a STA with 100 ppm operating in the 2.4 GHz unlicensed band, will have an LO (local oscillator) frequency drift by up to 240 KHz from the center frequency. Therefore two communicating STAs might be off by up to 480 KHz with respect to each other, and devices has to be able to decode signals with such large frequency offsets with little loss in performance.
When detected coherently, spread spectrum sequences might perform poorly due to the high frequency drift between two STAs, therefore there is a need in the art for spread spectrum sequences that are resilient to high frequency errors between communicating devices.
Constant Envelope ModulationIn accordance to one aspect of the disclosure, the spread spectrum SC data stream is CPM modulated and the transmitted data stream is constant envelope.
According to one aspect of the disclosure, a 2CPM (Continuous Phase Modulation) signal with binary alphabet and modulation index h_{2 }may be generated using filtered differentially encoded πh_{2}continuously rotated differential pseudo BPSK (Binary Phase Shift Keying) modulated signal, referred to here as πh_{2}DPBPSK (Differential Pseudo BPSK) and further detailed below. The filtered πh_{2}DPBPSK is an approximation to a 2CPM and has a quasiconstant envelope. The πh_{2 }continuous rotation means that the k^{th }symbol is rotated by πh_{2}, where a symbol is a single chip.
The CPM modulation family includes CPFSK (Continuous Phase Frequency Shift Keying), and special cases of MSK (Minimum shift Keying), GMSK (Gaussian Minimum Shift Keying), GFSK (Gaussian Frequency Shift Keying).
According to one aspect of the disclosure, the 2CPM modulation is a 2GMSK (Gaussian Minimum shift Keying), also known as 2GFSK (Gaussian Frequency shift Keying).
According to one aspect of the disclosure, a 2CPM modulator as shown in
The pseudoBPSK signal 1026 is differentially encoded in 1028 and the output is a DPBPSK (Differentially encoded PseudoBPSK) signal denoted here A (k) and computed as follows
A(k)=A(k−1)I(k), k=0,1,2, . . .

 with A(−1)=1
The differential encoding operation is further illustrated inFIG. 10C where output signal A (k) in 1068 is generated by multiplying the former output A (k−1) initialized to 1 in 1072 by input I (k) in 1062. In the special case where the modulation index is h_{2}=½, the output signal 1030 becomes DBPSK (Differentially encoded BPSK).
 with A(−1)=1
The DPBPSK signal A (k) in 1030 is continuously rotated by πh_{2}, that is the first chip (symbol) is rotated by zero radians, the second chip is rotated by angle πh_{2 }radians, the third chip is rotated by angle 2πh_{2 }radians and so on. This is further illustrated in
B(k)=A(k)exp(jkπh_{2})
For the special case where the modulation index is h_{2}=½, the signal B (k) at the output of 1034 is known in the literature as π/2DBPSK and may be generated in many different ways. For this special case, even symbols B(2k) take on the following values {±1}, whereas odd symbols B(2k+1) take on the following values {±j}. Therefore in conclusion, blocks 1024, 1028, and 1032 provide an example implementation of πh_{2}DPBPSK modulation and in the special case where the modulation index is h_{2}=½, this reduces to the known π/2DBPSK modulation.
The πh_{2}DPBPSK modulated complex signal 1034 is input to I&Q filters in 1036 where the I component (i.e. inphase or real part) is filtered by a first filter g (t) and the Q component (i.e. quadrature or imaginary part) is filtered by a second filter that is preferably identical to the first filter g (t), and the complex output 1038 is referred to as filtered πh_{2}DPBPSK and labeled as x (t).
Therefore, according to one aspect of the disclosure, the output signal may be expressed as a quasiconstant envelope linearly modulated signal with πh_{2}DPBPSK constellation points,
where T is the chip duration. The filter g(t) may be implemented in digital or analog. As an example, a Bessel filter, a Butterworth filter, a Chebyshev filter, or an elliptic analog filter may be used. In a preferred embodiment of the invention, the filters are designed in such a way that the complex signal x(t) has a quasiconstant envelope. The filtering is preferably chosen to provide a quasienvelope signal.
According to one aspect of the disclosure, a 2CPM signal with binary alphabet and modulation index h_{2}=½ as shown in
The differential encoding may be implemented as shown in
The DBPSK signal 1130 is continuously rotated by Tr/2 as shown in
According to one aspect of the disclosure, a 2CPM signal with a modulation index of h_{2}=½ at the output of 328′ in
where h(k) is the channel of length L+1 chips as seen by the receiver and comprises the cascade of the transmit filter, multipath channel, and receive filter, {A(n)} are the differentially encoded BPSK chips (with values ±1) related to the information chips {I(n)} by differential encoding, i.e. A(n)=A(n−1)1(n), f is the frequency offset between the transmitter and receiver due to ppm drift on both sides and Doppler shift, DC is constant offset which may be present in direct conversion receivers, and w(n) is the additive white Gaussian noise plus interference. Not shown in the above equation is the time drift which may be modeled as a slowly time varying channel. For an arbitrary modulation index, the above equation becomes
After DC removal, frequency correction, and continuous πh_{2}derotation, the received signal takes the following form
And any linear data detection method may be used to recover the transmit data stream {I(n)}. As an example, differential detection, MLSE (Maximum Likelihood Sequence Estimation) receiver, DFE (Decision feedback Equalizer), MMSE (Minimum Mean Square Equalizer), may be used to recover the transmit data stream.
In order to increase the data rate within a given bandwidth, 4CPM may be used instead of 2CPM. The complex envelope of a 4CPM signal may be represented mathematically by the following form
where T is the chip duration, h_{4 }is the modulation index, {I (k)} are the information symbols in the 4ary alphabet {±1, ±3}, and q(t) is the phase response of the system with q(MT)=½ for some integer M>O. The peak frequency deviation f_{d }is related to the modulation index h_{4 }by the following formula f_{d}=h_{4}/(2T). The information symbols {I(k)} may themselves be generated from input binary data stream {d(k)} using gray mapping as shown below
The gray mapping may be alternatively expressed as follows
I(k)=[1+2d(2k)][1−2d(2k+1)]
A 2CPM signal may be represented by the same above equation with the exception that the information symbols {I(k)} are from a 2ary alphabet {±1} and the modulation index is denoted as h_{2}. The information symbols {I(k)} are related to input signed binary data stream {d(k)} by I(k)=d(k).
Generation of a 4CPM signal is complex since 4CPM modulation is highly nonlinear modulation and requires the computation of the cosine of the phase φ(t)=2πh_{4}Σ_{k}I(k)q(t−kT) for the inphase component and the sine of the phase φ(t) for quadrature component and the use of high resolution (multibits) DACs. Therefore, there is a need in the art for an efficient linear representation and generation of 4CPM modulation.
According to another aspect of the disclosure, a 4CPM (such as 4GMSK/4GFSK) signal may be generated using a quasiconstant envelope filtered generalized differentially encoded πh_{4}continuously rotated QPSK (Quadrature Phase Shift Keying) modulated signal, referred to here as πh_{4}GDQPSK as detailed below. The πh_{4 }continuous rotation means that the k^{th }chip is rotated by πh_{4}. This linear representation of 4CPM simplifies the receiver design tremendously we shall see later. Therefore, according to one aspect of the disclosure, the 4CPM modulator in
The input binary data stream {d(k)} in 1212 from the alphabet {0,1} is parallelized in the S2P (Serial To Parallel) block 1214, and the output 1216 corresponds to even bits {d(2k)} whereas output 1218 corresponds to odd bits {d(2k+1)}. The two bit streams 1216 and 1218 are input to a graycoded pseudoQPSK constellation mapper block 1220 which outputs pseudoQPSK signal 1222 written as
J(k)=exp{jπh_{4}[I(k)−1]} with I(k)=[1+2d(2k)][1−2d(2k+1)]
The signal is termed here pseudoQPSK since the output 1222, i.e. J (k) belongs to the following constant amplitude alphabet {1, exp[±j2πh_{4}], exp[−j4πh_{4}]} and in the special where modulation index is h_{4}=¼, the signal 1222 becomes exact QPSK with alphabet {±1, ±j}.
The pseudoQPSK signal 1222 is differentially encoded in 1224 and the output 1226 is a DPQPSK (Differentially encoded PseudoQPSK) signal denoted here A(k) and computed as follows
A(k)=A(k−1)J(k), k=0,1,2, . . .

 with A(−1)=1
The differential encoding operation is further illustrated inFIG. 12C which operates in the same way as described forFIG. 10C . In the special case where the modulation index is h_{4}=¼, the output signal 1226 is DQPSK (Differentially encoded QPSK).
 with A(−1)=1
The DPQPSK signal A(k) in 1226 is continuously rotated by πh_{4}, that is the first chip is rotated by angle zero, the second chip is rotated by angle πh_{4 }radian, the third chip is rotated by angle 2πh_{4 }radian and so on. This is further illustrated in
B(k)=A(k)exp(jkπh_{4})
For the special case where the modulation index is h_{4}=¼, the signal B(k) at the output of 1228 is known in the literature as n/4DQPSK and may be generated in many different ways. For this special case, even symbols B(2k) take on the following values {±1, ±j}, whereas odd symbols B(2k+1) take on the following values {exp(±jπ/4)}, exp(±j 3π/4)}. Therefore in conclusion, blocks 1114, 1124, 1132, and 1136 provide an example implementation of πh_{4}DPQPSK modulation and in the special case where the modulation index is h_{4}=¼, this reduces to the known π/4DQPSK modulation.
According to one aspect of the invention, a generalized πh_{4}DPQPSK, labeled here πh_{4}GDPQPSK may be used to represent 4CPM. An example illustration of the embodiment for generation of πh_{4}GDPQPSK is shown in blocks 1232, 1236 and 1240. The input bit streams bit d(2k) and d(2k+1) in 1216 and 1218 are input to block 1232 which generates a correction term 1234 according to the following formula
where α is a constant that depends on the modulation index h_{4}. As an example, for a modulation index h_{4}=¼, the constant α is in the order of 0.47 and for a modulation index h_{4}=⅙, the constant α is in the order of 0.42.
The correction term 1234, i.e. C(k), is multiplied by πh_{4}DPQPSK signal 1230, i.e. signal B(k), to generate signal 1238 referred to here as a modified πh_{4}DPQPSK signal and labeled πh_{4}MDPQPSK. The πh_{4}MDPQPSK signal is denoted as D(k), and is computed as follows
D(k)=C(k)B(k), for k=0,1,2, . . .
The πh_{4}DPQPSK signal 1138, i.e. B(k), and the πh_{4}MDPQPSK signal, i.e. D(k), are serialized using the P2S (Parallel To Serial) block 1144, and the output 1146 is referred to here as the generalized πh4DPQPSK, labeled as πh_{4}GDPQPSK and denoted E(k),
E(2k−1)=D(k)
E(2k)=B(k)
The πh_{4}GDPQPSK signal E(k) is complex and the samples are separated by T/2, i.e. half a symbol due to the serialization operation 1240. The complex signal E(k) is input to I&Q filters in 1246 where the I component (i.e. inphase or real part) is filtered by a first filter and the Q component (i.e. the quadrature or imaginary part) is filtered by a second filter that is preferably identical to the first filter, and the complex output 1248 is referred to as filtered πh_{4}GDPQPSK and labeled as x(t) which reduces to πh_{4}GDQPSK in the important special case where h4=¼. The output signal 1248 is a quasiconstant envelope signal and may be expressed as
where g(t) is a real filter identical to the inphase and quadrature filters. The filter g(t) may be implemented in digital or analog. As an example, a Bessel filter, a Butterworth filter, a Chebyshev filter, or an elliptic filter may be used. In a preferred embodiment of the invention, the filters are designed in such a way that the complex signal x(t) has a quasiconstant envelope. The filter g(t) is preferably chosen to produce a quasiconstant envelope signal.
According to another aspect of the disclosure, a CPM signal (including 2CPM and 4CPM) signal may be generated using filtered differentially encoded πhcontinuously rotated PseudoPSK (Phase Shift Keying) modulation, wherein the differentially encoded πh_{4}continuously rotated PseudoPSK is πh_{4}DPBPSK for a 2CPM signal and wherein the differentially encoded continuously rotated πhPseudoPSK is πh_{4}GDPQPSK for a 4CPM signal. Therefore, a CPM signal may be generated using filtered differentially encoded πhPseudoPSK according to one aspect of the invention.
When the multipath channel is much smaller than the chip duration, a 4CPM signal may be detected noncoherently but at a reduced performance as compared to a coherent detection receiver. On the other hand, when the multipath channel is significant, coherent or noncoherent detection of 4CPM becomes extremely difficult due to the nonlinear nature of 4CPM. Therefore, there is a need in the art for a practical coherent detection method and a practical noncoherent detection method in a multipath environment. Even when the multipath channel is not significant, there is a need in the art for a practical coherent detection method.
According to one aspect of the disclosure, the 4CPM signal at the output of 328′ in
where p(t) is the channel as seen by the receiver and comprises the cascade of the transmit filtering, multipath channel, and receive filtering, {E(k)} are the transmit πh_{4}GDPQPSK data chips, f is the frequency offset between the transmitter and receiver due to ppm drift on both sides and Doppler shift, DC is constant offset which may be present in direct conversion receivers, and w(t) is the additive white Gaussian noise plus interference. Not shown in the above equation is the time drift which may be modeled as a slowly time varying channel.
The received signal may be sampled at one sample per chip or multiple samples per chip. As an example, for a two samples per chip system, the received signal at time t=nT−T/2, labeled here as r^{(0)}(n), and the received signal at time t=nT, labeled here as r^{(1)}(n), may be expressed as (after DC removal, frequency correction, and πh_{4 }continuous derotation)
Where {A(n)} is the set of DPQSK chips shown above, {F(n)} is the set of MDPQSK chips related to {A(n)} via the correction terms as follows
F(n)=A(n)C(n) for n=0,1,2, . . .
and where
h^{(0)}(k)=p(kT)e^{−jkπh}^{4}, and h^{(1)}(k)=p(kT+T/2)e^{−jkπh}^{4 }
The transmit data stream may be estimated from r^{(0)}(n) alone; r^{(1)}(n) alone or by using jointly) r^{(0)}(n) and r^{(1)}(n). The above equations are similar to any linear oversampled system such as π/4DQPSK with the exception that the data symbols are drawn from a different constellation, i.e. πh_{4}GDQPSK constellation. Therefore, any data detection method may be used to recover the transmit data stream {I(n)}. As an example, MLSE (Maximum Likelihood Sequence Estimation) receiver, DFE (Decision feedback Equalizer), MMSE (Minimum Mean Square Equalizer), differential detection, may be used to recover the transmit data stream.
In order to estimate the multipath channel at the receiver a training sequence is typically used that is known at both sides, i.e. at the transmitter and receiver. Training 4CPM in a multipath environment is extremely challenging due to the fact that 4CPM is a nonlinear modulation. Therefore, there is a need in the art for a practical training method that allows easy channel estimation.
According to one aspect of the disclosure, the 4CPM received signal after being digitized is modeled as a πh_{4}GDQPSK linearly modulated signal and therefore a πh_{4}GDQPSK training sequence may be used at the transmitter side to train the receiver and permits multipath channel estimation using known correlation methods. As an illustration example, for a 4CPM system with a modulation index of h_{4}=¼, the following training sequence may be used

 I=[−3, +3, +1, +3, −3, +3, −3, −1, −3, +3]
which corresponds to the binary sequence  d=[1,1,0,0,1,0,0,0,1,1,0,0,1,1,0,1,1,1,0,0]
 I=[−3, +3, +1, +3, −3, +3, −3, −1, −3, +3]
According to one aspect of the disclosure, the channel may be estimated as shown in
A(k)=A(k−1)J(k), with A(−1)=1 and k=0,1,2, . . .
J(k)=exp{jπh_{4}[I(k)−1]}
For an oversampled received signal as explained above, the matched filter is a filter matched to the sequence {A(i),F(i), A(i+1), F(i+1), . . . , A(M−i), F(M−i)} where M=11 in the above example.
According to another aspect of the disclosure, the correlation may be implemented as shown in FIG. The shift register 13541 to 1354M is loaded with the part or entire sequence {A*(n)}. As an example, memory component 13541 is loaded with A*(2), and memory component 13542 is loaded with A*(3) and so on. The shift register is a cyclic shift register, i.e. at each clock cycle, the content shifts one position to the right and the output of 13541 is fed back to 1354M. The received signal corresponding to the training sequence 1352 is input to multipliers 13561 to 1356L along with the outputs of memory components 13541 to 1354L respectively. The multipliers outputs 13581 to 1358L are input to accumulators 13601 to 1360L. Each accumulator accumulates its output over M clock cycles where M is the total or partial length of sequence {A*(n)}. The outputs 13621 to 1362L may be serialized to provide a coarse estimate of the CIR (Channel Impulse Response).
The channel impulse response 1310 may not be perfect due to the fact that there are no training sequences that provide zero correlation zone (i.e. zero sidelobes) around the peak. Therefore, according to one aspect of the disclosure, the coarse CIR 1310 is input to a CIR correction unit 1312 that provides an improved CIR estimate. The CIR correction unit may be implemented using know sidelobe suppression methods such as matrix inversion.
As an example, consider the estimation of a CIR of 3 taps. For the training sequence provided above, if the system is oversampled by a factor of two and a matched filter to the sequence {A(2), F(2), A(3), F(3), . . . , A(10), F(10)} is used than the coarse CIR estimate x=[x(0), x(1), x(2)] at the output of 1308 in
x(0)=h(0)+0.42×h(1)
x(1)=0.42×h(0)+h(1)+0.42×h(2)
x(2)=0.42×h(1)+h(2)
where h=[h(0), h(1), h(2)] is the desired clean CIR, and where the 0.42 value correspond to the first sidelobe level of the autocorrelation function at the output of the matched filter. The coarse CIR x may be corrected in 1312 using matrix inversion as follow
which provides a cleaner estimate 1314 of the CIR.
Constant Envelope PreamblesAs mentioned above, single carrier WBAN systems are envisioned to use low cost crystals with high ppm (parts per million) and may even be crystalless with even higher ppm. In order to detect the presence of the signal, a preamble (i.e. a known signature) is typically sent by a transmitter device as part of each packet. Coherent detection of the preamble may become problematic in the presence of large frequency offsets due to the high ppm on each side of a link and therefore, there is a need in the art for a robust preamble design and detection method while still maintains a constant envelope.
In accordance to another aspect of the disclosure, at least one of a Golay spreading sequence and a generalizedGolay spreading sequence with zero DC level after differential encoding and continuous chiplevel πh_{2}rotation is 2CPM (Continuous Phase Frequency Shift Keying) modulated and used to spread at least a portion of a data stream. This is illustrated in
According to one aspect of the disclosure, as illustrated in
According to another aspect of the disclosure, the 2CPM modulated preamble with modulation index of h_{2}=½ may be generated as shown in
In the following, a differential Golay sequence is defined as a differentially encoded Golay sequence, and a differential generalizedGolay sequence is defined as a differentially encoded generalized Golay sequence.
In the following, an example of a differential Golay code (or sequence) at the output of 1426 in according to one aspect of the disclosure is provided. First, a Golay code a of length N=16 can be generated using delay vector D=[4, 8, 1, 2] and seed vector W=[+1, −1, −1, +1]:

 a=[−1, −1, −1, −1, −1, +1, −1, +1, +1, +1, −1, −1, −1, −1, +1, +1]
Or using logic levels “0” and “1”  a=[1,1,1,1,1,0,1,0,0,0,1,1,1, 1, 0, 0]
The differential Golay code used as a spreading sequence, denoted here c, is generated using the following formula (block 1426 inFIG. 14B )
 a=[−1, −1, −1, −1, −1, +1, −1, +1, +1, +1, −1, −1, −1, −1, +1, +1]
c(0)=a(0)
c(n)=c(n−1)α(n) for n=1, . . . ,N−1
where “mod” stands for modulo operation, i.e. −1 mod N=N−1, and stands for XOR operation. This yield

 c=[1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0]
The spreading sequence c is not a Golay sequence, but rather, its differential a is a Golay sequence. The Golay sequence a can be computed from sequence c using chip differential operation as follows
 c=[1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0]
α(n)=c(n)c((n−1)mod N) for n=0,1, . . . ,N−1
where “mod” stands for modulo operation, i.e. −1 mod N=N−1. It should be noted that when BPSK levels +1 and −1 are used instead of logic levels “0” and “1” in sequences a and c, the differential encoding becomes
And the differential decoding becomes
α(n)=c(n)×c((n−1)mod N) for n=0,1, . . . ,N−1
According to one aspect of the disclosure, the Golay or generalizedGolay sequence used to spread the preamble has a zero DC level after differential encoding and π/2 rotation. The DC level of the differential Golay sequence after π/2rotation is
DC=Σ_{n=0}^{N−1}e^{jnπh}^{2}[1−2c(n)]=0
where j is the complex number defined by j=√{square root over (−1)} and the elements of the sequence {c(n)} are from the alphabet {0,1}. Therefore, the πh_{2}rotated differential Golay sequence is DC free. A DC free sequence is advantageous since it enables DC offset removal at the receiver before and/or after detection and enables multiple RF radio implementations such as direct conversion receiver.
The DC offset may be calculated from the equivalent signed sequence {c(n)}, i.e. when the elements are taken from the alphabet {±1} as follows
DC=Σ_{n=0}^{N−1}e^{jnπ/2}c(n)=Σ_{n=0}^{N−1}e^{jnπ/2}Π_{k=0}^{n}α(k)=0
According to one aspect of the disclosure, the Golay or generalizedGolay sequence used to spread the preamble has a zero DC level after DPBPSK (Differential Pseudo BPSK) encoding and πh_{2 }rotation. The DC level of the DPBPSK Golay sequence {c(n)} after πh_{2 }rotation is
DC=Σ_{n=0}^{N−1}e^{jnπh}^{2}c(n)=Σ_{n=0}^{N−1}e^{jnπh}^{2}Π_{k=0}^{n}e^{jπh}^{2}^{[α(k)−1}]=0
In accordance to another aspect of the disclosure, an msequence (i.e. maximallength sequence) may be used to spread at least a portion of a data stream.
A maximallength sequence or msequence is a sequence that can be generated using a linear feedback shift register (LFSR) and have the maximum possible period for an rstage shift register. As an example,
In reference to
In the following, an example of an msequence according to one aspect of the disclosure is provided. First an msequence, denoted here d, of length N=31 is generated using a 5stage LFSR with generator polynomial g=[1, 1, 1, 0, 1] and initial state s=[0, 0, 0, 1, 1] as shown in
By differentially encoding the msequence, d, a differentially encoded msequence c, which itself is an msequence, may be generated
In accordance to one aspect of the present invention, the differentiallyencoded msequence, c, may be generated directly using the efficient msequence generator of
According to one aspect of the disclosure, a frame (or packet) comprises a preamble 702, header 704, an optional guard interval 706, an optional training sequence 708, and packet payload 710. The preamble may comprise a packet sync sequence field 712, and a startframe delimiter field 714.
According to one aspect of the disclosure, the preamble and the header are 2CPM modulated. Equivalently, according to another aspect of the disclosure, the preamble and the header are modulated using filtered πh_{2}DPBPSK, i.e. differential pseudo BPSK modulation followed by continuous chiplevel πh_{2}rotation followed by appropriate filtering, such as Bessel filtering or Butterworth filtering, to provide a quasiconstant envelope signal. For the important special case where the modulation index is h_{2}=½, this modulation becomes filtered π/2DBPSK.
According to another aspect of the invention, the payload may be modulated using either 2CPM with a preferably modulation index of h=½, (or equivalently filtered π/2DBPSK) and 4CPM with modulation index preferably chosen from h_{4}=¼ or h_{4}=⅙.
The guard interval 706 is absent when the payload is 2CPM modulated and may be present when the payload is 4CPM modulated. The guard interval may be used to for example to ensure phase continuity between the header and payload when the modulation is switched between 2CPM to 4CPM or to allow the multipath to decay before switching from 2CPM to 4CPM.
According to one aspect of the disclosure, the guard interval is absent when the modulation index for 2CPM, is three times the modulation index for 4CPM, i.e.
h_{2}=3h_{4 }
According to one aspect of the disclosure, a 2CPM signal satisfying the above constraint may be modulated as a 4CPM signal with I_{k}ε{±3}.
According to one aspect of the invention, a 2CPM signal satisfying the constraint h_{2}=3h_{4}, may be modulated and demodulated as a 4CPM signal with d(2k)=d(2k+1).
According to another aspect of the disclosure, the header and payload are spread using one of a Barker sequence of length 3, a Barker sequence of length 5, a Barker sequence of length 7, a Barker sequence of length 11, and a Barker sequence of length 13, prior to CPM modulation.
According to one aspect of the disclosure, the sync filed 710 before 2CPM modulation is a repetition of zeros spread (XORed) by a Golay codes a_{16 }with zero DC level after differential encoding and π/2rotation such as the code provided above. This is further illustrated in blocks 7161, 7162 to 716Q. The SYNC filed may be detected coherently or differentially.
According to another aspect of the disclosure, the startframe delimiter (SFD) field 212 comprises a sequence such as the sequence [1] or [1, 1, 0, 1] spread by a_{16 }to indicate the end of the sync field. This is further illustrated in block 718. The SFD may be detected coherently or differentially.
The header 704 may be modulated using 2CPM or filtered πh_{2}DPBPSK. The header 704 comprises a length field 720 and an MCS field 722. The length field indicates the length of the payload in octets and the MCS (Modulation and Coding Scheme) indicates the modulation and coding scheme used for the payload.
The guard interval 706 may be present when the payload is 4CPM modulated. It may be used to ramp down after the header and to rampup before the payload. It may be used also to guarantee a smooth phase transition between 2CPM and 4CPM or to allow the 2CPM multipath to decay.
According to one aspect of the disclosure, a training sequence 708 such as the sequence provided above is used to allow multipath detection using the circuit shown in
The payload 710 comprises a MAC header 724, a data portion 726, and a CRC (cyclic redundancy check) field 728. The data may be modulated using either 2CPM or 4CPM according to one aspect of the disclosure.
In accordance to one aspect of the disclosure, at least one of a Golay sequence, and a generalizedGolay code, with a DC level of magnitude zero after differential encoding and chiplevel π/2rotation is used as a spreading sequence for the preamble portion 702 of the packet. The circuits in
At the receiver, multiple tasks are typically performed before detecting the SYNC field of the preamble. Automatic Gain Control (AGC) may be performed first to fit the received signal within the dynamic range of the ADC. For a single bit ADC, an AGC is not required. After AGC, antenna selection is performed and DC offset may be removed. The above tasks may be implemented in different order. After the above tasks are accomplished, packet detection is performed.
According to one aspect of the disclosure, an acquisition circuit performing joint packet detection, time and frequency estimation is shown in
DC offsets at the receiver may have many origins such as selfmixing due to LO (Local Oscillator) leakage. For the case where the preamble is spread using a 2CPM (or filtered πh_{2}DPBPSK) Golay/generalizedGolay sequence of length N, a DC can be measured by computing the sum or mean over any interval of duration equivalent to K.N chips where K is an integer ≧1 since the receiver sees the 2CPM as a differential Golay/generalizedGolay sequence continuously rotated by πh_{2 }in a linear multipath channel (as shown above) and has a zero DC over any K.N chips and therefore, at the receiver an accurate DC offset estimation may be obtained.
For the case where the preamble is spread using a 2CPM (or filtered πh_{2}DPBPSK) msequence of length N, a DC may be measured accurately by computing the sum or mean over a duration equivalent to K.4.N chips where K is an integer ≧1. This is where a Golay or Generalized Golay has a huge advantage over msequence since the DC is zero over a much shorter length.
The output 1606 of the DC offset removal block 1604 is input to a πh_{2}derotator block 1008. The derotator cancels out the πh_{2}rotation applied at the transmitter. It may be implemented as follows
y(n)=e^{−jnπh}^{2}x(n)
where x(n) is the chip level input 1606 and y(n) is the derotated output 1610.
The output 1610 of the derotator 1608 is input to a chip differential detector 1612. According to one aspect of the invention, the chip differential detector may be implemented as shown in
The differentially detected signal 1614 is input to an efficient correlator 1616. The efficient correlator may be implemented as a Golay efficient correlator as shown in
The permuted vector z corresponds to signal 1566 and is input to a fast Walsh processor which applies a fast Walsh transform and produces output vector Z corresponding to signal 1570. The signal vector is input to a second permuter 1572 which permutes according to the following equation
and discards the first chip to obtain back a 31 bits vector.
The output 1618 of the efficient correlator 1616 in
According to one aspect of the present disclosure, the accumulator may be implemented using a complex first order IIR (Infinite Impulse Response) filter such as the one shown in
The output 1622 of the accumulator 1620 in
If the magnitude in 1624 is tested above a given threshold, the location of the magnitude that was above the threshold or the location of the maximum magnitude of the accumulator shift register may be used as a coarse timing estimate referred to herein as peak location. The angle of the complex value in the accumulator shift register at the peak location may be used to estimate the frequency error.
According to one aspect of the disclosure, the hypothesis testing in the hypothesis testing device 1624 in
R_{n}=μR_{n−1}+(1−μ)X_{n }
where X_{n}, is the received signal magnitude and may computed as discussed above, and μ is a forgetting factor of the IIR chosen in such a way 0<<μ<1. The received signal magnitude, R_{n}, may be decomposed into two components
R_{n}=S_{n}+I_{n }
where R_{n}, is the ideal received signal power and I_{n}, is the noise plus interference power. The magnitude of the peak in the accumulator shift register 1674 may be approximated as follows
A_{n}=ηS_{n}+I_{n}/L
where η is the portion of the signal captured in the peak and may be unknown, and L is the equivalent integration length which may be computed form L and the parameters of the IIR filter in
Ĩ_{n}=R_{n}−ρA_{n }
and the hypothesis testing device performs the following test
A_{n}T·Ĩ_{n }
where T is a threshold computed to achieve a given probability of detection and false alarm, and a signal is judged to be present if A_{n}T·Ĩ^{n}.
After acquisition, the frequency may be corrected and tracked using the remainder of the preamble, residual DC offset may be removed, multipath channel may be estimated and SFD may be detected.
After SFD detection, the header 704 and payload 708 in
At 1904, the baseband spread data stream comprising a spread preamble is input to a joint detection and synchronization block comprising a πh_{2}derotator, followed by a chip differential detector, followed by a correlator and followed by an accumulator. The synchronization parameters are used in the receiver to aid in decoding the remainder of the packet in 1906 and an estimate of the original data at 1908.
The various operations of methods described above may be performed by any suitable means capable of performing the corresponding functions. The means may include various hardware and/or software component(s) and/or module(s), including, but not limited to a circuit, an application specific integrated circuit (ASIC), or processor. Generally, where there are operations illustrated in Figures, those operations may have corresponding counterpart meansplusfunction components with similar numbering. For example, blocks 18021816, 19021908, 20022008, and 20422050, illustrated in
Aspects of the disclosure may be configurable for generating code sets, updating code sets, and/or reassigning user codes in response to demand for network resources, changes in the number of users accessing the network, individual useraccess requirements, changes in signalpropagation characteristics (e.g., multipath, Doppler, path loss, etc.), and/or interference (e.g., intersymbol interference, multipleaccess interference, jamming, etc.). Aspects of the disclosure may provide for flexible code lengths, support multiple levels of Quality of Service (QoS), and/or allow for system overloading. Aspects of the disclosure may be optimized for minimum processing complexity, such as to enable suitability for realtime applications, rapid updates, low power consumption, and/or low cost processing components. Particular aspects of the disclosure may be configured to provide for the previously recited features and advantages and/or alternative features and advantages.
As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” may include resolving, selecting, choosing, establishing and the like.
The various operations of methods described above may be performed by any suitable means capable of performing the operations, such as various hardware and/or software component(s), circuits, and/or module(s). Generally, any operations illustrated in the Figures may be performed by corresponding functional means capable of performing the operations.
The various illustrative logical blocks, modules and circuits described in connection with the present disclosure may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, controller, microcontroller or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the present disclosure may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in any form of storage medium that is known in the art. Some examples of storage media that may be used include random access memory (RAM), read only memory (ROM), flash memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CDROM and so forth. A software module may comprise a single instruction, or many instructions, and may be distributed over several different code segments, among different programs, and across multiple storage media. A storage medium may be coupled to a processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is specified, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
The functions described may be implemented in hardware, software, firmware or any combination thereof. If implemented in software, the functions may be stored as one or more instructions on a computerreadable medium. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computerreadable media can comprise RAM, ROM, EEPROM, CDROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Bluray® disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.
Thus, certain aspects may comprise a computer program product for performing the operations presented herein. For example, such a computer program product may comprise a computer readable medium having instructions stored (and/or encoded) thereon, the instructions being executable by one or more processors to perform the operations described herein. For certain aspects, the computer program product may include packaging material.
Software or instructions may also be transmitted over a transmission medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of transmission medium.
Further, it should be appreciated that modules and/or other appropriate means for performing the methods and techniques described herein can be downloaded and/or otherwise obtained by a user terminal and/or base station as applicable. For example, such a device can be coupled to a server to facilitate the transfer of means for performing the methods described herein. Alternatively, various methods described herein can be provided via storage means (e.g., RAM, ROM, a physical storage medium such as a compact disc (CD) or floppy disk, etc.), such that a user terminal and/or base station can obtain the various methods upon coupling or providing the storage means to the device. Moreover, any other suitable technique for providing the methods and techniques described herein to a device can be utilized.
It is to be understood that the claims are not limited to the precise configuration and components illustrated above. Various modifications, changes and variations may be made in the arrangement, operation and details of the methods and apparatus described above without departing from the scope of the claims.
The techniques provided herein may be utilized in a variety of applications. For certain aspects, the techniques presented herein may be incorporated in a base station, a mobile handset, a personal digital assistant (PDA) or other type of wireless device that operate in UWB part of spectrum with processing logic and elements to perform the techniques provided herein.
Claims
1. A method for communication, comprising:
 encoding a binary data stream using one of a continuously rotated differential pseudo BPSK (πh2DPBPSK) encoding and a continuously rotated generalized differential pseudo QPSK (πh4GDPQPSK) encoding; and
 filtering the encoded binary data stream to produce a quasiconstant envelope modulated signal.
Type: Application
Filed: Jun 25, 2014
Publication Date: Mar 19, 2015
Inventor: Ismail Lakkis (San Diego, CA)
Application Number: 14/314,027
International Classification: H04L 27/20 (20060101);