OFDM Simulink problem, SOS!
CASTalk.com Forum Index CASTalk.com
Discussion of DSP, FPGA, storage and embedded system.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web castalk.com
OFDM Simulink problem, SOS!

 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP
Author Message
Ant_Magma
Guest





Posted: Wed Dec 07, 2005 1:16 am    Post subject: OFDM Simulink problem, SOS! Reply with quote

I'm simulating an OFDM transceiver to be later converted and
implemented on a C6713 DSK.
I'm currently facing a problem with the simulation and i'm at my wits
end trying to figure
out what is wrong. Thus i'm really hoping you guys can lend me some
help otherwise i can't
proceed anymore...

Here are 2 pictures of my OFDM simlation in Simulink. Pic1 is the model
with the
convolutional encoder, viterbi decoder, BPSK mod & demod and the OFDM
transceiver. Pic2 is without the encoder/decoder

(both pics size <50k)
Pic1
http://geocities.com/antonio_magma/public/pic1.gif

Pic2
http://geocities.com/antonio_magma/public/pic2.gif

I'm generating 12 bits in a frame (Pic1) and encode with the 1/2
convolutional encoder with
its default setting "poly2trellis(7, [171 133])", the 24 complex
numbers generated by BPSK
are placed on to the carrier bins with symmetric conjugate and are
padded in this format:

(64 IFFT)
1(DC) 2~5(0) 6~29(data) 30~32(0) 33(Nyquist,0) 34~36(0) 37~60(conjugate
data) 61~64(0)

The "Input is conjugate symmetric" parameter in the IFFT block is
ticked so that it'll
produce at real output. Then a 16 sample cyclic prefix is added,
producing a 80 sample
output.

At the receiver, the inverse is performed. At the remove zero padding
block, only the
samples 6~29 are fed through since 37~60 is the complex conjugate and
are useless. Then it is demodulated and decoded with Viterbi decoder
having the same parameter "poly2trellis(7, [171 133])" with a traceback
depth of 35 (since based on Simulink's help, it says if coding is 1/2
then the traceback depth is about x5 of the constaint length which in
this case is 7).

The decision type is set to Hard Decision instead of Unquantized bcoz
if i use unquantized,
i would need an extra Unipolar to Bipolar converter which is not
necessary.

As you can see, i'm getting a BER of 0.5. However, when i tried
removing the convolutional
encoder and Viterbi decoder, set the Bernoulli to output 24 bits (so
that Tx & Rx will be
the same). I get zero errors! Which should mean that my OFDM
tranceivers are working
correctly. I have properly set the receiver delay parameter in the
Error rate calculation
block, 35 with the decoders and 0 without them.

I've checked the output of every single block and noticed that when i
place the
encoder/decoders, i get 35 zeros at the output of Viterbi (due to the
traceback path), then
the corrected bits. The first 12 bits are exactly the same as produced
by the Bernoulli
binary generator, however the rest after that 12 bits contains many
errors! That's why i'm
getting 0.5 BER.

But the question is why is my Viterbi producing such an output? Please
help, i can't
proceed anymore if i can't figure this out...i'm this close to killing
myself

PS: I've attached my OFDM model in Simulink for reference.
http://geocities.com/antonio_magma/public/ofdm.zip
Back to top
Don Orofino
Guest





Posted: Wed Dec 07, 2005 8:50 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

Hi Antonio,

Quote:
But the question is why is my Viterbi producing such an output? Please
help, i can't
proceed anymore if i can't figure this out...i'm this close to killing
myself

PS: I've attached my OFDM model in Simulink for reference.
http://geocities.com/antonio_magma/public/ofdm.zip

Please don't go jumping off a trellis or anything - I'm sure you're pretty
close! I've forwarded your model to some comms engineers here. Good idea
placing the Simulink model on your web page...

--Don


"Ant_Magma" <vcteo1@gmail.com> wrote in message
news:1133915900.964903.25450@f14g2000cwb.googlegroups.com...
Quote:
I'm simulating an OFDM transceiver to be later converted and
implemented on a C6713 DSK.
I'm currently facing a problem with the simulation and i'm at my wits
end trying to figure
out what is wrong. Thus i'm really hoping you guys can lend me some
help otherwise i can't
proceed anymore...

