IP Library Granted Patent US 7,046,746
Granted Patent B1
US 7,046,746 · App. 10/095,758 · Granted May 16, 2006

Adaptive Viterbi decoder for a wireless data network receiver

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,046,746
App. No.
10/095,758
Granted
May 16, 2006
Kind
B1
Abstract

A configurable Viterbi decoder to decode a coded signal for inclusion in a radio receiver for implementing the physical layer receiving function (PHY) of a wireless data network. The decoder includes a branch metric generator with an input to the coded signal, an ACS subsystem coupled to the branch metric generator, and a survivor memory unit coupled to the ACS subsystem. The decoder includes a plurality of outputs each providing a decoded version of the input signal decoded to a distinct decision depth such that the Viterbi decoder is programmable to decode the signal to one of a plurality of decision depths.

Claims (44)

1. An adaptive Viterbi decoder having a coded signal input accepting a coded signal received in a wireless receiver, the receiver to receive packets of information in a wireless data network, each packet having payload data coded at one or more of a set of data rates and modulated according to one of a set of modulation schemes, the packet having a packet structure that includes one or more header symbols containing information on the data rate and modulation scheme of the payload data, the header symbols encoded at a first data rate and using a first modulation scheme, the receiver including:

a buffer preceding the Viterbi decoder having an output coupled to the coded signal input of the Viterbi decoder and of a length long enough to buffer input data while the decoder decodes the one or more header symbols,

the decoder comprising:

a branch metric generator with an input to the coded signal and generating branch metrics:

an ACS subsystem coupled to and accepting the branch metrics from the branch metric generator; and

a survivor memory subsystem coupled to and accepting input from the ACS subsystem, the survivor memory subsystem having a plurality of outputs, each providing a decoded version of the coded input signal decoded to a distinct decision depth;

the Viterbi decoder being programmable to decode the input signal to one of a plurality of decision depths by selecting one of the memory unit outputs,

wherein the Viterbi decoder is initially set to decode at the decision depth suitable for decoding the header, and after the Viterbi decoder decodes the one or more header symbols and the data rate of the remainder of the received packet is determined from the one or more header symbols, the output of the Viterbi decoder is selected to be an output suitable for decoding the input signals at the determined data rate,

wherein the survivor memory has two outputs corresponding to a full decision depth suitable for a plurality of data rates and a shortened decision depth suitable for the first data rate, at least one of the plurality of data rates greater than the first data rate, wherein the one or more header symbols are decoded at the shortened decision depth, such that the length of the buffer is less than for decoding at the full decision depth.

2. An adaptive Viterbi decoder having a coded signal input accepting a coded signal received in a wireless receiver, the receiver to receive packets of information in a wireless data network, each packet having payload data coded at one or more of a set of data rates and modulated according to one of a set of modulation schemes, the packet having a packet structure that includes one or more header symbols containing information on the data rate and modulation scheme of the payload data, the header symbols encoded at a first data rate and using a first modulation scheme, the receiver including:

a buffer preceding the Viterbi decoder having an output coupled to the coded signal input of the Viterbi decoder and of a length lone enough to buffer input data while the decoder decodes the one or more header symbols,

the decoder comprising:

a branch metric generator with an input to the coded signal and generating branch metrics:

an ACS subsystem coupled to and accepting the branch metrics from the branch metric generator; and

a survivor memory subsystem coupled to and accepting input from the ACS subsystem, the survivor memory subsystem having a plurality of outputs, each providing a decoded version of the coded input signal decoded to a distinct decision depth;

the Viterbi decoder being programmable to decode the input signal to one of a plurality of decision depths by selecting one of the memory unit outputs,

wherein the survivor memory includes a plurality of registers in a register exchange architecture and wherein each of the survivor memory outputs is a tap to a different one of the registers such that only registers up to a particular tap are used to determine the decoded signal out of the particular tap, the decoder further comprising:

a selector accepting and responsive to a select input and producing a selected signal output, the plurality of register taps coupled to the selector, the selector selecting as the selected signal output one of the register output taps according to the select input.

3. A decoder as recited in claim 2 ,

wherein the Viterbi decoder is initially set to decode at the decision depth suitable for decoding the one or more header symbols and to determine the data rate of the remainder of the received packet, and

wherein the select input is coupled to the decoder output and a function of the determined data rate such that the selector selects a register tap suitable for decoding the input signals at the determined data rate.

4. A decoder as recited in claim 2 , wherein the survivor memory includes 128 registers to provide Viterbi decoding with a decision depth of up to 128 levels.

5. A decoder as recited in claim 2 , wherein the ACS subsystem includes a plurality of ACS units.

