|
|
  |
LDPC код из стандарта DVB-S2, BER, отношение сигнал-шум, DVB-S2, LDPC |
|
|
|
Nov 13 2012, 10:33
|
Группа: Участник
Сообщений: 14
Регистрация: 9-11-12
Пользователь №: 74 305

|
Есть программа на C++ для моделирования кодов LDPC для стандарта DVB-S2, в программе есть матрицы из стандарта, задающие коды, есть модем и канал связи с возможностью установки отношения Eb/No. Для всех кодов кроме скоростей 2/5, 1/3, 1/4 получились приемлимые графики зависимости BER (Bit Error Rate) от Eb/No, сходящиеся с теоретическими из статей. Для скоростей 1/4, 1/3, 2/5 декодер не работает, сам добавляет ошибки даже, если в канале ошибок не было. Может это опечатка в матрицах, взятых из стандарта. Ниже приведен стандарт. Не знаете с чем может быть связано, что не работают три скорости?
|
|
|
|
|
Nov 13 2012, 13:59
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(Vehfl @ Nov 13 2012, 13:33)  Есть программа на C++ для моделирования кодов LDPC для стандарта DVB-S2, в программе есть матрицы из стандарта, задающие коды, есть модем и канал связи с возможностью установки отношения Eb/No. Для всех кодов кроме скоростей 2/5, 1/3, 1/4 получились приемлимые графики зависимости BER (Bit Error Rate) от Eb/No, сходящиеся с теоретическими из статей. Для скоростей 1/4, 1/3, 2/5 декодер не работает, сам добавляет ошибки даже, если в канале ошибок не было. Может это опечатка в матрицах, взятых из стандарта. Ниже приведен стандарт. Не знаете с чем может быть связано, что не работают три скорости? Промоделировал своими средствами для QPSK 1/4 при разных С/Ш - все работает, ошибки исправляются. Ищите ошибки в модели. Товарищи, которые делали по стандарту, говорят, что в матрицах опечаток нет.
|
|
|
|
|
Nov 13 2012, 16:24
|
Группа: Участник
Сообщений: 14
Регистрация: 9-11-12
Пользователь №: 74 305