Here are 2 pictures of my OFDM simlation in Simulink. Pic1 is the model
with the
convolutional encoder, viterbi decoder, BPSK mod & demod and the OFDM
transceiver. Pic2 is without the encoder/decoder

(both pics size <50k)
Pic1
http://geocities.com/antonio_magma/public/pic1.gif

Pic2
http://geocities.com/antonio_magma/public/pic2.gif

I'm generating 12 bits in a frame (Pic1) and encode with the 1/2
convolutional encoder with
its default setting "poly2trellis(7, [171 133])", the 24 complex
numbers generated by BPSK
are placed on to the carrier bins with symmetric conjugate and are
padded in this format:

(64 IFFT)
1(DC) 2~5(0) 6~29(data) 30~32(0) 33(Nyquist,0) 34~36(0) 37~60(conjugate
data) 61~64(0)

The "Input is conjugate symmetric" parameter in the IFFT block is
ticked so that it'll
produce at real output. Then a 16 sample cyclic prefix is added,
producing a 80 sample
output.

At the receiver, the inverse is performed. At the remove zero padding
block, only the
samples 6~29 are fed through since 37~60 is the complex conjugate and
are useless. Then it is demodulated and decoded with Viterbi decoder
having the same parameter "poly2trellis(7, [171 133])" with a traceback
depth of 35 (since based on Simulink's help, it says if coding is 1/2
then the traceback depth is about x5 of the constaint length which in
this case is 7).

The decision type is set to Hard Decision instead of Unquantized bcoz
if i use unquantized,
i would need an extra Unipolar to Bipolar converter which is not
necessary.

As you can see, i'm getting a BER of 0.5. However, when i tried
removing the convolutional
encoder and Viterbi decoder, set the Bernoulli to output 24 bits (so
that Tx & Rx will be
the same). I get zero errors! Which should mean that my OFDM
tranceivers are working
correctly. I have properly set the receiver delay parameter in the
Error rate calculation
block, 35 with the decoders and 0 without them.

I've checked the output of every single block and noticed that when i
place the
encoder/decoders, i get 35 zeros at the output of Viterbi (due to the
traceback path), then
the corrected bits. The first 12 bits are exactly the same as produced
by the Bernoulli
binary generator, however the rest after that 12 bits contains many
errors! That's why i'm
getting 0.5 BER.

But the question is why is my Viterbi producing such an output? Please
help, i can't
proceed anymore if i can't figure this out...i'm this close to killing
myself

PS: I've attached my OFDM model in Simulink for reference.
http://geocities.com/antonio_magma/public/ofdm.zip
Back to top
Ant_Magma
Guest





Posted: Wed Dec 07, 2005 9:16 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

Bless you Don :D

Thx 4 ur reply Martin.....
I've did noticed the different sample colors in my model but i didn't
thought much about it. You mentioned:

Quote:
In the DSP Constant blocks "DC" and "Nyquist", set the frame
period to inf. The model will then use a single frame rate.

Did u mean sample time?
I can't find any 'frame period' parameter in the Constant parameters
(I'm looking at the 'constant' help at mathworks.com, the computer i'm
using now doesnt have matlab)

And do i need to set the Output paramter to 'Frame-based'? Since i'm
operating on a column vector and in my Bernoulli i've set it to output
12 bits/frame?
Back to top
Ant_Magma
Guest





Posted: Wed Dec 07, 2005 9:16 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

Bless you Don :D

Thx 4 ur reply Martin.....
I've did noticed the different sample colors in my model but i didn't
thought much about it. You mentioned:

Quote:
In the DSP Constant blocks "DC" and "Nyquist", set the frame
period to inf. The model will then use a single frame rate.

I've checked the help for Constant at mathworks.com. I have to set the
Output to 'Frame-based' then Sample time will change to Frame period...

Since i dun have matlab in this computer, i'll try it when i get back
and feedback the results later...

Another question, why set it to inf? Since my bernoulli produces 12
bits/frame, why not set it to 12 instead of inf?
Back to top
Martin Clark
Guest





Posted: Wed Dec 07, 2005 9:16 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

The problem is mixed sample times in the OFDM frame assembly (which causes
the Error Rate Calculation block to compare data signals with different
sample rates). In the DSP Constant blocks "DC" and "Nyquist", set the frame
period to inf. The model will then use a single frame rate.

