QPSK has four constellation points representing a the following data bits (00, 01, 10 and 11). If this was transmitted using, say 1/3 rate convolutional encoder, and soft decision viterbi decoding was applied at the receiver, then of the 3 bits received, 2 of the 3 bits can be used to decode a QPSK symbol. from which the euclidean distance can be calculated. This now leaves one bit remaining. Question/assumption. Does this mean that we now wait for the next 3 bits, and from these 3 bits we take one of the bits and combine it with the bit that remained from the previous symbol, extract the QPSK symbol and then then calculate the next euclidean distance ?

# qpsk and viterbi decoding

Started by ●June 9, 2004

Reply by ●June 10, 20042004-06-10

Ted, What you receive is QPSK symbols. These symbols are then demapped into 2-bits per symbol; however, since you are using soft decision viterbi, instead of getting 2-bits out of the demapper, you get 'soft' bits (some weighting symbols). These are then sent to the viterbi for decoding where for every 3 'soft' bits that are inserted there is one decoded data bit that comes out. As you are probably aware, the depth of you viterbi decoder will cause latency, i.e., you will have to wait a little before the decoded data starts coming out. QPSK --> demapper --> 'soft' bits --> viterbi --> uncoded data bits Regards, Phil

Reply by ●June 10, 20042004-06-10