|
Цитата(Serg76 @ Nov 13 2012, 17:59)  Промоделировал своими средствами для QPSK 1/4 при разных С/Ш - все работает, ошибки исправляются. Ищите ошибки в модели. Товарищи, которые делали по стандарту, говорят, что в матрицах опечаток нет. Случайно не в матлабе моделировали? У меня в матлабе при отношении С/Ш=0, BER=0. Ведь физически такого не может быть? Код программы в матлабе: CODE format long clear all;
r=2/3 H = dvbs2ldpc®; %e=0 % spy(H); % Visualize the location of nonzero elements in H.
% Construct a default LDPC encoder object henc = fec.ldpcenc(H);
for SNRdB = 0
for n=1:100; % Generate a random binary message msg = randint(1,henc.NumInfoBits,2);
% Encode the message codeword = encode(henc, msg);
% Verify the parity checks (which should be a zero vector) paritychecks = mod(henc.ParityCheckMatrix * codeword', 2);
hdec = fec.ldpcdec(H);
% Construct a BPSK modulator object modObj = modem.pskmod('M',2,'InputType','Bit');
% Modulate the signal (map bit 0 to 1 + 0i, bit 1 to -1 + 0i) modulatedsig = modulate(modObj, codeword);
% Noise parameters
sigma = sqrt(10^(-SNRdB/10));
% Transmit signal through AWGN channel receivedsig = awgn(modulatedsig, SNRdB, 0); % Signal power = 0 dBW
% % Visualize received signal % scatterplot(receivedsig)
% Construct a BPSK demodulator object to compute % log-likelihood ratios demodObj = modem.pskdemod(modObj,'DecisionType','LLR', ... 'NoiseVariance',sigma^2);
% Compute log-likelihood ratios (AWGN channel) llr = demodulate(demodObj, receivedsig);
% Decode received signal decodedmsg = decode(hdec, llr);
N_err=nnz(decodedmsg-msg);
% % Actual number of iterations executed % disp(['Number of iterations executed = ' ... % num2str(hdec.ActualNumIterations)]); % % Number of parity-checks violated % disp(['Number of parity-checks violated = ' ... % num2str(sum(hdec.FinalParityChecks))]); % % Compare with original message % disp(['Number of bits incorrectly decoded = ' ... % num2str(N_err)]) a(n)=N_err; % Общее количество ошибок end
BER=sum(a)/(n*henc.NumInfoBits)
end BER FER=(nnz(a))/n
|
|
|
|
|
Nov 13 2012, 16:49
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 11-09-11
Пользователь №: 67 121

|
Цитата(Vehfl @ Nov 13 2012, 20:24)  Случайно не в матлабе моделировали? У меня в матлабе при отношении С/Ш=0, BER=0. Ведь физически такого не может быть? Почему не может? у меня 9.259259259259259e-07 получилось... а могло и не получиться. Запускайте подольше и параллельно несколько потоков.
|
|
|
|
|
Nov 19 2012, 08:58
|
Группа: Участник
Сообщений: 14
Регистрация: 9-11-12
Пользователь №: 74 305

|
Цитата(slash_spb @ Nov 15 2012, 18:49)  У вас реализация с плавающей точкой? В реализациях с фиксированной точкой декодер начинает сам вносить ошибки при больших снрах когда нет проверки на четность(наличию ошибок в блоке) после каждой итерации, либо что-то с нормировкой мягких решений на входе декодера. Ну это так, вдруг поможет. Хотя наверное ошибка в модели. Пожалуйста можете поподробней и что вы имеете ввиду под реализацией с фиксированной точкой?
|
|
|
|
|
Nov 20 2012, 07:37
|

Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 20-03-06
Пользователь №: 15 425

|
Цитата(Vehfl @ Nov 19 2012, 11:58)  Пожалуйста можете поподробней и что вы имеете ввиду под реализацией с фиксированной точкой? Имел ввиду реализацию декодера с фиксированной точкой, т.е. все метрики имеют ограниченный динамический диапазон. При работе с таким декодером сталкивался с тем что декодер вносил ошибки и было это конечно от неправильной реализации алгоритма декодирования, хотя он как вносил ошибки так и исправлял. Как вариант может у вас реализация декодера с фиксированной точкой и переполнение метрик наступает только на на указанных вами скоростях?
|
|
|
|
|
Nov 22 2012, 13:03
|
Группа: Участник
Сообщений: 14
Регистрация: 9-11-12
Пользователь №: 74 305

|
Не могли бы поделиться алгоритмом декодирования который использовали. Спасибо.
|
|
|
|
|
Nov 22 2012, 15:31
|

Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 20-03-06
Пользователь №: 15 425

|
Цитата(Vehfl @ Nov 22 2012, 16:03)  Не могли бы поделиться алгоритмом декодирования который использовали. Спасибо. Алгоритм декодирования MIN-SUM, такой же как в DVB-S2, только нет коррекции. Ну еще он с одним проходом по строкам кодовой матрице. У меня он есть на матлабе, на си нет. Вам исходник нужен, я правильно понял?
|
|
|
|
|
Nov 26 2012, 15:18
|
Группа: Участник
Сообщений: 14
Регистрация: 9-11-12
Пользователь №: 74 305

|
Цитата(slash_spb @ Nov 22 2012, 18:31)  Вам исходник нужен, я правильно понял? Да, это было бы прекрасно иметь наглядный алгоритм декодирования.
|
|
|
|
|
Nov 27 2012, 05:12
|
Группа: Новичок
Сообщений: 2
Регистрация: 27-11-12
Пользователь №: 74 575

|
Могу выправить вам алгоритм и проконсультировать, за плату. Пишите в личку.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|