--Martin Clark, Comms Development, The MathWorks


"Don Orofino" <dorofino@verizon.net> wrote in message
news:I5slf.3290$605.2831@trndny09...
Quote:
Hi Antonio,

But the question is why is my Viterbi producing such an output? Please
help, i can't
proceed anymore if i can't figure this out...i'm this close to killing
myself

PS: I've attached my OFDM model in Simulink for reference.
http://geocities.com/antonio_magma/public/ofdm.zip

Please don't go jumping off a trellis or anything - I'm sure you're pretty
close! I've forwarded your model to some comms engineers here. Good idea
placing the Simulink model on your web page...

--Don


"Ant_Magma" <vcteo1@gmail.com> wrote in message
news:1133915900.964903.25450@f14g2000cwb.googlegroups.com...
I'm simulating an OFDM transceiver to be later converted and
implemented on a C6713 DSK.
I'm currently facing a problem with the simulation and i'm at my wits
end trying to figure
out what is wrong. Thus i'm really hoping you guys can lend me some
help otherwise i can't
proceed anymore...

Here are 2 pictures of my OFDM simlation in Simulink. Pic1 is the model
with the
convolutional encoder, viterbi decoder, BPSK mod & demod and the OFDM
transceiver. Pic2 is without the encoder/decoder

(both pics size <50k)
Pic1
http://geocities.com/antonio_magma/public/pic1.gif

Pic2
http://geocities.com/antonio_magma/public/pic2.gif

I'm generating 12 bits in a frame (Pic1) and encode with the 1/2
convolutional encoder with
its default setting "poly2trellis(7, [171 133])", the 24 complex
numbers generated by BPSK
are placed on to the carrier bins with symmetric conjugate and are
padded in this format:

(64 IFFT)
1(DC) 2~5(0) 6~29(data) 30~32(0) 33(Nyquist,0) 34~36(0) 37~60(conjugate
data) 61~64(0)

The "Input is conjugate symmetric" parameter in the IFFT block is
ticked so that it'll
produce at real output. Then a 16 sample cyclic prefix is added,
producing a 80 sample
output.

At the receiver, the inverse is performed. At the remove zero padding
block, only the
samples 6~29 are fed through since 37~60 is the complex conjugate and
are useless. Then it is demodulated and decoded with Viterbi decoder
having the same parameter "poly2trellis(7, [171 133])" with a traceback
depth of 35 (since based on Simulink's help, it says if coding is 1/2
then the traceback depth is about x5 of the constaint length which in
this case is 7).

The decision type is set to Hard Decision instead of Unquantized bcoz
if i use unquantized,
i would need an extra Unipolar to Bipolar converter which is not
necessary.

As you can see, i'm getting a BER of 0.5. However, when i tried
removing the convolutional
encoder and Viterbi decoder, set the Bernoulli to output 24 bits (so
that Tx & Rx will be
the same). I get zero errors! Which should mean that my OFDM
tranceivers are working
correctly. I have properly set the receiver delay parameter in the
Error rate calculation
block, 35 with the decoders and 0 without them.

I've checked the output of every single block and noticed that when i
place the
encoder/decoders, i get 35 zeros at the output of Viterbi (due to the
traceback path), then
the corrected bits. The first 12 bits are exactly the same as produced
by the Bernoulli
binary generator, however the rest after that 12 bits contains many
errors! That's why i'm
getting 0.5 BER.

But the question is why is my Viterbi producing such an output? Please
help, i can't
proceed anymore if i can't figure this out...i'm this close to killing
myself

PS: I've attached my OFDM model in Simulink for reference.
http://geocities.com/antonio_magma/public/ofdm.zip


Back to top
Martin Clark
Guest





Posted: Wed Dec 07, 2005 5:16 pm    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

I may be using a different version of Simulink and so the prompts might
vary. In any case, the sample time of a constant block must be consistent
with the source (via sample time or frame period). You can set it
explicitly, but that can sometimes be an awkward calculation for complex
systems. An easier way with constants is to use inf. This will be
compatible with any other sample time.


"Ant_Magma" <vcteo1@gmail.com> wrote in message
news:1133936245.849953.268760@g47g2000cwa.googlegroups.com...
Quote:
Bless you Don :D

Thx 4 ur reply Martin.....
I've did noticed the different sample colors in my model but i didn't
thought much about it. You mentioned:

