Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS6028889 A
Publication typeGrant
Application numberUS 09/030,553
Publication dateFeb 22, 2000
Filing dateFeb 25, 1998
Priority dateFeb 25, 1998
Fee statusPaid
Publication number030553, 09030553, US 6028889 A, US 6028889A, US-A-6028889, US6028889 A, US6028889A
InventorsJorge Marino Gude, Guangying Li, Carol Conti Moy, John W. Niemasz, Jr.
Original AssigneeLucent Technologies, Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Pipelined fast hadamard transform
US 6028889 A
Abstract
A pipelined Fast Hadamard Transform ("FHT") architecture is disclosed that comprises log2 N identical pipeline stages, which are ideally suited for implementation in application-specific integrated circuits. One 2-port stage of the first illustrative embodiment of the present invention advantageously comprises: a first input for sequentially receiving N incoming correlation signals, I(i), at cycle i, wherein the N incoming correlation signals are based on N Walsh chips; a processor for generating N outgoing correlation signals based on the N incoming correlation signals, I(i); and a first output for sequentially outputting the N outgoing correlation signals, O(i); wherein ##EQU1## k=(i-N/2).
Images(4)
Previous page
Next page
Claims(7)
What is claimed is:
1. A stage in a channel decoder comprising:
a first input for sequentially receiving N incoming correlation signals, I(i), at cycle i, wherein said N incoming correlation signals are based on N Walsh chips;
a processor for generating N outgoing correlation signals based on said N incoming correlation signals, I(i); and
a first output for sequentially outputting said N outgoing correlation signals, O(i);
wherein ##EQU8## k=(i-N/2).
2. A method for processing correlation signals in a channel decoder, said method comprising:
sequentially receiving N incoming correlation signals, I(i), at cycle i, wherein said N incoming correlation signals are based on N Walsh chips;
generating N outgoing correlation signals based on said N incoming correlation signals, I(i); and
sequentially outputting said N outgoing correlation signals, O(i);
wherein ##EQU9## k=(i-N/2).
3. A channel decoder comprising:
log2 N stages, numbered log2 N-1 through 0, that are cascaded so that the input of stage j is the output of stage j+1, wherein each stage comprises:
a first input for sequentially receiving N incoming correlation signals, I(i), at cycle i, wherein said N incoming correlation signals are based on N Walsh chips;
a processor for generating N outgoing correlation signals based on said N incoming correlation signals; I(i); and
a first output for sequentially outputting said N outgoing correlation signals, O(i);
wherein ##EQU10## k=(i-N/2).
4. A stage in a channel decoder comprising:
a first input for sequentially receiving N/2 incoming correlation signals, I1 (i), at cycle i, wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
a second input for sequentially receiving N/2 incoming correlation signals, I2 (i), wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
a processor for generating N/2 outgoing correlation signals, O1 (i), and N/2 outgoing correlation signals, O2 (i), based on said incoming correlation signals I1 (i) and I2 (i);
a first output for outputting said N/2 outgoing correlation signals, O1 (i), wherein ##EQU11## a second output for outputting said N/2 outgoing correlation signals, O2 (i), wherein ##EQU12## k=(i-N/2).
5. A method for processing correlation signals in a channel decoder, said method comprising:
sequentially receiving N/2 incoming correlation signals, I1 (i), at cycle i, wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
sequentially receiving N/2 incoming correlation signals, I2 (i), wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
generating N/2 outgoing correlation signals, O1 (i), and N/2 outgoing correlation signals, O2 (i), based on said incoming correlation signals I1 (i) and I2 (i);
outputting said N/2 outgoing correlation signals, O1 (i), wherein ##EQU13## outputting said N/2 outgoing correlation signals, O2 (i), wherein ##EQU14## wherein k=(i-N/2).
6. A channel decoder comprising:
log2 N stages, numbered log2 N-1 through 0, that are cascaded so that the input of stage j is the output of stage j+1, wherein each stage comprises:
a first input for sequentially receiving N/2 incoming correlation signals, I1 (i), at cycle i, wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
a second input for sequentially receiving N/2 incoming correlation signals, I2 (i), wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
a processor for generating N/2 outgoing correlation signals, O1 (i), and N/2 outgoing correlation signals, O2 (i), based on said incoming correlation signals I1 (i) and I2 (i);
a first output for outputting said N/2 outgoing correlation signals, O1 (i), wherein ##EQU15## a second output for outputting said N/2 outgoing correlation signals, O2 (i), wherein ##EQU16## and k=(i-N/2).
7. A channel decoder comprising:
log2 N stages, numbered log2 N-1 through 0, that are cascaded so that the input of stage j is the output of stage j+1, wherein each stage comprises:
a first input for sequentially receiving N/2 incoming correlation signals, I1 (i), at cycle i, wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
a second input for sequentially receiving N/2 incoming correlation signals, I2 (i), wherein said N/2 incoming correlation signals are based on N/2 Walsh chips;
a processor for generating N/2 outgoing correlation signals, O1 (i), and N/2 outgoing correlation signals, O2 (i), based on said incoming correlation signals I1 (i) and I2 (i);
a first output for outputting said N/2 outgoing correlation signals, O1 (i); and
a second output for outputting said N/2 outgoing correlation signals, O2 (i);
wherein the transfer function for stage j is: ##EQU17##
Description
FIELD OF THE INVENTION

