Reconfigurable, multi-user viterbi decoder
Abstract
A decoding system for decoding a digital data stream that has been convolutionally encoded in accordance with a selected constraint length and selected polynomial codes, which system includes a processor, such as a Viterbi decoder, that is reconfigurable so that it can decode encoded digital data streams for a number of different user channels for which data streams have been convolutionally encoded in accordance with respectively different combinations of selected constraint length and selected polynomial codes. The decoding system includes a Viterbi decoder for processing the encoded data stream in accordance with said selected constraint length and in accordance with said selected polynomial codes to decode the encoded data stream; a RAM for storing data of said selected constraint length and data of said selected polynomial codes in accordance with which said data stream was encoded; and a RAM I/O interface circuit responsive to a user channel identification signal for retrieving said selected constraint length data and said selected polynomial code data from the RAM and configuring the Viterbi decoder in accordance with said selected constraint length and said selected polynomial codes. In order to accommodate concurrent multiple user channels, the RAM stores different sets of combinations of constraint length data and polynomial code data corresponding to different user channels, with said different sets being retrievable from the RAM in response to respectively different user channel identification signals. The polynomial code data and constraint length data in the RAM may be changed from time to time in response to software instructions, as user channel requirements change. The Viterbi decoder processes said encoded data stream over a plurality of decoding cycles and produces intermediate decoding results during different decoding cycles; and the RAM I/O interface circuit stores in the RAM said intermediate decoding results produced for each different user channel during the different decoding cycles.
Claims
exact text as granted — not AI-modifiedWe claim:
1. A decoding system for decoding a digital data stream that has been convolutionally encoded in accordance with a selected constraint length and selected polynomial codes, comprising means for processing said encoded data stream in accordance with said constraint length and in accordance with said selected polynomial codes to decode said encoded data stream; a memory for storing data of said selected constraint length and data of said selected polynomial codes in accordance with which said data stream was encoded; and means responsive to a user channel identification signal for retrieving said selected constraint length data and said selected polynomial code data from said memory and configuring the processing means in accordance with said selected constraint length and said selected polynomial codes; wherein the memory stores different sets of combinations of constraint length data and polynomial code data corresponding to different user channels, with said different sets being retrievable from the memory by the retrieving means in response to different user channel identification signals for respectively configuring the processing means for different user channels.
2. A decoding system according to claim 1, wherein the processing means are adapted for processing said encoded data stream over a plurality of decoding cycles and for producing intermediate decoding results during different decoding cycles; the system further comprising means coupled to the processing means for storing in the memory said intermediate decoding results produced for each different user channel during the different decoding cycles.
3. A decoding system for decoding a digital data stream that has been convolutionally encoded in accordance with a selected constraint length and selected polynomial codes, comprising means for processing said encoded data stream in accordance with said constraint length and in accordance with said selected polynomial codes to decode said encoded data stream; a memory for storing data of said selected constraint length and data of said selected polynomial codes in accordance with which said data stream was encoded; and means responsive to a user channel identification signal for retrieving said selected constraint length data and said selected polynomial code data from said memory and configuring the processing means in accordance with said selected constraint length and said selected polynomial codes; wherein the processor is configured to decode at a given code rate an encoded data stream that was encoded at the given code rate; wherein the memory stores two different sets of polynomial codes for a given user channel; wherein the processing means is capable of operating in a punctured processing mode to decode the data stream at the given code rate in accordance with the two different sets of polynomial codes alternately to decode an encoded data stream that was encoded at a higher rate than the given rate; and wherein the retrieving means alternately select the two different polynomial codes alternately during each cycle of said punctured processing mode in response to a punctured processing mode instruction accompanying said user channel identification signal and thereby configures the processing means to process the data stream at the given code rate in accordance with the two different sets of polynomial codes alternately for decoding an encoded data stream that was encoded at the higher rate.
4. A decoding system for decoding a digital data stream that has been convolutionally encoded in accordance with selected polynomial codes, comprising means for processing said encoded data stream in accordance with said selected polynomial codes to decode said encoded data stream; a memory for storing data of said selected polynomial codes in accordance with which said data stream was encoded; and means responsive to a user channel identification signal for retrieving said selected polynomial code data from said memory and configuring said processing means in accordance with said selected polynomial codes; wherein the memory stores different polynomial code data corresponding to different user channels, with said different polynomial code data being retrievable from the memory in response to respectively different user channel identification signals.
5. A decoding system according to claim 4, wherein the memory stores different sets of polynomial codes for each of a plurality of different user channels, with said selected polynomial codes being retrievable from the memory in response to a combination of said user channel identification signal and an instruction accompanying said user channel identification signal.
6. A decoding system according to claim 4, wherein the processing means are adapted for processing said encoded data stream over a plurality of decoding cycles and for producing intermediate decoding results during different decoding cycles; the system further comprising means coupled to the processing means for storing in the memory said intermediate decoding results produced for each different user channel during the different decoding cycles.
7. A decoding system for decoding a digital data stream that has been convolutionally encoded in accordance with selected polynomial codes, comprising means for processing said encoded data stream in accordance with said selected polynomial codes to decode said encoded data stream; a memory for storing data of said selected polynomial codes in accordance with which said data stream was encoded; means responsive to a user channel identification signal for retrieving said selected polynomial code data from said memory and configuring said processing means in accordance with said selected polynomial codes; means for differentially decoding a data stream that has been differentially encoded in order to resolve 180 degree phase ambiguities; wherein the memory further stores data indicating whether or not the differential decoding means are to be enabled; and means responsive to the user channel identification signal for retrieving the differential decoding enablement data from the memory and configuring the differential decoding means in accordance with said retrieved enablement data.
8. A decoding system according to claim 7, further comprising means for changing said differential decoding indication data stored in the memory.
9. A decoding system for decoding a digital data stream that has been convolutionally encoded in accordance with selected polynomial codes, comprising means for processing said encoded data stream in accordance with said selected polynomial codes to decode said encoded data stream; a memory for storing data of said selected polynomial codes in accordance with which said data stream was encoded; means responsive to a user channel identification signal for retrieving said selected polynomial code data from said memory and configuring said processing means in accordance with said selected polynomial codes; means for automatically synchronizing the decoding of said encoded data by the processing means; wherein the memory further stores data indicating whether or not the synchronizing means are to be enabled; and means responsive to the user channel identification signal for retrieving the synchronizing means enablement data from the memory and configuring the synchronizing means in accordance with said retrieved enablement data.
10. A decoding system according to claim 9, further comprising means for changing said differential decoding indication stored in the memory.
11. A decoding system for decoding a digital data stream that has been convolutionally encoded in accordance with selected polynomial codes, comprising means for processing said encoded data stream in accordance with said selected polynomial codes to decode said encoded data stream; a memory for storing data of said selected polynomial codes in accordance with which said data stream was encoded; and means responsive to a user channel identification signal for retrieving said selected polynomial code data from said memory and configuring said processing means in accordance with said selected polynomial codes; wherein the encoded data stream includes I and J components, wherein the J component includes a polarity sign and wherein the decoding system further comprises means for reversing the sign for the J component prior to said processing of the encoded data stream by the processing means; wherein the memory further stores data indicating whether or not the sign of the J component should be reversed; and means responsive to the user channel identification signal for retrieving the sign reversal data from the memory and configuring the sign reversal means in accordance with said retrieved sign reversal data.
12. A decoding system according to claim 11, further comprising means for changing said differential decoding indication stored in the memory.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.