Mô phỏng hệ thống truyền thông

83
TS. Nguyn Đc Nhân Aug 2012 1 23/08/2012

Transcript of Mô phỏng hệ thống truyền thông

Page 1: Mô phỏng hệ thống truyền thông

TS. Nguyên Đưc Nhân

Aug 2012

1 23/08/2012

Page 2: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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%

Page 3: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 4: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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.

Page 5: Mô phỏng hệ thống truyền thông

5 23/08/2012 Nguyên Đưc Nhân

Page 6: Mô phỏng hệ thống truyền thông

• Độ 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 23/08/2012 Nguyên Đưc Nhân

Page 7: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ể.

Page 8: Mô phỏng hệ thống truyền thông

• 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 23/08/2012 Nguyên Đưc Nhân

Page 9: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 10: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 11: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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, ...

Page 12: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhâ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 ...

Page 13: Mô phỏng hệ thống truyền thông

13 23/08/2012 Nguyên Đưc Nhân

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ỗ

i mô

hìn

h h

óa

Th

ời g

ian

ch

ạy m

ô p

hỏ

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ình Thiết bị và các mô hình

Page 14: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

14

Networks

Links

Signal

processing

Circuit

analysis

RF

Simulate the flow of

packets, messages, etc.

Event driven

simulations

Interface Specifications

Interface Performance Data

RF simulations Circuit

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

Page 15: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

15

Level 0

Level 1 Level 1 Level 1

Level 2 Level 2 Level 2

Level 3 Level 3 Level 3

To level 2 To level 2

To level 3 To level 3

Cấu trúc phân cấp trong mô hình hóa

Page 16: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

16

Information

source

Channel

encoder

Source

encoder

Baseband

modulator

Transmit

filter

RF

modulator

Comm.

channel

RF

demodulator

Loop

filter

Baseband

demodulator Equalizer

Channel

decoder

Source

decoder

Info.

sink

Timing

recovery

Noise

Interference

Partitioning

Higher

abstraction

More details

Carrier

recovery

Bandpass

filter (.)4 Bandpass

filter @ 4fc PLL @ fc

Phase

detector

VCO (c) Component Model

(b) Subsystem Model

(a) System Level Model

Receive

filter

Page 17: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 18: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhâ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ý

Page 19: Mô phỏng hệ thống truyền thông

• 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 23/08/2012 Nguyên Đưc Nhân

Page 20: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

20

System Properties

Fast Slow Fast Slow

Linear Non-linear

Channel

Characteristics Signal Design Synchronization

Errors

Non-fading Fading

Coded Uncoded Bandwidth

wrt Data Rate Magnitude

wrt Memory wrt Data Rate

Page 21: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ý

Page 22: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 23: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

23

Device

Models Simulation

Environment Random

Process

Models

Performance

Evaluation

Techniques

Performance

Evaluation

System

Model

Validation

Quá trình kiểm chưng

Page 24: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Mo

dify S

pe

cs

Validate Simulation

Spec Performance

Estimate

Historical

Data Base

Measurements

Changes No

Yes

No Yes

Page 25: Mô phỏng hệ thống truyền thông

25 23/08/2012 Nguyên Đưc Nhân

Page 26: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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.

Page 27: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ụ

Page 28: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 29: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 30: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 31: Mô phỏng hệ thống truyền thông

• 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 23/08/2012 Nguyên Đưc Nhân

31

Page 32: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

32

• Các hoạt động số học – Các phép tính ma trận:

Page 33: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 34: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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 (/)

Page 35: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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 (/)

Page 36: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 37: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

37

• Các hoạt động logic – Các hoạt động logic cho ra kết quả true (1) hoặc false (0)

Page 38: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

38

• Các hoạt động logic – Các hoạt động logic cho ra kết quả true (1) hoặc false (0)

Page 39: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

39

• Các hoạt động logic – Các hoạt động logic cho ra kết quả true (1) hoặc false (0)

Page 40: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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.

Page 41: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ử

Page 42: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ử

Page 43: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ơ:

Page 44: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 45: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 46: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 47: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

plit

ude /

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.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

time / s

Am

plit

ude /

V

Detail of the cosine voltage with frequency 1 Hz

Page 48: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

48

• Các hàm đồ họa – Vẽ đồ thị 3 D: sử dụng mesh hoặc surf

-3-2

-10

12

3

-2

0

2

-0.2

0

0.2

0.4

0.6

x-axisy-axis