The present invention relates to telecommunications in general, and, more particularly, to techniques for detecting and correcting bit errors caused by noise, interference, and distortion in a telecommunications channel.

BACKGROUND OF THE INVENTION

FIG. 1 depicts a schematic diagram of a portion of a typical wireless telecommunications system, which provides wireless telecommunications service to a number of wireless terminals (e.g., wireless terminals 101-1 through 101-3) that are situated within a geographic region. The heart of wireless telecommunications system 100 is Wireless Switching Center ("WSC") 120, which might also be known as a Mobile Switching Center ("MSC") or Mobile Telephone Switching Office ("MTSO"). Typically, Wireless Switching Center 120 is connected to a plurality of base stations (e.g., base stations 103-1 through 103-5) that are dispersed throughout the geographic area serviced by the system and to the local and long-distance telephone offices (e.g., local-office 130, local-office 138 and toll-office 140). Wireless Switching Center 120 is responsible for, among other things, establishing and maintaining calls between wireless terminals and between a wireless terminal and a wireline terminal (e.g., wireline terminal 150), which wireline terminal is connected to Wireless Switching Center 120 via the local and/or long-distance networks.

The geographic area serviced by a wireless telecommunications system is divided into spatially distinct areas called "cells." As depicted in FIG. 1, each cell is schematically represented by one hexagon in a honeycomb pattern; in practice, however, each cell has an irregular shape that depends on the topography of the terrain surrounding the cell. Typically, each cell contains a base station, which comprises the radios and antennas that the base station uses to communicate with the wireless terminals in that cell and also comprises the transmission equipment that the base station uses to communicate with Wireless Switching Center 120.

For example, when wireless terminal 101-1 desires to communicate with wireless terminal 101-2, wireless terminal 101-1 transmits the desired information to base station 103-1, which relays the information to Wireless Switching Center 120. Upon receipt of the information, and with the knowledge that it is intended for wireless terminal 101-2, Wireless Switching Center 120 then returns the information back to base station 103-1, which relays the information, via radio, to wireless terminal 101-2.

When digital signals are transmitted between a base station and a wireless terminal, the signals can be corrupted during transmission by noise, interference, and distortion. For example, noise can cause a radio receiver to occasionally misinterpret a received binary digit as a "0," when it was transmitted as a "1," and to occasionally misinterpret a received binary digit as a "1," when it was transmitted as a "0." Therefore, digital wireless telecommunications systems often incorporate an error detection and correction mechanism to mitigate the effects of corrupt transmissions.

Although separate error detection and correction mechanisms are provided for transmissions from a wireless terminal to a base station (the "uplink") and for transmissions from the base station to the wireless terminal (the "downlink"), the mechanisms can be identical. So for pedagogical purposes, the details of the error detection and correction mechanism for only one line, the uplink, will be discussed in this background.

FIG. 2 depicts a block diagram of the salient components of wireless terminal 101-1 and base station 103-1 in the prior art that support an error detection and correction mechanism for uplink transmissions. Wireless terminal 101-1 comprises: information source 201, channel encoder 202, and transmitter 203, and base station 103-1 comprises: receiver 204, channel decoder 205, and information destination 206.

Information source 201 is the source of a digital message signal (e.g., digitized voice, control signals, etc.) that is to be transmitted via radio to base station 103-1. The output of information source 201 is fed to channel encoder 202.

Channel encoder 202 is the mechanism that wireless terminal 101-1 employs to provide error detection and correction for uplink transmissions. Channel encoder 202 typically partitions the digital message signal into fixed-length blocks and substitutes in the place of each block a codeword that is transmitted in place of the block. Typically, the codeword is uniquely associated with the fixed-length block and the codeword is selected from a set of error correcting codewords that are constructed in such a way as to be distinguishable even if corrupted during transmission.

In accordance with a given set of error correcting codes, channel encoder 202 substitutes each n-bit block of the digital message signal with a m-bit codeword that is uniquely associated with the n-bit block (where m>n). Where the number of symbols or bits in the codeword is an integral multiple of the number of symbols or bits in the block, the symbols in the codeword are sometimes called "chips" rather than "bits," but in either case the mechanism is the same.

