MÔ PHỎNG CÁC H›Ệ THỐNG THÔNG TIN VÔ TUYẾ˜N SỬ DỤNG MATLAB

38 834 5
MÔ PHỎNG CÁC H›Ệ THỐNG THÔNG TIN VÔ TUYẾ˜N SỬ DỤNG MATLAB

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MÔ PHỎNG CÁC H›Ệ THỐNG THÔNG TIN VÔ TUYẾ˜N SỬ DỤNG MATLAB

MÔ PHỎNG CÁC HỆ THỐNG THÔNG TIN VÔ TUYẾN SỬ DỤNG MATLAB Simulation of Radio Communication Systems using Matlab Trần Xuân Nam Bộ môn Thông tin, Khoa Vô tuyến điện tử Đại học Kỹ thuật Lê Q Đơn 100 Hồng Quốc Việt, Cầu Giấy , Hà Nội, Việt Nam Phone: (069)-515392 E-mail: namtx@lqdtu.edu.vn Mục lục Giới thiệu Matlab 1.1 Matlab gì? 1.2 Khởi động Thoát khỏi MATLAB 1.3 Làm việc với MATLAB Desktop 1.4 Các lệnh MATLAB 1.5 Các ký hiệu đặc biệt Tài liệu tham khảo Tài liệu tham khảo Tính 2.1 2.2 2.3 2.4 tốn Lập trình sử dụng Matlab Các phép tính số học Các toán tử so sánh Các toán tử logic Vector Ma trận 2.4.1 Tạo vector ma trận 2.4.2 Các phép toán vector ma trận 2.5 Lập trình với Matlab 2.5.1 Điều khiển luồng (flow control) 2.5.2 Tạo chương trình MATLAB tệp m 2.6 Sử dụng đồ hoạ MATLAB 2.6.1 Vẽ đồ thị Tài liệu tham khảo Tài liệu tham khảo 1 7 10 11 11 12 19 19 22 24 24 29 29 Lý thuyết mơ 3.1 Vai trị mô 3.2 Mơ vs Phân tích 3.2.1 Sơ đồ truyền dẫn số qua kênh AWGN 3.2.2 Sơ đồ truyền dẫn số qua kênh AWGN sử dụng lọc KĐCS phi tuyến 3.2.3 Hệ thống truyền dẫn qua kênh thông tin vệ tinh 3.3 Xây dựng mơ hình mơ 3.4 Các phương pháp mô i 31 31 32 32 33 35 35 37 ii Mục lục 3.5 3.6 3.7 3.8 3.9 3.10 3.11 BER vs Xác suất lỗi bit Vai trị mơ Tính tốn quĩ tuyến mơ Các tham số đánh giá phẩm chất hệ thống Kiểm định mơ hình Mơ Năng lượng Công suất tín hiệu Mơ Monte-Carlo Truyền dẫn Số 38 39 39 40 41 41 42 Kênh thông tin vô tuyến 4.1 Kênh tạp âm AWGN 4.1.1 Tạp âm AWGN 4.1.2 Mô tạp âm AWGN 4.1.3 Mô truyền dẫn qua kênh AWGN 4.2 Kênh pha-đinh 4.2.1 Mô hình tốn học pha-đinh 4.2.2 Ảnh hưởng chuyển động MS 4.2.3 Hậu truyền sóng pha-đinh đa đường 4.3 Kênh pha-đinh Rayleigh 4.4 Mô pha-đinh Rayleigh 4.4.1 Đặc tính thống kê Tài liệu tham khảo 45 45 45 47 48 50 51 52 53 54 56 56 58 Tài liệu tham khảo 58 Điều chế số 59 5.1 Điều chế pha sóng mang 59 KỸ THUẬT THU PHÁT PHÂN TẬP KHÔNG GIAN-THỜI GIAN 61 6.1 Các phương pháp phân tập 61 6.1.1 Phân tập thời gian 61 6.1.2 Phân tập tần số 62 6.1.3 Phân tập phân cực 62 6.1.4 Phân tập không gian 63 6.2 Kỹ thuật kết hợp phân tập không gian thu 63 6.2.1 Mơ hình tín hiệu 63 6.2.2 Kết hợp chọn lọc (Selection Combining) 64 6.2.3 Kết hợp tỷ lệ tối đa (Maximal Ratio Combining) 67 6.2.4 Kết hợp đồng độ lợi (Equal Gain Combining) 70 6.2.5 Kết hợp phân tập thu tách sóng MLD 71 6.3 Kỹ thuật kết hợp phân tập không gian phát 74 6.3.1 Phân tập phát tỉ lệ tối đa (MRT) 74 6.3.2 Phân tập phát giữ chậm 74 6.3.3 Phân tập phát không gian-thời gian 75 6.4 Kết luận 79 Mục lục iii Tài liệu tham khảo 79 Tài liệu tham khảo 79 85 85 86 86 90 90 92 93 94 96 98 99 99 101 CÁC HỆ THỐNG MIMO 7.1 Mơ hình kênh MIMO 7.2 Dung lượng kênh truyền MIMO 7.2.1 Dung lượng kênh truyền cố định 7.2.2 Dung lượng kênh truyền Rayleigh pha-đinh 7.3 Các phương pháp truyền dẫn kênh truyền MIMO 7.4 Ghép kênh theo không gian 7.5 Các tách tín hiệu tuyến tính 7.5.1 Bộ tách tín hiệu ZF 7.5.2 Bộ tách tín hiệu MMSE 7.5.3 Các tham số phẩm chất tách tín hiệu tuyến tính 7.6 Các tách tín hiệu phi tuyến 7.6.1 Bộ tách tín hiệu QRD 7.6.2 Bộ tách tín hiệu V-BLAST 7.6.3 Bộ tách tín hiệu có trợ giúp phương pháp rút gọn sở dàn 7.6.4 Bộ tách tín hiệu MLD 7.6.5 Bộ tách tín hiệu hình cầu (sphere detector) 7.7 Tóm tắt Tài liệu tham khảo Tài liệu tham khảo MÃ KHÔNG GIAN-THỜI GIAN 8.1 Giới thiệu 8.2 Mã khối không gian-thời gian 8.2.1 Mã STBC cho tập tín hiệu thực 8.2.2 Mã STBC cho tập tín hiệu phức 8.3 Mã lưới không gian-thời gian 8.4 Mã không gian-thời gian cho hệ thống đa người dùng Tài liệu tham khảo Tài liệu tham khảo 104 110 111 114 122 122 125 125 125 127 130 133 133 133 133 iv Mục lục Danh sách hình vẽ 1.1 Mơi trường làm việc MATLAB 2.1 2.2 Đồ thị sin(x) cos(x) 26 Mô tả BER hệ thống BPSK kênh pha-đinh Rayleigh 27 3.1 3.2 3.3 3.4 3.5 Hệ thống dễ dàng thực phân tích giải tích Hệ thống khó thực phân tích giải tích Hệ thống khó thực phân tích giải tích Lược đồ xây dựng mơ hình mơ Mối quan hệ sai số, thời gian chạy mơ so phức tạp mơ hình 4.1 Một ví dụ tạp âm Gauss với giá trị trung bình phương sai σ = 46 Hàm mật độ xác suất Gauss với σ = 46 Mật độ phổ công suất hàm tự tương quan tạp âm trắng 47 Sơ đồ mô truyền dẫn BPSK kênh AWGN 48 Phẩm chất BPSK kênh AWGN 50 Mơ hình truyền sóng đa đường 51 Đáp ứng xung lọc FIR 54 Hàm phân bố Rayleigh với σ = 55 4.2 4.3 4.4 4.5 4.6 4.7 4.8 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 với độ Phương pháp kết hợp chọn lọc Phân phối xác xuất (CDF) SNR cho phương pháp kết hợp phân tập lựa chọn Độ lợi phân tập phương pháp kết hợp phân tập Phương pháp kết hợp tỷ lệ tối đa Phân phối xác xuất (CDF) SNR cho phương pháp kết hợp tỉ lệ đối đa Sơ đồ máy thu với nhánh phân tập MRC tách tín hiệu tối ưu Phẩm chất BER trung bình máy thu MRC với M nhánh phân tập sử dụng điều chế BPSK Sơ đồ phân tập MRT có N nhánh phân tập với đường phản hồi Sơ đồ phân tập phát giữ chậm với N nhánh phân tập v 32 34 36 36 37 64 66 66 67 69 81 81 82 82 vi Danh sách hình vẽ 6.10 6.11 6.12 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 Sơ đồ máy phát mã khối STBC Alamouti với anten phát anten thu 82 Sơ đồ Alamouti STBC với anten phát anten thu 83 Phẩm chất BER hệ thống Alamouti STBC so sánh với hệ thống MRC 83 7.15 Mơ hình kênh MIMO vơ tuyến Mơ hình tương đương kênh truyền SISO Mơ hình tương đương kênh truyền MISO Mơ hình tương đương kênh truyền SIMO Dung lượng kênh truyền MIMO pha-đinh Rayleigh Phương pháp phân kênh theo không gian Phân loại tách tín hiệu MIMO-SVD Sơ đồ tách tín hiệu tuyến tính cho MIMO-SDM Mô tả nguyên lý hoạt động tách tín hiệu V-BLAST Phẩm chất tách tín hiệu cho hệ thống 4×4 MIMOSDM Biểu diễn dàn chiều Ví dụ biểu diễn thao tác thuật toán LLL lưới chiều Miền (vùng )quyết định tách tín hiệu [16] Mơ hình tương đương tách tín hiệu có trợ giúp rút gọn sở lưới Thuật tốn tách tín hiệu cầu [28] 8.1 Configuration of a STBC system 126 7.11 7.12 7.13 7.14 85 86 87 88 91 92 92 94 102 104 105 106 108 109 115 Chương Giới thiệu Matlab 1.1 Matlab gì? MATLAB [1][2] từ viết tắt Matrix Laboratory với ý nghĩa phần mềm ứng dụng cho tính tốn ma trận MATLAB mơ tả gói phần mềm dùng cho tính tốn kỹ thuật tích hợp cơng cụ tính tốn, trực quan hóa (visualization), lập trình Mơi trường làm việc MATLAB dễ sử dụng gần gũi với biểu diễn toán học phép tốn Các ứng dụng điển hình MATLAB bao gồm: • Tính tốn tốn học • Phát triển thuật tốn • Thu kết liệu (data acquisition) • Mơ hình, mơ tạo mẫu • Phân tích, khai thác trực giác hóa liệu, • Đồ họa khoa học kỹ thuật • Phát triển ứng dụng bao gồm việc phát triển giao diện người sử dụng MATLAB hệ thống tương tác phần tử liệu sở mảng khơng cần định kích thước Điều cho phép giải nhiều vấn đề tính tốn, đặc biệt vấn đề gắn với phép toán ma trận hay vector, mà tiêu tốn phần thời gian cần thiết để viết chương trình sử dụng ngôn ngữ không tương tác vô hướng (scalar) C hay FORTRAN Hệ thống MATLAB bao gồm năm phần chính: • Mơi trường phát triển (Development Environment) Đây tập hợp công cụ phương tiện hỗ trợ người dùng sử dụng hàm tệp MATLAB Nhiều công cụ giao diện đồ họa người dùng (GUI: Graphical User Interface) Tập hợp công cụ bao gồm Màn hình MATLAB (MATLAB Desktop) Cửa sổ Lệnh (Command Chương Giới thiệu Matlab Window), Lịch sử Lệnh (Command History), Chương trình Soạn thảo Gỡ rối (Editor and Debugger), Trình duyệt (Browser) để xem trợ giúp, Không gian Làm việc (Workspace), Tệp, Đường dẫn Tìm kiếm (Search Path) • Thư viện Hàm Toán học (Mathematical Function Library) Đây tập hợp thuật tốn tính tốn trải rộng từ hàm cở cộng, trừ, sin, cos, phép tính số học phức, tới hàm phức tạp đảo ma trận, tính giá trị riêng (eigenvalue) ma trận, hàm Bessel, phép biến đổi nhanh • Ngơn ngữ MATLAB (MATLAB Language) Đây ngôn ngữ ma trận/mảng bậc cao với khai báo luồng điều khiển, hàm số, cấu trúc liệu, vào/ra, đặc điểm lập trình hướng đối tượng Nó cho phép viết chương trình gọn nhẹ hay chương trình ứng dụng phức tạp • Đồ họa (Graphics.) MATLAB có nhiều phương tiện hiển thị vector ma trận dạng đồ thị, sửa đổi in đồ thị Nó bao gồm hàm bậc cao để trực giác hóa liệu hai ba chiều, xử lý ảnh, hoạt hình, biểu diễn đồ họa Nó bao gồm hàm bậc thấp cho phép tùy biến hóa đồ họa xây dựng giao diện đồ họa hoàn chỉnh cho ứng dụng MATLAB người sử dụng • Giao diện Chương trình Ứng dụng MATLAB (MATLAB Application Program Interface [API]) Đây thư viện cho phép viết chương trình C Fortran tương tác với MATLAB Nó có phương tiện để gọi thường trình (routine) từ MATLAB, dùng MATLAB động tính tốn, dùng để đọc viết MAT-files MATLAB cung cấp họ giải pháp theo ứng dụng, gọi la hộp công cụ (toolbox) Hộp công cụ MATLAB bao gồm tập hợp đầy đủ hàm MATLAB dạng tệp "m" (m-file) dùng để mở rộng môi trường MATLAB cho việc giải loại vấn đề cụ thể Các ví dụ phạm vi ứng dụng hộp công cụ MATLAB xử lý tín hiệu, hệ thống điều khiển, mạng nơ-ron, fuzzy logic, wavelet, mô phỏng, nhiều ứng dụng khác 1.2 Khởi động Thoát khỏi MATLAB Để khởi động MATLAB từ Windows, nhắp đúp (double-click) vào biểu tượng MATLAB hình desktop windows Sau khởi động xong hình cửa sổ Mơi trường Làm việc MATLAB gồm phần là: Thư mục Hiện thời (Current Directory), cửa sổ Lịch sử Câu lệnh (Command History) Cửa sổ Câu lệnh (Command Windows) Hình 1.1 16 Chương Tính tốn Lập trình sử dụng Matlab » B=[4 9; 2; 1] B = » C=A*B C = 79 34 50 20 Trong trường hợp nhân số vô hướng với ma trận kết ma trận với phần tử tích phần tử với số vơ hướng Ví dụ » A=[2 6; 3] A = » b=5 b = » A*b ans = 10 25 30 20 15 Đối với trường hợp hai ma trận có kích thước, Matlab cho phép thực nhân phần tử với thông qua phép tốn nhân phần tử (.∗) Ví dụ: » A=[2 6; 5; 2] 2.4 Vector Ma trận 17 A = » B=[6 5; 8; 4] B = » C=A.*B C = 12 30 63 40 Đảo ma trận: phép toán đảo ma trận thực nhờ hàm số có sẵn (built-in function) inv Ma trận đảo inv(A) ma trận A tồn A ma trận vuông không gần đơn điệu (nearly singular) Ví dụ: » A=rand(4,4) A = 0.9077 0.6220 0.2050 0.2539 0.1772 0.1251 0.5769 0.9528 0.8046 0.2110 0.4998 0.6918 0.5592 0.1788 0.0873 0.3441 » B=inv(A) B = -0.4924 -1.2604 1.5160 0.8057 2.3661 1.4403 -2.5141 -0.6797 18 Chương Tính tốn Lập trình sử dụng Matlab 0.5983 -0.5830 3.4275 -5.7183 -0.5812 1.4479 -2.0271 3.4014 trường hợp ma trận cần đảo gần với đơn điệu Matlab thông báo lỗi A = » inv(A) Warning: Matrix is singular to working precision (Type "warning off MATLAB:singularMatrix" to suppress this warning.) ans = Inf Inf Inf Inf Inf Inf Inf Inf Inf Định thức ma trận: để tính định thức ma trận, sử dụng hàm built-in det(·) Matlab det(·) Ví dụ, tạo ma trận ngẫu nhiên với hàng, cột với phần tử số ngẫu nhiên phân bố chuẩn, tính định thức ma trận » randn(’seed’,0) » A=randn(4,4) A = 1.1650 -0.6965 0.6268 1.6961 0.8717 -0.6390 0.0751 0.0591 -1.4462 0.5774 0.3516 1.7971 -0.7012 -0.3600 » det(A) ans = 0.2641 1.2460 2.5 Lập trình với Matlab 19 0.0914 2.5 Lập trình với Matlab 2.5.1 Điều khiển luồng (flow control) Matlab cung cấp cho người lập trình cấu trúc luồng sau: if, switch cases, for, while, continue, break • Câu lệnh if, esle, elseif Câu lệnh if đánh giá biểu thức logic thi hành nhóm câu lệnh biểu thức TRUE Các từ khóa tùy chọn khác elseif hay else thi hành nhóm câu lệnh khác Một từ khóa end, khớp với if, sử dụng phần cuối nhóm nhóm câu lệnh cuối Ví dụ sau hiển thị mà hình yêu cầu nhập câu trả lời nhận câu trả lời dạng ký tự (string) từ bàn phím Nếu câu trả lời Y máy tính in hình thơng báo “Bạn đồng ý.” cịn câu trả lời N máy tính thơng báo “Bạn không đồng ý.” Trong trường hợp chữ nhập vào khác Y hay N máy tính in hình thông báo “Bạn nhập sai câu trả lời.” thực ngắt chế độ nhập bàn phím r=input(’Nhap "Y" neu dong y hoac "N" neu khong (Y/N):’,’s’); if r==’Y’ disp(’Ban da dong y.’) elseif r==(’N’) disp(’Ban khong dong y.’) else disp(’Ban nhap sai cau tra loi.’) return end • Câu lệnh switch case Câu lệnh switch thi hành nhóm câu lệnh dựa vào giá trị biến biểu thức Các từ khóa case and otherwise dùng cho nhóm câu lệnh Chỉ có trường hợp khớp với điều kiện thi hành Kết thúc luồng switch từ khóa end Ví dụ sau mơ tả ví dụ nhập câu trả lời từ bàn phím mục sử dụng cấu trúc switch s=input(’Nhap "Y" neu dong y hoac "N" neu khong (Y/N):’,’s’); switch s case ’Y’ 20 Chương Tính tốn Lập trình sử dụng Matlab disp(’Ban da dong y.’) case ’N’ disp(’Ban khong dong y.’) otherwise disp(’Ban nhap sai cau tra loi.’) end • Câu lệnh for Vịng lặp for lặp lại nhóm câu lệnh số thời gian cố định cho trước Cấu trúc vịng lặp kết thúc bới từ khóa end Ví dụ sau mơ tả việc cách dùng vịng for để tìm phần tử ma trận lớn giá trị cho trước1 (bằng 5) H=[1 3; 6; 5] [nRow,nCol]=size(H); disp(’Cac phan tu sau >= 5:’) for i=1:nRow for k=1:nCol if H(i,k)>=5 disp([’Phan tu o dong ’ num2str(i) ’ cot ’ num2str(k)]) end end end Kết vòng for H = Cac phan tu sau >= 5: Phan tu o dong cot Phan tu o dong cot Phan tu o dong cot Phan tu o dong cot Phan tu o dong cot Do hàm disp làm việc với ký tự (string) nên hàm num2str dùng phần đối số hàm disp để biến đổi số i k dạng ký tự • Câu lệnh while Vịng lặp while lặp lại nhóm câu lệnh số lần định điều khiển điều kiện logic Cấu trúc vòng lặp while kết thúc từ khố end Ví dụ sau mô tả cách tạo chuỗi liệu {1, −1} chứa 10 bit 1 Sau quen với Matlab dùng hàm có sẵn find thay cho vòng for 2.5 Lập trình với Matlab 21 clear all rand(’seed’,0) noOne=0; k=1; while noOne0.5; s(k)=1-2*n(k); if s(k)==1 noOne=noOne+1 end k=k+1; end s Kết thu chuỗi 24 bit 1, −1 có chứa 10 bit s = Columns through 15 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Columns 16 through 24 -1 -1 -1 -1 • Câu lệnh break Câu lệnh break cho phép thoát sớm khỏi vòng lặp for hay vòng lặp while Trong trường hợp có nhiều vịng lặp lồng vào câu lệnh break cho phép khỏi vịng lặp Ví dụ sau mơ tả lại phương pháp tạo chuỗi liệu {1, −1} chứa 10 bit sử dụng vòng lặp for kết hợp với câu lệnh break Trong trường hợp có 100 bit tạo chưa có đủ 10 bit chương trình dừng lại rand(’seed’,0) noOne=0; for k=1:100 n(k)=rand>0.5; s(k)=1-2*n(k); if s(k)==1 noOne=noOne+1; end if noOne==10 break end end s Kết thu chuỗi 24 bit giống ví dụ câu lệnh while 1 22 Chương Tính tốn Lập trình sử dụng Matlab s = Columns through 15 1 -1 -1 -1 -1 -1 -1 1 -1 -1 Columns 16 through 24 2.5.2 -1 -1 -1 -1 -1 Tạo chương trình MATLAB tệp m Trong phần trước thấy MATLAB môi trường tính tốn tương tác Ngồi chức mơi trường tính tốn tương tác, MATLAB cịn cho phép xây dựng chương trình lập trình ngơn ngữ lập trình thơng dụng với kho liệu hàm xây dựng sẵn (built-in functions) Các chương trình MATLAB lưu giữ với phần tên tệp mở rộng m thường gọi tệp m (m-file) Có hai loại tệp m: • Chương trình (script): thực tập hợp câu lệnh làm việc với liệu nằm không gian công tác (workspace) Các chương trình (script) khơng nhận đối số đầu vào khơng trả đối số đầu • Hàm (function): thực tập hợp câu lệnh chứa Tuy nhiên, function nhận đối số đầu vào cho đối số đầu Các biến khai bao bên function tồn function Để xem hướng dẫn sử dụng function từ Command Window nhập vào help functionName Ví dụ, để xem cách sử dụng hàm or nhập vào »help or nhận hướng dẫn sau | Logical OR A | B is a matrix whose elements are 1’s where either A or B has a non-zero element, and 0’s where both have zero elements A and B must have the same dimensions unless one is a scalar C = OR(A,B) is called for the syntax ’A | B’ when A or B is an object See also XOR Để soạn thảo script hay function MATLAB sử dụng chương trình soạn thảo văn lưu lại với tên mở rộng m Chúng ta sử dụng chương trình soạn thảo MATLAB (MATLAB Editor) Để xem hay soạn thảo lại m-file có sẵn cần sử dụng câu lệnh » edit fileName Để tạo tệp cần sử dụng câu lệnh 1 2.5 Lập trình với Matlab 23 » edit khơng cần tên tệp • Tạo hàm MATLAB Để tạo function MATLAB cần tạo script với dịng có cấu trúc function [Output1, , OutputM]=functionName(Input1, ,InputN) Trong {Input1, , InputN} N đối số vào {Output1, , OutputM} M đối số Tên hàm functionName thiết phải giống với tên tệp m không trùng với tên tệp có sẵn Ví dụ sau hướng dẫn cách viết function để tính biệt thức ∆ = a − 4ac phương trình bậc hai ax2 + bx + c = function delta=discriminant(a,b,c) % Function to calculate the discriminant of a quaratic equation % ax^2 + bx + c = delta=b^2 - 4*a*c; Giả sử phương trình bậc hai cần tìm nghiệm số x2 + 4x + = Các hệ số phương trình a = 1, b = c = Sử dụng hàm discriminant.m vừa tạo tính biệt thức phương trình »delta=discriminant(a,b,c) delta = • Tạo chương trình MATLAB Một chương trình MATLAB chứa tập hợp câu lệnh Khi chạy chương trình MATLAB MATLAB tiến hành tất câu lệnh chứa Các chương trình MATLAB làm việc với liệu tồn workspace, tạo liệu để làm việc Tuy chương trình MATLAB khơng trả lại đối số (output argument) biến chương trình tạo lưu lại workspace sử dụng câu lệnh Ví dụ chương trình quadEqn.m sau mơ tả chương trình MATLAB để tính nghiệm phương trình bậc hai ax2 + bx + c = Vi dụ: Chương trình quadEqn.m % Chuong trinh tinh nghiem so cua mot phuong trinh bac hai 24 Chương Tính tốn Lập trình sử dụng Matlab % Nhap cac hang so a, b, c disp(’Chuong trinh tinh nghiem cua phuong trinh bac 2’) a=input(’Nhap vao hang so a=’); b=input(’Nhap vao hang so b=’); c=input(’Nhap vao hang so c=’); % Tinh biet thuc delta delta=discriminant(a, b, c) % Xet biet thuc va tinh nghiem so if delta > x1=(-b + sqrt(delta))/(2*a); x2=(-b - sqrt(delta))/(2*a); disp([’Hai nghiem cua pt la x1=’ num2str(x1) ’ va x2=’ num2str(x2)]) elseif delta==0 x1=-b/(2*a); disp([’Phuong trinh co mot nghiem nhat x=’ num2str(x1)]) elseif delta < disp(’Phuong trinh vo nghiem! ’) end Sử dụng chương trình quadEqn.m tính nghiệm số phương trình x2 + 4x + = cho ta kết sau: » quadEqn Chuong trinh tinh nghiem cuar phuong trinh bac Nhap vao hang so a=1 Nhap vao hang so b=4 Nhap vao hang so c=3 Hai nghiem cua phuong trinh la x1=-1 va x2=-3 phương trình 4x2 + 3x + » quadEqn Chuong trinh tinh nghiem cuar phuong trinh bac Nhap vao hang so a=4 Nhap vao hang so b=3 Nhap vao hang so c=2 Phuong trinh vo nghiem! 2.6 2.6.1 Sử dụng đồ hoạ MATLAB Vẽ đồ thị Phương pháp phổ biến để vẽ đồ thị sử dụng hàm plot có sẵn MATLAB Câu lệnh plot(x,y) vẽ đồ thị y theo x, y x vector có độ dài Trong trường hợp Y X ma trận câu lệnh plot(X,Y) vẽ đồ thị với cột (hay hàng) Y tương ứng với cột (hay hàng) X Trường hợp muốn vẽ nhiều đồ thị hình vẽ khai 2.6 Sử dụng đồ hoạ MATLAB 25 báo theo dạng plot(x1,y1,x2,y2, ,xN,yN) với {xn,yn} cặp giá trị đồ thị Để đánh dấu đồ thị gán cho chúng dấu (marker), màu, kiểu đường đồ thị riêng, hay kết hợp với Các định dạng đường đồ thị định nghĩa MATLAB liệt kê bảng sau Bảng 2.1: Các tham số định Ký hiệu màu Màu Ký hiệu dấu b blue g green o r red x c cyan + m magenta * y yellow s k black d v ∧ < > p h dạng đường đồ thị MATLAB Dấu Ký hiệu đường Kiểu đường point solid circle : dotted x-mark - dashdot plus – dashed star square diamond triangle (down) triangle (up) triangle (left) triangle (right) pentagram hexagram Ví dụ sau mơ tả phương pháp sử dụng hàm plot để vẽ hai đồ thị sin(x) cos(x) chung hình vẽ x = 0:pi/10:2*pi; y = sin(x); z= cos(x); plot(x,y,’r+:’, x,z, ’b-.o’) xlabel(’x’) ylabel(’sin(x)/cos(x)’) title(’Do thi ham sin(x) va cos(x)’) legend(’sin(x)’,’cos(x)’) grid Trong đường đồ thị sin(x) biểu diễn đường đứt nét màu đỏ với dấu cộng (+), đường đồ thị cos(x) biểu diễn đường “gạch chấm” (.−) màu xanh nước biển với dấu tròn Câu lệnh xlabel(’x’) xlabel(’sin(x)/cos(x)’) dùng để đánh dấu trục hoành trục tung đồ thị Câu lệnh title(’Do thi ham sin(x) va cos(x)’) dùng để đặt tên cho đồ thị Câu lệnh legend(’sin(x)’,’cos(x)’) dùng để ghi giải cho đồ thị cuối cùng, câu lệnh grid dùng để hiển thị đường lưới giá trị đồ thị Kết cụ thể biểu diễn Hình vẽ 2.2 Sử dụng câu lệnh help plot biết thêm chi tiết cách dùng hàm plot Một câu lệnh vẽ đồ thị khác thường sủ dụng nhiều thông tin số để vẽ tỉ số lỗi bit (BER: Bit Error Rate) câu lệnh semilogy(x,y) Câu lệnh tương tự câu lệnh plot cho phép biểu diễn trục tung đồ thị thang logarith 26 Chương Tính tốn Lập trình sử dụng Matlab Do thi ham sin(x) va cos(x) sin(x) cos(x) 0.8 0.6 0.4 sin(x)/cos(x) 0.2 −0.2 −0.4 −0.6 −0.8 −1 x Hình 2.1: Đồ thị sin(x) cos(x) Ví dụ, tỉ số BER hệ thống truyền dẫn BPSK qua kênh pha-đinh Rayleigh phân tích lý thuyết [1]   1  (2.7) BERBPSK−Fading = 1 − + Eb /N0 Eb /N0 tỉ số lượng bit tín hiệu phổ tần số tạp âm (một số trường hợp hiểu gọi tỉ số tín hiệu tạp âm S/N) Sử dụng chương trình BERBPSKFading.m sau với câu lệnh semilogy(BER,EbNodB) cho phép vẽ đồ thị BER theo tỉ số Eb /N0 thang logarith [BERBPSKFading.m] % Chuong trinh ve thi BER cua h/t BPSK tren kenh fading Rayleigh EbNodB=0:30 EbNo=10.^(EbNodB./10) BER=1/2*(1-1./sqrt(1+1./EbNo)) semilogy(EbNodB,BER) xlabel(’Eb/No’) ylabel(’BER’) title(’Ti so BER cua he thong BPSK qua kenh pha-dinh Rayleigh ’) 2.6 Sử dụng đồ hoạ MATLAB 27 grid Ti so BER cua he thong BPSK qua kenh pha−dinh Rayleigh 10 −1 BER 10 −2 10 −3 10 −4 10 10 15 Eb/No 20 25 30 Hình 2.2: Mơ tả BER hệ thống BPSK kênh pha-đinh Rayleigh Một số câu lệnh vẽ đồ thị thường dùng khác gồm bar hay hist Để biết thêm chi tiết câu lệnh sử dụng lệnh help MATLAB Bài tập Sử dụng hàm randn tạo chuỗi ngẫu nhiên gồm N = 1000 giá trị x = {x1 , x2 , , xk , , xN } Viết chương trình tính giá trị trung bình (kỳ vọng) Ex , phương sai σx độ lệch chuẩn σx sử dụng công thức sau 28 Chương Tính tốn Lập trình sử dụng Matlab Ex = N N (2.8) xk k=1 N x2 k 2 σx = E(x2 ) − Ex = σx = k=1 N σx  N 2  xk     k=1  −   N    (2.9) (2.10) Viết chương trình tạo chuỗi −1 +1 ngẫu nhiên x có độ dài 104 bit Tạo chuỗi bit thứ y giống x nhiên phần tử thứ 10, 50, 100, 150, 250, 300, 350 bị đảo dấu so với phần tử tương ứng y Tức là, y10 = −x10 , , y350 = −x350 So sánh y x tính tốn tỉ số sai số hai chuỗi Dựa vào ví dụ vẽ đồ thị BER hệ thống BPSK kênh pha-đinh Rayleigh mục 2.6.1 hàm sai số bù erfc có sẵn MATLAB, i Viết chương trình vẽ đồ thị BER hệ thống BPSK kênh tạp âm Gauss theo công thức sau[1] BERBPSK−AWGN = erfc Eb /N0 (2.11) ii Vẽ đồ thị BER hệ thống BPSK kênh tạp âm Gauss kết hợp với đồ thị BER hệ thống BPSK kênh pha-đinh Rayleigh vào hình vẽ, đánh dấu đặt giải cho đồ thị Viết hàm MATLAB y=QPSKMap(x) nhận đối số chuỗi ngẫu nhiên có độ dài N bit Hàm QPSKMap thực kiểm tra cặp bit liên tiếp xn xn+1 thực phép biến đổi sau xn xn+1 00 01 10 11 ym → → → → √ − √2 − √2 √ + j √2 + j √2 − j √2 − j √2 n = 1, 2, , N m = 1, 2, , N/2 Viết chương trình QPSKMod tạo 20 bit 0, ngẫu nhiên Sử dụng hàm MATLAB QPSKMap ví dụ để chuyển chuỗi bit {0,1} thành chuỗi dấu QPSK ym Tài liệu tham khảo 29 Tài liệu tham khảo [1] H Harada and R Prasad, Simulation and Software Radio for Mobile Communications Artech House, 2002 30 Chương Tính tốn Lập trình sử dụng Matlab ... dẫn số qua kênh AWGN sử dụng lọc KĐCS phi tuyến 3.2.3 Hệ thống truyền dẫn qua kênh thông tin vệ tinh 3.3 Xây dựng mô hình mơ 3.4 Các phương pháp mô ... trình sử dụng Matlab sử dụng dấu cách dấu phẩy để phân chia cột sau: » A=[1, 2, 3] » A=[1 3] cho kết » A= Tương tự vector để tạo ma trận, nhập trực tiếp phần tử sử dụng dấu chấm phảy (;) dấu cách... function MATLAB sử dụng chương trình soạn thảo văn lưu lại với tên mở rộng m Chúng ta sử dụng chương trình soạn thảo MATLAB (MATLAB Editor) Để xem hay soạn thảo lại m-file có sẵn cần sử dụng câu

