Adaptive Viterbi decoder for a wireless data network receiver
AssigneeCisco Systems Wireless Networking (Australia) Pty Limited
InventorsRichard A. Keaney, Thomas McDermott, Philip J. Ryan
Life of this patent
Estimating the term…
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.
Claims10
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.
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.
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.
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.
Dependencies are inferred from the claim text.