For example, in accordance with one error correcting code set in the prior art, the 7-4 Hamming Code, each 4-bit block of digital message signal is replaced with a 7-bit codeword that is transmitted in place of the 4-bit block. Table 1 depicts the mapping of the 4-bit blocks to 7-bit codewords in accordance with the 7-4 Hamming Code.

              TABLE 1______________________________________The Hamming (7-4) Codecodewordindex         4-bit block                  7-bit codeword______________________________________0             0000     00000001             0001     00011112             0010     00101103             0011     00110014             0100     01001015             0101     01010106             0110     01100117             0111     01111008             1000     10000119             1001     100110010            1010     101010111            1O11     101101012            1100     110011013            1101     110100114            1110     111000015            1111     1111111______________________________________

Channel encoder 202 then feeds each codeword, in succession, to transmitter 203, which modulates the codeword onto a carrier and transmits it to receiver 204 in base station 103-1.

Receiver 204 demodulates the incoming carrier signal and provides the (potentially corrupt) codeword to channel decoder 205 for decoding.

Channel decoder 205 is the mechanism that base station 103-1 employs to provide error detection and correction for uplink transmissions. Channel decoder 205 receives the codeword and attempts to correlate it to one of the codewords in the error correcting code set. If there is an identical match, which suggests that the codeword is not corrupt, channel decoder 205 outputs the n-bit block corresponding to the codeword. If there is no identical match, which indicates that the codeword is corrupt, channel decoder 205 attempts to correlate the corrupt codeword to the most similar codeword in the error correcting code set. When channel decoder 205 has correlated the corrupt codeword to a legitimate codeword, channel decoder 205 outputs the n-bit block corresponding to the legitimate codeword most similar to the corrupt codeword.

If (1) the error correcting code set and (2) the mechanism for correlating corrupt codewords with legitimate codewords is well constructed, an error detection and correction mechanism can all but eliminate the effects of noise, interference, and distortion on the transmission channel.

An error correction and detection mechanism in the prior art that is especially well-suited for use with code-division multiple access ("CDMA") uses an error correcting code set based on Walsh Codes. See, for example, Gilhousen et. al., "On the Capacity of a Cellular CDMA System," IEEE Trans. on Vehicular Technology, Vol. 40, pp. 303-312 (May 1991). Furthermore, U.S. Pat. Nos. 3,701,143 and 3,795,864 teach how to make and use Walsh codes for error detection and correction and are incorporated by reference as if set forth in their entirety.

In accordance with this mechanism, channel decoder 202 substitutes each n-bit block of digital message signal with a 2n -chip bipolar codeword. Because the Walsh codes are advantageously transmitted using direct-sequence spread-spectrum modulation, each symbol in a Walsh code is represented in bipolar format, whose symbols comprises "-1" and "+1,"in contrast to the symbols "0" and "1." For example, Table 2 depicts a mapping of 3-bit blocks to 8-chip Walsh codes.

              TABLE 2______________________________________codewordindex      3-bit block               8-chip Walsh codeword______________________________________0          000      +1, +1, +1, +1, +1, +1, +1, +11          001      +1, -1, +1, -1, +1, -1, +1, -12          010      +1, +1, -1, -1, +1, +1, -1, -13          011      +1, -1, -1, +1, +1, -1, -1, +14          100      +1, +1, +1, +1, -1, -1, -1, -15          101      +1, -1, +1, -1, -1, +1, -1, +16          110      +1, +1, -1, -1, -1, -1, +1, +17          111      +1, -1, -1, +1, -1, +1, +1, -1______________________________________

For example, if channel encoder 202 encodes the 3-bit block "000" as:

              TABLE 3______________________________________chip  chip    chip    chip chip  chip  chip  chip1     2       3       4    5     6     7     8______________________________________+1    +1      +1      +1   +1    +1    +1    +1______________________________________

corruption in transmission can cause receiver 204 to receive and output to channel decoder 205 the corrupt codeword

              TABLE 4______________________________________chip  chip    chip    chip chip  chip  chip  chip1     2       3       4    5     6     7     8______________________________________+0.92 +1.04   +0.34   +0.56                      -0.23 +0.35 +0.87 +0.71______________________________________

One technique that channel decoder 205 can use to correlate corrupt Walsh Code codewords to legitimate codewords involves the well-known Fast Hadamard Transform. U.S. Pat. Nos. 3,859,515, 3,742,201, 3,792,355, 3,956,619 and 5,357,454, which are incorporated by reference as if set forth in their entirety, teach how to make the Fast Hadamard Transform and how to use it to correlate corrupt Walsh Code codewords to legitimate Walsh Code codewords.

