1. Trang chủ
  2. » Luận Văn - Báo Cáo

xử lý ảnh trong matlab

83 2K 7

Đ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

Thông tin cơ bản

Định dạng
Số trang 83
Dung lượng 3,54 MB

Nội dung

cho đến các ngành về kinh tế như thống kê, kế toán v.v...Cửa sổ chính làm việc trong Matlab bao gồm 3 cửa sổ chính là: Cửa sổ lệnh Command Window, cửa sổ thư mục – vùng làm việc Current

Trang 1

TỔNG QUAN VỀ CÔNG CỤ MATLAB 2

TÍN HIỆU RỜI RẠC 20

PHÉP BIẾN ĐỔI FOURIER 35

BIỂU DIỄN HỆ THỐNG VÀ TÍN HIỆU RỜI RẠC TRONG MIỀN Z 56

BỘ LỌC SỐ 67

XỬ LÝ ẢNH TRONG MATLAB 74

Trang 2

TỔNG QUAN VỀ CÔNG CỤ MATLAB

1.1 Giới thiệu

MatLab (Matrix Laboratory) là một ngôn ngữ lập trình cấp cao dạng thông dịch, được phát triển bởi MathWorks Matlab được ứng dụng để giải quyết các bài toán khác nhau đặt biệt là các hệ phương trình tuyến tính, phi tuyến và đặc biệt là các bài toán ma trận với kết quả nhanh chóng và chính xác Matlab là một công cụ mạnh và đáp ứng được cho nhiều lĩnh vựng đa dạng như các ngành về kỹ thuật như điện, điện

tử, vật lý, hóa học v.v cho đến các ngành về kinh tế như thống kê, kế toán v.v Cửa sổ chính làm việc trong Matlab bao gồm 3 cửa sổ chính là: Cửa sổ lệnh (Command Window), cửa sổ thư mục – vùng làm việc (Current Directory – Workspace) và cửa sổ chứa tập lệnh đã được sử dụng (Command History)

Matlab cho phép tính toán số, tính toán ma trận, vẽ đồ thị hàm số để biểu diễn thông tin dưới dạng 2D hay 3D Matlab chứa các toolbox, cỏc gói chương trình (thư viện)

sử dụng cho các lĩnh vực rất đa dạng như: xử lý tín hiệu, nhận dạng hệ thống, xử lý

Trang 3

ảnh, mạng nơron, tối ưu hóa v.v… Matlab có thể giao tiếp với các chương trình và các và các ngôn ngữ khác Matlab có thể gọi các hàm được viết bằng C hay Java.

1.2 Sử dụng biến trong matlab

1.2.1 Quy cách đặt tên

Cũng giống như trong các ngôn ngữ lập trình khác, Matlab có những quy định riêng

về cách đặt tên biến:

• Tên biến phải là một từ, không chưa dấu cách, tên biến tối đa là 31 ký tự

• Tên biến phân biệt chữ hoa và chữ thường

• Tên biến bắt đầu bằng chữ cái

Ký tự dấu chấm “.” không được sử dụng để trong đặt tên biến.

Trong Matlab có những biến đặc biệt trong bảng sau:

1.2.2 Véc tơ và matrận

Các bài toán trong Matlab thông thường được quy về việc tính toán và xử lý trên ma trận Các biến, dữ liệu trong Matlab được coi như một ma trận thực hoặc phức Ví

dụ, một giá trị vô hướng được coi là một mà trận có kích thước 1x1, một vector cột

là một chỉ có 1 cột, một véc tơ hàng, hay một chuỗi số là một ma trận chỉ có một hàng Một ma trận có kích thước (m x n) trong Matlab là một ma trận có m hàng và

n cột

Trang 4

Ví dụ, tạo một ma trận trong Matlab:

>> M=[3 4 5 ; 2 1 4]

M =

3 4 5

2 1 4

Như vậy giá trị nhập đã được gán cho các thành phần của ma trận, các phần tử trong

mỗi cột được cách nhau bằng một dấu cách (space) hoặc một dấu phảy, Các hàng được cách nhau bằng dấu “;” Về cỏch đỏnh chỉ số, trong Matlab, các phần tử được

Xâu ký tự cúng có thể được gán vào phần tử của ma trận, tuy nhiên số ký tự trên

mỗi hàng phải bằng nhau

Ví dụ:

>> M=['John','Peter';'David','Joe']

