You are on page 1of 12

CHƯƠNG 6

MÔ PHỎNG MÃ HÓA TURBOCODE


3.1 Khảo sát chất lượng hệ thống
3.1.1 Cài đặt thông số
 Số kênh con numSubchan=16
 Kích thước bộ hoán vị=768
 Số lần lặp numIter = 8 ( sử dụng xen kẽ interleaver)
 Điều chế đường xuống 16QAM
 Tốc độ mã R=1/2, 3/4
 Mô phỏng được thực hiện trên kênh AWGN
 Yêu cầu

• Tham số đầu ra hình mô phỏng BER của trục tung phản ánh tỉ lệ lỗi bit
trên kênh truyền

• Eb / N0 (tỷ lệ mật độ phổ năng lượng trên mỗi bit trên công suất nhiễu)
trục hoành phản ánh tỉ lệ tín/tạp.

• Thí nghiệm nhằm đánh giá chất lượng của bộ mã Turbo khi bị thay đổi
các thông số:

• tốc độ mã.

• số lần giải mã lặp.

• cách thức hóan vị

Kiểm tra tỉ lệ BER sau đó chọn ra trường hợp tối ưu tất cả ảnh hưởng trên và đưa ra bộ mã
Turbo có tỉ lệ BER thấp nhất.
3.1.2 Cách thực hiện mô phỏng: Sử dụng phần mềm Matlab. Thực hiện mô phỏng sử
dụng công cụ các khối chức năng (funtion & device block) trong phần mềm mô
phỏng Matlab Simulink
3.1.3 Kết quả mô phỏng
Kết quả mô phỏng

điều chế 16QAM, tốc độ mã R=1/2

Hình 3.1.3.1 :Tốc độ mã ½, điều chế 16QAM


1. Kết quả mô phỏng bộ turbo điều chế 16QAM, tốc độ mã R=3/4

Hình 3.1.3.1 :Tốc độ mã 3/4, điều chế 16QAM


3.2 phân tích kết quả mô phỏng

 Gán nhãn tín hiệu, ở tốc độ mã R=1/2, điều chế 16QAM kết quả mô phỏng cho
thấy đường d0d1 là có lợi về Eb / N0 (tỷ lệ mật độ phổ năng lượng trên mỗi bit
trên công suất nhiễu) so với các cách khác ở cùng một tỷ lệ BER.
 Ở tốc độ mã R=3/4, điều chế 16QAM kết quả mô phỏng cho thấy các đường
gần tương đương nhau nguyên nhân chiều dài bộ hoán vị chưa đủ lớn, dẫn tới
chưa thể hiện được độ lợi về tỷ lệ BER.
 Số lần giải mã lặp không phải nhiều là tốt.
 Lựa chọn các điều kiện làm việc của mã Turbo.
 mã Turbo phụ thuộc : tốc độ mã, số lần giải mã lặp, cách thức hóan vị, cách
thức ánh xạ …
KẾT LUẬN

Nghiên cứu và phân tích thiết kế các bộ mã hóa và giải mã turbo code và các sơ
đồ mã hóa kênh. Cụ thể là các vấn đề sau:
 Khi lựa chọn cách thức làm việc có thể kết hợp nhiều tham số trên để có nhiều
phương án đáp ứng với yêu cầu dịch vụ.
 cần có thêm 1 bộ inline giảm thiểu thời gian giải mã.
PHỤ LỤC

Phụ lục 1: Khối mô phỏng bộ turbo

Khối mô phỏng nếu sử dụng inline( bộ tối ưu ):