The Fast Hadamard Transform accepts as input a received 2n -chip Walsh codeword, such as that in Table 4, and outputs 2n correlation signals, such as that in Table 5. Each correlation signal indicates the likelihood that the received corrupt codeword is one of the legitimate codewords. For example, a Fast Hadamard Transform performed on the corrupt codeword in Table 4 yields the correlation signals in Table 5.

              TABLE 5______________________________________Codeword     CorrelationIndex        Coefficient Signal______________________________________1            4.962            1.563            2.124            -0.805            -0.246            1.247            -0.328            -1.16______________________________________

From Table 5, it can be seen that the correlation signal for codeword #1 is greater than that for any other codeword, and, therefore, the Fast Hadamard Transform suggests that the Walsh Code associated with codeword #1 is the most likely to have been transmitted. On that basis, channel decoder 205 outputs the 3-bit block associated with codeword #1, which from Table 2 is "000."

Although many techniques for implementing the Fast Hadamard Transform are well-known in the prior art, those techniques are generally too slow or require too much hardware for implementation in contemporary radio receivers. Therefore, the need exists for a technique that is fast, compact, and well-suited for implementation in application-specific integrated circuits.

SUMMARY OF THE INVENTION

The present invention is a technique for performing the Fast Hadamard Transform without some of the costs and restrictions associated with techniques in the prior art. In particular, embodiments of the present invention utilize a highly-efficient pipeline architecture that is capable of performing the Fast Hadamard Transform on N Walsh chips in real-time utilizing only N log2 N additions and subtractions. Furthermore, some embodiments of the present invention utilize log2 N identical pipeline stages, which are ideally suited for implementation in application-specific integrated circuits or as components in a field-programmable gate-array. And still furthermore, some embodiments of the present invention utilize log2 N pipeline stages such that each stage requires only one-half of the memory of the earlier stage in the pipeline. These last embodiments are particularly well-suited for applications in which the number of gates in the embodiment must be kept low.

Three illustrative embodiments of the present invention are described in detail. The first illustrative embodiment comprises log2 N2-port stages that accept one input and output one result per pipeline cycle. The second illustrative embodiment has a shorter pipeline latency than the first illustrative embodiment and comprises log2 N4-port stages that accept two inputs and outputs two results per pipeline cycle. The third illustrative embodiment requires less memory than the second illustrative embodiment and also comprises log2 N4-port stages.

A 2-port stage of the first illustrative embodiment of the present invention advantageously comprises: a first input for sequentially receiving N incoming correlation signals, I(i), at cycle i, wherein the N incoming correlation signals are based on N Walsh chips; a processor for generating N outgoing correlation signals based on the N incoming correlation signals, I(i); and a first output for sequentially outputting the N outgoing correlation signals, O(i); wherein ##EQU2## k=(i-N/2).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a schematic diagram of a wireless telecommunications system in the prior art.

FIG. 2 depicts a block diagram of the salient components in the uplink channel from wireless terminal 101-1 to base station 103-1, with emphasis on the error detection and correction mechanism in the uplink channel.

FIG. 3 depicts a block diagram of a channel decoder in accordance with the illustrative embodiment of the present invention.

FIG. 4 depicts a block diagram of a Pipelined Fast Hadamard Transform in accordance with a first illustrative embodiment of the present invention.

FIG. 5 depicts a block diagram of a 2-port Pipelined Fast Hadamard Transform stage in accordance with the first illustrative embodiment.

FIG. 6 depicts a block diagram of a Pipelined Fast Hadamard Transform in accordance with the second and third illustrative embodiments of the present invention.

FIG. 7 depicts a block diagram of a 4-port Pipeline Fast Hadamard Transform stage in accordance with the second and third illustrative embodiments.

FIG. 8 depicts a flowchart of the operation of the illustrative embodiments of the present invention.

DETAILED DESCRIPTION

FIG. 3 depicts a block diagram of channel decoder 300 in accordance with the illustrative embodiment of the present invention. Channel decoder 300 advantageously accepts a 2n -chip (potentially corrupt) Walsh codeword that is received by a radio receiver (not shown), and outputs an n-bit digital message signal block that is associated with the legitimate Walsh codeword that is most closely correlated with the received codeword. Each chip is advantageously represented by a real number, in well-known fashion.

Channel decoder 300 advantageously comprises: Pipelined Fast Hadamard Transform 302 and decoder 304, interconnected as shown.

Pipelined Fast Hadamard Transform 302 advantageously: (1) accepts a 2n -chip (potentially corrupt) Walsh codeword, (2) performs a Fast Hadamard Transform on the chips, and (3) outputs 2n correlation signals to decoder 304. The details of Pipelined Fast Hadamard Transform 302 will be discussed below.