??? Error using ==> vertcat

All rows in the bracketed expression must have the same

Trang 7

M 6x3 144 double array

N 3x3 72 double array

Grand total is 37 elements using 296 bytes

clear: Xúa các biến trong bộ nhớ của Matlab

help: yêu cầu sự giúp đỡ

Matlab cũng cung cấp hàm toán học, các hàm đặc biệt và các thuật toán hữu ich, dưới đây là một số hàm thông dụng nhất:

Round(x), floor(x), fix(x), ceil(x) Các hàm làm tròn

1.4.2 Các toán tử và các hàm thao tác với ma trận

Có thể dựng cỏc hàm sau để tạo các ma trận đặc biệt

Trang 8

zeros(N): Tạo ma trận các phần tử đều bằng 0 có kích thước N

ones(N): Tạo ma trận các phần tử đều bằng 1 có kích thước N

rand(N): Tạo ma trận ngẫu nhiên có kích thước N, các phần tử phân bố

đều

randn(N): Tạo ma trận ngẫu nhiên có kích thước N, các phần tử tuân theo

phân bố chuẩn

magic(N): Tạo ma trận magic (tổng giá trị trong 1 hàng bằng tổng giá trị

trong 1 cột bằng tổng giá trị đường chéo) có kích thước N

eye(N): Tạo ma trận đơn vị

Các thao tác khác

Cộng: X=A+B

Trừ: X=A-B

Nhân: X=A*B (nhân 2 ma trận, số hàng của A phải bằng số hàng của B)

X=A.*B (nhõn cỏc phần tử tương ứng với nhau, 2 ma trận có kích thước bằng nhau)

Chia: X=A/B (khi đó A=X*B) hoặc X=A\B (khi đó B=A*X)

Lũy thừa: X=A^2 (X=A*A), X=A.^2 (lũy thừa các số hạng của A)

Xóa cột: A(:,3)=[] để xóa cột 3 trong ma trận A

Xóa hàng: A(3,:)=[] để xóa hàng 3 trong ma trận A

Các hàm thông dụng với ma trận

Tính kích thước: d=size(A)

Tính định thức: d=det(A)

Tính ma trận nghịch đảo: X=inv(A)

Trang 9

Trong ví dụ trên hàm lớnpace(0,2*pi,30) tạo ra 30 điểm dữ liệu trong đoạn [0:2*pi]