PHỤ LỤC: CODE_MATLAB
Code_Hoán vị CTC
function [CTC_int] = hoanviCTC(numSubchan,codingratio)
% Generation of the interleaver for the CTC
if codingratio == 1/2
P0 = 11;
N = numSubchan*12;
elseif codingratio == 3/4
P0 = 13;
N = numSubchan*18;
else
;
end
vec_inA = 2*[1:1:N]-1;
vec_inB = 2*[1:1:N];
for j = 1:N
if mod(j,2)==0
temp=vec_inA(j);
vec_inA(j)=vec_inB(j);
vec_inB(j)=temp;
end
end
for j = 1:N
rem = mod(j,4);
switch rem
case 0,
P = 0;
case 1,
P = 0;
case 2,
P = N/4;
case 3,
P = 5*N/4;
otherwise
;
end
NewIndex(j)=mod(P0*j+P+1,N);
end
% Final interleaver
sys_int(2*NewIndex+1) = vec_inA;
sys_int(2*NewIndex+2) = vec_inB;
CTC_int(sys_int) = [1:1:N*2];
CTC_int = sys_int';
Code_Hoán vị modulator
function [MOD_int] = hoanviMod(cpc,frameLen)
% Generation of the interleaver for modulator
s = ceil(cpc/2);
for k = 0:frameLen-1
mk = (frameLen/12)*mod(k,12) + floor(k/12);
temp(k+1) = s*floor(mk/s) + mod(mk + frameLen -...
floor(12*mk/frameLen),s)+1;
end
MOD_int(temp) = [1:1:length(temp)];
MOD_int = MOD_int';
Code_Simulink Turbo LTE
% The simulation of the convolutional turbo code
% used as the option for channel coding in LTE
% with 16qam.
clear all
% setting trellises for the component RSCs
trellisA = struct('numInputSymbols', 4, 'numOutputSymbols', 8,...
'numStates', 8,...
'nextStates',[0 7 4 3;4 3 0 7;1 6 5 2;5 2 1 6;...
6 1 2 5;2 5 6 1;7 0 3 4;3 4 7 0],...
'outputs',[ 0 3 5 6;...
0 3 5 6;...
1 2 4 7;...
LUẬN VĂN CAO HỌC
1 2 4 7;...
1 2 4 7;...
1 2 4 7;...
0 3 5 6;...
0 3 5 6]);
% setting trellis for the outer decoder
trellisB = struct('numInputSymbols', 4, 'numOutputSymbols', 2,...
'numStates', 8,...
'nextStates',[0 7 4 3;4 3 0 7;1 6 5 2;5 2 1 6;...
6 1 2 5;2 5 6 1;7 0 3 4;3 4 7 0],...
'outputs',[ 0 1 1 0;...
0 1 1 0;...
1 0 0 1;...
1 0 0 1;...
1 0 0 1;...
1 0 0 1;...
0 1 1 0;...
0 1 1 0]);
% Generation of the signal vector
qamPoints = [-3+3j, -1+3j, 1+3j, 3+3j,...
-3+1j, -1+1j, 1+1j, 3+1j,...
-3-1j, -1-1j, 1-1j, 3-1j,...
-3-3j, -1-3j, 1-3j, 3-3j]/sqrt(10);
mappingRule = [13 14 16 15 9 10 12 11 1 2 4 3 5 6 8 7]; Es = 10;
%mappingRule = [13 14 9 10 16 15 12 11 1 2 5 6 4 3 8 7]; Es = 10;
%mappingRule = [1 2 4 3 5 6 8 7 9 10 12 11 13 14 16 15]; Es = 10;
%mappingRule = [8 15 2 16 10 7 4 3 11 14 6 12 9 5 13 1]; Es = 10;
Label = qamPoints(mappingRule);
% computing the coding rate
puncVec = [1 1 1 1]'; % rate 1/2
%puncVec = [1 1 1 0 1 1 0 1 1 1 0 0]'; % rate = 3/4
codingratio = (1/2)*length(puncVec)/sum(puncVec);
% parameters setting
numSubchan = 16; % number of subchannels
codebitpercar = 4; % 16qam
[CTC_int] = hoanviCTC(numSubchan,codingratio); % CTC interleaver
dataLen = length(CTC_int); % The Information Block Length
frameLen = dataLen/codingratio; % The modulation block length
[MOD_int] = hoanviMod(codebitpercar,frameLen);
[aa hoanvi] = sort(rand(frameLen/4,3));
hoanvi1 = hoanvi(:,1); hoanvi2 = hoanvi(:,2);hoanvi3 = hoanvi(:,3);
% setting for computation of SNR
codeRate = codingratio*codebitpercar;
EbN0Vec = [2:1:8]; % Simulation SNR range
BERVec = []; % The bit error probability
% Simulation setup
opts =
simset('SrcWorkspace','Current','DstWorkspace','Current');
numIter = 8; % The number of iterations
ter = 6e8; % The maximum nunber of generated bits
%SF = 0; % no feedback
SF = 1; % with feedback
scale = [0:1:10]/10;
% Iteration in SNR
for n=1:length(EbN0Vec)
EbN0dB = EbN0Vec(n);
noiseVar=1/((codeRate)*(10.^(EbN0dB/10))); % Noise Variance
if EbN0dB <= 4.
ter = 1.024e+5;
elseif EbN0dB <= 7.
ter = 1.024e+6;
elseif EbN0dB <= 8
ter = 1.024e+7;
else
ter = 1.024e+8;
end
sim('turbo_sim_LTE_inline',5e+9,opts);
BERVec1(n,1)= ber_bicm(numIter-7,1);
BERVec2(n,1)= ber_bicm(numIter-5,1);
BERVec3(n,1)= ber_bicm(numIter-2,1);
BERVec4(n,1)= ber_bicm(numIter,1);
semilogy(EbN0Vec(1:n),BERVec1(1:n,1),'-bo');
semilogy(EbN0Vec(1:n),BERVec2(1:n,1),'-b.');
semilogy(EbN0Vec(1:n),BERVec3(1:n,1),'-r+');
semilogy(EbN0Vec(1:n),BERVec4(1:n,1),'-r*');
drawnow
hold on pause(1); END

You might also like