Decoder 304 advantageously: (1) accepts the 2n correlation signals, (2) determines which Walsh Code codeword has the highest correlation, and (3) outputs the n-bit digital message signal block associated with that codeword, all in well-known fashion. It will be clear to those skilled in the art how to make and use decoder 304.

Because Pipelined Fast Hadamard Transform 302 has a pipelined architecture, a clock signal on lead 306 indicates the pipeline cycle, i, and synchronizes the operation of Pipelined Fast Hadamard Transform 302 and decoder 302. Furthermore, the pipelined architecture of the illustrative embodiments enables Pipelined Fast Hadamard Transform 302 to begin processing before all 2n -chips of a codeword are received by channel decoder 300.

In the first illustrative embodiment described below, Pipelined Fast Hadamard Transform 302 accepts one Walsh chip per pipeline cycle and outputs one correlation signal to decoder 304 per pipeline cycle.

In contrast, in the second and third illustrative embodiments, Pipelined Fast Hadamard Transform 302 accepts two Walsh chips per pipeline cycle and output two correlation signals to decoder 304 per pipeline cycle. From the three illustrative embodiments, it will be clear to those skilled in the art how to make and use other embodiments of the present invention that accept c Walsh chips per pipeline cycle and output c correlation signals to decoder 304 per pipeline cycle, where c≦N/2, c is an integral power of 2, and N=2n.

Furthermore, as soon as the last chip in one codeword has been input into Pipelined Fast Hadamard Transform 302, the first chip in the next codeword can be input, without having to flush the pipeline. Similarly, the first correlation signal associated with the second codeword is output immediately after the last correlation signal associated with the first codeword is output.

FIG. 4 depicts a block diagram of the first illustrative embodiment of Pipelined Fast Hadamard Transform (PFHT) 302, which advantageously comprises log2 N identical, cascaded stages, numbered PFHT stage 401-log2 N-1 through PFHT stage 401-0. For the purposes of this specification, the stages are numbered beginning with the last stage in the pipeline towards the first stage so as to make each stage's transfer function easier to understand. It will, however, be clear to those skilled in the art that this numbering convention is arbitrary, and that other numbering conventions can be adopted. Advantageously the stages are cascaded so that the input of stage j is the output of stage j+1, for j=0 to log2 N-1. Advantageously, all of the stages are synchronized with the clock signal on lead 306, which is indicative of the pipeline clock cycle, i.

FIG. 5 depicts a block diagram of stage 401-j, which accepts one input signal and outputs one output signal per pipeline cycle. If stage 401-j is the first stage, the input is Walsh chips. If stage 401-j is not the first stage, the input is intermediate correlation signals that are based on the Walsh chips fed into the first stage. If stage 401-j is the last stage, the output is the final correlation signals for decoder 304, and if stage 401-j is not the last stage, the output is an intermediate correlation signal destined for the next stage.

Stage 401-j advantageously comprises a hard-wired special-purpose processor for generating the output O(i) based on the input I(i), and a memory to store the respective signals pending their use and output. When one 2n -chip Walsh codeword is input to stage 401-j in N=2n pipeline cycles (beginning at pipeline cycle i mod N=0), the output O(i) is related to the input I(i) by the transfer function: ##EQU3## wherein i is a non-negative integer indicative of the pipeline cycle and k=(i-N/2). It will be clear to those skilled in the art that values of k<0 are undefined.

For example, Table 6 illustrates the relationship of i, I(i) and O(i) for N=8 for PFHT stage j according to Eq. 1.

              TABLE 6______________________________________i       i mod N       I(i)   O(i)______________________________________0       0             I(0)1       1             I(1)2       2             I(2)3       3             I(3)4       4             I(4)   I(0) + I(1)5       5             I(5)   I(2) + I(3)6       6             I(6)   I(4) + I(5)7       7             I(7)   I(6) + I(7)8       0                    I(0) - I(1)9       1                    I(2) - I(3)10      2                    I(4) - I(5)11      3                    I(6) - I(7)______________________________________