Và tớnh cỏc thành phần của vector y = sin(x) Lệnh plot sẽ nối các điểm này lại.Trong trường hợp lệnh plot không có các tham số cấu hình, Matlab sẽ vẽ đồ thị với nét liền như trên, để cấu hình thêm ta bổ sung thờm cỏc tham số theo định dạng như sau plot(x,y,'tham số) trong đó tham số có thể là:

Tham số Màu sắc Tham số Các điểm Tham số Nối các điểm

Trang 10

Ngoài ra có thể chỉnh sửa cách trình bày đồ thị bằng cách lệnh sau:

grid on/off: thờm/bỏ đường lưới vào đồ thị

box on/off: thờm/bỏ hộp chứa đồ thị

asix on/off: thờm/bỏ trục tọa độ

xlabel('Trục x'): thờm nhãn cho trục x

ylabel('Truc y'): thờm nhãn cho trục y

title('Do thi ham sin'): thêm tiêu đề ở đỉnh cho đồ thị

Để vẽ nhiều đồ thị trên một hình ta có thể sử dụng lệnh plot(x,y,m,n) khi đó đồ thị với tọa độ x,y và đồ thị với tọa độ m,n sẽ được vẽ trên một hình Ngoài ra có thể sử dụng lệnh hold on:

Trang 11

1.5.2 Đồ thị trong không gian ba chiều

Đồ thị trong không gian ba chiều gồm 2 loại chính là đồ thị đường và đồ thị mặt (lưới)

Để vẽ đồ thị đường trong không gian ba chiều ta sử dụng lệnh plot3, khuôn dạng lệnh plot3 như sau: plot3(x,y,z) trong đó x,y,z là các vector hoặc ma trận

Ví dụ:

>> t=linspace(0,6*pi,100);

>> plot3(sin(t),cos(t),t)

Trang 12

Kết quả:

Đối với đồ thị bề mặt và lưới, Matlab định nghĩa bề mặt lưới bằng các điểm theo hướng trục z ở trên đường kẻ ô hình vuông trên mặt phẳng x-y

Bước đầu tiên đưa ra đồ thị lưới của hàm hai biến z=f(x,y), tương ứng với mà trận X

và Y chứa các hàng và các cột lặp đi lặp lại Trong Matlab có hàm meshgrid, với cú pháp [X,Y]=meshgrid(x,y) tạo ra một ma trận X và Y, trong đó ma trân X mà các hàng nó là bản sao của vector x, và ma trận Y cú cỏc cột là bản sao của vector y

Trang 14

Khi đó, để thực hiện nhúm cõu lệnh trong file trên, tại dấu nhắc của cửa sổ lệnh, chỉ việc gõ dothi3D

Khi lập trình trong Matlab chúng ta sử dụng các cấu trúc điều khiển và vòng lặp giống như trong C:

Biểu thức điều kiện: If, else , elseif switch

Vòng lặp: for, while

1.7 Matlab GUI

Matlab GUI là là giao diện hình ảnh của chương trình, chúng bao gồm các nút bấm, các thanh trượt, các cửa sổ, menu v.v được sử dụng để cung cấp cho người dùng một môi trường làm việc đơn giản và thân thiện

1.7.1 Môi trường làm việc

Để bắt đầu, sử dụng lệnh guide

Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển nào cả

GUI with Uicontrols: Hộp thoại GUI với một vài control, Chương trình có thể chạy

ngay

GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các

menu để hiển thị đồ thị

Trang 15

Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.

Khi đó Matlab sẽ tạo ra 2 file mới:

File có phần mở rộng fig chứa nội dung của giao diện

File có phần mở rộng m chứa những đoạn mã liên quan đến giao diện

Còn menu thì quan trọng nhất là menu Tools có:

Run (Ctr + T) : nhấn vào để chạy chương trình mà ta đã viết

Align Object: dùng để làm cho các điều khiển

Grid and Rulers : Hiện thị lưới trợ giúp để vẽ giao diện

Menu Editor : trình này để tạo menu cho điều khiển

Tab Order Editor : sắp xếp Tab order là thứ tự khi ta nhấn phím Tab

Gui Options : Tùy chỉnh khác

1.7.2 Thuộc tính của các điều khiển

Click đúp vào Edit Text bên trái để xuất hiện cửa sổ các thuộc tính của điều khiển

Có thể sắp xếp theo chức năng hoặc theo thứ tự A-Z của tên thuộc tính bằng nút hiện ở gõ bên trái

Ví dụ đối với thuộc tính của editbox

Trang 16

Thuộc tính quan trọng của Edit Box bao gồm:

Tag: đây là thuộc tính giống như Caption trong Visual Basic để đặt tên điều khiển Dựng tờn này có thể thao tác đến các thuộc tính của đối tượng

String : là xõu kớ tự hiện lên Edit Box.

1.7.3 Viết sự kiện cho các điều khiển

Khi nhấn vào nút Push Button sẽ gọi hàm Callback Mọi điều khiển trong Matlab đều có hàm Callback, hàm callback của mỗi điều khiển được gọi phụ thuộc vào từng điều khiển khác nhau Để việt lệnh cho hàm callback, bấm chuột phải, trong hàm này có 2 tham số quan trọng:

hObject : handle của điều khiển của control

handles : là một cấu trúc chứa tất cả các điều khiển và dữ liệu người dùng Dựng cỏi

này để truy suất các điều khiển khác

Ví dụ

disp('Hello')

Trang 17

Chú ý, Matlab là ngôn ngữ lập trình thông dịch vì vậy sau khi sửa mã, không cần biên dịch lại.

Để lấy dữ liệu và thiết lập thuộc tính cho điều khiển ta sử dùng 2 hàm là set và

get, cú pháp như sau:

get(handles.tag_dieu_khien, ‘ten thuoc tinh’);

set(handles.tag_dieu_khien, ‘ten_thuoc_tinh’, gia_tri);

1.7.4 Debug trong Matlab

Khi đã viết xong chương trình hoàn chỉnh, để chạy chương trình có thể bấm nút Play trên thanh công cụ hoặc F5 trong cửa sổ lập trình

Trong trường hợp muốn debug chương trình, ta đặt breakpoint bằng phím F12, rồi chạy chương trình, khi đó tại cửa sổ lệnh của Matlab con trước con trỏ để gõ lệnh sẽ trở thành K>>

Muốn chuyển sang lệnh tiếp theo sử dụng phím tắt F10

Trong quá trình viết chương trình, có thể in biến đang sử dụng ra bằng lệnh msgbox

Trang 18

title('Do thi ham sin va cos')

1.7.6 Điều khiển Toggle – nút bấm 2 trạng thái

Trong hàm callback, để lấy trạng thai của nút bấm, sử dụng hàm get

1.7.7 Điều khiển Slider – thanh trượt

Các thuộc tính cần quan tâm là thuộc tính min, max và sliderstep, trong thuộc tính

sliderstep, ta thay đổi giá trị x để thay đổi bước nhảy trên thay thanh trượt, giá trị x

Trang 19

101

và b =

211

Hướng dẫn giải:

Ax=b vậy x=inv(A)*b

Vẽ đồ thị hàm số y1=sinx.cos2x và hàm số y2=sin(x2) trong [0-2], khoảng chia 0.1

Và biểu diễn hai đồ thị trên cùng một cửa sổ

Trang 20

TÍN HIỆU RỜI RẠC

1.9 Khái niệm về tín hiệu rời rạc và lấy mẫu tín hiệu

Tín hiệu là biểu diễn vật lý của thông tin, tín hiệu nhìn thấy là các sóng ánh sáng mang thông tin tới mắt, các tín hiệu nghe thấy là sự biến đổi áp suất không khí truyền thới tai chúng ta

Về mặt toán học tín hiệu biểu diễn bởi một hàm của một hay nhiều biến số độc lập Trong lĩnh vực xử lý tín hiệu số, chỉ làm việc với các tín hiệu rời rạc

Trong DPS, tín hiệu thời gian rời rạc, được biểu thị bằng một dãy rời rạc và được viết như sau:

x[n]={-3 , 2, 4, -4, 0, 1…} với n là số nguyênTín hiệu tương tự ở đầu vào được chuyển sang dạng số nhờ một hệ biến đổi tương tự

- số Quá trình rời rạc húa cũn gọi là quá trình lấy mẫu tín hiệu

1.10 Các tín hiệu cơ sở

1.10.1.Dãy xung đơn vị

Dãy xung đơn vị hay còn gọi là hàm Delta, có giá trị bằng đơn vị khi đối số = 0 và

có giá trị bằng 0 trong các trường hợp còn lại:

{,0,0,1,0,0,}0

,0

0,

1)(

δ

Dãy xung đơn vị rất quan trọng, nó được sử dụng để xác định đáp ứng xung, với một hệ thống tuyến tính nếu xác định được đáp ứng xung đơn vị thì có thể xác định đượng đáp ứng của hệ thống Bởi vì, một tín hiệu thời gian – rời rạc x[n] bất kỳ có thể được triển khai thành một dãy xung đơn vị thích hợp theo công thức sau:

Ở đây dãy δ[n-k] bằng đơn vị khi n=k và bằng 0 khi n khác k

Trang 21

Trong Matlab ta có thể biểu diễn như sau:

2 0 1 2 1

0

0

, 0

, 1 )

