'MaximumIterationCount', dvb. LDPCNumIterations, ...

'NumIterationsOutputPort', true);

bbFrameTx = false(hBCHEnc. MessageLength,1);

numIterVec = zeros(numFrames, 1);

falseVec = false(dvb. NumPacketsPerBBFrame, 1);

forframeCnt=1:numFrames

% Передатчик, канал и приемник

bbFrameTx(1:dvb. NumInfoBitsPerCodeword) = ...

logical(randi([0 1], dvb. NumInfoBitsPerCodeword, 1));

bchEncOut = step(hBCHEnc, bbFrameTx);

ldpcEncOut = step(hLDPCEnc, bchEncOut);

intrlvrOut = step(hIntrlv, ldpcEncOut);

modOut = step(hMod, intrlvrOut);

chanOut = step(hChan, modOut);

demodOut = step(hDemod, chanOut);

deintrlvrOut = step(hDeintrlv, demodOut);

[ldpcDecOutnumIter] = step(hLDPCDec, deintrlvrOut);

bchDecOut = step(hBCHDec, ldpcDecOut);

bbFrameRx = bchDecOut(1:dvb. NumInfoBitsPerCodeword,1);

% Статистика ошибок

comparedBits = xor(bbFrameRx, bbFrameTx(1:dvb. NumInfoBitsPerCodeword));

packetErr = any(reshape(comparedBits, dvb. NumBitsPerPacket, ...

dvb. NumPacketsPerBBFrame));