At i=7, the 8 input signals (i.e., the 8 Walsh chips for the first stage and the 8 intermediate correlation signals for the later stages) associated with one codeword have all been input to the stage, and, therefore, at i=8, the first of another 8 input signals can be input to the stage. Note, that the first output signal emerges from the stage i mod N/2 cycles after the first input signal is fed into the stage. Table 7 shows how, in pipeline fashion, one set of 8 input signals (input from i=0 to 7 and output from i=4 to 11) is followed immediately by a second set of 8 signals (input from i=8 to 15 and output from i=12 to 19).

              TABLE 7______________________________________i       i mod N       I(i)   O(i)______________________________________0       0             I(0)1       1             I(1)2       2             I(2)3       3             I(3)4       4             I(4)   I(0) + I(1)5       5             I(5)   I(2) + I(3)6       6             I(6)   I(4) + I(5)7       7             I(7)   I(6) + I(7)8       0             I(8)   I(0) - I(1)9       1             I(9)   I(2) - I(3)10      2             I(10)  I(4) - I(5)11      3             I(11)  I(6) - I(7)12      4             I(12)  I(8) + I(9)13      5             I(13)  I(10) + I(11)14      6             I(14)  I(12) + I(13)15      7             I(15)  I(14) + I(15)16      0                    I(8) - I(9)17      1                    I(10) - I(11)18      2                    I(12) - I(13)19      3                    I(14) - I(15)______________________________________

When N=8, Pipelined Fast Hadamard Transform 302 has log2 N=3 stages: stage 2, stage 1 and stage 0. Table 8 depicts the relationship of i, I(i) on lead 301 and O(i) for each of the three stages. O(i) for stage 0 is output on lead 303.

              TABLE 8______________________________________                  Output of                         Output of        Input to  Stage 2 =                         Stage 1 =                                  Output ofi mod N Stage 2   Input of                         Input of Stage 0i    (N = 8) (lead 301)                  Stage 1                         Stage 0  (lead 303)______________________________________0    0       I(0)1    1       I(1)2    2       I(2)3    3       I(3)4    4       I(4)      I(0) + I(1)5    5       I(5)      I(2) + I(3)6    6       I(6)      I(4) + I(5)7    7       I(7)      I(6) + I(7)8    0                 I(0) - I(1)                         I(4) + I(5)9    1                 I(2) - I(3)                         I(6) + I(7)10   2                 I(4) - I(5)                         I(8) + I(9)11   3                 I(6) - I(7)                         I(10) + I(11)12   4                        I(4) - I(5)                                  I(8) + I(9)13   5                        I(6) - I(7)                                  I(10) + I(11)14   6                        I(8) - I(9)                                  I(12) + I(13)15   7                        I(10) - I(11)                                  I(14) + I(15)16   0                                 I(8) - I(9)17   1                                 I(10) - I(11)18   2                                 I(12) - I(13)19   3                                 I(14) - I(15)______________________________________

From Table 8 it can be seen that it takes 8 cycles to input the 8 Walsh chips of one codeword into stage 2 and 12 cycles before the first output emerges on lead 303. By i=19, all 8 correlation signals have emerged on lead 303. Although each stage is identical, the odd stages are adding coefficients while i mod N≧N/2 and subtracting coefficients while i mod N<N/2. Similarly, the even stages are subtracting coefficients while i mod N≧N/2 and adding coefficients while i mod N<N/2. Therefore, the transfer function for stage j is: ##EQU4## wherein i is a non-negative integer indicative of the pipeline cycle and k=(i-N/2). It will be clear to those skilled in the art that values for k<0 are undefined.

From Table 8, it can also be seen that at every multiple of i mod N=8, another set of N Walsh chips can be input into stage 2, the output of which begins to emerge on lead 303 12 cycles later. It will be clear to those skilled in the art how to make and use embodiments of the invention in which each stage accepts one input per pipeline cycle for other values of N and that the equations above entirely define the transfer function for each stage of Pipelined Fast Hadamard Transform 302.

In accordance with the first illustrative embodiment and Table 8, the illustrative set of 8 Walsh chips depicted in Table 9 generate, after 19 pipeline cycles, the 8 correlation signals depicted in Table 10, which is the identical result produced in the prior art as shown in Table 5.

              TABLE 9______________________________________Input on Lead 301  Input       Walsh chips______________________________________  I(0) +0.92  I(1) +1.04  I(2) +0.34  I(3) +0.56  I(4) -0.23  I(5) +0.35  I(6) +0.87  I(7) +0.71______________________________________

              TABLE 10______________________________________Output on Lead 303        Codeword CorrelationOutput       Index    Coefficient Signals______________________________________O(12)        1        4.96O(13)        2        1.56O(14)        3        2.12O(15)        4        -0.80O(16)        5        -0.24O(17)        6        1.24O(18)        7        -0.32O(19)        8        -1.16______________________________________

FIG. 6 depicts a block diagram of a second illustrative embodiment of Pipelined Fast Hadamard Transform 302, which advantageously comprises log2 N identical stages, PFHT stage 601-log2 N-1 through PFHT stage 601-0. The salient difference between the first illustrative embodiment in FIG. 4 and the second and third illustrative embodiments is that the latter accept two Walsh chips per pipeline cycle and output two correlation signals per pipeline cycle. The result is that the second and third illustrative embodiments each process N Walsh chips in one-half the number of pipeline cycles of the first illustrative embodiment, although all of the embodiments operate in real-time.

As in the first illustrative embodiment the stages are cascaded so that the input of stage j is the output of stage j+1 for j=0 to log2 N-1. And because the stages are identical, embodiments of the present invention are especially well-suited for implementation in application-specific integrated circuits.

FIG. 7 depicts a block diagram of stage 601-j, which accepts two input signals and outputs two output signals per pipeline cycle. If stage 601-j is the first stage, the input is Walsh chips. If stage 601-j is not the first stage, the input is intermediate correlation signals that are based on the Walsh chips fed into the first stage. If stage 601-j is the last stage, the output is the final correlation signals for decoder 304, and if stage 601-j is not the last stage, the output is intermediate correlation signals for the next stage.

Stage 601-j advantageously comprises a hard-wired special-purpose processor for generating the outputs O(i) and O2 (i) based on the inputs I1 (i) and I2 (i), and a memory to store the respective signals pending their use and output. When one set of N Walsh chips is input to stage 501-j in N/2 cycles, beginning at i mod N=0, the outputs O1 (i) and O2 (i) are related to the inputs I1 (i) and I2 (i) by the transfer functions: ##EQU5## wherein i is a non-negative integer indicative of the pipeline cycle and k=(i-N/2). It will be clear to those skilled in the art that values for k<0 are undefined.

In Table 11, below, it can be seen that it takes 2 cycles to input 4 Walsh chips and 3 cycles to output 4 intermediate correlation signals through stage 601-j, for Walsh codewords comprising 2n =4 chips.

              TABLE 11______________________________________i     i mod N  I1 (i)                  I2 (i)                        O1 (i)                                 O2 (I)______________________________________0     0        I1 (0)                  I2 (0)1     1        I1 (1)                  I2 (1)                        I1 (0) + I2 (0)                                 I1 (1) + I2 (1)2     2                      I1 (0) - I2 (0)                                 I1 (l) - I2 (1)______________________________________

In Table 12, below, it can be seen that it takes 2 cycles to input 4 Walsh chips and 4 cycles to output 4 final correlation signals through PFHT 302 as depicted in FIG. 6.

              TABLE 12______________________________________                     Output Output                     of     of                     Stage 2                            Stage 2                     (O1 (i))                            (O2 (I))                                  Output                                        Output       Input to               Input to                     =      =     of    of       Stage 1 Stage 1                     Input of                            Input of                                  Stage 0                                        Stage 0i   i mod N I1 (i)               I2 (i)                     Stage 0                            Stage 0                                  O1 (i)                                        O2 (I)______________________________________0   0       I1 (0)               I2 (0)1   1       I1 (1)               I2 (1)                     I1 (0) +                            I1 (1) +                     I2 (0)                            I2 (1)2   2                     I1 (0) -                            I1 (1) -                                  I1 (1) -                                        I1 (2) -                     I2 (0)                            I2 (1)                                  I2 (1)                                        I2 (2)3   3                                  I1 (1) +                                        I1 (2) +                                  I2 (1)                                        I2 (2)______________________________________

Although each stage is identical, the even stages are adding coefficients while i mod N≧N/2 and subtracting coefficients while i mod N≧N/2. Similarly, the even stages are subtracting coefficients while i mod N≧N/2 and adding coefficients while i mod N<N/2. Therefore, the transfer function for stage j in accordance with the second illustrative embodiment is: ##EQU6## wherein i is a non-negative integer indicative of the pipeline cycle and k=(i-N/2). It will be clear to those skilled in the art that values of k<0 are not defined.

The third illustrative embodiment of the present invention uses the same architecture depicted in FIGS. 5 and 6 except that each stage employs a different transfer function and that whereas each stage in the second illustrative embodiment requires the same amount of memory, each stage in the third illustrative embodiment requires one-half of the memory than the next upstream stage. Therefore, the third illustrative embodiment is particularly well-suited for applications in which the number of gates in the embodiment must be kept low.

When one set of N Walsh chips is input to stage j in N/2 cycles, beginning with cycle i mod N=0, the outputs O1 (i) and O2 (i) are related to the inputs I1 (i) and I2 (i) by the transfer functions: ##EQU7## It will be clear to those skilled in the art that bk is defined by i mod N, as described above, and that j is indicative of the stage. It will be clear to those skilled in the art that the above equations fully define the transfer function for the third illustrative embodiment.

FIG. 8 depicts a flowchart that illustrates the methodology performed by the illustrative embodiments of the present invention.

