Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Ppl with exp with OFDM in Simulink, SOS!!

Status
Not open for further replies.

Antonio_Magma

Full Member level 2
Joined
Jun 21, 2005
Messages
136
Helped
3
Reputation
6
Reaction score
2
Trophy points
1,298
Activity points
2,777
matrix concatenation block in simulink for ofdm

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

Pic1


Pic2


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 :cry:

PS: I've attached my OFDM model in Simulink for reference.
 

remove zero padding in simulink

hi antonio,
with reference to pic1, you can neglect the effects of convolutional encoding and Viterbi decoding, i.e. you can match the output of Cov Enc and input of Vit Dec, in your model, this itself is not matching.

the problems seems to be at the Matrix Concatenation block; the input to this block is a frame of size 24 but it is generating 6 frames of size 50 instead of 1 frame of size 50. im sure the problem is over there, you need to figure out why..

hope it helps you..
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top