In the DSP Constant blocks "DC" and "Nyquist", set the frame
period to inf. The model will then use a single frame rate.

I've checked the help for Constant at mathworks.com. I have to set the
Output to 'Frame-based' then Sample time will change to Frame period...

Since i dun have matlab in this computer, i'll try it when i get back
and feedback the results later...

Another question, why set it to inf? Since my bernoulli produces 12
bits/frame, why not set it to 12 instead of inf?
Back to top
Ant_Magma
Guest





Posted: Thu Dec 08, 2005 7:23 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

It's solved!! Thx martin for the tip, the model is now working.

I have another series of questions, hope you don't mind....

I've now included the Puncture and Insert Zero block to my model to
obtain a better code rate of 3/4. However, this has lead into another
problem.

As i have mentioned before, my Viterbi decoder is set to Hard decision.
Hard decision works based on 0s & 1s. When i included the puncture
pair, again i get 0.5 BER. However, if i change the decision type in my
Viterbi to Unquantized and add a Unipolar to Biploar Converter (since
unquantized viterbi works on -1 n 1) before the Insert Zero block, it
works perfectly.

I was wondering is there any way to work around the problem? meaning
without using the bipolar converter?

2nd Q:

I obtained somewhere from the help in Simulink that for a 3/4 code rate
the optimum puncture vector is [110110].' correct?
Based on your experience, is there any optimum parameter for
interleaving? rows & columns (i plan to add interleaving after i've
figure out the puncturing)

I've noticed in the Simulink demos (both HiperLAN2 & WLAN802.11a) which
involves OFDM, interleaving is done twice using the Matrix interleaver
and the General block interleaver. Is it just a choice or preference?
Or is there a specific reason to it? And if so, how do i choose the
Elements for the General block interleaver?

Sorry for the barrage of questions....really appreaciate u guy's help...
Back to top
Ant_Magma
Guest





Posted: Thu Dec 08, 2005 8:38 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

It's solved!! Thx martin for the tip, the model is now working.

I have another series of questions, hope you don't mind....

I've now included the Puncture and Insert Zero block to my model to
obtain a better code rate of 3/4. However, this has lead into another
problem.

As i have mentioned before, my Viterbi decoder is set to Hard decision.
Hard decision works based on 0s & 1s. When i included the puncture
pair, again i get 0.5 BER. However, if i change the decision type in my
Viterbi to Unquantized and add a Unipolar to Biploar Converter (since
unquantized viterbi works on -1 n 1) before the Insert Zero block, it
works perfectly.

I was wondering is there any way to work around the problem? meaning
without using the bipolar converter?

2nd Q:

I obtained somewhere from the help in Simulink that for a 3/4 code rate
the optimum puncture vector is [110110].' correct?
Based on your experience, is there any optimum parameter for
interleaving? rows & columns (i plan to add interleaving after i've
figure out the puncturing)

I've noticed in the Simulink demos (both HiperLAN2 & WLAN802.11a) which
involves OFDM, interleaving is done twice using the Matrix interleaver
and the General block interleaver. Is it just a choice or preference?
Or is there a specific reason to it? And if so, how do i choose the
Elements for the General block interleaver?

Sorry for the barrage of questions....really appreaciate u guy's help...
Back to top
Ant_Magma
Guest





Posted: Thu Dec 08, 2005 8:38 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

It's solved!! Thx martin for the tip, the model is now working.

I have another series of questions, hope you don't mind....

I've now included the Puncture and Insert Zero block to my model to
obtain a better code rate of 3/4. However, this has lead into another
problem.

As i have mentioned before, my Viterbi decoder is set to Hard decision.
Hard decision works based on 0s & 1s. When i included the puncture
pair, again i get 0.5 BER. However, if i change the decision type in my
Viterbi to Unquantized and add a Unipolar to Biploar Converter (since
unquantized viterbi works on -1 n 1) before the Insert Zero block, it
works perfectly.

I was wondering is there any way to work around the problem? meaning
without using the bipolar converter?

2nd Q:

I obtained somewhere from the help in Simulink that for a 3/4 code rate
the optimum puncture vector is [110110].' correct?
Based on your experience, is there any optimum parameter for
interleaving? rows & columns (i plan to add interleaving after i've
figure out the puncturing)