Hi Phil, Ted, I think the next is true (it's just an example). Phil will hopefully confirm this :-)) encoding: data(2bits) --> viterbi-encoding(2bits -> 2*3bits = 6bits = 3*2bits) --> QPSK-mapping (3*2bits -> 3symbols of 2bits/symbol) decoding: --> QPSK-demapping (3symbols -> 3*2softbits= 6 softbits = 2*3softbits) --> viterbi-decoding ( 2*3softbits -> 2bits) --> 2bits = uncoded data bits Regards, Laki> Ted, > > What you receive is QPSK symbols. These symbols are then demapped into > 2-bits per symbol; however, since you are using soft decision viterbi, > instead of getting 2-bits out of the demapper, you get 'soft' bits (some > weighting symbols). These are then sent to the viterbi for decoding where > for every 3 'soft' bits that are inserted there is one decoded data bitthat> comes out. As you are probably aware, the depth of you viterbi decoderwill> cause latency, i.e., you will have to wait a little before the decodeddata> starts coming out. > > QPSK --> demapper --> 'soft' bits --> viterbi --> uncoded data bits > > Regards, > Phil > >

Reply by ●June 10, 20042004-06-10

"phil" <phil_simulink@sympatico.ca> wrote in message news:MpYxc.41673$sS2.1489094@news20.bellglobal.com...> What you receive is QPSK symbols. These symbols are then demapped into > 2-bits per symbol; however, since you are using soft decision viterbi, > instead of getting 2-bits out of the demapper, you get 'soft' bits (some > weighting symbols). These are then sent to the viterbi for decoding where > for every 3 'soft' bits that are inserted there is one decoded data bitthat> comes out. As you are probably aware, the depth of you viterbi decoderwill> cause latency, i.e., you will have to wait a little before the decodeddata> starts coming out. > > QPSK --> demapper --> 'soft' bits --> viterbi --> uncoded data bitsWhile the system *will* work as described, the performance might be different from theoretical predictions or simulation results for the reasons described below Alternate 3-bit symbols going into the Viterbi decoder have different weight structures: In symbol #1, the first two bits have weights assigned by one QPSK symbol demodulation, while the weight assigned to the third bit comes from the next QPSK symbol demodulation, which also assigns a weight to the first bit of the next 3-bit symbol (symbol #2). The second and third bits of symbol #2 have weights assigned by the third QPSK demodulation, etc. Thus, there is correlation between the weights assigned to symbols #1 and #2 (but not between the weights assigned to symbols #2 and #3), the weights assigned to symbols #3 and #4 (but not between #4 and #5) and so on. Such correlations might, or might not, have been accounted for in the analysis or simulation.... The usual assumption is that weights assigned to successive symbols are independent.

Reply by ●June 10, 20042004-06-10

Lakie, I think that a more clear way of representing it is as follows Encoding: N-data bits, where N is an integer multiple of 2 --> rate 1/3 convolutional encoding -> 3*N encoded bits --> QPSK - mapping -> 3 * N / 2 QPSK symbols. Decoding 3 * N / 2 QPSK symbols --> QPSK soft demapper -> 3*N softbits ( example: the softbit might indicate a 75% certainty of the bit being 1. this weighting is based on the distance from the ideal symbol location. each softbit can be an M-bit word representing this information, M = 3 or 4 is the norm.) --> soft-decision viterbi decoder -> N decoded bits. I think that this is essentially what you wrote, but the interchanging of 2*3 and 3*2 was confusing me. I wasn't sure if I was misinterpreting what you were trying to say or if you were just misunderstanding the concept. The digital modulation scheme (QPSK) doesn't really have anything to do with the viterbi apart from the error patterns in the uncoded bits coming from the demapper. Also the weighting for the bits from a given QPSK symbol are independent for each bit and for each symbol. Some more advanced algorithms also use the information of the channel condition to apply a more advanced weighting scheme per symbol, however, sometimes this still ends up being per bit. Regards, Phil "lakie" <just_me_myself_and_i1@hotmail.com> wrote in message news:1086878995.598397@seven.kulnet.kuleuven.ac.be...> Hi Phil, Ted, > > I think the next is true (it's just an example). Phil will hopefullyconfirm> this :-)) > > encoding: > data(2bits) --> viterbi-encoding(2bits -> 2*3bits = 6bits = 3*2bits) --> > QPSK-mapping (3*2bits -> 3symbols of 2bits/symbol) > > decoding: > --> QPSK-demapping (3symbols -> 3*2softbits= 6 softbits = 2*3softbits) --> > viterbi-decoding ( 2*3softbits -> 2bits) --> 2bits = uncoded data bits > > Regards, > Laki > > > Ted, > > > > What you receive is QPSK symbols. These symbols are then demapped into > > 2-bits per symbol; however, since you are using soft decision viterbi, > > instead of getting 2-bits out of the demapper, you get 'soft' bits (some > > weighting symbols). These are then sent to the viterbi for decodingwhere> > for every 3 'soft' bits that are inserted there is one decoded data bit > that > > comes out. As you are probably aware, the depth of you viterbi decoder > will > > cause latency, i.e., you will have to wait a little before the decoded > data > > starts coming out. > > > > QPSK --> demapper --> 'soft' bits --> viterbi --> uncoded data bits > > > > Regards, > > Phil > > > > > >

Reply by ●June 10, 20042004-06-10

Thx, Lakie> Lakie, > > I think that a more clear way of representing it is as follows > > Encoding: > N-data bits, where N is an integer multiple of 2 --> > rate 1/3 convolutional encoding -> 3*N encoded bits --> > QPSK - mapping -> 3 * N / 2 QPSK symbols. > > Decoding > 3 * N / 2 QPSK symbols --> > QPSK soft demapper -> 3*N softbits ( example: the softbit might indicate a > 75% certainty of the bit being 1. this weighting is based on the distance > from the ideal symbol location. each softbit can be an M-bit word > representing this information, M = 3 or 4 is the norm.) --> > soft-decision viterbi decoder -> N decoded bits. > > I think that this is essentially what you wrote, but the interchanging of > 2*3 and 3*2 was confusing me. I wasn't sure if I was misinterpreting what > you were trying to say or if you were just misunderstanding the concept. > > The digital modulation scheme (QPSK) doesn't really have anything to dowith> the viterbi apart from the error patterns in the uncoded bits coming from > the demapper. Also the weighting for the bits from a given QPSK symbolare> independent for each bit and for each symbol. Some more advancedalgorithms> also use the information of the channel condition to apply a more advanced > weighting scheme per symbol, however, sometimes this still ends up beingper> bit. > > Regards, > Phil > > > > > "lakie" <just_me_myself_and_i1@hotmail.com> wrote in message > news:1086878995.598397@seven.kulnet.kuleuven.ac.be... > > Hi Phil, Ted, > > > > I think the next is true (it's just an example). Phil will hopefully > confirm > > this :-)) > > > > encoding: > > data(2bits) --> viterbi-encoding(2bits -> 2*3bits = 6bits = 3*2bits) --> > > QPSK-mapping (3*2bits -> 3symbols of 2bits/symbol) > > > > decoding: > > --> QPSK-demapping (3symbols -> 3*2softbits= 6 softbits =2*3softbits) -->> > viterbi-decoding ( 2*3softbits -> 2bits) --> 2bits = uncoded data bits > > > > Regards, > > Laki > > > > > Ted, > > > > > > What you receive is QPSK symbols. These symbols are then demappedinto> > > 2-bits per symbol; however, since you are using soft decision viterbi, > > > instead of getting 2-bits out of the demapper, you get 'soft' bits(some> > > weighting symbols). These are then sent to the viterbi for decoding > where > > > for every 3 'soft' bits that are inserted there is one decoded databit> > that > > > comes out. As you are probably aware, the depth of you viterbidecoder> > will > > > cause latency, i.e., you will have to wait a little before the decoded > > data > > > starts coming out. > > > > > > QPSK --> demapper --> 'soft' bits --> viterbi --> uncoded data bits > > > > > > Regards, > > > Phil > > > > > > > > > > > >

Reply by ●June 12, 20042004-06-12

Phil, thanks for that reply. What would happen now if the code was punctured. eg have say a 1/2 rate coder generate a 2/3 punctured code to give something like 00 0x 11 1x 01 1x. I assume for the qpsk transmission the x is ignored and what we have is 00 01 11 01... (the punctured bit x is now completely dropped) now used as the symbols to be transmitted ? Also at the receiver I understand that the punctutred trellis for the 1/2 rate coder is used to decode the received punctured convolutional. How is the x handled in the trelllis for hard decision decoding and for soft decision decoding ? "phil" <phil_simulink@sympatico.ca> wrote in message news:<XH2yc.44402$sS2.1585819@news20.bellglobal.com>...> Lakie, > > I think that a more clear way of representing it is as follows > > Encoding: > N-data bits, where N is an integer multiple of 2 --> > rate 1/3 convolutional encoding -> 3*N encoded bits --> > QPSK - mapping -> 3 * N / 2 QPSK symbols. > > Decoding > 3 * N / 2 QPSK symbols --> > QPSK soft demapper -> 3*N softbits ( example: the softbit might indicate a > 75% certainty of the bit being 1. this weighting is based on the distance > from the ideal symbol location. each softbit can be an M-bit word > representing this information, M = 3 or 4 is the norm.) --> > soft-decision viterbi decoder -> N decoded bits. > > I think that this is essentially what you wrote, but the interchanging of > 2*3 and 3*2 was confusing me. I wasn't sure if I was misinterpreting what > you were trying to say or if you were just misunderstanding the concept. > > The digital modulation scheme (QPSK) doesn't really have anything to do with > the viterbi apart from the error patterns in the uncoded bits coming from > the demapper. Also the weighting for the bits from a given QPSK symbol are > independent for each bit and for each symbol. Some more advanced algorithms > also use the information of the channel condition to apply a more advanced > weighting scheme per symbol, however, sometimes this still ends up being per > bit. > > Regards, > Phil > > > > > "lakie" <just_me_myself_and_i1@hotmail.com> wrote in message > news:1086878995.598397@seven.kulnet.kuleuven.ac.be... > > Hi Phil, Ted, > > > > I think the next is true (it's just an example). Phil will hopefully > confirm > > this :-)) > > > > encoding: > > data(2bits) --> viterbi-encoding(2bits -> 2*3bits = 6bits = 3*2bits) --> > > QPSK-mapping (3*2bits -> 3symbols of 2bits/symbol) > > > > decoding: > > --> QPSK-demapping (3symbols -> 3*2softbits= 6 softbits = 2*3softbits) --> > > viterbi-decoding ( 2*3softbits -> 2bits) --> 2bits = uncoded data bits > > > > Regards, > > Laki > > > > > Ted, > > > > > > What you receive is QPSK symbols. These symbols are then demapped into > > > 2-bits per symbol; however, since you are using soft decision viterbi, > > > instead of getting 2-bits out of the demapper, you get 'soft' bits (some > > > weighting symbols). These are then sent to the viterbi for decoding > where > > > for every 3 'soft' bits that are inserted there is one decoded data bit > that > > > comes out. As you are probably aware, the depth of you viterbi decoder > will > > > cause latency, i.e., you will have to wait a little before the decoded > data > > > starts coming out. > > > > > > QPSK --> demapper --> 'soft' bits --> viterbi --> uncoded data bits > > > > > > Regards, > > > Phil > > > > > > > > > >

Reply by ●June 16, 20042004-06-16

Ted, In both hard and soft-decoding, prior to viterbi decoding, there is a 'de-puncturer' that returns the data to rate 1/2 (in your example). These inserted bits (soft-bits) are ignored when updating the viterbi metric. There are probably some websites that describe all of this if you take a look around. Sorry for the delay in my reply. Haven't had much time lately. Regards, Phil

Reply by ●June 18, 20042004-06-18

Phil, delayed answers no problem. I have been looking around at websites for some information especially on decoding punctured convolutional codes. But when it comes to the crunch, ie "ignoring" the inserted soft bits during viterbi metric update, there is no explanation of how to exactly compute the metric if these bits are ignored. Some info on this would really help. Thanks Ted "phil" <phil_simulink@sympatico.ca> wrote in message news:<OoZzc.21999$nY.796595@news20.bellglobal.com>...> Ted, > > In both hard and soft-decoding, prior to viterbi decoding, there is a > 'de-puncturer' that returns the data to rate 1/2 (in your example). These > inserted bits (soft-bits) are ignored when updating the viterbi metric. > > There are probably some websites that describe all of this if you take a > look around. > > Sorry for the delay in my reply. Haven't had much time lately. > > Regards, > Phil