n n

n n n

Hàm delta có giá trị bằng 1 tại n0, như vậy ta có thể tạo trong Matlab, tạo hàm xung đơn vị trên khoảng [n1,n2] ta viết một hàm trong matlab như sau:

Kết quả:

1.10.2.Dãy nhảy bậc đơn vị

Dãy nhảy bậc đơn vị có giá trị bằng đơn vị khi đối số lớn hơn hoặc bằng 0, và bằng

0 khi đối số nhỏ hơn 0 Nó được ký hiệu là u[n] và được biểu diễn toán học như sau:

0 n when 1

n u

Một dãy tín hiệu rời rạc theo thời gian bất kỳ x[n] để có thể khai triển thành một tổng cỏc dóy xung nhảy bậc đơn vị theo công thức:

Trang 23

1.10.3.Dãy tín hiệu hình sin

Dãy tín hiệu hình sin được biểu thị bằng hàm số sin (hoặc cos) Trong Matlab, hàm sin (hoặc cos) được sử dụng để tạo ra dãy tín hiệu này

sin 2

10 cos

sin 2 10 cos

n

nhiễu Gauss: y[n]=x[n]+0.2*w[n]

n=[0:50];

Trang 24

Trong Matlab ta sử dụng hàm exp để tạo ra cỏc dóy e-mũ phức.