Ngày đăng: 11/02/2014, 00:37

Hình ảnh liên quan

Hình 1.1: Môi trường làm việc của MATLAB - MÔ PHỎNG CÁC H›Ệ THỐNG THÔNG TIN VÔ TUYẾ˜N SỬ DỤNG MATLAB

Hình 1.1.

Môi trường làm việc của MATLAB Xem tại trang 11 của tài liệu.
Bảng 2.1: Các tham số định dạng đường đồ thị trong MATLAB - MÔ PHỎNG CÁC H›Ệ THỐNG THÔNG TIN VÔ TUYẾ˜N SỬ DỤNG MATLAB

Bảng 2.1.

Các tham số định dạng đường đồ thị trong MATLAB Xem tại trang 33 của tài liệu.
Hình 2.1: Đồ thị sin(x) và cos(x) - MÔ PHỎNG CÁC H›Ệ THỐNG THÔNG TIN VÔ TUYẾ˜N SỬ DỤNG MATLAB

Hình 2.1.

Đồ thị sin(x) và cos(x) Xem tại trang 34 của tài liệu.
Hình 2.2: Mô tả BER của hệ thống BPSK trên kênh pha-đinh Rayleigh. - MÔ PHỎNG CÁC H›Ệ THỐNG THÔNG TIN VÔ TUYẾ˜N SỬ DỤNG MATLAB

Hình 2.2.

Mô tả BER của hệ thống BPSK trên kênh pha-đinh Rayleigh Xem tại trang 35 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan