Bài giảng Mô phỏng hệ thống truyền thông

Chương 1: Tổng quan về kỹ thuật mô phỏng – Chương 2: Giới thiệu về MATLAB – Chương 3: Giới thiệu về Simulink – Chương 4: Mô phỏng tín hiệu và quá trình thu phát – Chương 5: Mô phỏng kênh thông tin – Chương 6: Ước tính tham số và đánh giá hiệu năng

pdf97 trang | Chia sẻ: nyanko | Lượt xem: 1454 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Mô phỏng hệ thống truyền thông, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
4/9/2013 1 Bộ môn Tín Hiệu & Hệ Thống 2012-2013 1 2 • Thời lượng môn học: – 3 ĐVHT (20LT + 4BT + 6TH + 15 Tự Học) • Mục tiêu: – Kiến thức: Cung cấp cho người học những khái niệm và kiến thức cơ bản về mô hình hóa và mô phỏng. Nội dung của môn học sẽ tập trung vào phương pháp luận cũng như công cụ mô phỏng hệ thống truyền thông làm cơ sở cho các môn học chuyên sâu khác và hỗ trợ cho làm đồ án tốt nghiệp. – Kỹ năng: Rèn cho sinh viên có kỹ năng sử dụng bộ công cụ chương trình MATLAB và Simulink, và các phương pháp cơ bản áp dụng cho việc mô phỏng các hệ thống truyền thông. • Đánh giá: − Tham gia học tập trên lớp: 10% − Thực hành-Thí nghiệm 10% − Bài tập/Thảo luận: 20 % − Kiểm tra giữa kỳ: 10% − Kiểm tra cuối kỳ: 50% 4/9/2013 2 3 • Nội dung: – Chương 1: Tổng quan về kỹ thuật mô phỏng – Chương 2: Giới thiệu về MATLAB – Chương 3: Giới thiệu về Simulink – Chương 4: Mô phỏng tín hiệu và quá trình thu phát – Chương 5: Mô phỏng kênh thông tin – Chương 6: Ước tính tham số và đánh giá hiệu năng 4 • Tài liệu tham khảo: [1] Michel C. Jeruchim, Philip Balaban, Simulation of Communication Systems: Modeling, Methodology and Techniques, 2nd ed., Kluwer Academic/Plenum Publishers, 2000. [2] Nguyễn Viết Đảm, Mô phỏng hệ thống viễn thông và ứng dụng MATLAB, NXB Bưu Điện, 2007. [3] J. G. Proakis, M. Salehi, G. Bauch, Contemporary Communication Systems Using MATLAB and Simulink, 3rd ed., Cengage Learning, 2012. [4] O. Beucher, M. Weeks, Introduction to MATLAB and Simulink: A Project Approach, 3rd ed., Infinity Science Press, 2008. [5] Mathworks Inc., MATLAB and Simulink Student Version: Getting Started With MATLAB, 2007. [6] Steven C. Chapra, R. P. Canale, Numerical Methods for Engineers, 6th ed., Mcgraw-Hill, 2010. [7] Dennis Silages, Digital Communication Systems using MATLAB and Simulink, Bookstand Publishing, 2009. [8] K. C. Raveendranathan, Communication Systems Modeling and Simulation using MATLAB and Simulink, Universities Press, 2011. [9] Mohsen Guizani, Ammar Rayes, Bilal Khan, Ala Al-Fuqaha, Network Modeling and Simulation: A Practical Perspective, Wiley, 2010. 4/9/2013 3 5 • Độ phức tạp của hệ thống truyền thông hiện đại: – Ngày càng tăng lên – Tính phức tạp do: • Cấu trúc phức tạp của hệ thống • Môi trường được triển khai • Yêu cầu về đồng bộ do hoạt động tại tốc độ cao  động lực thúc đẩy sử dụng mô phỏng (simulation) • Sự phát triển của máy tính số – Khả năng xử lý, giá thành, độ thân thiện, ... • Ứng dụng mô phỏng – Giúp hiểu biết sâu cư xử của hệ thống – Cho phép triển khai thí nghiệm tương tự như hệ thống thực giảm thiểu chi phí và thời gian cho việc thiết kế hệ thống 6 4/9/2013 4 7 • Bài toán mô phỏng: gồm 4 bước cơ bản – Ánh xạ bài toán đã cho thành mô hình mô phỏng – Phân giải bài toán tổng thể thành một tập các bài toán nhỏ hơn – Lựa chọn các kỹ thuật mô hình hóa, mô phỏng, ước tính phù hợp và áp dụng chúng để giải quyết các bài toán nhỏ của chúng – Kết hợp các kết quả của các bài toán con  xử lý tạo ra nghiệm cho bài toán tổng thể. • Gần đúng bài toán  dễ dàng cho phân tích: – Phân tích – Mô phỏng • Phân tích – Tính toán một số đặc trưng cho một đại lượng quan tâm • Mô phỏng – Sao chép hệ thống quan tâm: xử lý một đại lượng động  giám sát hệ thống tại các điểm khác nhau – Sử dụng mô hình thực – Có thể thay đổi mô tả của bất kỳ một phần tử trong hệ thống (tính module) • Hệ thống thông tin thực: – Quá phức tạp để đặc trưng và mô phỏng  Đơn giản hóa một số mặt của bài toán (Giảm độ phức tạp)  dễ dàng hơn cho việc tính toán 8 4/9/2013 5 9 • Ví dụ: – Dạng sóng đầu ra Vt của hệ thống: Vt = g() • g – đặc tính truyền đạt hệ thống;  = (z1, z2,..., zK) – tập các quá trình đầu vào (rời rạc thời gian) – Chức năng mô phỏng: • Tạo ra chuỗi giá trị {Vt} tại t = kTs, k =  1,  2,...; Ts – chu kỳ lấy mẫu • Chuỗi được xử lý  thu được đại lượng hiệu năng hoặc thông tin phù hợp – Thí nghiệm điều kiện: • Tạo ra Vt = g(’) với  = (z1,..., zk,... , zk+1=k+1,.., zK=K) • k quá trình đầu tiên được mô phỏng, còn lại được giữ tại giá trị cố định • Thí nghiệm lặp lại cho một tập các điều kiện – Thí nghiệm mô phỏng: • Tạo ra Vt = g’(’), g’ - đặc tính truyền đạt hệ thống được đơn giản hóa 10 Xử lý tín hiệu số Lý thuyết xác suất Lý thuyết truyền thông Phân tích số Khoa học máy tính Mô phỏng các hệ thống truyền thông Lý thuyết hệ thống tuyến tính Lý thuyết ước tính Lý thuyết số Lý thuyết quá trình ngẫu nhiên Các lĩnh vực ảnh hưởng lên nghiên cứu mô phỏng các hệ thống truyền thông 4/9/2013 6 11 • Các mặt ảnh hưởng: – Lý thuyết truyền thông: • Cấu trúc hệ thống, hoạt động của các phân hệ (bộ điều chế, bộ cân bằng, ...) – Xử lý tín hiệu số: • Lấy mẫu, kỹ thuật khai triển tín hiệu, lọc ... – Phương pháp số: • Kỹ thuật tích phân, nội suy, tính gần đúng ... – Lý thuyết xác suất: • Biến ngẫu nhiên, hàm mật độ xác suất, ... – Lý thuyết số: • Chuỗi số, chuỗi ngẫu nhiên, ... 12 • Các mặt ảnh hưởng: – Khoa học máy tính: • Kỹ thuật lập trình, đồ họa, ... – Lý thuyết ước tính: • Ước tính các tham số kết hợp thống kê và xử lý tín hiệu – Lý thuyết quá trình ngẫu nhiên: • Hàm phân bố, hàm tương quan, ... – Lý thuyết hệ thống: • Quan hệ vào/ra, đáp ứng xung, hàm truyền đạt ... 4/9/2013 7 13 Mã máy tính Thiết bị vật lý Mô hình giải tích Mô hình mô phỏng Phần cứng Các phương trình Thấp Thấp CaoĐộ phức tạp mô hình Cao Lỗ im ô hì nh hó a Thờ igian chạy m ô phỏng Dài Ngắn Vùng hoạt động thực tế Lỗi theo độ phức tạp Thời gian chạy chương trình theo độ phức tạp Ảnh hưởng của độ phức tạp mô hìnhThiết bị và các mô hình 14 Networks Links Signal processing Circuit analysis RF Simulate the flow of packets, messages, etc. Event driven simulations Interface Specifications Interface Performance Data RF simulationsCircuit simulations Circuit implementation details Algorithm implementation details Time driven finite-precision simulations Simulate waveform distortion effects; noise and interference Time driven, waveform level simulations Tính phân cấp trong các hệ thống truyền thông 4/9/2013 8 15 Level 0 Level 1 Level 1 Level 1 Level 2 Level 2 Level 2 Level 3 Level 3 Level 3 To level 2To level 2 To level 3To level 3 Cấu trúc phân cấp trong mô hình hóa 16 Information source Channel encoder Source encoder Baseband modulator Transmit filter RF modulator Comm. channel RF demodulator Loop filter Baseband demodulatorEqualizer Channel decoder Source decoder Info. sink Timing recovery Noise Interference Partitioning Higher abstraction More details Carrier recovery Bandpass filter (.)4Bandpassfilter @ 4fcPLL @ fc Phase detector VCO(c) Component Model (b) Subsystem Model (a) System Level Model Receive filter 4/9/2013 9 17 • Mô hình hóa hệ thống: – Hệ thống: mức cao nhất của mô tả, đặc trưng bởi sơ đồ khối các phân hệ – Vấn đề mô hình hóa hệ thống: vấn đề cấu hình • Sơ đồ khối mô phỏng càng sát với hệ thống thực Mô hình hệ thống càng chính xác – Giảm mức độ phức tạp mô hình hóa sử dụng tập con các khối ở cùng mức phân cấp • Mô hình hóa thành phần linh kiện – Linh kiện: một khối tại mức phân hệ chứa những đặc điểm mà nhà thiết kế hệ thống mong muốn – Kiểu mô tả: một phương trình, một tập phương trình, một thuật toán, hoặc một lookup table – Mô hình phân hệ tốt: có các tham số đầu vào có thể biến đổi phản ánh cư xử thực của linh kiện 18 • Mô hình hóa quá trình ngẫu nhiên: – Đầu vào và đầu ra của hệ thống và các phân hệ: các quá trình ngẫu nhiên mong muốn (thông tin) và không mong muốn (nhiễu và giao thoa) – Các quá trình được mô phỏng: sao chép các tính chất của các quá trình thực • Nhiệm vụ mô hình hóa: Sao chép quá trình ngẫu nhiên  tạo ra đặc tính đầu ra chính xác – Mô hình quá trình ngẫu nhiên tương đương: tiết kiệm thời gian tính toán • Mô hình hóa hệ thống giả định – Trong thiết kế hệ thống: Đặc tính kỹ thuật của hệ thống chưa được biết  hệ thống giả định – Giả sử một số lượng nhỏ nhất các thành phần mà vẫn thu được một hệ thống hợp lý 4/9/2013 10 • Kỹ thuật đánh giá hiệu năng: – Tập hợp các công cụ giải tích và các giả định  ước tính hiệu quả đại lượng hiệu năng • Mô phỏng Monte Carlo – Tỉ số lỗi bit BER được ước tính: cho N bit qua hệ thống và đếm lỗi – Đảm bảo độ tin cậy: Số bit cần để quan sát trong phạm vi 10/p đến 100/p, p = BER thực. • Một số kỹ thuật PET thay thế – Kỹ thuật bán giải tích (quasianalytical estimation) – Kỹ thuật lấy mẫu quan trọng (Importance sampling) – Kỹ thuật ngoại suy (Extrapolation) 19 20 System Properties Fast Slow Fast Slow Linear Non-linear Channel Characteristics Signal Design Synchronization Errors Non-fading Fading Coded UncodedBandwidth wrt Data Rate Magnitude wrt Memory wrt Data Rate 4/9/2013 11 21 • Độ chính xác của mô phỏng bị giới hạn bởi: – Ba kiểu sai số mô hình hóa: • Mô hình hóa hệ thống • Mô hình hóa thành phần linh kiện • Mô hình hóa quá trình ngẫu nhiên – Sai số xử lý 22 Error Sources Device Modeling Random Process Modeling System Modeling Approximation Finite Storage; Truncation Finite Sampling Rate; Aliasing Finite Run Time; Statistical Variability Modeling Processing 4/9/2013 12 23 Device Models Simulation Environment Random Process Models Performance Evaluation Techniques Performance Evaluation System Model Validation Quá trình kiểm chứng 24 Concept Definition . Information Rate . Fidelity . . System Issues . Initial Link Budget Performance Demonstration (Engineering Development Models) Synthesize Pedigreed “Spec” Model Initial Communication Parameter Specifications Life Environment Tolerance System Validation Link Closure Final Link Budget Final Communication Parameter Specifications Link Closure Hardware Development Communication System Simulation M od ify S pe cs Validate Simulation Spec Performance Estimate Historical Data Base Measurements Changes No Yes No Yes 4/9/2013 13 25 26 • MATLAB: MATrix LABoratory – Là một công cụ mô phỏng và tính tóan số – Các hoạt động tính toán dựa trên cấu trúc dữ liệu đơn hay matrix  cú pháp trong MATLAB đơn giản, chương trình dễ viết hơn các ngôn ngữ lập trình bậc cao hoặc các chương trình đại số máy tính khác. – MATLAB là một ngôn ngữ dịch, tất cả các lệnh có thể được thực hiện trực tiếp – Được bổ sung thêm “symbolics” toolbox  cho phép thực hiện tính toán dạng “symbolic” như các chương trình MAPLE hoặc MATHEMATICA. – Khả năng tương tác với Simulink, một toolbox đặc biệt – công cụ để xây dựng chương trình mô phỏng dựa trên giao diện đồ họa. 4/9/2013 14 27 Cửa sổ lệnh Cửa sổ lịch sử lệnh Cửa sổ thư mục hiện tại Workspace (Cửa sổ biến làm việc) Thanh công cụ 28 • Các biến MATLAB – Kiểu dữ liệu cơ bản: matrix – Định nghĩa các biến MATLAB: >> x = 2.4 x = 2.4000 >> vector = [1 5 -3] vector = 1 5 -3 >> thematrix = [3 1+2*i 2;4 0 -5] thematrix = 3.0000 1.0000 + 2.0000i 2.0000 4.0000 0 -5.0000 4/9/2013 15 29 • Các biến MATLAB – Workspace: Sử dụng lệnh who hoặc whos để kiểm tra biến Để xóa biến sử dụng lệnh clear 30 • Các biến MATLAB – Xử lý các biến: >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A(:,1)=[] A = 2 3 5 6 8 9 >> A(2,:)=[] A = 1 2 3 7 8 9 >> B = A(2,:) B = 4 5 6 4/9/2013 16 • Các biến MATLAB: – Bài tập: 1. Tạo các vectơ và ma trận trong MATLAB với các biến: 2. Khai triển ma trận M thành ma trận V 6x6: Xóa hàng 2 và cột 3 từ ma trận V Tạo vectơ z từ hàng 4 của ma trận V Biến đổi giá trị tại V(4,2) thành j+5 31 32 • Các hoạt động số học – Các phép tính ma trận: 4/9/2013 17 33 • Các hoạt động số học – Các phép tính theo phần tử: sử dụng . (dot) để phân biệt 34 • Các hoạt động số học – Các phép tính chia: phân biệt chia trái (\) và chia phải (/) 4/9/2013 18 35 • Các hoạt động số học – Các phép tính chia: phân biệt chia trái (\) và chia phải (/) 36 • Các hoạt động số học – Bài tập: 3. Tính tích 2 ma trận: và 4. Dùng hoạt động ma trận để biến đổi từ thành 5. Tính ma trận đảo của M bằng phép chia 4/9/2013 19 37 • Các hoạt động logic – Các hoạt động logic cho ra kết quả true (1) hoặc false (0) 38 • Các hoạt động logic – Các hoạt động logic cho ra kết quả true (1) hoặc false (0) 4/9/2013 20 39 • Các hoạt động logic – Các hoạt động logic cho ra kết quả true (1) hoặc false (0) 40 • Các hoạt động logic – Bài tập: 6. Kiểm tra và giải thích kết quả hoạt động logic AND và OR giữa 2 ma trận trong bài tập 3. 7. Kiểm tra và giải thích kết quả hoạt động quan hệ giữa 2 vectơ: và 8. Cho ma trận: Sử dụng các toán tử quan hệ để đặt các số hạng trong ma trận có giá trị > 10 và < -10 bằng 0. 4/9/2013 21 41 • Các hàm toán học – Các hoạt động được thực hiện theo từng phần tử 42 • Các hàm toán học – Các hoạt động được thực hiện theo từng phần tử 4/9/2013 22 43 • Các hàm toán học – Bài tập: 9. Tính giá trị của tín hiệu: với vectơ thời gian từ 0 đến 10 có cỡ bước 0,1. 10. Tính giá trị của tín hiệu: theo vectơ thời gian của bài 9. 11. Làm tròn giá trị của vectơ: về giá trị nguyên gần nhất theo vectơ thời gian của bài 9. 12. Tính logarith cơ số 2 và 10 của vectơ: 44 • Các hàm đồ họa – Sử dụng: – Vẽ đồ thị 2 D: 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 4/9/2013 23 45 • Các hàm đồ họa – Vẽ đồ thị 2D: 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 46 • Các hàm đồ họa – Vẽ đồ thị 2D: 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 4/9/2013 24 47 • Các hàm đồ họa – Các hàm 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 time / s Am pl itu de / V  zero crossing A cosine voltage with frequency 1 Hz 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 time / s A m pl itu de / V Detail of the cosine voltage with frequency 1 Hz 48 • Các hàm đồ họa – Vẽ đồ thị 3 D: sử dụng mesh hoặc surf -3 -2 -1 0 1 2 3 -2 0 2 -0.2 0 0.2 0.4 0.6 x-axisy-axis 4/9/2013 25 49 • Các hàm đồ họa – Vẽ đồ thị 3 D: -3 -2 -1 0 1 2 3 -2 0 2 -0.2 0 0.2 0.4 0.6 x-axisy-axis -3 -2 -1 0 1 2 3 -2 0 2 -0.2 0 0.2 0.4 0.6 x-axisy-axis 50 • Các hàm đồ họa – Vẽ nhiều đồ thị: 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 5 10 15 20 25 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -4 -2 0 2 4 4/9/2013 26 51 • Các hàm đồ họa – Bài tập: 13. Cho vectơ tần số: và các hàm truyền của một bộ tích phân và của một phần tử trễ thời gian bậc 1 tương ứng: thường gặp trong xử lý tín hiệu và kỹ thuật điều khiển. Hãy vẽ đồ thị biên độ của các hàm truyền này trên 2 hình riêng biệt. Sử dụng các hàm semilogx, semilogy và loglog để thay đổi kết quả biểu diễn đồ thị theo các kiểu trục khác nhau. Xác định kiểu biểu diễn nào là tốt nhất. 14. Vẽ biên độ và pha của các hàm truyền cho ở bài 13 trên cùng một hình. 15. Tính và vẽ hàm x2 + y2 trong dải [-2,2]x[-1,1] sử dụng lưới có cỡ bước 0.2 theo chiều x và 0.1 theo chiều y. 16. Vẽ hình cầu có bán kính R = 3. 52 • Các hoạt động I/O – Sử dụng các lệnh save và load: để lưu hoặc nạp các dữ liệu từ file trong MATLAB. >> save 'C:\ndnhan\matlab7\thevars' var1 var2 -V6 4/9/2013 27 53 • Điều khiển ma trận – Xem: >> E5 = eye(5) E5 = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 % Xác định độ dài vector % Tạo ma trận đơn vị 54 • Điều khiển ma trận % Xác định kích thước ma trận % Chuyển vị ma trận 4/9/2013 28 55 • Điều khiển ma trận 56 • Các cấu trúc – structures – Ví dụ: Định nghĩa structure Graphic 4/9/2013 29 57 • Điều khiển ma trận và cấu trúc – Bài tập: 17. Tạo vectơ y = (1, 1.5, 2, ..., 4.5, 5). Sử dụng hoạt động điều khiển ma trận phù hợp để đảo trật tự các số hạng của vectơ y để tạo ra vectơ yr = (5, 4.5, ..., 1.5, 1). Tạo vectơ z chỉ chứa các số nguyên từ vectơ y. 18. Định nghĩa cấu trúc color với các trường dữ liệu red, blue và green. Sau đó định nghĩa một trường 1x20 của các cấu trúc kiểu này và khởi tạo thành phần red bằng giá trị ‘yes’, thành phần blue bằng giá trị ‘no’ và thành phần green với giá trị [0,256,0] 58 • MATLAB Editor Thanh công cụ cell Cửa sổ Editor Danh sách menu Các icon cho cấu hình cửa sổ Các icon cho debug và ngăn xếp chức năng 4/9/2013 30 59 • Các thủ tục – Cung cấp các tập lệnh được thực hiện trong cửa sổ lệnh bằng một lệnh đơn giản. – Các chuỗi lệnh được viết bằng Editor và được lưu trong một m- file với tên sẽ được sử dụng để chạy trong cửa sổ lệnh. – Sử dụng lệnh help để kiểm tra sự tồn tại của hàm. • Các thủ tục >> vidu1 60 4/9/2013 31 61 • Các function – Cấu trúc: function [out1, out2, ...] = funname(in1,in2, ...) Lưu ý: Tên hàm phải trùng tên của m-file chứa hàm Các biến trong function là các biến cục bộ Gọi hàm ở cửa sổ lệnh: >> [y1,y2,...] = funname(x1,x2,...) hoặc >> funname(x1,x2,...) Các tham số đầu vàoCác tham số đầu ra Tên hàm 62 • Các function >> [t,s1,c1,e1] = vidu1(3,5,4); 4/9/2013 32 63 • Các thủ tục – Bài tập: 19. Viết một chương trình MATLAB có tên circle_prog.m để thực hiện các hoạt động sau: vẽ đường tròn có bán kính r = 3, trả về các kết quả tính chu vi và diện tích hình tròn.(Hint: sử dụng lệnh axis equal để hiển thị đồ thị tốt hơn) 20. Thay đổi chương trình trên để hiển thị kết quả với 5 số sau dấu phẩy. (Hint: có thể dùng lệnh sprintf) 64 • Các cấu trúc ngôn ngữ MATLAB 4/9/2013 33 65 • Các cấu trúc ngôn ngữ MATLAB – Câu lệnh if: if expression1 statements1 elseif expression2 statements2 else statements3 end if A > B disp('A lon hon B'); elseif A == B disp('A bang B'); else disp('A nho hon B'); end 66 • Các cấu trúc ngôn ngữ MATLAB – Câu lệnh for: for variable = expression statement ... statement end k = 10; a = zeros(k,k) % Preallocate matrix for m = 1:k for n = 1:k a(m,n) = 1/(m+n -1); end endVí dụ tính giá trị phần tử trong ma trận 4/9/2013 34 67 • Các cấu trúc ngôn ngữ MATLAB – Câu lệnh while: while expression statements end a = 0; fa = -Inf; b = 3; fb = Inf; while b-a > eps*b x = (a+b)/2; fx = x^3-2*x-5; if sign(fx) == sign(fa) a = x; fa = fx; else b = x; fb = fx; end end x Ví dụ tìm nghiệm của một đa thức bằng phương pháp bisection Đa thức 68 • Các cấu trúc ngôn ngữ MATLAB – Câu lệnh switch-case: switch switch_expr case case_expr statement, ..., statement case {case_expr1, case_expr2, case_expr3, ...} statement, ..., statement otherwise statement, ..., statement end method = 'Bilinear'; switch lower(method) case {'linear','bilinear'} disp('Method is linear') case 'cubic' disp('Method is cubic') case 'nearest' disp('Method is nearest') otherwise disp('Unknown method.') end 4/9/2013 35 69 • Các cấu trúc ngôn ngữ MATLAB – Câu lệnh switch-case: function [t, sinfct, cosfct] = FSwitchIn(f1, f2, damp) % function FSwitchIn % % call: [t, sinfct, cosfct] = FSwitchIn(f1, f2) % or [t, sinfct, cosfct] = FSwitchIn(f1, f2, damp) % % An example of an MATLAB function with a variable % number of input parameters t=(0:0.01:2); switch nargin case 2 sinfct = sin(2*pi*f1*t); cosfct = 2*cos(2*pi*f2*t); plot(t,[sinfct; cosfct]) xlabel('time / s') ylabel('Amplitude') title('sine and cosine oscillations‘) case 3 sinfct = sin(2*pi*f1*t); cosfct = 2*cos(2*pi*f2*t); expfct = exp(-damp*t); plot(t,[sinfct; cosfct;
Tài liệu liên quan