TT Xử lý tin hiệu số chuong 1

32 148 0
TT Xử lý tin hiệu số chuong 1

Đ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

TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ CHƯƠNG PHẦN MỀM MATLAB KHỞI ĐỘNG MATLAB MATLAB phần mềm cung cấp mơi trường tính tốn số lập trình, cơng ty MathWorks thiết kế MATLAB cho phép tính tốn số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực thuật toán, tạo giao diện người dùng liên kết với chương trình máy tính viết nhiều ngơn ngữ lập trình khác Với thư viện Toolbox, MATLAB cho phép mơ tính tốn, thực nghiệm nhiều mơ hình thực tế, kỹ thuật cụ thể xử lý tín hiệu số Bên cửa sổ làm việc Matlab CÁC VẤN ĐỀ CƠ BẢN 2.1 Các phép tính matlab Các phép tốn : THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 1 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ + , ‐ , * , / , \ (chia trái) , ^ (mũ) Các toán tử quan hệ : < , , >= , == , ~= + Các lệnh kết thúc dấu chấm phẩy, MATLAB kết hình + Các thích đặt phía sau dấu % + Trong q trình nhập phần tử hàng dài ta xuống dòng tốn tử ba chấm ( .) 2.2 Khai báo biến - Phân biệt chữ hoa chữ thường - Không cần phải khai báo kiểu biến - Tên biến phải bắt đầu ký tự khơng có khoảng trắng - Khơng đặt tên trùng với tên đặc biệt MATLAB 2.3 Các lệnh thường dùng MATLAB >>help tên_hàm % tham khảo help hàm >>lookfor ‘chuỗi’ %Tìm kiếm chuỗi Ví dụ: >>lookfor ‘filter’ % Tìm hàm có liên quan đến mạch lọc THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 2 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ >>clc % Xố hình >>clear tên_biến % Xoá biến >>clear all %Xoá tất biến >> clf %Xoá figure >>save % Lưu biến có nhớ >>load % Lấy nội dung biến lưu >>who % liệt kê biến nhớ >>whos % liệt kê chi tiết biến nhớ >>which % Xác định vị trí hàm hay file LẬP TRÌNH TRONG MATLAB Các phát biểu điều kiện if, else, elseif: Cú pháp if: if end Nếu cho kết phần lệnh thân if thực Các phát biểu else leseif tương tự Ví dụ: Ta xét chương trình ct1_2 m để đốn tuổi sau: disp(‘Xin chao! Han hanh duoc lam quen’); x = fix(30*rand); disp(‘Tuoi toi khoang ‐ 30’); gu = input(‘Xin nhap tuoi cua ban: ‘); if gu < x disp(‘Ban tre hon toi’); elseif gu > x disp(‘Ban lon hon toi’); else disp(‘Ban bang tuoi toi’); end switch: Cú pháp switch sau : switch case n1 : case n2 : THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 3 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ case nn : otherwise : end while: Vòng lặp while dùng biết trước số lần lặp Cú pháp sau: while end Ví dụ: Xét chương trình in chuoi “Xin chao” lên mà hình với số lần nhập từ bàn phím (ct1_3.m) sau: disp(ʹxin chaoʹ); gu = input(ʹNhap so lan in: ʹ); i = 0; while i~=gu disp([ʹXin chaoʹ i]); i = i+1 end For: vòng lặp for dùng biết trước số lần lặp Cú pháp sau : for = : : Ví dụ: Xây dựng chương trình đốn số (ct1_4.m) x = fix(100*rand); n = 7; t = 1; for k = 1:7 num = int2str(n); disp([ʹBan co quyen du doan ʹ,num,ʹ lanʹ]); disp(ʹSo can doan nam khoang ‐ 100ʹ); gu = input(ʹNhap so ma ban doan: ʹ); if gu < x disp(ʹBan doan nho honʹ); elseif gu>x disp(ʹSo ban doan lon honʹ); else disp(ʹBan da doan dung.Xin chuc mungʹ); t = 0; break; end n = n‐1; end if t > disp(ʹBan khong doan roiʹ); numx = int2str(x); disp([ʹDo la so: ʹ,numx]); end Break: phát biểu break để kết thúc vòng lặp for hay while mà khơng quan tâm đến điều kiện kết thúc vòng lặp thoả mãn hay chưa MA TRẬN THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 4 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ 4.1 Các thao tác ma trận 4.1.1 Nhập ma trận Ma trận mảng có m hàng n cột Trường hợp ma trận có phần tử (ma trận 1x1) ta có số Ma trận có cột hay hàng gọi vector Ta nhập ma trận vào MATLAB nhiều cách: • Nhập danh sách phần tử từ bàn phím • Nạp ma trận từ file • Tạo ma trận nhờ hàm có sẵn MATLAB • Tạo ma trận nhờ hàm tự tạo Khi nhập ma trận từ bàn phím ta phải tuân theo quy định sau: • Ngăn cách phần tử ma trận dấu “,” hay khoảng trắng • Dùng dấu “;” để kết thúc hàng • Bao phần tử ma trận cặp dấu ngoặc vuông [ ] 4.1.2 Chỉ số Phần tử hàng i cột j ma trận có ký hiệu A(i,j) Tuy nhiên, ta tham chiếu tới phần tử mảng nhờ số, ví dụ A(k) Trong trường hợp này, ma trận xem cột dài tạo từ cột ma trận ban đầu Như viết A(8) có nghĩa tham chiếu phần tử A(4, 2) (nếu ma trận có hàng) Lưu ý số ma trận thường THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 5 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ 4.1.3 Toán tử “:” Toán tử “:” tốn tử quan trọng MATLAB Nó xuất nhiều dạng khác Biểu thức 1:10 vector hàng chứa 10 số nguyên từ đến 10 >>1:10 >>100:‐7:50 %tạo dãy số từ 100 đến 51, cách >>0: pi/4: pi %tạo dãy số từ đến , cách /4 Các biểu thức số tham chiếu tới phần ma trận, A(1:k,j) xác định k phần tử cột j Ngồi tốn tử “:” tham chiếu tới tất phần tử hàng hay cột >>A(:,3) >>A(3, :) >>B = A(:, [1 4]) %tạo ma trận B từ ma trận A cách đổi thứ tự cột từ [1 4] thành [1 4] 4.1.4 Tạo ma trận hàm có sẵn MATLAB cung cấp số hàm để tạo ma trận bản: - zeros tạo ma trận mà phần tử >>z = zeros(2, 4) - ones tạo ma trận mà phần tử >>x = ones(2, 3) >>y = 5*ones(2, 2) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 6 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ - rand tạo ma trận mà phần tử ngẫu nhiên phân bố >>d = rand(4, 4) randn tạo ma trận mà phần tử ngẫu nhiên phân bố chuẩn - >>e = randn(3, 3) - magic(n) tạo ma trận cấp n gồm số nguyên từ đến n với tổng hàng tổng cột tổng đường chéo (n 3) - pascal(n) tạo tam giác Pascal >>pascal(4) - eye(n) tạo ma trận đơn vị >>eye(3) - eye(m,n) tạo ma trận đơn vị mở rộng >>eye(3,4) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 7 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ 4.1.5 Nối ma trận Ta nối ma trận có sẵn thành ma trận Ví dụ: >>a = ones(3, 3); >>b = 5*ones(3, 3); >>c = [a+2; b] 4.1.6 Xoá hàng cột Ta xố hàng cột từ ma trận dùng dấu [] THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 8 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ >>b(:, 2) = [] ; %xoá cột thứ >>b(1:2:5) = []; % xoá phần tử đến cách (1,3,5) xếp lại ma trận 4.1.7 Các lệnh xử lý ma trận Cộng : X = A + B Trừ : X = A - B Nhân : X = A*B X = A.*B nhân phần tử tương ứng với nhau, yêu cầu ma trận A B phải có kích thước Chia : X = A/B lúc X = A * inv(B) X = A\B lúc X = inv(A) * B X=A./B chia phần tử tương ứng với nhau, ma trận A B có kích thước Luỹ thừa : X = A^2 X = A.^2 Nghịch đảo: X = inv(A) Định thức: d = det(A) Để tạo ma trận MATLAB ta cần liệt phần tử ma trận cặp dấu ngoặc vuông ([…]) Các phần tử hàng phân biệt dấu phẩy (,) khoảng trắng (space) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 9 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ Các hàng ma trận, phân cách dấu chấm phẩy (;) Ví dụ, nhập ma trận A có hàng, cột sau: >> A=[16 13; 10 11 8; 12; 15 14 1] >> size(A) Để truy xuất đến phần tử ma trận ta dùng số phần tử tương ứng Ví dụ, phần tử hàng thứ 2, cột thứ A A(2,3) >> A(2,3) 4.2 Vector Vector thực chất ma trận có kích thước n x hay x n, nên ta tạo vector cách tạo ma trận Ngồi ra, dùng số cách sau: >>x=0:0.1:1 >>y=linspace(1, 10, 20) % vector 20 phan tu cach deu tu den 10 >>z=rand(10,1) ; tạo 10 số ngẫu nhiên phân bố 4.3 Đa thức Các đa thức MATLAB mô tả vector hàng với phần tử vector hệ số đa thức, xếp theo thứ tự số mũ giảm dần Ví dụ, đa thức m= s 4-s3+4s2-5s-1 biểu diễn là: >>m=[1 -1 -5 -1] Để xác định giá trị đa thức, ta dùng hàm polyval Ví dụ, xác định giá trị đa thức điểm s=2 THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 10 10 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ >>title(ʹ\it{Gia tri cua sin tu zero đến pi}ʹ,ʹFontsizeʹ,16) Ta thêm văn vào chỗ hình vẽ nhờ hàm text >>text(3*pi/4,sin(3*pi/4),ʹ\leftarrowsin(t)=0.707ʹ,ʹFontSizeʹ ,12) Ta sử dụng đối tượng văn để ghi trục vị trí MATLAB định vị văn theo đơn vị liệu trục Ví dụ để vẽ hàm y = Aet với A = 0.25, t = đến 900 = 0.005: >>t = 0:900; >>plot(t,0.25*exp(‐0.005*t)) Để thêm ghi điểm t = 300, ta viết: >>text(300,.25*exp(‐.005*300), ’\bullet\leftarrow\fontname{times}0.25{\ite}^(‐0.005{\itt}} at, {\itt}=300’,ʹFontSize’,14) Tham số HorizontalAlignment VerticalAlignment định vị văn so với toạ độ x, y, z cho THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 18 18 TRƯỜNG CĐ CƠNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 19 19 TRƯỜNG CĐ CƠNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ \bf — Bold font \it — Italic font \sl — Oblique font (rarely available) \rm — Normal font \fontname{fontname} \fontsize{fontsize} \color(colorSpec) Các số thực ^ _ >>title('\ite^{i\omega_0\tau} = cos(\omega_0\tau) + i sin(\omega_0\tau)') Kết quả: (= cos(0 )( +( 0) Để thêm cơng thức tốn học, ta dùng dạng LaTeX Một số ví dụ: >>text('units','inch', 'position',[.2 5], 'fontsize',14, 'interpreter', 'latex', 'string' , ['$$\hbox {magic(3) is } \left( {\matrix{ & & \cr' '3 & & \cr & & } } \right)$$']); >>text('units','inch', 'position',[.2 4], THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 20 20 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ 'fontsize',14, 'interpreter','latex', 'string', ['$$\left[ {\matrix{\cos(\phi) & -\sin(\phi) \cr' '\sin(\phi) & \cos(\phi) \cr}} \right]' '\left[ \matrix{x \cr y} \right]$$']); >>text('units','inch', 'position',[.2 3], 'fontsize',14, 'interpreter','latex', 'string', ['$$L\{f(t)\} \equiv F(s) = \int_0^\infty\!\!{e^{st}' 'f(t)dt}$$']); >>text('units','inch', 'position',[.2 2], 'fontsize',14, 'interpreter','latex', 'string', '$$e = \sum_{k=0}^\infty {1 \over {k!} } $$'); >>text('units','inch', 'position',[.2 1], 'fontsize',14, 'interpreter','latex', 'string', ['$$m \ddot y = -m g + C_D \cdot {1 \over 2}' '\rho {\dot y}^2 \cdot A$$']); >>text('units','inch', 'position',[.2 0], 'fontsize',14, 'interpreter','latex', 'string', '$$\int_{0}^{\infty}x^2e^{-x^2}dx= \frac{\sqrt{\pi}}{4}$$'); Các khai báo cụ thể tham khảo tại: http://www.latex-project.org/ THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 21 21 TRƯỜNG CĐ CƠNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ 5.8 Đồ hoạ đặc biệt 5.8.1 Khối vùng Đồ hoạ khối vùng biểu diễn số liệu vector hay ma trận MATLAB cung cấp hàm đồ hoạ khối vùng: bar hiển thị cột ma trận m*n m nhóm, nhóm có n bar barh hiển thị cột ma trận m*n m nhóm, nhóm có n bar nằm ngang bar3 hiển thị cột ma trận m*n m nhóm, nhóm có n bar dạng 3D bar3h hiển thị cột ma trận m*n m nhóm, nhóm có n bar dạng 3D nằm ngang Mặc định, phần tử ma trận biểu diễn bar >>y = [5 673 863 555 8]; >>bar(y) Sau nhập lệnh bar3(y) ta có đồ thị 3D THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 22 22 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 23 23 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ 5.8.2 Xếp chồng đồ thị Ta xếp chồng số liệu đồ thị cách tạo trục khác vị trí ta có trục y độc lập với số liệu khác >>TCE = [515 420 370 250 135 120 60 20]; >>nhdo = [29 23 27 25 20 23 23 27]; >>ngay = 0:5:35; >>bar(ngay,nhdo) >>xlabel(ʹNgayʹ) >>ylabel(ʹNhiet (^{o}C)ʹ) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 24 24 TRƯỜNG CĐ CƠNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ Để xếp chồng số liệu lên đồ thị trên, có trục thứ vị trí trục thứ ta viết : >>h1 = gca; tạo trục thứ vị trí trục thứ trước vẽ số liệu thứ >>h2 = axes(ʹPositionʹ,get(h1,ʹPositionʹ)); >>plot(days,TCE,ʹLineWidthʹ,3) Để trục thứ không gây trở ngại cho trục thứ ta viết : >>set(h2,ʹYAxisLocationʹ,ʹrightʹ,ʹColorʹ,ʹnoneʹ,ʹXTickL abelʹ,[]) >>set(h2,ʹXLimʹ,get(h1,ʹXLimʹ),ʹLayerʹ,ʹtopʹ) Để ghi lên đồ thị ta viết: >>text(11,380,ʹMat doʹ,ʹRotationʹ,‐‐55,ʹFontSizeʹ,16) >>ylabel(ʹTCE Mat (PPM)ʹ) >>title(ʹXep chong thiʹ,ʹFontSizeʹ,16) 5.8.3 Đồ hoạ vùng Hàm area hiển thị đường cong tạo từ vector hay từ cột ma trận Nó vẽ giá trị cột ma trận thành đường cong riêng tô đầy vùng không gian đường cong trục x >>Y = [5 37 68 555 3]; >>area(Y) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 25 25 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ 5.8.4 Đồ thị pie Đồ thị pie hiển thị theo tỉ lệ phần trăm phần tử vector hay ma trận so với tổng phần tử pie pie3 tạo đồ thị 2D 3D >>X = [19.3 22.1 51.6; 34.2 70.3 82.4; 61.4 82.9 90.8; 50.5 54.9 59.1; 29.4 36.3 47.0]; >>x = sum(X); >>explode = zeros(size(x)); >>[c,offset] = max(x); >>explode(offset) = 1; >>h = pie(x,explode); >>h = pie3(x,explode); 5.9 Đồ hoạ 3D 5.9.1 Các hàm Hàm mesh surf tạo mặt 3D từ ma trận liệu Gọi ma trận liệu z mà phần tử z(i,j) xác định tung độ mặt mesh(z) tạo lưới có màu thể mặt z surf(z) tạo mặt có màu z 5.9.2 Đồ thị hàm hai biến Bước thứ để thể hàm biến z=f(x,y) tạo ma trận x y chứa toạ độ miền xác định hàm Hàm meshgrid biến đổi vùng xác định vector x y thành ma trận x y Sau ta dùng ma trận để đánh giá hàm >>[x,y] = meshgrid(-8:.5:8); >>r = sqrt(x.^2 + y.^2); THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 26 26 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ Ma trận r chứa khoảng cách từ tâm ma trận Tiếp theo ta dùng hàm mesh để vẽ hàm >>z = sin(r)./r; >>mesh(z) CÁC FILE VÀ HÀM 6.1 Script file (file kịch bản) Kịch M‐file đơn giản nhất, khơng có đối số Nó dùng thi hành loạt lệnh MATLAB theo trình tự định Ta xét ví dụ tạo số Fibonacci nhỏ 1000 f = [1 1]; i = 1; while(f(i)+f(i+1))>fibo Và nhấn enter Kết MATLAB vẽ đồ thị chuỗi Fibonacci 6.2 File hàm Hàm M-file có chứa đối số Ta có ví dụ hàm: function y = tb(x) %Tinh tri trung binh cua cac phan tu [m,n] = size(x); if m == m = n; THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 27 27 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ end y = sum(x)/m; Từ ví dụ ta thấy hàm M-file gồm phần sau : • Một dòng định nghĩa hàm: function y = tb(x) gồm từ khoá function, đối số trả y, tên hàm tb đối số vào x • Dòng dòng trợ giúp Vì dòng văn nên phải đặt sau % Nó xuất ta nhập lệnh help Phần văn giúp người dùng hiểu tác dụng hàm Thân hàm chứa mã MATLAB • Các lời giải thích dùng chương trình rõ ràng Nó đặt sau dấu % Cần ý tên hàm phải bắt đầu ký tự tên với file chứa hàm Tên hàm tb tên file tb.m • Từ cửa sổ MATLAB ta gõ lệnh: >>z = 1:99; >>tb(z) Các biến khai báo hàm MATLAB biến địa phương Các hàm khác khơng nhìn thấy sử dụng biến Muốn hàm khác dùng biến hàm ta cần khai báo global Nếu hàm có nhiều thơng số ngõ vào ngõ khai báo sau: function [y1,y2,y3] = tb(x1,x2,x3) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 28 28 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ Lưu ý file m có nhiều hàm hàm phải có tên trùng với tên file 6.3 Các hàm toán học exp(x) hàm mũ số e sqrt(x) bậc hai x log(x) logarit số e log10(x) logarit số 10 abs(x) module số phức x (giá trị tuyệt đối số thực) angle(x) argument số phức a conj(x) số phức liên hợp x imag(x) phần ảo x real(x) phần thực x sign(x) dấu x cos(x) tính cos sin(x) tính sin tan(x) tính tang acos(x) tính cos-1 asin(x) tính sin-1 atan(x) tính tang1 +− cosh(x) tính coth(x) tính cosh(x)/sinh(x) −− sinh(x) tính tanh(x) tính sinh(x)/cosh(x) acosh(x) tính cosh-1 acoth(x) tính coth-1 asinh(x) tính sinh-1 atanh(x) tính tanh-1 6.4 Các phép tốn hàm toán học 6.4.1 Biểu diễn hàm toán học MATLAB biểu diễn hàm toán học cách dùng biểu thức đặt M-file Ví dụ để khảo sát hàm: THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 29 29 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ = + −1 +1  +2 Ta tạo file, đặt tên ab.m có nội dung: function y = ab(x) y = 2./(x + 1) + 1./(x.^2 + 2) ‐ ; Cách thứ hai để biểu diễn hàm tốn học dòng lệnh tạo đối tượng inline từ biểu thức chuỗi Ví dụ ta nhập từ dòng lệnh sau: >>f = inline(‘2./(x + 1) + 1./(x.^2 + 2) ‐ 1’); Ta tính trị hàm x = sau: >>f(2) 6.4.2 Vẽ đồ thị hàm Hàm fplot vẽ đồ thị hàm toán học giá trị cho >>fplot(@(x)[tan(x),sin(x),cos(x)], 2*pi*[-1 -1 1]) 6.4.3 Tìm cực tiểu hàm Cho hàm tốn học biến, ta dùng hàm fminbnd MATLAB để tìm cực tiểu địa phương hàm khoảng cho >>f=inline(ʹ1./((x‐0.3).^2+0.01)+1./(x.^2+0.04)‐6ʹ); >>x = fminbnd(f,0.3,1) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 30 30 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ Hàm fminsearch tương tự hàm fminbnd dùng để tìm cực tiểu địa phương hàm nhiều biến Ta có hàm three_var.m: function b = three_var(v) x = v(1); y = v(2); z = v(3); b = x.^2 + 2.5*sin(y) ‐ z^2*x^2*y^2; Và tìm cực tiểu hàm x = -0.6, y = -1.2; z = 0.135 >>v = [-0.6 -1.2 0.135]; >>a = fminsearch(ʹthree_varʹ,v) 6.4.4 Tìm điểm zero Hàm fzero dùng để tìm điểm khơng hàm biến Ví dụ để tìm giá trị khơng hàm lân cận giá trị -0.2, ta viết: >>f=inline(ʹ1./((x‐0.3).^2+0.01)+1./(x.^2+0.04)‐6ʹ); >>a = fzero(f,-0.2)} Lưu ý: Một số lệnh hàm Matlab dành cho mô tả tín hiệu hệ thống rời rạc: Zeros: tạo ma trận với tồn phần tử có trị Ones: tạo ma trận với tồn phần tử có giá trị Rand: tạo ma trận với phần tử nhận giá trị ngẫu nhiên phân bố khoảng từ đến THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 31 31 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ Randn: tạo ma trận vời phần tử nhận giá trị ngẫu nhiên theo phân bố Gauss có giá trị trung bình 0, phương sai Min: trả giá trị nhỏ ma trận Max: trả giá trị lớn ma trận Fliplr: lộn ngược lại thứ tự phần tử ma trận theo hướng xuất phát từ phải qua trái trở thành tử trái qua phải Plot stem: vẽ đồ thị dãy số, plot để thể dạng liên tục, stem để thễ dạng rời rạc, thường sử dụng hàm steam để vẽ tín hiệu miền n Conv: trả tích chập vector Filter: trả đáp ứng theo thời gian hệ thống đươc mơ tả phương trình sai phân tuyến tính hệ số THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 32 32 ... TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 11 11 TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG CĐ CÔNG THƯƠNG TP.HCM – KHOA ĐIỆN ĐIỆN TỬ THỰC TẬP XỬ LÝ... -pi: .1: pi; >>y = sin(x); >>plot(x,y) >>xlabel(ʹt = to 2piʹ,ʹFontsizeʹ ,16 ) >>ylabel(ʹsin(t)ʹ,ʹFontsizeʹ ,16 ) THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB THỰC TẬP XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB 17 17 TRƯỜNG... ĐIỆN TỬ 4 .1. 3 Toán tử “:” Toán tử “:” toán tử quan trọng MATLAB Nó xuất nhiều dạng khác Biểu thức 1: 10 vector hàng chứa 10 số nguyên từ đến 10 > >1: 10 > >10 0:‐7:50 %tạo dãy số từ 10 0 đến 51, cách

Ngày đăng: 24/10/2019, 11:28

Từ khóa liên quan

Mục lục

  • 2.1 Các phép tính cơ bản trong matlab

  • 2.2 Khai báo biến

  • 2.3 Các lệnh cơ bản thường dùng trong MATLAB

  • 4.1 Các thao tác trên ma trận

    • 4.1.1 Nhập ma trận

    • 4.1.2 Chỉ số

    • 4.1.3 Toán tử “:”

    • 4.1.4 Tạo ma trận bằng hàm có sẵn

    • 4.1.5 Nối ma trận

    • 4.1.6 Xoá hàng và cột

    • 4.1.7 Các lệnh xử lý ma trận

    • 4.2 Vector

    • 4.3 Đa thức

    • 5.1 Các lệnh vẽ

    • 5.2 Tạo hình vẽ

    • 5.3 Kiểu đường vẽ

    • 5.4 Vẽ với hai trục y

    • 5.5 Vẽ đường cong 3-D

    • 5.6 Vẽ nhiều trục toạ độ

    • 5.7 Đặt các thông số cho trục

      • 5.7.1 Giới hạn của trục và chia vạch trên trục

      • 5.8 Đồ hoạ đặc biệt

        • 5.8.1 Khối và vùng

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

  • Đang cập nhật ...

Tài liệu liên quan