I've noticed in the Simulink demos (both HiperLAN2 & WLAN802.11a) which
involves OFDM, interleaving is done twice using the Matrix interleaver
and the General block interleaver. Is it just a choice or preference?
Or is there a specific reason to it? And if so, how do i choose the
Elements for the General block interleaver?

Sorry for the barrage of questions....really appreaciate u guy's help...
Back to top
Ant_Magma
Guest





Posted: Thu Dec 08, 2005 8:40 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

It's solved!! Thx martin for the tip, the model is now working.

I have another series of questions, hope you don't mind....

I've now included the Puncture and Insert Zero block to my model to
obtain a better code rate of 3/4. However, this has lead into another
problem.

As i have mentioned before, my Viterbi decoder is set to Hard decision.
Hard decision works based on 0s & 1s. When i included the puncture
pair, again i get 0.5 BER. However, if i change the decision type in my
Viterbi to Unquantized and add a Unipolar to Biploar Converter (since
unquantized viterbi works on -1 n 1) before the Insert Zero block, it
works perfectly.

I was wondering is there any way to work around the problem? meaning
without using the bipolar converter?

2nd Q:

I obtained somewhere from the help in Simulink that for a 3/4 code rate
the optimum puncture vector is [110110].' correct?
Based on your experience, is there any optimum parameter for
interleaving? rows & columns (i plan to add interleaving after i've
figure out the puncturing)

I've noticed in the Simulink demos (both HiperLAN2 & WLAN802.11a) which
involves OFDM, interleaving is done twice using the Matrix interleaver
and the General block interleaver. Is it just a choice or preference?
Or is there a specific reason to it? And if so, how do i choose the
Elements for the General block interleaver?

Sorry for the barrage of questions....really appreaciate u guy's help...
Back to top
Ant_Magma
Guest





Posted: Thu Dec 08, 2005 8:40 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

It's solved!! Thx martin for the tip, the model is now working.

I have another series of questions, hope you don't mind....

I've now included the Puncture and Insert Zero block to my model to
obtain a better code rate of 3/4. However, this has lead into another
problem.

As i have mentioned before, my Viterbi decoder is set to Hard decision.
Hard decision works based on 0s & 1s. When i included the puncture
pair, again i get 0.5 BER. However, if i change the decision type in my
Viterbi to Unquantized and add a Unipolar to Biploar Converter (since
unquantized viterbi works on -1 n 1) before the Insert Zero block, it
works perfectly.

I was wondering is there any way to work around the problem? meaning
without using the bipolar converter?

2nd Q:

I obtained somewhere from the help in Simulink that for a 3/4 code rate
the optimum puncture vector is [110110].' correct?
Based on your experience, is there any optimum parameter for
interleaving? rows & columns (i plan to add interleaving after i've
figure out the puncturing)

I've noticed in the Simulink demos (both HiperLAN2 & WLAN802.11a) which
involves OFDM, interleaving is done twice using the Matrix interleaver
and the General block interleaver. Is it just a choice or preference?
Or is there a specific reason to it? And if so, how do i choose the
Elements for the General block interleaver?

Sorry for the barrage of questions....really appreaciate u guy's help...
Back to top
Guest






Posted: Fri Dec 09, 2005 1:16 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

See Below.

Ant_Magma wrote:
Quote:
It's solved!! Thx martin for the tip, the model is now working.


Good to hear it.

Quote:
I have another series of questions, hope you don't mind....

I've now included the Puncture and Insert Zero block to my model to
obtain a better code rate of 3/4. However, this has lead into another
problem.

As i have mentioned before, my Viterbi decoder is set to Hard decision.
Hard decision works based on 0s & 1s. When i included the puncture
pair, again i get 0.5 BER. However, if i change the decision type in my
Viterbi to Unquantized and add a Unipolar to Biploar Converter (since
unquantized viterbi works on -1 n 1) before the Insert Zero block, it
works perfectly.

I was wondering is there any way to work around the problem? meaning
without using the bipolar converter?


I think if you step back one second and think about what it is you are
supplying to the Viterbi decoder, then all will become clear. You say
that the Viterbi decoder is based on hard decision decoding and,
rightly, you are supplying hard decisions as an input. The problem
comes (in your case) when you puncture the rate k/n code to get a rate
k'/n' code. At the receiver (in your case the Viterbi decoder) you
want to present the decoder with the original rate k/n code so that it
can estimate the sequence correctly. You do this by inserting zeros
into the code (of rate k'/n') and then feeding this to the decoder.