At step 801, the illustrative embodiment receives a transmitted signal from a remote transmitter, which transmitted signal has been encoded with an N-chip Walsh code in well-known fashion.

At step 802, the illustrative embodiment demodulates the transmitted signal, in well-known fashion, to recover an estimate of the transmitted N-chip Walsh codeword, which has been potentially corrupted by noise, interference, and distortion.

At step 803-N, the first stage, stage log2 N-1, of Pipelined Fast Hadamard Transform 302 receives the estimate of the N-chip Walsh codeword and begins the process of generating the N correlation signals. At step 813, the N Walsh chips are sequentially received by stage log2 N-1 and at step 814, the first set of N intermediate correlation coefficients is generated, in accordance with one of the transfer functions described above. At step 815 the N intermediate correlation coefficients are output, sequentially, to the next stage.

Steps 803-N-2 through 803-1 are advantageously identical to step 803-N-1, with the number of stages in the illustrative embodiment equal to log2 N.

At step 803-0, the illustrative embodiment advantageously performs stage 0 of the Pipelined Fast Hadamard Transform. At step 816, the illustrative embodiment receives N intermediate correlation signals, sequentially, from stage 1, and at step 817, the illustrative embodiment advantageously generates the N final correlation signals. At step 818, the N final correlation coefficients are output sequentially, and control returns to step 801.

It is to be understood that the above-described embodiments are merely illustrative of the invention and that many variations may be devised by those skilled in the art without departing from the scope of the invention. It is therefore intended that such variations be included within the scope of the following claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3792355 *Dec 10, 1971Feb 12, 1974Hitachi LtdOrthogonal transformation circuit using hadamard matrices
US3956619 *Mar 31, 1975May 11, 1976General Electric CompanyPipeline walsh-hadamard transformations
US4209751 *Nov 16, 1976Jun 24, 1980Matsushita Electric Industrial Co., Ltd.Channel selection apparatus
US5357454 *Jul 25, 1991Oct 18, 1994Ericsson Ge Mobile Communications Holding, Inc.Fast walsh transform processor
US5561618 *Dec 22, 1993Oct 1, 1996Qualcomm IncorporatedMethod and apparatus for performing a fast Hadamard transform
US5574675 *Mar 22, 1994Nov 12, 1996Industrial Technology Research LaboratoriesState-controlled half-parallel array walsh transform
US5856935 *May 8, 1996Jan 5, 1999Motorola, Inc.Fast hadamard transform within a code division, multiple access communication system
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US6311202 *Mar 12, 1999Oct 30, 2001Lucent Technologies Inc.Hardware efficient fast hadamard transform engine
US6993541Apr 19, 2004Jan 31, 2006Comsys Communications & Signal Processing Ltd.Fast hadamard peak detector
US6996163 *Mar 27, 2003Feb 7, 2006Arraycomm, Inc.Walsh-Hadamard decoder
US7003536Aug 15, 2002Feb 21, 2006Comsys Communications & Signal Processing Ltd.Reduced complexity fast hadamard transform
US7533818 *Jun 28, 2005May 19, 2009Direct Measurements Inc.Binary code symbol for non-linear strain measurement and apparatus and method for analyzing and measuring strain therewith
US7987221 *Aug 10, 2005Jul 26, 2011Intellectual Ventures I LlcFFT and FHT engine
US8191784 *Aug 16, 2007Jun 5, 2012Direct Measurements, Inc.High density, rectangular binary code symbol
USRE42675Oct 8, 2009Sep 6, 2011Lg Electronics Inc.Method of transferring and/or receiving data in communication system and apparatus thereof
EP1035480A2 *Feb 28, 2000Sep 13, 2000Lucent Technologies Inc.Apparatus for performing a fast hadamard transform
WO2008157679A1 *Jun 19, 2008Dec 24, 2008Raytheon CoMethods and apparatus for receiver having fast walsh transform
Classifications
U.S. Classification375/150, 375/343, 375/346, 708/410, 370/209, 704/204
International ClassificationH04B15/00
Cooperative ClassificationH04B1/709, H04J13/0048
European ClassificationH04B1/709
Legal Events
DateCodeEventDescription
May 8, 2014ASAssignment
Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031
Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG
Effective date: 20140506
Aug 16, 2011FPAYFee payment
Year of fee payment: 12
Aug 16, 2007FPAYFee payment
Year of fee payment: 8
Aug 18, 2003FPAYFee payment
Year of fee payment: 4
Feb 25, 1998ASAssignment
Owner name: LUCENT TECHNOLOGIES, INC., NEW JERSEY
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GUDE, JORGE MARINO;LI, GUANGYING;MOY, CAROL CONTI;AND OTHERS;REEL/FRAME:009018/0746
Effective date: 19980220