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
97 trang |
Chia sẻ: nyanko | Lượt xem: 1597 | Lượt tải: 1
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;