Ví dụ với dãy x [ ] n = e0 1πjn trên đoạn [-10:30]

Trang 25

Ta có x [ ] n = aej((ω+2π)n+ϕ) = aejn+ϕ) ejn = aejn+ϕ)

ω là tần số của tín hiệu, ϕ được gọi là pha Với công thức trên ta nhận thấy đối với đối với tín hiệu e-mũ phức tuần hoàn, chỉ cần xột cỏc tần số trong khoảng dài 2π Trong miền tín hiệu rời rạc, tín hiệu e-mũ phức sẽ lặp lại với chu kỳ 2π/ω Xét trong

ví dụ trên: trong khoảng N=2π/0.1π=20 tín hiệu sẽ được lặp lại, tức là x[n]=x[n+20]

1.11 Các phép toán trên tín hiệu

Xử lý tín hiệu số là sử dụng các phép toán tác động lên tín hiệu lối vào để tạo ra một tín hiệu ra Về mặt công thức, ta sử dụng một hàm F, tác động lên tín hiệu đầu vào

để được tín hiệu ở đầu ra

y[n]=F(x[n])Trong DSP, các phép toán cơ sở sau đây được sử dụng khá phổ biến:

1.11.1.Phép dịch chuyển

Phép toán này làm tín hiệu bị dịch đi một lượng bằng k đơn vị trên trục thời gian, tín hiệu có thể bị làm trễ hoặc làm sớm Tức là

y[n]=x[n-m]

Trang 26

Trong Matlab để dịch tín hiệu ta chỉ việc cộng thêm giá trị cho biến thời gian rời

rạc: n=n+giỏ trị dịch, ví dụ cần dịch trễ đi 5 mẫu, ta thực hiện n=n+5

Để thuận tiện, ta tạo một hàm dịch chuyển có tên là sigshift:

Trang 27

k n x k h k

n h k x n

x n h n

Trong Matlab không thể nhân chập hai tín hiệu có chiều dài vô hạn Matlab sử dụng

hàm conv để nhân chập 2 dóy cú chiều dài hữu hạn.

1.12 Phương trình sai phân hệ số hằng

Ta có với kích thích đầu vào x(n) và đáp ứng ra y(n) của hầu hết các hệ thống tuyến tính thỏa mãn một phương trình sai phân tuyến tính sau đây:

k

a

