GIẢI THÍCH code MATLAB thầy N.V.Đảm
BÀI 1_1:PSD Base_band and Passband(Sim_FWC_01_1) Giải thích Dịng lệnh Ý nghĩa clc Xóa cửa sổ lệnh Xóa hết tát lệnh command window Close all đóng Đóng figure(hình vẽ đị thị minh họa cho chương trình clear Xóa mục khỏi khơng gian làm việc, giải phóng nhớ hệ thống f= -200:5:200; Tạo vecto biến f có giá trị f=200 đến giá trị f=200 cách Khảo sát hàm mật độ phổ công suất theo tần số Tb=0.02; Tạo giá trị Tb=0.005s Cập nhật giá trị tham số Rb= 1/Tb Tính tốc độ bit thông qua Tb Cập nhật giá trị tham số A=10 Biên độ tín hiệu băng tần sở Cập nhật giá trị tham số Cập nhật giá trị tham số AA=A^2*Tb fc =120; Tần số song mang PSD_BaseBand=AA*(sinc((f* Tính mật độ phổ cơng suất băng Tb)).^2); tần sở SD_PassBand=(AA/4)*((sinc( Tính mật độ phổ cơng suất BPSK (f+fc)* Tb)).^2 +(sinc((f-fc)*Tb)).^2); PSD_PassBand_1 =(AA/4)*((sinc((ffc)*Tb)).^2); Thành phần mật độ phổ công suất BPSK PSD_PassBand_2=(AA/4)*((s Thành phần mật độ phổ công suất inc((f+ BPSK fc)*Tb)).^2 ); figure(1) Mở cửa sổ hình subplot(2,1,1); Tạo mảng lớp stem(f,PSD_BaseBand1,'b','Li neWid Tạo đồ cành tần số, PSD thành phần BPSK th',3); hold on Đóng băng đồ thị stem(f,PSD_PassBand_2,'g','Li Tạo đồ cành tần số, PSD neWidth',3); thành phần BPSK xlabel Thêm nhãn text vào trục ox ylabel Thêm nhãn text vào trục oy đồ thị title Thêm text vào góc đồ thị plot Vẽ đồ thị Vẽ điểm đường mặt phẳng 2D Plot(x,y): vẽ 2D với trục x y tuyến tính grid on; THAY ĐỔI THAM SỐ f = -200:5:200; %f = linspace(-200,200,1500); Tb = 0.1; Rb = 0.5/Tb; A = 10; AA = A^2*Tb; Đường lưới bật lên Vẽ đồ thị = 120; PSDPassBand PSD BaseBand fc MËt ®é phổ công suất PSD tín hiệu băng tần së víi tèc ®é R =5b/s b 10 -200 -150 -100 -50 50 100 150 200 TÇn số [Hz] Mật độ phổ công suất PSD tín hiệu thông giải với tốc độ R =5b/s; Tần số sãng mang fc =120HZ b 2.5 1.5 0.5 -200 -150 -100 -50 50 100 TÇn sè [Hz] f = linspace(-2000,2000,1500); Tb = 0.005;%input('Nhap thoi gian bit=');%0.005; Rb = 1/Tb; P = 1; A = 1; AA = A^2*Tb; fc = 600; % Carrier Frequncy Eb = P*Tb; 150 200 PSD QPSK & MSKPSD đầu vào khối điều chế Mật độ phổ-3công suất PSD tín hiệu đầu vào khối điều chế R =200b/s b x 10 -2000 -1500 -1000 -500 500 1000 1500 2000 TÇn sè [Hz] x 10 PSD cña QPSK PSD cña MSK -20 -10 10 TÇn sè chuÈn hãa (f-fc)Tb PSD cđa QPSK & MSK So s¸nh PSD cđa QPSK & MSK, Rb =200b/s; TÇn sè sãng mang fc =600HZ -3 -3 x 10 PSD cña QPSK PSD cña MSK -2000 -1000 T n s [H 1000 z 2000 ] BÀI 1_2: Mô PSD_Modulation(SIM_FWC_01_2) a, Chương trình: Dịng lệnh f = linspace(-2000,2000,1500); Tb = 0.002 Rb = 1/Tb; P A AA fc = 1; = 1; = A^2*Tb; = 600; Giải thích Khởi tạo tập giá trị f có giá trị từ -2000 tới 2000 gồm 1500 giá trị Khởi tạo giá trị chu kì bit Xác định tốc độ bit Khởi tạo giá trị biến A, P biên độ cơng suất tín hiệu Khởi tạo biến AA Thêm giá trị tần số sóng mang Ý nghĩa Thiết lập tập giá trị input cho q trình mơ Thiết lập tham số Eb = P*Tb; Khởi tạo biến Eb lượng bit phát PSD_BaseBand = Thiết lập công thức AA*(sinc((f*Tb)).^2); phổ cơng suất phát tín hiệu băng gốc dựa vào công thức lý thuyết PSD_BPSK = (Eb*log2(2))*((sinc((f- Thiết lập hàm tính fc)*Tb*log2(2))).^2); PSD phương pháp điều chế BPSK theo bên dựa lý thuyết PSD_QPSK = (Eb*log2(4))*((sinc((f- Thiết lập hàm tính fc)*Tb*log2(4))).^2); PSD phương pháp điều chế QPSK theo bên dựa lý thuyết PSD_8_PSK = (Eb*log2(8))*((sinc((f- Thiết lập hàm tính fc)*Tb*log2(8))).^2); PSD phương pháp điều chế 8-PSK theo bên dựa lý thuyết PSD_BPSK_2 = Thiết lập hàm tính (Eb*log2(2)/2)*(((sinc((fmật độ phổ cơng fc)*Tb*log2(2))).^2) + suất tín hiệu ((sinc((f+fc)*Tb*log2(2))).^2)); theo phía trục f dựa cơng thức lý thuyết MPSK Khảo sát phổ công suất tín hiệu băng gốc Khảo sát phổ cơng suất tín hiệu điều chế BPSK Khảo sát phổ cơng suất tín hiệu điều chế QPSK Khảo sát phổ cơng suất tín hiệu điều chế 8PSK Khảo sát phổ cơng suất tín hiệu điều chế BPSK PSD_QPSK_2 = (Eb*log2(4)/2)*(((sinc((ffc)*Tb*log2(4))).^2) + ((sinc((f+fc)*Tb*log2(4))).^2)); Khảo sát phổ cơng suất tín hiệu điều chế QPSK PSD_8_PSK_2 = (Eb*log2(8)/2)*(((sinc((ffc)*Tb*log2(8))).^2) + ((sinc((f+fc)*Tb*log2(8))).^2)); Khảo sát phổ cơng suất tín hiệu điều chế 8PSK SF = ((16*Eb)/(pi^2)); Tạo biến SF Num = (cos(2*pi*(f-fc)*Tb)); Tạo biến Num Dum = (16*(Tb^2)*(f-fc).^2)-1; Tạo biến Dum PSD_MSK = SF*((Num./Dum).^2); Num_2 = (cos(2*pi*(f+fc)*Tb)); Dum_2 = (16*(Tb^2)*(f+fc).^2)-1; PSD_MSK_2 = (SF/2)*(((Num./Dum).^2) + ((Num_2./Dum_2).^2)); figure(1) figure(2) figure(3) figure(4) subplot(2,1,1); plot(f,PSD_BaseBand,'b','LineWidth',3 Thiết lập hàm tính PSD MSK theo phía dựa theo cơng thức lý thuyết Tạo biến Num_2 có giá trị tính biểu thức bên phải Tạo biến Dum-2 có giá trị tính biểu thức bên phải Thiết lập hàm tính PSD MSK theo phía dựa theo công thức lý thuyết Lần lượt tạo cửa sổ để hiển thị đồ thị Chia cửa sổ figure ma trận 2x1 chọn hang thứ để biểu diễn kết Biểu diễn kết phổ PSD lên đồ thị điểm Chia hàm tính PSD MSK thành nhiều thành phần để dễ dàng thiết lập cơng thức viết chương trình MATLAB Biểu diễn mật độ phổ PSD-MSK side trục Ox Thiết lập giá trị cho phía cịn lại MSK Biểu diễn mật độ phổ PSD-MSK side trục Ox giá trị nối liền với Xlabel() Tạo title cho trục Ox, chọn màu sắc chữ, font, size Tạo title cho trục Oy, chọn màu sắc chữ, font, size Tạo sơ đồ lưới cho subplot Giữ chương trình ngun subplot Tạo biến f1 Ylabel() grid on; hold on f1 = (f-fc)*Tb; THAY ĐỔI THAM SỐ SNRindB = 0:1:9; % signal to noise ratio dB SNR = 10.^(SNRindB/10); Eb = 1; % energy per bit sgma = Eb./sqrt(2*SNR); % sigam, standard deviation of noise is % noisepower = sgma.^2 NumBits = 10^7; % Number of Bits Mô BER hệ thống BPSK kênh AWGN; Nsimbit = 10000000 bits Xác suất lỗi Pe 10 10 10 Mô Tính toán -1 10 -2 10 Xác suất lỗi Pe 10 So sánh xác suất lỗi bit hệ thống BPSK trực giao đối cực kênh AWGN -3 -4 10 10 Trùc giao §èi cùc -1 -2 -3 -4 Mô hình hóa mô Tính toán so sánh hiệu Tính xác kết mô phỏng, xác nhận phê chuẩn mô hình SNR [dB] SNR [dB] SNRindB = 0:1:9; % signal to noise ratio dB SNR = 10.^(SNRindB/10); Eb = 2; % energy per bit sgma = Eb./sqrt(2*SNR); % sigam, standard deviation of noise is % noisepower = sgma.^2 NumBits = 10^3; % Number of Bits Bài 2: - Giải thích chương trình : Câu lệnh clc clear Close all SNRindB = 0:1:9; SNR=10.^(SNRindB/10); Eb sgma = 1; = Eb./sqrt(2*SNR); NumBits = 10^7; theo_Orthogonal_err_prb *erfc(sqrt(SNR/2)); = 0.5 Giải thích Ý nghĩa Xóa tồn cửa sổ Khởi tạo môi command trường chạy chương trình Loại bỏ thành Khởi tạo mơi phần khỏi trường chạy workspace, giải chương trình phóng nhớ Tắt tồn cửa sổ Chuẩn bị mơi hiển thị kết mơ trường để chạy chương trình Khởi tạo vecto Sinh tỉ lệ tín giá trị từ 0-9 cách hiệu nhiễu đơn vị đơn vị dB Khởi tạo biến SNR Đổi đơn vị SNR có giá trị kết biểu thức bên phải Khởi tạo biến Eb = Set lượng / bit Khởi tạo biến sgma Xác định có giá trj kết phương sai biểu thức bên phải Khởi tạo biến Set số lượng bit Numbits vào Tính xác suất lỗi cho tín hieju trực giao theo công thức lý thuyết theo_Antipodal_err_prb *erfc(sqrt(SNR)); = 0.5 h = waitbar(0,'Please wait '); tic for j=1:length(SNR) tStart = tic; waitbar(j/length(SNRindB)); dsource_1 = 0.5*(sign(rand(1,NumBits)-0.5)+1); numoferr = 0; for i=1:NumBits temp = rand; if (temp , nhỏ -1 Khởi tạo biến sumoferr Tạo vòng lặp số lần gióa trị Numbits Tạo biến temp có giá trị random từ 01 Nếu giá trị temp < 0.5 Tính xác suất lỗi bit cho tín hiệu đối cực theo cơng thức lý thuyết Hỗ trợ q trình mơ Bắt đầu khảo sát thời gian chạy mô Lặp n lần với n độ dài vecto SNR Tính tốn thời gian chạy chương trình Hỗ trợ q trình mơ Tạo nguồn bit ngẫu nhiên Khởi tạo biến đếm số lỗi Bắt đầu tạo nguồn nhị phân AX=gca; axis([min(SNRindB) max(SNRindB), 1e-5 0.2]); grid on text(2,7e-5,'Mô hình hóa mô phỏng', 'FontName','.VnTimeh','Color','b','Fo ntSize',14); text(0.5,min(theo_Antipodal_err_prb ),'Tính xác kết mô phỏng, xác nhận phê chuẩn mô hình', Tr v giỏ tr trc hin ti đồ thị với hàm gca Chia lại trục , Giới hạn đồ thị vẽ khoảng từ minSNRindB maxSNRindB, trục y từ 1e^-5 tới 0.2 Bật lưới Thêm thích cho đồ thị Thêm thích cho đồ thị 'FontName','.VnTimeh','Color','r','Fo ntSize',9.9) G= Vẽ đồ thị dạng semilogy(SNRindB,theo_Orthogonal semilogarith _err_prb,'vr',SNRindB,theo_Antipodal_err_prb ,'-ob'); set(G,'LineWidth',[1.5]); xlabel('SNR [dB]','FontName','.VnTime','color','b', 'FontSize',12); Set độ dày đường đồ thị Đặt tên cho trục Ox ylabel('X¸c suÊt lỗi t label cho trc Pe','FontName','.VnTime','color','b','F Oy ontSize',18); title('So sánh xác suất lỗi bit hệ thống BPSK trực giao ®èi cùc kªnh AWGN', Đặt tên cho đồ thị Mô BER theo trực giao đối cực theo cơng thức tính tốn lý thuyết 'FontName','.VnTime','color','b','Font Size',15); Đặt thích cho đồ thị Hỗ trợ hiển thị đồ thị set(LT,'FontName','.VnTime','FontSi ze',16,'fontweight','normal','fontAngl e','normal'); Set font chữ, màu cho thích Hỗ trợ hiển thị đồ thị AX = gca; Đặt lại trục tọa độ set(AX,'FontSize',14); Đặt font cỡ chữ cho AX Chia lại trục , Giới hạn đồ thị vẽ khoảng từ minSNRindB maxSNRindB, trục y từ 1e^-5 tới 0.2 Vẽ lưới thị phía đồ thị Hỗ trợ hiển thị đồ thị Hỗ trợ hiển thị đồ thị Hỗ trợ hiển thị đồ thị LT = legend(' Trùc giao',' cùc'); axis([min(SNRindB) max(SNRindB), 1e-5 0.2]); grid on; Kết mơ §èi Hỗ trợ hiển thị đồ thị - Nhận xét: o Ở đồ thị BER kênh BPSK theo tính tốn mơ theo cơng thức lý thuyết đối cực(đồ thị phía bên phải) xác suất lỗi gần tương đương SNR o Ở đồ thị so sánh BER hệ thống BPSK kênh AWGN tín hiệu đối cực trực giao thấy xác suất lỗi tỉ lệ SNR xác suất lỗi tín hiệu trực giao lớn nhiều - Mô tăng số bit vào lên 10^8 Bài 3_1 Sim_FWC_03_01_COV_Encoder_Decoder.m Câu lệnh clc; clear; close all; k0 =1 Giải thích Clear tất cửa sổ, thành phần command window Đặt giá trị k0 = G = [1 1 0 1;1 1 0]; Khởi tạo ma trận G InfoBitLen = 20; Tạo biến InfoBitlen Ý nghĩa Khởi tạo môi trường chạy mô Nhập giá trị k cho mã hóa (số bit dịch vào lập mã) Nhập ma trận G cho mã hóa iput= randi(1,InfoBitLen,2); d_Haming= 30; Encoder_output=FWC_COV_Encoder(G,k 0,iput); MF1=round(length(Encoder_output)/d_Ha ming); error_index=MF1:MF1/2:length(Encoder_o utput); error_vector(error_index)= 1; Random chuỗi bit vào Khởi tạo giá trị d hamming = 30 Sử dụng hàm Mã hóa xoắn FWC_COV_E chuỗi bit theo ncode tạo lý thuyết chuỗi bit đầu sau kho mã hóa Tính giá trị MF1 Sinh vecto lỗi chiều dài chiều dài bit sau mã hóa Tạo Vector error error index có giá trị Tạo vecto lỗi chiều dài vecto tín hiệu sau mã hóa bị trí error index có giá trị channel_out=xor(Encoder_output,error_vec Thực phép Đầu tor); toán logic kênh truyền XOR encode output vecto lỗi decoder_output=FWC_COV_Dencoder(G,k Sử dụng hàm Giải mã xoắn 0,channel_out); fwc_cov dencoder để giải mã disp('==========Cac ket Hiển thị qua:==================='); kết iput In giá trị Encoder_output cửa sổ error_vector command window channel_out d_Haming decoder_output errors=sum(decoder_output~=iput) Sủ dujgn hàm sum tính tổng khác hai biến decoder_output iput BER = errors/length(iput) Tính tổng sai khác bit bit vào bit sau giải mã Tính tỉ lệ lỗi bit disp('d_Haming/length(channel_out):t_corr = ') Hiển thị giá trị kết Hiển thị kết t_corr = d_Haming/length(channel_out) Tính giá trị t corr Giá trị sai khác bit thơng tin bit sau có vector lỗi tác động Sim_FWC_03_02_BPSK_AWGN_ChannelCode.m - Giải thích câu lệnh chương trình Câu lệnh clc; clear all; close all; SNRindB SNR = 0:1:9; = 10.^(SNRindB/10); Giải thích Clear cửa sổ lệnh Command window tắt cửa sổ mô phrong khác Tạo vecto SNRindB từ 0-9 cách Tính giá trị SNR Ý nghĩa Chuẩn bị môi trường chạy mô Sinh giá trị SNR Chuyển đổi giá trị dB sang SNR Eb sgma Block_size = 1; Set Eb = = Eb./sqrt(2*SNR); Tính giá trị sgma Năng luwojgn bit =1 Tính phương sai = 10^2; Set giá trị Blocksize = 10^2 Num_Block = 200; Set giá trị Num_block = 200 NumBits = Num_Block*Block_size; Tính Numbits mode_Sim Codding_Type Tính số lượng bit đưa vào lần tính tốn set modeSim = Xác định chế độ mô Set codding type = Xác định chế độ mã hóa Nếu chế độ mã Cài đặt biến hóa = thực cần xét điều kiện theo tiến hành mô điều kiện mã phrong hóa bên = 2; = 2; if mode_Sim ==2 if Codding_Type == k0 = 1; G = [1 1; 1]; GT = 1; elseif Codding_Type == Codding type ==2 k0 = 1; chọn hệ số G = [1 1 0 1; 1 1 0]; k0,G,GT khác GT = 2; Cài đặt biến cần tiến hành mô phrong else Codding type chọn hệ số k0,G,GT khác Cài đặt biến cần tiến hành mơ phrong Tính giá trị theo Antodopal err prb Tính tỉ lệ lỗi bit theo trực giao tính theo cơng thức lý thuyết k0 = 2; G = [0 1 0 1;0 0 0 0 1;1 0 0 0 1]; GT = 3; theo_Antipodal_err_prb *erfc(sqrt(SNR)); = 0.5 h = waitbar(0,'Please wait '); tic for j=1:length(SNR) Start_sim = tic; waitbar(j/length(SNRindB)); numoferr_tot = 0; for k=1:Num_Block dsource_1= 0.5*(sign(rand(1,Block_size)-0.5)+1); if mode_Sim ==2 dsource = FWC_COV_Encoder(G,k0,dsource_1); else Khởi động waitbar biểu diễn tiến trình chạu chương trình Bắt đầu đếm thời gian Duyệt qua giá trị SNR Gán giá trị Xác định Startsim = tic thời gian bắt đầu mô Chia waitbar thành phần chạy mô hết tiến trình dịch khaorng định Lặp từ tới số lượng NumBlock Tạo nguồn dsource ngẫu nhiên Xác định mode_sim Mode sim khác dsource numoferr_block = dsource_1; = 0; for i = 1:length(dsource) if dsource(i)==1, X = sgma(j)*randn(1); Y = -sqrt(Eb) + X; Set numoferr_block = Duyệt qua phần tử dsource Nếu phần tử thứ I vecto dsource == thực gán biến Tạo nguồn bit ngẫu nhiên Nếu modeSim == dsource mã hóa xoắn Dsource khơng mã hóa Nếu dsource ==1 tính giá trị X biến ngẫu nhiên else X Y end = sgma(j)*randn(1); = sqrt(Eb) + X; if (Y=0 Nếu Y>= định giá trị bit tới thứ i Nếu mode Sim == Nếu mode gán giá trị sim =2 thực decoder_output giải mã hàm xoắn với chuỗi bit dcis nhận Nếu không Bit nhận decis Tính tổng số Tính số lỗi lượng sai khác giữa dcoderoutput chuỗi bit dsource truyền nhận Tính giá trị đưa vào mảng smld er prb Dừng thời gian mô Gán SimTime giá trị max Sim_elapsed Xác định mode sim Tính tỉ lệ lỗi bit else if Codding_Type==1 save Sim_FWC_02_02_BER_BPSK_AWGN _NCC_G1.mat; Xác định kiểu Codding Xác định mode sim codding type để lưu kết elseif Codding_Type==2 save Sim_FWC_02_02_BER_BPSK_AWGN _NCC_G2.mat; Xác định kiểu Codding else Xác định kiểu Codding Xác định mode sim codding type để lưu kết Xác định mode sim codding type để lưu kết smld_err_prb(j) = numoferr_tot/NumBits; Sim_Elapsed = toc(Start_sim); SimTime = max(Sim_Elapsed); if mode_Sim==1 save Sim_FWC_02_02_BER_BPSK_AWGN _NoCC.mat; save Sim_FWC_02_02_BER_BPSK_AWGN _NCC_G3.mat; end h1 = figure(1); set(h1,'Name',' Programmed by Nguyen Viet Dam PTIT: 07-2007'); G = semilogy(SNRindB,smld_err_prb,'vr',SNRindB,theo_Antipodal_err_prb,'ob'); Bắt đầu mở cửa sổ hiển thị kết mô Đặt tên cho cửa sổ vừa mở Xác định mode sim để lưu kết Hiển thị kết Hiển thị kết Vẽ đồ thị dạng Hiển thị kết semilogarithmic với giá trị xét theo lượng lỗi bit theo tính toán lý thuyết set(G,'LineWidth',1.5); Set giá trị đường đồ thị AX = gca; xlabel() ylabel() grid on; axis([min(SNRindB) max(SNRindB), 1e-5 1]); Hiển thị kết Hiển thị kết Đặt thích cho trục Oy đồ thị Đặt thích cho trục Oy đồ thị Bật đường lưới đồ thị Chia lại giá trị trục tọa độ Ox, Oy theo SNR Pe A Sub Function FWC_COV_Encoder & FWC_COV_Dencoder - FWC_COV_Encoder: Câu lệnh Giải thích Ý nghĩa function output = Tạo hàm có tên Tạo hàm FWC_COV_Encoder(g,k0,input) FWC_COV_Encoder() mã hóa để gọi file khác if rem(length(input),k0) > Kiểm tra xem có cầm bit thêm cần thiết input = [input,zeros(size(1:k0Thêm bit vào chuỗi rem(length(input),k0)))]; bit vào n =length(input)/k0; Tính giá trị n if rem(size(g,2),k0) > Kiểm tra hàm rem(sizeg,2) error('Error, g is not of the right size.'); Đưa lỗi Kiểm tra kích thước ma trận g l = size(g,2)/k0; Xác định giá trị l n0 = size(g,1); Xác định giá trị n0 u = [zeros(size(1:(l1)*k0)),input,zeros(size(1:(l-1)*k0))]; Thêm số phụ u1 = u(l*k0:-1:1); Xác định giá trị u1 for i=1:n+l-2 u1 = [u1,u((i+l)*k0:-1:i*k0+1)]; uu=reshape(u1,l*k0,n+l-1); Tạo ma trận u output = reshape(rem(g*uu,2),1,n0*(l+n-1)); Đưa đầu B Kết mơ Trường hợp 1: Tạo ma trận uu có cột nội dung conv Đầu mã xoắn C Kết mô trường hợp 2: - Coding_type == 1, mode_sim = - Coding_type = 2, mode_sim = - Nhận xét: o Khi ta thực thêm mã hóa kênh vào kênh hệ thống BPSK thấy rõ tỉ số SNR xác suất lỗi Pe hệ thống có sử dụng mã hóa kênh thấp nhiều với khơng sử dụng mã hóa kênh o Ở trường hợp Coding_type = ta tăng đa thức tạo mã G giữ nguyên k0 => chất lượng việc mã hóa nguồn khơng tốt o Khi ta tăng sơ lượng bit đầu vào k0 lần tăng bậc số lượng đa thức tạo mã G => tỉ lệ SNR tăng o Luồng bit có tốc độ cao => tăng độ rộng băng tần => giảm hiệu sử dụng phổ tần ... vào lên 10 ^8 Bài 3 _1 Sim_FWC_03_ 01_ COV_Encoder_Decoder.m Câu lệnh clc; clear; close all; k0 =1 Giải thích Clear tất cửa sổ, thành phần command window Đặt giá trị k0 = G = [1 1 0 1; 1 1 0]; Khởi... size(g ,1) ; Xác định giá trị n0 u = [zeros(size (1: (l1)*k0)),input,zeros(size (1: (l -1) *k0))]; Thêm số phụ u1 = u(l*k0: -1: 1); Xác định giá trị u1 for i =1: n+l-2 u1 = [u1,u((i+l)*k0: -1: i*k0 +1) ]; uu=reshape(u1,l*k0,n+l -1) ;... = 2; if mode_Sim ==2 if Codding_Type == k0 = 1; G = [1 1; 1] ; GT = 1; elseif Codding_Type == Codding type ==2 k0 = 1; chọn hệ số G = [1 1 0 1; 1 1 0]; k0,G,GT khác GT = 2; Cài đặt biến cần tiến