PER = step(hPER, falseVec, packetErr');

berMod = step(hBERMod, demodOut<0, intrlvrOut);

berLDPC = step(hBERLDPC, ldpcDecOut, bchEncOut);

% Иттерации LDPC декодера

numIterVec(frameCnt) = numIter;

% Оценка дисперсии шума

noiseVar = step(hMean, step(hVar, chanOut - modOut));

% Точечная диаграмма

update(hRxConst, chanOut);

ifframeCnt == 1

autoscale(hRxConst)

end

end

fprintf('Measured SNR : %1.2f dB\n', 10*log10(1/noiseVar))

fprintf('Modulator BER: %1.2e\n', berMod(1))

fprintf('LDPC BER : %1.2e\n', berLDPC(1))

НЕ нашли? Не то? Что вы ищете?

fprintf('PER : %1.2e\n', PER(1))

distFig = figure; hist(numIterVec, 1:hLDPCDec. MaximumIterationCount-1);

xlabel('Number of iterations'); ylabel('# occurrences'); grid on;

title('Distribution of number of LDPC decoder iterations')

loadberResultsDVBS2Demo. matcBERsnrdb

berFig = figure; semilogy(snrdb, cBER(1,:));

xlabel('SNR (dB)'); ylabel('BER'); grid on

рограммная реализация с применением Релеевских замираний канала

subsystemType = 'QPSK 1/2'; % Созвездие и скорость LDPC кода

EsNodB = 1; % Энергия за символ и отношение PSD шума в дБ

numFrames = 20; % Количество кадров для имитации

% Инициализировать

configureDVBS2Demo

% Системные параметры диспле

dvb

hLDPCEnc = comm. LDPCEncoder(dvb. LDPCParityCheckMatrix);

hLDPCDec = comm. LDPCDecoder(dvb. LDPCParityCheckMatrix, ...

'IterationTerminationCondition', 'Parity check satisfied', ...

'MaximumIterationCount', dvb. LDPCNumIterations, ...

'NumIterationsOutputPort', true);

bbFrameTx = false(hBCHEnc. MessageLength,1);

numIterVec = zeros(numFrames, 1);

falseVec = false(dvb. NumPacketsPerBBFrame, 1);

%=============================http://www. /source-code/MATLAB/Rayleigh-channel-model-matlab-code. html

%Ts=1e-4; % sampling time in second

%Fd=100; % doppler frequency in Hz

%Tau=[0 1.5e-4 2.5e-4]; % delay for the three paths

%PdB=[0, -2, -6]; % power in each of the three paths

% Rayleigh channel model

%h = rayleighchan(Ts, Fd, Tau, PdB);

%==============================

Ts= 5e-4;

Fd= 100;

Tau= [0 1.5e-3 2.5e-3];

PdB= [0, -2, -6];

RayleighChannel = rayleighchan(Ts, Fd, Tau, PdB);

for frameCnt=1:numFrames

% Передатчик, канал и приемник

bbFrameTx(1:dvb. NumInfoBitsPerCodeword) = ...

logical(randi([0 1], dvb. NumInfoBitsPerCodeword, 1));

bchEncOut = step(hBCHEnc, bbFrameTx);

ldpcEncOut = step(hLDPCEnc, bchEncOut);

intrlvrOut = step(hIntrlv, ldpcEncOut);

modOut = step(hMod, intrlvrOut);

chanOut = step(hChan, modOut);

ChannelSignal=filter(RayleighChannel, chanOut);

demodOut = step(hDemod, ChannelSignal);

deintrlvrOut = step(hDeintrlv, demodOut);

[ldpcDecOut numIter] = step(hLDPCDec, deintrlvrOut);

bchDecOut = step(hBCHDec, ldpcDecOut);

bbFrameRx = bchDecOut(1:dvb. NumInfoBitsPerCodeword,1);

% Статистика ошибок

comparedBits = xor(bbFrameRx, bbFrameTx(1:dvb. NumInfoBitsPerCodeword));

packetErr = any(reshape(comparedBits, dvb. NumBitsPerPacket, ...

dvb. NumPacketsPerBBFrame));

PER = step(hPER, falseVec, packetErr');

berMod = step(hBERMod, demodOut<0, intrlvrOut);

berLDPC = step(hBERLDPC, ldpcDecOut, bchEncOut);

% Иттерации LDPC декодера

numIterVec(frameCnt) = numIter;

% Оценка дисперсии шумадв

noiseVar = step(hMean, step(hVar, chanOut - modOut));

% Точечная диаграмма

update(hRxConst, chanOut);

if frameCnt == 1

autoscale(hRxConst)

end

end

fprintf('Measured SNR : %1.2f dB\n', 10*log10(1/noiseVar))

fprintf('Modulator BER: %1.2e\n', berMod(1))

fprintf('LDPC BER : %1.2e\n', berLDPC(1))

fprintf('PER : %1.2e\n', PER(1))

distFig = figure; hist(numIterVec, 1:hLDPCDec. MaximumIterationCount+10);

xlabel('Number of iterations'); ylabel('# occurrences'); grid on;

title('Distribution of number of LDPC decoder iterations')

load berResultsDVBS2Demo. mat cBER snrdb

berFig = figure; semilogy(snrdb, cBER(1,:));

xlabel('SNR (dB)'); ylabel('BER'); grid on

иблиография

1.  Прокис Джон. Цифровая связь. Пер. с англ. / Под ред. . - М.: Радио и связь. 2000. - 800 с.

2.  Теория электрической связи: учебное пособие / , , ;под общ. ред. . – Ульяновск: УлГТУ, 2008. – 452 с.

3.  Цифровое телевидение: Учебное пособие для ВУЗов / – М.: СОЛОН-Пресс, 2008. – 272 с.

4.  Digital Video Broadcasting (DVB); Modulator Interface (T2-MI) for a second generation digital terrestrial television broadcasting system (DVB-T2): ETSI TS 102 773 v.1.1.1, 2009. – 36 р.

5.  Digital Video Broadcasting (DVB) Implementation guidelines for a second generation digital terrestrial television broadcasting system (DVB-T2): ETSI TS 102 831 v1.1.1. ETSI, 2010. – 213 р.

6.  Digital Video Broadcasting (DVB); Frame structure channel coding and modulation for a second generation digital terrestrial television broadcasting system (DVB-T2): ETSI EN 302 755 v1.1.1. ETSI, 2009. – 167 с.

7.  Dogan H., Yildiz H., Cooklev T., Acar Y. Coded OFDM wireless systems with generalized prefix /"Application of Information and Communication Technologies (AICT) ", 2012 6th International Conference., pp.1-4. 2012.

8.  , , Шахнович беспроводные сети передачи информации. М.: Техносфера, 2005. – 592 с.

9.  Chenggao Han, Hashimoto T., Suehiro N. Constellation-rotated vector OFDM and its performance analysis over Rayleigh fading channels / Communications, IEEE Transactions, vol.58, no.3, pp.828-838, 2010.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12