Page 49: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

49

• Các hàm đồ họa – Vẽ đồ thị 3 D:

-3-2

-10

12

3

-2

0

2

-0.2

0

0.2

0.4

0.6

x-axisy-axis

-3-2

-10

12

3

-2

0

2

-0.2

0

0.2

0.4

0.6

x-axisy-axis

Page 50: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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 50

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

Page 51: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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.

Page 52: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 53: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ị

Page 54: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

54

• Điều khiển ma trận

% Xác định kích thước ma trận

% Chuyển vị ma trận

Page 55: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

55

• Điều khiển ma trận

Page 56: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

56

• Các cấu trúc – structures – Ví dụ: Định nghĩa structure Graphic

Page 57: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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]

Page 58: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 59: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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.

Page 60: Mô phỏng hệ thống truyền thông

• Các thủ tục

>> vidu1

23/08/2012 Nguyên Đưc Nhân

60

Page 61: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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ào Các tham số đầu ra

Tên hàm

Page 62: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

62

• Các function

>> [t,s1,c1,e1] = vidu1(3,5,4);

Page 63: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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)

Page 64: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

64

• Các cấu trúc ngôn ngữ MATLAB

Page 65: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 66: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

end Ví dụ tính giá trị phần tử trong ma trận

Page 67: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 68: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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

Page 69: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

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; expfct])

xlabel('time / s')

ylabel('Amplitude')

title('three gorgeous signals')

otherwise

msg = 'The function FSwitchIn must have 2';

msg = strcat(msg, ' or 3 input parameters!');

error(msg);

end

if nargout < 3

msg = 'The function FSwitchIn should return a time';

msg = strcat(msg, 'vector and two sine signals!');

error(msg);

end

Ví dụ sử dụng nargin và nargout

Page 70: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

70

• Bài tập 21. Cho một hàm f(x) = x3/3+4x2+x-6 trong dải -1<x<3. Viết chương

trình tìm nghiệm phương trình trên bằng phương pháp bisection với sử dụng 2 dự đoán ban đầu tại x = 0 và x = 3.

(Sử dụng lệnh input để cho phép nhập giá trị các tham số đầu vào từ bàn phím khi chạy chương trình)

22. Viết mã chương trình sử dụng vòng lặp để tính tích phân:

bằng phương pháp midpoint với số lượng điểm N = 100.

23. Viết mã chương trình sử dụng vòng lặp while để tính gần đúng dựa trên phương pháp Newton dùng hệ thưc đệ quy:

Quá trình lặp thực hiện cho đến khi xn thay đổi chỉ 0.0001.

Page 71: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

71

• Hàm eval – Sử dụng để đánh giá các xâu ký tự (string):

Page 72: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

72

• Function handles – Một handle function hoạt động như con trỏ đến hàm bằng việc

sử dụng @ trước hàm đó

Page 73: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

73

• Function handles – Ví dụ: Tính tích phân số bằng phương pháp điểm giữa

function [integral] = midpoint(a, b, F, N)

% Function midpoint

%

% sample call: integ = midpoint(0, 2, @myfun, 10)

%

% The present example calculates the integral of the function F,

% whose name is passed on as a function handle to midpoint, over

% the limits [a,b]. Midpoint rule is used to calculate the integral;

h=(b-a)/N; % subinterval length

% intval=(a+h/2:h:a+(N-1/2)*h); % points marking subintervals

integral = F(a+h/2); % F at the lower limit of the interval

%

For k=2:N

xi = a + (k-1/2)*h;

integral = integral+F(xi);

% integral = integral+F(intval(i));

end;

integral = integral*h; % normalizing with h

Page 74: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

74

• Phương trình vi phân thường (ODE) – Trong mô hình của các hệ thống động: các tham số là hàm của

thời gian , vận tốc và gia tốc

– Thường hầu hết mô hình các hệ thống động, ta có thể rút gọn từ các phương trình vi phân bậc 2 về các phương trình vi phân bậc 1 có dạng:

– Hệ thống được mô tả đầy đủ:

Hàm f có thể là hàm tuyến tính hoặc phi tuyến của biến độc lập x và tham số phụ thuộc y.

Page 75: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

75

• Phương pháp Euler – Dựa trên gần đúng sai phân hữu hạn đối với đạo hàm

– Tổng quát:

1 0 ( 1)n nx x n h x h

x(1) = x0;

y(1) = y0;

for k = 2:N % N – Number of steps

