Bahman
Posts:
9
Registered:
4/12/11
|
|
Re: commBCHEncoder/commBCHDecoder
Posted:
Jul 17, 2012 6:12 AM
|
|
"Fulus " <case28@gmail.com> wrote in message <ju1v1g$e24$1@newscl01ah.mathworks.com>... > Hello > > I have inverted the bch output just as you suggested but still the same "multichannel operation is not supported" error. here is a bit of my code so you might take a look > thank you. > > hStr=RandStream('mt19937ar','seed',654321); > BBFrame=randi(hStr,[0,1],32208*k,1); > BCHFEC=step(EncoderBCH,BBFrame); > BCHFEC=BCHFEC'; > FECFrame=step(hEnc,BCHFEC); > hInt = comm.BlockInterleaver(permVec); > IntData = step(hInt, FECFrame); > hMod = comm.PSKModulator(M, 'PhaseOffset',pi/16); > Msg_tx = step(hMod, IntData); > Msg_tx = rectpulse(Msg_tx,NSAMP); > EbNo=5; > snr=EbNo+10*log10(H)-10*log10(Nsamp); > hAWGN = comm.AWGNChannel('NoiseMethod', ... > 'Signal to noise ratio (SNR)','SNR',snr); > noisy_msg = step(hAWGN, Msg_tx); > noisy_msg = intdump(noisy_msg, Nsamp); > hDemod = comm.PSKDemodulator(M, 'PhaseOffset',pi/16); > Msg_rx = step(hDemod, noisy_msg); > hDeInt = comm.BlockDeinterleaver(permVec); > FECFrame_rx = step(hDeInt, Msg_rx); > BCH_rx = step(hdec, FECFrame_rx); > BCH_rx =BCH_rx '; > BBFrame_rx = step(DecoderBCH, BCH_rx);
Hi dear
First of all you need to send BBFrame of 64800 bits at once like this
data = randi([0 1], K_BCH, 1); BCHFEC=step(EncoderBCH,data);
second: there is no interleaving for QPSK at all third:I prefer to do interleaving by making the element vector myself like this:
%----ELEMENTS FOR 8PSK (excluding rate 3/5 which is different) l=1; for i=1:21600 Interleave_8psk_b(l,1)=i; Interleave_8psk_b(l+1,1)=i+21600; Interleave_8psk_b(l+2,1)=i+43200; l=l+3; forth:I prefer to use AWGN instead of comm.awgn fifth: as long as you may send single BBFrames I'm afraid there is no need for sampeling.(intdump and rectpulse)
Bahman
|
|