6. An adaptive Viterbi decoder having a coded signal input accepting a coded signal received in a wireless receiver, the receiver to receive packets of information in a wireless data network, each packet having payload data coded at one or more of a set of data rates and modulated according to one of a set of modulation schemes, the packet having a packet structure that includes one or more header symbols containing information on the data rate and modulation scheme of the payload data, the header symbols encoded at a first data rate and using a first modulation scheme, the receiver including:

a buffer preceding the Viterbi decoder having an output coupled to the coded signal input of the Viterbi decoder and of a length long enough to buffer input data while the decoder decodes the one or more header symbols,

the decoder comprising:

a branch metric generator with an input to the coded signal and generating branch metrics;

an ACS subsystem coupled to and accepting the branch metrics from the branch metric generator; and

a survivor memory subsystem coupled to and accepting input from the ACS subsystem, the survivor memory subsystem having a plurality of outputs, each providing a decoded version of the coded input signal decoded to a distinct decision depth;

the Viterbi decoder being programmable to decode the input signal to one of a plurality of decision depths by selecting one of the memory unit outputs,

wherein the survivor memory includes a plurality of registers in a register exchange architecture and wherein each of the survivor memory outputs is a tap to one of the registers such that only registers up to a particular tap are used to determine the decoded signal out of the particular tap, the decoder further comprising:

a selector accepting and responsive to a select input and producing a selected signal output, the plurality of register taps coupled to the selector, the selector selecting as the selected signal output one of the register output taps according to the select input; and

a switch accepting a clock signal and the select input, and having a set of clock outputs to the registers, the switch to selectively turn off the clock to those registers not being used to determine the decoded signal.

7. A wireless receiver for receiving packets of a wireless data network, each packet having payload data coded at one or more of a set of data rates and modulated according to one of a set of modulation schemes, the packet having a packet structure that includes one or more header symbols containing information on the data rate and modulation scheme of the payload data, the header symbols encoded at a first data rate and using a first modulation scheme, the receiver comprising:

an adaptive Viterbi decoder to decode a coded signal, the decoder including:

a branch metric generator with an input to the coded signal and generating branch metrics;

an ACS subsystem coupled to and accepting the branch metrics from the branch metric generator;

a survivor memory subsystem coupled to and accepting input from the ACS subsystem, the survivor memory subsystem having a plurality of outputs, each providing a decoded version of the coded input signal decoded to a distinct decision depth such that the Viterbi decoder is programmable to decode the input signal to one of a plurality of decision depths; and

a buffer preceding the Viterbi decoder and having an output coupled to the coded signal input of the Viterbi decoder, the buffer having a length long enough to buffer input data while the decoder decodes the one or more header symbols,

wherein the Viterbi decoder is initially set to decode at the decision depth suitable for decoding the header, and after the Viterbi decoder decodes the one or more header symbols and the data rate of the remainder of the received packet is determined from the one or more header symbols, the output of the Viterbi decoder is selected to be a survivor memory output suitable for decoding the input signals at the determined data rate, and

wherein the survivor memory has at least two outputs corresponding to a shortened decision depth suitable for the first data rate, and a full decision depth and none or more intermediate decision depths, the intermediate and full decision depths suitable for a plurality of data rates, at least one of the plurality of data rates greater than the first data rate, wherein the one or more header symbols are decoded at the shortened decision depth, such that the length of the buffer is less than for decoding at the full decision depth.

8. A receiver as recited in claim 7 , the receiver for receiving signals in a wireless local area network.

9. A decoder as recited in claim 8 , wherein the wireless data network conforms to an IEEE 802.11 standard that uses COFDM.

10. A receiver as recited in claim 7 , wherein the full data depth is 128 levels.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF CONVEYOR- CISCO WIRELESS NETWORKING INC. PREVIOUSLY RECORDED ON REEL 019991 FRAME 0944. ASSIGNOR(S) HEREBY CONFIRMS THE CISCO WIRELESS NETWORKING (AUSTRALIA) PTY LIMITED. Recorded Apr 1, 2008
From: CISCO SYSTEMS WIRELESS NETWORKS (AUSTRALIA) PTY LIMITED
To: CISCO TECHNOLOGY, INC.
Reel/Frame 020733/0724 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2007
From: CISCO SYSTEMS WIRELESS NETWORKING INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 019991/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2002
From: KEANEY, RICHARD A.; MCDERMOTT, THOMAS; RYAN, PHILIP J.
To: CISCO SYSTEMS WIRELESS NETWORKING (AUSTRALIA) PTY LIMITED
Reel/Frame 012697/0870 →