Now, when you insert zeros, think about what it is your telling the
Viterbi decoder? The original bits corresponding to the positions that
you punctured in the transmitter are now lost to the world...you have
no information about them at the receiver. Therefore, you want to tell
the Viterbi decoder that for those particular bits, you have no
information i.e. you don't know whether it is a binary one or zero. To
do this, you assign the bits where you need to reinsert a value of 0.5
(half way between the binary one and zero). However, if you now insert
values of 0.5 instead of zeros into the decoder, you are really forcing
the decoder to use "soft" decisions because your Viterbi will now have
to "do something" with the values of 0.5 that it sees on the input!
What it 'does' with these values depends on how the decoder is
programmed!

As an aside, do you see what happens if you insert zeros when using the
hard decision values of 1 and 0 as an input?? What are you telling the
decoder about those 'lost' bits?

Okay, the second method you talk about is really the correct way of
proceeding. You are now forcing the decoder to process the signal for
values in the range +/- 1, where +1 = binary 1 and -1 = binary zero (or
whatever your mapping happens to be!). In this case, for the positions
where you have no information on what was transmitted (due to the
puncturing you performed in the transmitter) you supply the decoder
with no information (A ZERO) for those bits and let the decoder
estimate what you sent!

What i'm saying is that there isn't really a work around, at some point
you either process 'soft' values by default, or the decoder will just
make a hard estimate on the bit value for the zero insertion positions.

I hope that is clear?



Quote:
2nd Q:

I obtained somewhere from the help in Simulink that for a 3/4 code rate
the optimum puncture vector is [110110].' correct?

It depends on the constraint length of your encoder and the mother code
rate that you're dealing with. I would be very surprised if the
(default) puncture mask hard wired into simulink is not an optimum one?

Quote:
Based on your experience, is there any optimum parameter for
interleaving? rows & columns (i plan to add interleaving after i've
figure out the puncturing)


Interleaving is very much an artform and tailored to your system
parameters (interleaver length, BER, etc etc) I would recommend that
you just apply a random interleaver for now and then you can tweak the
specs later on.


Quote:
I've noticed in the Simulink demos (both HiperLAN2 & WLAN802.11a) which
involves OFDM, interleaving is done twice using the Matrix interleaver
and the General block interleaver. Is it just a choice or preference?
Or is there a specific reason to it? And if so, how do i choose the
Elements for the General block interleaver?


Not sure about the last one sorry!


> Sorry for the barrage of questions....really appreaciate u guy's help...
Back to top
Ant_Magma
Guest





Posted: Fri Dec 09, 2005 1:16 am    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

The first method you mentioned is soft-decision viterbi correct?
Back to top
Guest






Posted: Fri Dec 09, 2005 5:16 pm    Post subject: Re: OFDM Simulink problem, SOS! Reply with quote

The first method was really just an example of what is required to
provide the decoder with the correct information for the missing bits.
If you provide the decoder with a value of 0.5, from the input range
{0,1} then you are effectively providing 'soft' bit decisions aren't
you?

What I'm really trying to say is that you need to decide what your
maximum positive value (equiv binary one) and your maximum negative
values (equiv binary zero) are, and then for the missing bits, due to
puncturing, you insert a value that is smack bang in the middle of
these two extreme values (assuming, of course, that you don't have any
prior information pertaining to the missing bits!). Why, do you choose
a value smack bang in the middle? Well, because I'm assuming that the
transmitted bits are equiprobable and therefore, you won't have any
knowledge of the values of the missing punctured bits in the receiver.


For example, if you have only hard bit decisions at the input, then you
either convert the binary stream of ones and zeros into a bipolar
signal and then perform zero insertion. Or, you leave the input data
as a string of ones and zeros and you perform 0.5 insertion. Both
methods work equally well, it's just that you have to work out whether
the decoder you're implementing can handle one input or the other....no
more, no less!

cheers.


nt_Magma wrote:
> The first method you mentioned is soft-decision viterbi correct?
Back to top
 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP All times are GMT
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




VoIP Electronics Powered by phpBB