필터 지우기
필터 지우기

Changing traceback gmsk viterbi demodulator object

조회 수: 3 (최근 30일)
Jose
Jose 2019년 12월 12일
편집: gidon schwartz 2020년 11월 16일
Hi,
I want to see how changing the traceback (Tb) of a gmsk demodulator affects the BER curve in GMSK (pulse length=3), but there is no variation in the BER curve when Tb change, except when Tb=1. I tried Tb values from 2 to 100, does anybody have an idea why it occurs?
Thanks in advance.
%%
close all
clear all
clc
%% Modulation parameters
oversamp = 30;
L = 3;
h = 0.5;
BT = 0.5;
fast_sim=0;
%% Bit generation and diff encoding
Nbits=10e4; % 12 bits for fixed input
%Nbits=5000;
bits = randi([0 1],1,Nbits-2);
bits = [[0 1] , bits];
encoded_bits = xor(bits(1:end-1),bits(2:end));
encoded_bits = not(encoded_bits);
encoded_bits = (encoded_bits*2 - 1)';
%encoded_bits =[-1 1 -1 -1 1 1 1 1 -1 1 1 -1]';
%% Objects
hMod = comm.GMSKModulator(...
'SamplesPerSymbol',oversamp,...
'BitInput', false,'InitialPhaseOffset' ,0, 'PulseLength',L);
hDeMod = comm.GMSKDemodulator(...
'BitOutput',false,...
'SamplesPerSymbol',oversamp, 'InitialPhaseOffset' ,0, 'PulseLength',L,...
'TracebackDepth',2);
%% Modulation
object_gfsk= step(hMod,encoded_bits);
%% BER calculation for Matlab object
EbNodB = 0:1:10;
%EbNodB =100;
BER = zeros(1,numel(EbNodB));
for index = 1: numel(EbNodB)
EbNodB(index),
errors = 0;
count = 0;
while(1)
%% Channel
hAWGN = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (Eb/No)','EbNo', (EbNodB(index)),'SamplesPerSymbol',oversamp);
received = step(hAWGN, (object_gfsk));
reset(hAWGN)
%% Demodulator
estimatedBits=step(hDeMod, received);
reset (hDeMod);%OJO NO BORRAR
%% Error estimation
hError = comm.ErrorRate('ReceiveDelay', hDeMod.TracebackDepth);
errorStats = step(hError, (encoded_bits(1:end)) , (estimatedBits));
errorsN = errorStats(2);
errors = errors + errorsN;
count = count + 1;
if(fast_sim == 1)
if(errors>300 || count > 500)
BER(index) = errors / (count*numel(encoded_bits));
break;
end
else
if(errors>700 || count > 1200)
BER(index) = errors / (count*numel(encoded_bits));
break;
end
end
end
end
%% Plotting
semilogy(EbNodB,BER,'k','LineWidth',1.5);
grid on
  댓글 수: 1
gidon schwartz
gidon schwartz 2020년 11월 15일
편집: gidon schwartz 2020년 11월 16일
hi,
Is it possibble that in GMSK a traceback of 2 is sufficient for decoding ( and therefore no improvement is shown for higher values of TB)?
do you have any new conclusions regarding this question?

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Modulation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by