x(k) = x(k-1) + h;

y(k) = y(k-1)+Fdot(x(k-1),y(k-1))*h;

end;

Page 76: Mô phỏng hệ thống truyền thông

• Phương pháp Euler biến đổi – Sử dụng chuỗi Taylor cho việc phân tích ODE xác định được:

23/08/2012 Nguyên Đưc Nhân

76

t(1) = t0;

y(1) = y0;

for k=2:N

y1=y(k-1)+h*fdot(t(k-1),y(k-1));

t1=t(k-1)+h;

loopcount=0; diff=1;

while abs(diff) >.05

loopcount=loopcount+1;

y2=y(k-1)+h*(fdot(t(k-1),y(k-1))+fdot(t1,y1))/2;

diff=y1-y2; y1=y2;

end;

%collect values together for output

t(k) = t1; y(k) = y1;

end;

Page 77: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

77

• Phương pháp Runge-Kutta – Phương pháp RK bậc 2:

Lựa chọn c1, c2, a2 các pp RK khác nhau:

Khi c1 = 1/2, c2 = 1/2, a2 = 0 PP Euler biến đổi

Khi c1 = 0, c2 = 1, a2 = ½: PP Midpoint

Khi c1 = 1/4, c2 = 3/4, a2 = 2/3:

Page 78: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

78

• Phương pháp Runge-Kutta – Phương pháp RK bậc 3:

Page 79: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

79

• Phương pháp Runge-Kutta – Phương pháp RK bậc 4:

xSol(1) = x; ySol(1,:) = y;

k = 1;

while x < xStop

k = k+1;

K1 = h*feval(Fdot,x,y);

K2 = h*feval(Fdot,x + h/2,y + K1/2);

K3 = h*feval(Fdot,x + h/2,y + K2/2);

K4 = h*feval(Fdot,x+h,y + K3);

y = y + (K1+2*K2+2*K3+K4)/6;

x = x+h;

xSol(k) = x; ySol(k,:) = y; % Store current soln.

end

Page 80: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

80

• Phương pháp Runge-Kutta – Tập các hàm giải phương trình vi phân trong MATLAB:

[T,Y] = solver(odefun,tspan,y0)

[T,Y] = solver(odefun,tspan,y0,options)

Ví dụ: [t,y] = ode45(myfun,[t0 tf],y0);

Page 81: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

81

• Ví dụ: – Cho ODE bậc 1:

% Euler method to solve a 1st-order differential equation

clear, clf

a=1;r=1;y0=0; tf=2;

t = [0:0.01:tf]; yt=1-exp(-a*t); % true analytical solution

plot(t,yt,'k'), hold on

klasts = [8 4 2]; hs = tf./klasts;

y(1) = y0;

for itr = 1:3 %with various step size h = 1/8,1/4,1/2

klast = klasts(itr); h = hs(itr); y(1)=y0;

for k = 1:klast

y(k + 1) = (1 - a*h)*y(k) +h*r; % Euler's formula

plot([k - 1 k]*h,[y(k) y(k+1)],'b', k*h,y(k+1),'ro')

if k<4,pause;end

end

end

Nghiệm giải tích:

Nghiệm thu được tại các cỡ bước khác nhau

Page 82: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

82

• Ví dụ: – Dao động con lắc:

Điều kiện ban đầu:

Hàm pendde.m

Page 83: Mô phỏng hệ thống truyền thông

23/08/2012 Nguyên Đưc Nhân

83

• Bài tập: 24. Viết chương trình tìm nghiệm ptr vi phân: với a = 1, r = 1

và y(0) = 0 bằng phương pháp Euler biến đổi với cỡ bước h = 0.25. Xác định sai số so với nghiệm giải tích tại 2 thời điểm t = 1 và t = 2.

25. Tương tự bài tập 24 nhưng sử dụng phương pháp RK bậc 3.

26. Tương tự bài tập 24 nhưng sử dụng phương pháp RK bậc 4.

27. Cho sơ đồ mạch RC hình bên:

Điện áp đầu ra của hệ thống tuân theo ptr vi phân tuyến tính:

Hãy viết chương trình tìm nghiệm của ptr này trong khoảng [0, 3] s bằng phương pháp RK bậc 4, biết C = 4.7F và R = 10 k. Hàm u1(t) là hàm bậc đơn vị. Sau đó so sánh kết quả với nghiệm thu được bằng việc sử dụng lệnh ode45.