Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 117 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
117
Dung lượng
675,35 KB
Nội dung
BỘ GIÁO DỤC & ĐÀO TẠO ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA ************ LÊ QUỐC ĐÁN CÂN BẰNG KÊNH THÔNG TIN DÙNG LOGIC MỜ CHUYÊN NGÀNH : KỸ THUẬT VÔ TUYẾN & ĐIỆN TỬ MÃ SỐ NGÀNH : LUẬN ÁN CAO HỌC TP HỒ CHÍ MINH, 07/2001 TÓM TẮT Luận án trình bày phương pháp cho cân kênh thông tin, cân có hồi tiếp dùng logic mờ Mục đích luận án thông qua kết mô để so sánh phương pháp đề nghị với phương pháp khác Luận án phân làm phần : Phần I : Giới thiệu Phần tóm tắt mục đích yêu cầu luận án Phần II : Lý thuyết cân kênh thông tin Phần trình bày lý thuyết cân tuyến tính cân thích nghi Phần III : Cơ sở lý thuyết mờ Phần trình bày lý thuyết sở hệ thống mờ, cách thức để xây dựng hệ thống mờ Phần IV : Cân kênh thông dùng logic mờ Phần đưa số phương pháp nghiên cứu ứng dụng thực cân kênh thông tin giới thiệu kết mô Cuối cùng, chương trình mô viết phần mềm Matlab 5.3 trình bày phần phụ lục MỤC LỤC PHẦN I : GIỚI THIỆU Trang PHẦN II : LÝ THUYẾT CÂN BẰNG KÊNH THÔNG TIN CHƯƠNG : GIỚI THIỆU KÊNH THÔNG TIN I II Các thành phần thông tin số Mô hình toán kênh thông tin Kênh nhiễu cộng Kênh lọc tuyến tính Kênh lọc tuyến tính biến thiên theo thời gian 4 CHƯƠNG : ĐẶC TRƯNG TÍN HIỆU VÀ HỆ THỐNG I Biểu diễn tín hiệu hệ thống thông dãi Biểu diễn tín hiệu thông dãi Biểu diễn hệ thống thông dãi tuyến tính Đáp ứng hệ thống thông dãi tín hiệu thông dãi Biểu diễn trình ngẫu nhiên dừng thông dãi 8 II Không gian tín hiệu Khái niệm không gian vector Khái niệm không gian tín hiệu 10 10 CHƯƠNG : THÔNG TIN TRÊN KÊNH TUYẾN TÍNH VỚI BĂNG THÔNG HỮU HẠN I Bộ thu tối ưu Bộ thu Maximum – Likelihood (ML) Mô hình thời gian rời rạc Thuật toán Viterbi 12 12 13 15 II Cân tuyến tính Tiêu chuẩn méo cực đại Tiêu chuẩn lỗi bình phương trung bình 15 16 18 III Cân hồi tiếp Tối ưu hệ số Đặc trưng chất lượng DFE Bộ cân hồi tiếp dự đoán 20 21 21 22 CHƯƠNG : CÂN BẰNG THÍCH NGHI I Bộ cân tuyến tính thích nghi Thuật toán zero-forcing Thuật toán bình phương trung bình tối thiểu Tính chất hội tụ thuật toán LMS 24 24 25 27 II Bộ cân hồi tiếp thích nghi 29 III Thuật toán cân bình phương tối thiểu đệ quy 30 PHẦN III : CƠ SỞ LÝ THUYẾT MỜ I Hệ mờ ? 32 II Định nghóa tập mờ 32 III Các phép toán tập mờ Phép giao Phép hợp Phép bù 33 35 36 IV Tính chất tập mờ 36 V Hàm liên thuộc Định nghóa Các phương pháp xác định giá trị hàm liên thuộc 37 38 VI Biến ngôn ngữ giá trị biến ngôn ngữ 40 VII Quan hệ mờ 41 VIII Hợp thành mờ IX Giải mờ Nguyên tắc độ phụ thuộc cực đại Phương pháp trọng tâm Phương pháp trung bình độ phụ thuộc cực đại Phương pháp trung tâm tổng Phương pháp trung tâm vùng lớn Phương pháp cận trái cực đại 41 42 43 43 44 45 46 PHẦN IV : CÂN BẰNG KÊNH THÔNG TIN DÙNG LOGIC MỜ I II Phương pháp cân kênh thông tin Phương pháp cân hồi tiếp dùng logic mờ Phương pháp cân không hồi tiếp dùng logic mờ Phương pháp cân kênh kênh thông tin không dùng logic mờ [Q Liang J M Mendel] So sánh độ phức tạp thuật toán 54 57 Kết mô cân kênh thông tin Lưu đồ giải thuật Cân kênh tuyến tính 2.1 Kênh truyền có mô hình AR 2.1.1 Thiết kế cân không hồi tiếp dùng logic mờ 2.1.2 Thiết kế cân hồi tiếp dùng logic mờ 2.1.3 So sánh kết mô 59 59 60 60 60 68 70 2.2 Kênh truyền có mô hình MA 2.2.1 Thiết kế cân không hồi tiếp dùng logic mờ 2.2.2 Thiết kế cân hồi tiếp dùng logic mờ 2.2.3 So sánh kết mô 74 74 76 78 Cân kênh phi tuyến 3.1 Thiết kế cân không hồi tiếp dùng logic mờ 3.2 Thiết kế cân hồi tiếp dùng logic mờ 3.3 Thiết kế cân theo Q Liang J M Mendel 3.4 So sánh kết mô 81 81 84 85 86 KẾT LUẬN PHỤ LỤC Chương trình mô Tài liệu tham khảo 47 53 92 94 112 Giới Thiệu PHẦN I : GIỚI THIỆU Ngày nay, với phát triển vũ bảo khoa học kỹ thuật, người hướng tới nghiên cứu tìm tòi lónh vực mới, công nghệ mới, phương pháp mới, sở lý thuyết mới… Đặc biệt lónh vực điện tử – viễn thông công nghệ thông tin phát triển mạnh, mạng thông tin tiến đến số hóa hoàn toàn Do đó, dung lượng kênh thông tin tốc độ truyền thông tin ngày cao chất lượng tốt Thông tin truyền hữu tuyến (cáp đồng trục, cáp quang, …) vô tuyến (thông tin vệ tinh, thông tin di động, …), có vấn đề phát sinh suy hao, nhiễu, fading, … kênh truyền làm cho tín hiệu nhận đầu thu bị sai Để khắc phục loại nhiễu nhiễu trắng cộng có phân bố gauss (AWGN – Additive White Gaussian Noise) nhiễu liên ký tự (ISI – Intersymbol Interference) kênh truyền, người ta sử dụng cân (Equalizer) thiết bị thu để phục hồi lại tín hiệu phát ban đầu Tùy theo biết đặc tính kênh truyền mà ta sử dụng cân tuyến tính hay cân thích nghi tuyến tính, … Có ba phương pháp thông dụng để thực cân Phương pháp thứ dựa vào tiêu chuẩn phát chuỗi có khả xảy lớn (ML - MaximumLikelihood sequence) Phương pháp thứ hai sử dụng lọc tuyến tính với hệ số điều chỉnh Phương pháp thứ ba sử dụng ký tự (symbol) phát trước để triệt bỏ nhiễu ISI, phương pháp gọi cân hồi tiếp xác Trong thời gian gần đây, có nhiều nhà nghiên cứu đề xuất sử dụng logic mờ vấn đề cân cân kênh thông tin, chẳng hạn : - Li-Xin Wang J M Mendel đưa phương pháp cân kênh thông tin hồi tiếp dùng logic mờ - Q Liang J M Mendel đưa phương pháp cân kênh thông tin hồi tiếp có hồi tiếp dùng logic mờ loại (type-2 fuzzy) Các phương pháp tác giả phát triển cho trường hợp kênh thông tin phi tuyến Đặc điểm chung phương pháp sử dụng cân ngang (transversal) Phương pháp Li-Xin Wang J M Mendel không sử dụng hồi tiếp: thông tin khứ ước lượng không sử dụng để ước lượng thông tin tương lai Phương pháp Q Liang J M Mendel có sử dụng hồi tiếp sở xây dựng bảng luật hợp thành Trong luận văn này, đề xuất phát triển phương pháp tác giả theo hai hướng : - Chọn tập mờ dạng tam giác thay dạng gauss để đơn giản thời gian tính toán - Ước lượng thông tin có hồi tiếp dùng nhiều bảng luật hợp thành Giới Thiệu Khảo sát sơ đồ khối hệ thống thông tin dãi với nhiễu cộng gauss nhiễu liên ký tự hình s(k) chuỗi ký tự phát, e(k) nhiễu, xˆ (k ) tín hiệu thu chưa có nhiễu cuối kênh truyền, sˆ(k ) chuỗi ngõ định cân bằng, (p,q) bậc kênh truyền, bi hệ số Giả sử mô hình kênh truyền cho bởi: p q i =1 i =0 x ( k ) = − ∑ a i x ( k − i ) + ∑ b i s ( k − i ) + e( k ) chuỗi liệu phát s(k) giả sử chuỗi độc lập có giá trị {-1,1} với xác suất Nhiệm vụ luận án phục hồi tín hiệu phát s(k) phương pháp cân dùng logic mờ sử dụng thuật toán bình phương tối thiểu đệ quy mờ (RLS – Recursive Least Squares), thay đổi mô hình kênh truyền tuyến tính phi tuyến so sánh với phương pháp cân thông thường e(k) s(k) KÊNH TRUYỀN xˆ (k) BỘ CÂN BẰNG sˆ (k) x(k) Hình 1: Mô hình cân Các chương trình mô tập luận án viết phần mềm MATLAB phiên 5.3 Chương 1: Giới Thiệu Kênh Thông Tin CHƯƠNG GIỚI THIỆU KÊNH THÔNG TIN I CÁC THÀNH PHẦN CƠ BẢN CỦA THÔNG TIN SỐ Nguồn tin chuyển đổi ngõ vào Tín hiệu ngõ Mã hóa nguồn Mã hóa kênh Điều chế số Kênh truyền Bộ chuyển đổi ngõ Giải mã nguồn Giải mã kênh Giải điều chế số Hình 1: Các thành phần hệ thống thông tin số Hình mô tả sơ đồ khối chức thành phần hệ thống thông tin số Ngõ nguồn tín hiệu tương tự tín hiệu âm tín hiệu hình tín hiệu số, chẳng hạn tín hiệu ngõ máy điện báo Trong hệ thống thông tin số, tin tức phát nguồn chuyển đổi thành số nhị phân Chuỗi số nhị phân từ mã hóa nguồn đưa tới mã hóa kênh Mục đích sử dụng mã hóa kênh để khắc phục ảnh hưởng nhiễu can nhiễu gặp phải truyền tín hiệu qua kênh truyền Chuỗi nhị phân ngõ mã hóa kênh đưa tới điều chế số, mà đóng vai trò phần giao tiếp kênh thông tin Mục đích điều chế biến đổi chuỗi nhị phân sang dạng sóng tín hiệu Kênh thông tin môi trường vật lý sử dụng để gởi tín hiệu từ nguồn phát đến phần thu Chẳng hạn, truyền vô tuyến kênh truyền khí phần thu giải điều chế số xử lý dạng sóng phát bị sai kênh truyền biến đổi dạng sóng thành chuỗi giá trị mà nò biểu diễn ước lượng liệu phát Sau đó, chuỗi qua giải mã kênh để khôi phục lại chuỗi tín hiệu ban đầu biết từ mã sử dụng giải mã kênh phần dư (redundancy) chứa đựng liệu nhận Cuối cùng, tín hiệu qua giải mã nguồn để hồi phục lại tín hiệu nguyên thủy Chương 1: Giới Thiệu Kênh Thông Tin II MÔ HÌNH TOÁN CỦA KÊNH THÔNG TIN Trong thiết kế hệ thống thông tin cho truyền tin thông qua kênh vật lý, thấy thuận lợi để xây dựng mô hình toán mà phản ánh đặc điểm quan trọng môi trường truyền Khi mô hình toán kênh sử dụng để thiết kế mã hóa điều chế kênh phát, giải điều chế giải mã kênh thu 1) Kênh nhiễu cộng Mô hình toán đơn giản cho kênh thông tin kênh nhiễu cộng Trong mô hình hình 2, tín hiệu phát s(t) bị sai qúa trình nhiễu ngẫu nhiên cộng Nếu nhiễu cốt yếu thành phần điện khuếch đại phần thu, đặc trưng nhiễu nhiệt Loại nhiễu đặc trưng thống kê nhiễu gauss r(t) = s(t) + n(t) (1) Kênh s(t) r(t) n(t) Hình 2: Kênh nhiễu cộng 2) Kênh lọc tuyến tính (linear filter channel) Trong kênh vật lý, chẳng hạn kênh điện thoại hữu tuyến (wireline), lọc sử dụng để bảo đảm tín hiệu phát không vượt qúa giới hạn băng thông cho phép không bị xen vào kênh khác Các kênh đặc trưng mô hình toán tổng quát kênh lọc tuyến tính Bộ lọc tuyến tính c(t) s(t) Kênh r(t) n(t) Hình 3: Kênh lọc tuyến tính với nhiễu cộng Ngõ kênh: r(t) = s(t)*c(t) + n(t) r(t) = ∞ ∫ c(τ).s(t − τ)dτ + n (t ) (2) −∞ với c(t) đáp ứng xung lọc tuyến tính Chương 1: Giới Thiệu Kênh Thông Tin 3) Kênh lọc tuyến tính biến thiên theo thời gian (the linear time-variant filter channel) Các kênh vật lý kênh âm nước đặc trưng mô hình toán lọc tuyến tính biến thiên theo thời gian Các lọc đặc trưng đáp ứng xung c(τ;t) đáp ứng kênh thời điểm t xung dirac xuất thời điểm t-τ r(t) = s(t)*c(τ;t) + n(t) = ∞ ∫ c(τ; t ).s(t − τ)dτ + n (t ) (3) −∞ s(t) Bộ lọc tuyến tính biến thiên theo thời gian c(τ;t) Kênh r(t) n(t) Hình 4: Kênh lọc tuyến tính biến thiên theo thời gian với nhiễu cộng Chương trình mô NER = 0; for ii = : Nmes, if S(ii) ~= Sh(ii), NER = NER + 1; end end NER % So symbol bi phuc hoi sai 100*NER/Nmes - Chương trình tạo bảng luật hợp thành : function Tab = TaoBang(S,X,Xtb,nfuzy,Sm,Sp) TH = ARX([X',S'],[1,1,0]); % Thuat toan Least Square [A,B] = TH2POLY(TH); b0h = B(1); a1h = A(2); for i1 = : nfuzy, for i2 = : nfuzy, if (Xtb(i1) + a1h*Xtb(i2))/b0h > 0, Tab(i1,i2) = 1; else Tab(i1,i2) = -1; end end, end for k = : nfuzy, if (X(1) < Xtb(k)) & (X(1) >= Xtb(k-1)), i1 = k; end end for t = : size(S,2), i2 = i1; for k = : nfuzy, if (X(t) < Xtb(k)) & (X(t) >= Xtb(k-1)), i1 = k; end end Tab(i1,i2) = S(t); end - Chương trình tính giá trị hàm liên thuộc : function MuX = LienThuoc(X,Xtb,Vx,nfuzy) for i1 = : nfuzy, Mu = (X-Xtb(i1))/Vx; MuX(i1) = 0; if (X >= Xtb(i1)-Vx) & (X < Xtb(i1)), MuX(i1)=1+Mu; end if (X < Xtb(i1)+Vx) & (X >= Xtb(i1)), MuX(i1)=1-Mu; end end - Chương trình nhận dạng Sp vaø Sm : function [Sp,Sm]= NhanDang(S,X,Xtb,Vx,Sp,Sm,nG, Nmes,nfuzy,Tab) PP = eye(2); ThTa = [Sp;Sm]; MuX = LienThuoc(X(1),Xtb,Vx,nfuzy); for ii = nG+1 : Nmes, MuX1 = MuX; %Xac dinh gia tri ham l.thuoc X(k) & X(k-1) MuX = LienThuoc(X(ii),Xtb,Vx,nfuzy); 97 Chương trình mô Mp = 0; Mm = 0; for i1 = : nfuzy, for i2 = : nfuzy, if Tab(i1,i2) > 0, Mp = Mp + MuX(i1)*MuX1(i2); else Mm = Mm + MuX(i1)*MuX1(i2); end end, end B = [Mp/(Mp+Mm);Mm/(Mp+Mm)]; % THUAT TOAN RLS Lambda = 1/(1 + B'*PP*B); KK = PP*B*Lambda; PP = PP - PP*B*Lambda*B'*PP; ThTa = ThTa + KK*(S(ii) - B'*ThTa); end Sp = ThTa(1); Sm = ThTa(2); - Chương trình phục hồi tín hiệu phát S(k) : function Sh = PhucHoi(S,X,Xtb,Vx,Sp,Sm,nG,Nmes,nfuzy,Tab) Sh(1) = S(1); % Khac phuc thoi diem ban dau S(1) MuX = LienThuoc(X(1),Xtb,Vx,nfuzy); for ii = nG+1 : Nmes, MuX1 = MuX; % Xac dinh gia tri ham l.thuoc X(k) & X(k-1) MuX = LienThuoc(X(ii),Xtb,Vx,nfuzy); Mp = 0; Mm = 0; for i1 = : nfuzy, for i2 = : nfuzy, if Tab(i1,i2) > 0, Mp = Mp + MuX(i1)*MuX1(i2); else Mm = Mm + MuX(i1)*MuX1(i2); end end end Sh(ii) = (Mp*Sp + Mm*Sm )/(Mp+Mm); if Sh(ii) >= 0, Sh(ii) = 1; else Sh(ii) = -1; end end 98 Chương trình mô 1.3 Chương trình thực cân hồi tiếp dùng logic mờ: - Chương trình tạo bảng luật hợp thành : function [TabP,TabM] = TaoBang(S,X,Xtb,nfuzy,Sm,Sp) TH = ARX([X',S'],[1,1,0]); [A,B] = TH2POLY(TH); b0h= B(1); a1h = A(2); for i1 = : nfuzy, for i2 = : nfuzy, if (Xtb(i1) + a1h*Xtb(i2))/b0h > 0, TabP(i1,i2) = 1; else TabP(i1,i2) = -1; end end, end TabM = TabP; for k = : nfuzy, if (X(1) < Xtb(k)) & (X(1) >= Xtb(k-1)), i1 = k; end end for t = : size(S,2), i2 = i1; for k = : nfuzy, if (X(t) < Xtb(k)) & (X(t) >= Xtb(k-1)), i1 = k; end end if S(t-1) > 0, TabP(i1,i2) = S(t); else TabM(i1,i2) = S(t); end end - Chương trình nhận dạng Sp Sm function [Sp,Sm] = NhanDang(S,X,Xtb,Vx,Sp,Sm,nG, Nmes,nfuzy,TabP,TabM) PP = eye(2); ThTa = [Sp;Sm]; MuX = LienTam(X(1),Xtb,Vx,nfuzy); for ii = nG+1 : Nmes, MuX1 = MuX; %Xac dinh gia tri ham l.thuoc X(k) & X(k-1) MuX = LienTam(X(ii),Xtb,Vx,nfuzy); Mp = 0; Mm = 0; for i1 = : nfuzy, for i2 = : nfuzy, if S(ii-1) > 0, if TabP(i1,i2) > 0, Mp = Mp + MuX(i1)*MuX1(i2); else Mm = Mm + MuX(i1)*MuX1(i2); end else if TabM(i1,i2) > 0, Mp = Mp + MuX(i1)*MuX1(i2); else Mm = Mm + MuX(i1)*MuX1(i2); end end end, end B = [Mp/(Mp+Mm);Mm/(Mp+Mm)]; % THUAT TOAN RLS Lambda = 1/(1 + B'*PP*B); 99 Chương trình mô KK = PP*B*Lambda; PP = PP - PP*B*Lambda*B'*PP; ThTa = ThTa + KK*(S(ii) - B'*ThTa); end Sp = ThTa(1); Sm = ThTa(2); - Chương trình phục hồi tín hiệu phát S(k) function Sh = PhucHoi(S,X,Xtb,Vx,Sp,Sm,nG, Nmes,nfuzy,TabP,TabM) Sh(1) = S(1); % Khac phuc thoi diem ban dau S(1) MuX = LienTam(X(1),Xtb,Vx,nfuzy); for ii = nG+1 : Nmes, MuX1 = MuX; %Xac dinh gia tri ham l.thuoc X(k) & X(k-1) MuX = LienTam(X(ii),Xtb,Vx,nfuzy); Mp = 0; Mm = 0; for i1 = : nfuzy, for i2 = : nfuzy, if Sh(ii-1) > 0, if TabP(i1,i2) > 0, Mp = Mp + MuX(i1)*MuX1(i2); else Mm = Mm + MuX(i1)*MuX1(i2); end else if TabM(i1,i2) > 0, Mp = Mp + MuX(i1)*MuX1(i2); else Mm = Mm + MuX(i1)*MuX1(i2); end end end end Sh(ii) = (Mp*Sp + Mm*Sm )/(Mp+Mm); if Sh(ii) >= 0, Sh(ii) = 1; else Sh(ii) = -1; end end 100 Chương trình mô 1.4 Chương trình so sánh kết mô Chương trình so sánh tỷ lệ bit sai TE FE : clear all clf Nmes = 200; % Chieu dai SYMBOL nG = 1; % Bac cua kenh truyen b0 = 1; a1 = -0.5; % X(k)/S(k)=b0/(1+a1*Z^-1) Xtb = [-2,-1.5,-1,-0.5,0,0.5,1,1.5,2]; % Tri trung binh Vx = 1; % Variance cua tap mo X nfuzy = 9; % So tap mo Sp = 1; Sm = -1; % Tap mo cua Y (SINGLETON) NdB = 8; % Thi hanh voi gia tri SNR SdB = 2; % SNR dau tien la dB Nmonte = 100; % So lan lap: 100 ERR = zeros(Nmonte,NdB); ERR_fuz = ERR; for Nm = : Nmonte, for mm = : NdB, for mm = : NdB, S2NdB(mm) = SdB + 2*(mm-1); SNN(mm) = 10^(S2NdB(mm)/10); S2N = SNN(mm); %=========================================== S = GenS(Nmes); % Phat chuoi tin hieu thu X = MoPhong(S,a1,b0,Nmes,nG,S2N); % ========================================== NER = ARTT(S,X,nG,Nmes); NER_fuz = ARTTFUZ(S,X,Xtb,Vx,Sp,Sm,nG,Nmes,nfuzy); ERR(Nm,mm) = NER; ERR_fuz(Nm,mm) = NER_fuz; end end end for Nm = : Nmonte, for Nm = : 1, Average_ERR(Nm,:) = ERR(Nm,:); AverRage_ERR_fuz(Nm,:) = ERR_fuz(Nm,:); end for Nm = : Nmonte, Average_ERR(Nm,:) = ERR(Nm-1,:) + ERR(Nm,:); Average_ERR_fuz(Nm,:) = ERR_fuz(Nm-1,:) + ERR_fuz(Nm,:); end end 101 Chương trình mô Average_ERR = (Average_ERR(Nmonte,:)/(Nmonte*Nmes))+10^-9; Average_ERR_fuz = (Average_ERR_fuz(Nmonte,:)/(Nmonte*Nmes)) + 10^-9; ER = log10(Average_ERR); ER_fuz = log10(Average_ERR_fuz); plot(S2NdB,ER,'k-O'), hold on plot(S2NdB,ER_fuz,'b-*') xlabel('Signal-to-Noise (dB)'); ylabel('log10(Ty le bit sai)'); title('H : So sanh voi bo can bang mo - AR'); text(4,-4,'k-O: TE'); text(4,-4.5,'b-*: FE'); - Chương trình ARTT : function NER = ARTT(S,X,nG,Nmes) TH = ARX([X',S'],[1,1,0]); % THUAT TOAN LEAST SQUARE [A,B] = TH2POLY(TH); b0h= B(1); a1h = A(2); X(1:nG) = zeros(1,nG); Sh(1:nG) = S(1:nG); for ii = nG+1 : Nmes, if (X(ii) + a1h*X(ii-1))/b0h > 0, Sh(ii) = 1; else Sh(ii) = -1; end end NER = 0; for k = : Nmes, if S(k) ~= Sh(k), NER = NER + 1; end end - Chương trình ARTTFUZ : function NER_fuz = ARTTFUZ(S,X,Xtb,Vx,Sp,Sm,nG,Nmes,nfuzy) Tab = TaoBang(S,X,Xtb,Nmes,nfuzy); [Sptt,Smtt] = NhanDang(S,X,Xtb,Vx,Sp,Sm,nG,Nmes,nfuzy,Tab); Sh = PhucHoi(S,X,Xtb,Vx,Sptt,Smtt,nG,Nmes,nfuzy,Tab); NER_fuz = 0; for ii = : Nmes, if S(ii) ~= Sh(ii), NER_fuz = NER_fuz + 1; end end 102 Chương trình mô Chương trình tính phân bố xác suất mật độ xác suất clear all clf Nmes = 200; % So SYMBOL nG = 1; % Bac cua kenh truyen b0 = 0.8; a1 = -0.5; % X(k)/S(k)=b0/(1+a1*Z^-1) Xtb = [-2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2]; Vx = 1; % Variance cua tap mo X nfuzy = 9; % tap mo tam giac Sp = 1; Sm = -1; % Tap mo cua Y (SINGLETON) S2NdB = 7; % Gia tri Signal-To-Noise S2N = 10^(S2NdB/10); Nmonte = 100; % So lan lap ERR = zeros(1,Nmonte); ERR_fuz = ERR; for Nm = : Nmonte, S = GenS(Nmes); X = MoPhong(S,a1,b0,Nmes,nG,S2N); % ========================================== NER = ARTT(S,X,nG,Nmes); NER_fuz = ARTTFUZ(S,X,Xtb,Vx,Sp,Sm,nG,Nmes,nfuzy); ERR(1,Nm) = NER; ERR_fuz(1,Nm) = NER_fuz; end for kk = : 30, % Thu tu bit sai PB(kk) = 0; PB_fuz(kk) = 0; for Nm = : Nmonte, % So mo phong if ERR(1,Nm) >= kk, PB(kk) = PB(kk) + 1; end if ERR_fuz(1,Nm) >= kk, PB_fuz(kk) = PB_fuz(kk) + 1; end end end for kk = : 30, for kk = : 29, DEN(kk) = PB(kk) - PB(kk+1); DEN_fuz(kk) = PB_fuz(kk) - PB_fuz(kk+1); end for kk = 30 : 30, DEN(kk) = PB(kk); DEN_fuz(kk) = PB_fuz(kk); end end DEN = DEN/Nmonte; DEN_fuz = DEN_fuz/Nmonte; 103 Chương trình mô figure(1), clf plot(PB,'k-O'), hold on, plot(PB_fuz,'b-*') xlabel('So bit sai'); ylabel('So mo phong'); title('H : PHAN BO XAC SUAT - AR'); text(14,60,'k-O: TE'); text(14,55,'b-*: Fuzzy DFE'); figure(2), clf plot(DEN,'k-O'), hold on, plot(DEN_fuz,'b-*') xlabel('So bit sai'); ylabel('Xac suat'); title('H : MAT DO XAC SUAT - AR'); text(14,0.17,'k-O: TE'); text(14,0.15,'b-*: Fuzzy DFE'); 104 Chương trình mô KÊNH TRUYỀN CÓ MÔ HÌNH -MA Chương trình thực tương tự mô hình AR thay đổi mô hình kênh truyền tạo bảng luật hợp thành : - Chương trình mô kênh truyền X(k) : function X = MoPMAtt(S,a1,a2,b1,Nmes,nG,S2N) for ii = nG+1 : Nmes, X(ii) = (a1*S(ii) + a2*S(ii-1))/b1; end Nx = rand(1,Nmes); Nx = Nx - mean(Nx); % TAO NHIEU PX = X*X'; PN = Nx*Nx'; Nx = Nx/sqrt(S2N*PN/PX); X = X + Nx; - Chương trình tạo bảng luật hợp thaønh : function Tab = TaoBMAtt(S,X,Xtb,Nmes,nfuzy) TH = ARX([X',S'],[1,1,0]); [A,B] = TH2POLY(TH); b1h = B(1); a1h = A(1); a2h = A(2); for i1 = : nfuzy, for i2 = : nfuzy, for ii = : Nmes, if (Xtb(i1)-a2h*S(ii-1))/a1h > 0, Tab(i1,i2) = 1; else Tab(i1,i2) = -1; end end end, end % b1h*X(k) - a2h*S(k-1) = a1h*S(k) for k = : nfuzy, if (X(1) < Xtb(k)) & (X(1) >= Xtb(k-1)), i1 = k; end end for t = : size(S,2), i2 = i1; for k = : nfuzy, if (X(t) < Xtb(k)) & (X(t) >= Xtb(k-1)), i1 = k; end end Tab(i1,i2) = S(t); end 105 Chương trình mô KÊNH PHI TUYẾN 3.1 Chương trình thực cân ngang theo Q Liang vaø J M Mendel clear all clf Nmes = 128; nG = 1; a1 = 1; a2 = 0.5; Vx = 0.2; S2NdB = 10; % Chieu dai SYMBOL % BAC CUA KENH TRUYEN S2N = 10^(S2NdB/10); S = GenS(Nmes); X = MoPhong(S,a1,a2,nG,S2N,Nmes); Seq1 = opdec(S,X,Vx,Nmes,a1,a2); figure(1),clf subplot(311), plot(S, 'r'), hold on, plot(X, 'b'), axis([0,Nmes,-2,2]) subplot(312), plot(Seq1,'k'), axis([0,Nmes,-2,2]) Nmes = 2*10^5; S = GenS(Nmes); X = MoPhong(S,a1,a2,nG,S2N,Nmes); Seq = opdec(S,X,Vx,Nmes,a1,a2); subplot(313),plot(S, 'r'), hold on, plot(Seq, 'k'), axis([0,Nmes,-2,2]) NER = 0; for ii = : Nmes, if S(ii) ~= Seq(ii), NER = NER + 1; end end NER 100*NER/Nmes - Chương trình mô kênh phi tuyến X(k) : function X = MoPhong(S,a1,a2,nG,S2N,Nmes) for ii = nG+1 : Nmes, X(ii) = a1*S(ii)+a2*S(ii-1)-0.4*(a1*S(ii)+a2*S(ii-1))^3; end Nx = rand(1,Nmes); Nx = Nx - mean(Nx); % TAO NHIEU PX = X*X'; PN = Nx*Nx'; Nx = Nx/sqrt(S2N*PN/PX); X = X + Nx; 106 Chương trình mô - Chương trình phục hồi tín hieäu S(k) - OPDEC : function Seq = opdec(S,X,Vx,Nmes,a1,a2,b1) XX1(1) = a1 + a2 - 0.4*(a1 + a2)^3; W(1) = 1; XX1(2) = a1 + a2 - 0.4*(a1 + a2)^3; W(2) = 1; XX1(3) = a1 - a2 - 0.4*(a1 - a2)^3; W(3) = 1; XX1(4) = a1 - a2 - 0.4*(a1 - a2)^3; W(4) = 1; XX1(5) = -a1 + a2 - 0.4*(a1 + a2)^3; W(5) = -1; XX1(6) = -a1 + a2 - 0.4*(-a1 + a2)^3; W(6) = -1; XX1(7) = -a1 - a2 - 0.4*(-a1 - a2)^3; W(7) = -1; XX1(8) = -a1 - a2 - 0.4*(-a1 - a2)^3; W(8) = -1; XX2(1) = XX1(1); XX2(5) = XX1(1); XX2(2) = XX1(3); XX2(6) = XX1(3); XX2(3) = XX1(5); XX2(7) = XX1(5); XX2(4) = XX1(7); XX2(8) = XX1(7); Seq(1:2) = S(1:2); for ii = : Nmes, for i = : 8, for i = : 1, fx(ii,i) = W(i)*(exp(-(1/2)*(X(ii)XX1(i))^2/Vx^2))*(exp(-(1/2)*(X(ii-1)-XX2(i))^2/Vx^2)); end for i = : 8, fx(ii,i) = fx(ii,i-1) + W(i)*(exp(-(1/2)*(X(ii)XX1(i))^2/Vx^2))*(exp(-(1/2)*(X(ii-1)-XX2(i))^2/(Vx^2))); end end if fx(ii,8) >= 0, Seq(ii) = 1; else Seq(ii) = -1; end end 107 Chương trình mô 3.2 Chương trình cân không hồi tiếp dùng logic mờ clear all clf Nmes = 128; % Kich thuoc chuoi Training nG = 1; % Bac cua kenh truyen a1 = 1; a2 = 0.5; c = 0.4; % thong so mo hinh kenh truyen Xtb = [-0.6,-0.45,-0.3,-0.15,0,0.15,0.3,0.45,0.6]; Vx = 0.2; % Variance cua tap mo X nfuzy = 9; % Tap mo tam giac Sp = 1; Sm = -1; % Tap mo cua Y (SINGLETON) S2NdB = 10; % Gia tri Signal-To-Noise S2N = 10^(S2NdB/10); S = GenS(Nmes); X = MoPhong(S,a1,a2,c,Nmes,nG,S2N); Tab = TaoBang(S,X,Xtb,nfuzy); Sh0 = PhucHoi(S,X,Xtb,Vx,Sp,Sm,Nmes,nfuzy,nG,Tab); figure(1) plot(S,'r'), hold on, plot(X,'k'), axis([0,Nmes,-3,3]) title('H : Chuoi Huan Luyen s(k) & x(k) - MA Phi Tuyen'); figure(2), clf plot(S,'r'), hold on, plot(Sh0,'k'), axis([0,Nmes,-3,3]) title('H : Uoc luong chuoi Training - MA Phi Tuyen'); xlabel('So Symbol'); [Sp,Sm] = NhanDang(S,X,Xtb,Vx,Sp,Sm,Nmes,nfuzy,nG,Tab); Sh1 = PhucHoi(S,X,Xtb,Vx,Sp,Sm,Nmes,nfuzy,nG,Tab); figure(3), clf plot(S,'r'), hold on, plot(Sh1,'k'), axis([0,Nmes,-3,3]) title('H : Kiem tra chuoi Training - MA Phi Tuyen'); xlabel('So Symbol'); Nmes = 2*10^5; % Phat 2*10^5 symbol de kiem tra S = GenS(Nmes); X = MoPhong(S,a1,a2,c,Nmes,nG,S2N); Sh = PhucHoi(S,X,Xtb,Vx,Sp,Sm,Nmes,nfuzy,nG,Tab); figure(4), clf plot(S,'r'), hold on, plot(Sh,'k'), axis([0,1000,-3,3]) title('H : Kiem tra chuoi phat s(k) - MA Phi Tuyen'); xlabel('So Symbol'); for ii = : size(Tab,1), for jj = : size(Tab,2), if Tab(ii,jj) == -1, Tab(ii,jj) = 0; end end end Tab; 108 Chương trình mô NER = 0; for ii = : Nmes, if S(ii) ~= Sh(ii), NER = NER + 1; end end NER 100*NER/Nmes 3.3 Chương trình so sánh tỷ lệ bit sai TE với FE clear all clf Nmes = 200; % Kich thuoc chuoi Training nG = 1; % Bac cua kenh truyen a1 = 1; a2 = 0.5; % Cac thong so mo hinh kenh truyen Xtb = [-0.6,-0.45,-0.3,-0.15,0,0.15,0.3,0.45,0.6]; Vx = 0.2; % Variance cua tap mo X nfuy = 9; % tap mo Sp = 1; Sm = -1; % Tap mo cua Y (SINGLETON) NdB = 10; % Thi hanh voi 10 gia tri SNR SdB = 2; % SNR dau tien la dB Nmonte = 100; % So lan lap ERR_pt = zeros(Nmonte,NdB); ERR_fu = ERR_pt; % LAP BANG CAC GIA TRI THEO Q.LIANG & J.M.MENDEL XX1(1) = a1 + a2 - 0.4*(a1 + a2)^3; W(1) = 1; XX1(2) = a1 + a2 - 0.4*(a1 + a2)^3; W(2) = 1; XX1(3) = a1 - a2 - 0.4*(a1 - a2)^3; W(3) = 1; XX1(4) = a1 - a2 - 0.4*(a1 - a2)^3; W(4) = 1; XX1(5) = -a1 + a2 - 0.4*(a1 + a2)^3; W(5) = -1; XX1(6) = -a1 + a2 - 0.4*(-a1 + a2)^3; W(6) = -1; XX1(7) = -a1 - a2 - 0.4*(-a1 - a2)^3; W(7) = -1; XX1(8) = -a1 - a2 - 0.4*(-a1 - a2)^3; W(8) = -1; XX2(1) = XX1(1); XX2(5) = XX1(1); XX2(2) = XX1(3); XX2(6) = XX1(3); XX2(3) = XX1(5); XX2(7) = XX1(5); XX2(4) = XX1(7); XX2(8) = XX1(7); %============================================== for Nm = : Nmonte, for mm = : NdB, S2NdB(mm) = SdB + 2*(mm-1); SNN(mm) = 10^(S2NdB(mm)/10); S2N = SNN(mm); S = GenS(Nmes); X = MoPMApt(S,a1,a2,Nmes,nG,S2N); 109 Chương trình mô % ========================================== NER_pt = MANonLi(S,X,Vx,Nmes,XX1,XX2,W); % Can bang TE NER_fu = MANonLiFuz(S,X,Xtb,Vx,Sp,Sm,nG,Nmes,nfuy);%FE ERR_pt(Nm,mm) = NER_pt; ERR_fu(Nm,mm) = NER_fu; end end for Nm = : Nmonte, for Nm = : 1, Average_ERR_pt(Nm,:) = ERR_pt(Nm,:); Average_ERR_fu(Nm,:) = ERR_fu(Nm,:); end for Nm = : Nmonte, Average_ERR_pt(Nm,:) = ERR_pt(Nm-1,:) + ERR_pt(Nm,:); Average_ERR_fu(Nm,:) = ERR_fu(Nm-1,:) + ERR_fu(Nm,:); end end Average_ERR_pt = (Average_ERR_pt(Nmonte,:)/(Nmonte*Nmes)) + (10^-9); % Tong so bit sai Nmonte lan lap Average_ERR_fu = (Average_ERR_fu(Nmonte,:)/(Nmonte*Nmes)) + (10^-9); ER_pt = log10(Average_ERR_pt); ER_fu = log10(Average_ERR_fu); plot(S2NdB,ER_pt,'k-O'), hold on plot(S2NdB,ER_fu,'b-*') xlabel('Signal-to-Noise (dB)'); ylabel('log10(Ty le bit sai)'); title('H : So sanh TE voi FE - MA Phi Tuyen'); text(14,-2, 'k-O: TE'); text(14,-1.5,'b-*: FE'); - Chương trình MANonLi: function NER_pt = MANonLi(S,X,Vx,Nmes,XX1,XX2,W) Seq = opdec(S,X,Vx,Nmes,XX1,XX2,W); NER_pt = 0; for ii = : Nmes, if S(ii) ~= Seq(ii), NER_pt = NER_pt + 1; end end 110 Chương trình mô - Chương trình MANonLiFuz: function NER_fu = MANonLiFuz(S,X,Xtb,Vx,Sp,Sm,nG, Nmes,nfuzy) Tab = TaoBang(S,X,Xtb,nfuzy); [Sp,Sm] = NhanDang(S,X,Xtb,Vx,Sp,Sm,Nmes,nfuzy,nG,Tab); Sh = PhucHoi(S,X,Xtb,Vx,Sp,Sm,Nmes,nfuzy,nG,Tab); NER_fu = 0; for k = : Nmes, if S(k) ~= Sh(k), NER_fu = NER_fu + 1; end end 111 ... CÂN BẰNG KÊNH THÔNG TIN DÙNG LOGIC MỜ I II Phương pháp cân kênh thông tin Phương pháp cân hồi tiếp dùng logic mờ Phương pháp cân không hồi tiếp dùng logic mờ Phương pháp cân kênh kênh thông tin. .. PHẦN II : LÝ THUYẾT CÂN BẰNG KÊNH THÔNG TIN CHƯƠNG : GIỚI THIỆU KÊNH THÔNG TIN I II Các thành phần thông tin số Mô hình toán kênh thông tin Kênh nhiễu cộng Kênh lọc tuyến tính Kênh lọc tuyến tính... Thiết kế cân hồi tiếp dùng logic mờ 2.2.3 So sánh kết mô 74 74 76 78 Cân kênh phi tuyến 3.1 Thiết kế cân không hồi tiếp dùng logic mờ 3.2 Thiết kế cân hồi tiếp dùng logic mờ 3.3 Thiết kế cân theo