0 0

) (

) (

Trong đó N, M là những số nguyên dương N được gọi là bậc của phương trình sai phân

Biểu diễn trong Matlab, người ta sử dụng một hàm filter, hàm này có định dạng:y=filter(b,a,x), trong đó a, b là các ma trận hệ số trong công thức trên:

Trang 28

1.13 Tín hiệu hai chiều (ảnh số)

1.13.1.Biểu diễn ảnh

Một ảnh được biểu diễn dưới dạng một hàm f(x,y) với (x,y) là tọa độ, và giá trị của f tại (x,y) là cường độ sáng của ảnh tại điểm đó Đối với ảnh số đơn sắc, giá trị f tại (x,y) được gọi là mức xám (gray level) Ảnh màu là tổ hợp của ánh sáng đơn sắc, trong máy tính thường sử dụng hệ màu RGB, khi đó mỗi điểm ảnh được thể hiện trong bộ nhớ máy tính như các giá trị độc lập của các màu đỏ, xanh lá cây và xanh lam

Kết quả của quá trình lấy mẫu và lượng tử hóa là một ma trận số liệu Một ảnh có kích thước M x N là một ma trận có M hàng và N cột, mỗi một giá trị (x,y) trên ma trận gọi là một điểm ảnh (pixel) Chú ý trong một số sách về xử lý ảnh x có giá trị 0-

>M-1 và y có giá trị 0->N-1 Nhưng trong Image processing toolbox giá trị của x là

từ 1->M và y là 1->N

Trang 29

Một ma trận tọa độ ảnh trong Matlab được biểu diễn:

Trang 31

% Hiển thị một ảnh và phóng to 150%

>> imshow('cameraman.tif','InitialMagnification',150);

c Lưu ảnh

Lưu một ảnh từ ma trận I ra một file, sử dụng hàm imwrite(I,’filename’):

>> imwrite (I, 'pout2.png');

1.13.3.Cải thiện sự tương phản của ảnh

Biểu đồ histogram của ảnh I

>> figure, imhist(I)

Cân bằng Histogram

>> I2 = histeq(I);

Hiệu chỉnh Histogram

Trang 32

h x1(n) = {5,6,3,6,8,3} Sử dụng hàm xung đơn vị

i x[n]=2*δ[n-5]-4*δ[n+7] trên đoạn [0:10]

j x(n)=3u((n-3) + δ(n+10) trên đoạn [-3:3]

Hãy sử dụng Matlab để xác định năng lượng của tín hiệu

k 2*δ[n-5]-4*δ[n+7]

l x(n)=3u((n-3) + δ(n+10)

Hướng dẫn giải:

Năng lượng của tín hiệu sum(abs(x.^2))

Bài 2 Cho 2 tín hiệu sau đây:

a x(n) = {0, 1,2,3}

Trang 33

n = min(min(n1), min(n2)): max(max(n1), max(n2));

x1i = zeros(1, length(n)); x2i = x1i;

x1i(find((n>=min(n1)) & (n<=max(n1)) == 1)) = x1; x2i(find((n>=min(n2)) &

Trang 34

Năng lượng của tín hiệu sum(abs(x.^2))

Trang 35

PHÉP BIẾN ĐỔI FOURIER

Phép biến đổi thực chất là phép thay đổi không gian biểu diễn tín hiệu từ không gian ban đầu sang một không gian khác nhằm mục đích trích lọc các đặc tính của tín hiệu

và thuận tiện trong việc xử lý

Trong chương này chúng ta sẽ nghiên cứu một công cụ toán học khác, đó là phép biến đổi Fourier, để chuyển việc biểu diễn tín hiệu từ miền biến số độc lập n sang miền tần số liên tục ω

1.15 Biến đổi Fourier của tín hiệu rời rạc

YKhông gian đặc trưngT

T-1

Trang 36

Ta sử dụng ký hiệu IFT để biểu diễn biến đổi Fourier ngược:

( )

[ X e ] x ( ) n IFT jω =

1.15.2.Các phương pháp thể hiện của X(e jω )

Thể hiện dưới dạng phần thực và phần ảo:

Vì X(ejω) là một hàm biến số phức nên ta có thể biểu diễn X(ejω) trong miền tần số dưới dạng phần thực và phần ảo:

Re )

Thể hiện dưới dạng modul và argument:

X(ejω) là một hàm biến số phức nên ta có thể biểu diễn dưới dạng modul và argument:

[ ( )]

arg

) ( )

( ejω X ejω ej X e jω

Khi đó: ( jω)

e

X được gọi là phổ biên độ của x(n)

Arg[X(ejω)]= gọi là phổ pha của x(n)

Ta cũng có quan hệ giữa phổ pha và phổ biên độ với thành phần thực và ảo của X(ejω)

FT

Trang 37

[ ( ) ] Im [ ( ) ]

Re )

j

j j

e X

e X arctg

e

1.15.3.Tớnh chất quan trọng của X(e jω ):

Tuần hoàn: Biến đổi Fourier của tín hiệu X(ejω) tuần hoàn với chu kỳ 2π

(

) ( Im )

( Im

) ( Re )

( Re

ω ω

ω ω

ω ω

ω ω

j j

j j

j j

j j

e X e

X

e X e

X

e X e

X

e X e

5 0 ( 5

0 )

( )

e e

e e

n x e

subplot(2,2,2);plot(w/pi,real(X)); title('Phan thuc'); grid;

subplot(2,2,3);plot(w/pi,imag(X)); title('Phan ao'); grid;

subplot(2,2,4);plot(w/pi,angle(X)); title('Pha'); grid;

Kết quả:

Trang 38

Ví dụ thực hiện biến đổi Fourier của tín hiệu x(n)={1,2,3,4,5} với n=[-1:3]

j

j x n e x n e e

X

1

) ( )

( )

(

π ω

Từ đây ta có thể biểu diễn trong Matlab như sau:

Trang 39

subplot(2,2,2);plot(k/500,real(X)); title('Phan thuc'); grid;

subplot(2,2,3);plot(k/500,imag(X)); title('Phan ao'); grid;

subplot(2,2,4);plot(k/500,angle(X)); title('Pha'); grid;

x1=rand(1,11);

Ngày đăng: 10/01/2015, 09:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w