Khi sử dụng phần mềm này người dùng có thể tự đóng gói rồi kế thừa và tái sử dụng các thiết kế trước đó, nó còn cho phép người dùng thiết kế phần mềm thông qua các câu lệnh, dễ dàng môđu
Trang 1Mục lục
Lời nói đầu 2
Chương I: Giới thiệu chung về Matlab 3
1 Khái niệm Matlab 3
2 Hệ thống của Matlab 3
3 Chế độ làm việc 4
3.1 Làm việc ở chế độ hội thoại ( command window ) 4
3.2 Làm việc ở chế độ viết chương trình 4
4 Một số khái niệm cơ bản 4
4.1 Một số phím chuyên dụng và lệnh thông dụng 4
4.2 Câu lệnh và biến 5
4.3 Một số phếp toán trong Matlab 5
Chương II Bài thực hành 6
2.1 Khái niệm phép biến đổi Z 6
2.2 Một số lệnh 6
2.3 Bài tập thực hành 7
Trang 2Tài liệu tham khảo 8
Lời Mở Đầu
Xử lý số tín hiệu là môn học nghiên cứu về các phương trình toán học, các giải thuật và các tính toán dựa trên phương pháp tính gần đúng cho các tín
Trang 3các thông tin như phân tích, tổng hợp, mã hóa đặc biệi là ứng dụng biến đổi tín hiệu sang dạng mới phù hợp hơn Nội dung môn học xử lý tín hiệu số được giảng dạy tại khoa Công nghệ thông tin trường Đại học sư phạm Hà Nội 2, chủ yếu bao gồm :
tín hiệu số và hệ thống số
phép biến đổi Z
Hiện nay có rất nhiều các công cụ phần mềm tiện ích rất mạnh để hỗ trợ tính toán Một trong số đó là MATLAB của MathWorks Nó là gói phần mềm có thể dễ dàng kiếm được ở Việt Nam vào thời điểm hiện nay Khi sử dụng phần mềm này người dùng có thể tự đóng gói rồi kế thừa và tái sử dụng các thiết kế trước đó, nó còn cho phép người dùng thiết kế phần mềm thông qua các câu lệnh, dễ dàng môđun hoá dưới dạng các kịch bản và các hàm để có thể sử dụng Để hỗ trợ thêm cho việc ứng dụng các ngôn ngữ để giải quyết các bài toán đồng thời giúp sinh viên hiểu sâu hơn về lý thuyết của môn học, chúng em đã biên soạn bài thực hành này nhằm thực hiện phép biến đổi Z và vÏ xung tÝn hiÖu lµ mét phÇn nhá trong m«n xö lý tÝn hiÖu sè,
Trang 4do Th.s L-u ThÞ BÝch H-¬ng trùc tiÕp gi¶ng d¹y vµ h-íng dÉn.Vì thời gian
có hạn và trình độ còn hạn chế nên bài báo cáo không tránh khỏi sai sót, thiếu sự chi tiết, chúng em rất mong nhận được sự xem xét đóng góp ý kiến, chỉ bảo của cô và các bạn để bài thực hiện được hoàn thiện hơn Em xin chân thành cảm ơn!
Trang 6
Chương 1:
Giới thiệu chung về matlab 1.1 Khái niệm Matlab
Matlab là một phần mềm ứng dụng chạy trong môi trường Windows
do hãng Mathworks sản xuất và cung cấp, là ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài toán về kỹ thuật Nó tích hợp các công
cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô phỏng trong một môi trường rất dễ sử dụng Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau:
+ Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường
+ Cho phép lập trình tạo ra những ứng dụng mới
+ Cho phép mô phỏng các mô hình thực tế
+ Phân tích khảo sát và hiển thị dữ liệu
+ Với phần mềm đồ họa cực nhanh
Trang 7+ Cho phép phát triển, giao tiếp với một số phần mềm khác như C++, Fortran
Matlab la viết tắt của Matrix Laboratory, ban đầu được viết chỉ để phục
vụ cho việc tính toán ma trận Qua thời gian dài nghiên cứu phát triển nó đã được phát triển thành một công cụ hữu ích, một ngôn ngữ kỹ thuật Đặc biệt trong môi trương đại học nó là công cụ chuẩn cho các khóa học mở đầu và cao cấp về toán học, khoa học kỹ thuật, và ứng dụng trong nhiều lĩnh vực khác
1.2 Hệ thống của Matlab
Gồm 5 phần:
• Môi trường phát triển: Là một tập hợp các công cụ, phần lớn trong chúng là các giao diện đồ hoạ, giúp người dùng sử dụng các câu lệnh và các hàm của MATLAB
• Thư viện các hàm toán học: Là một tập hợp các hàm toán học bao gồm từ các hàm cơ bản như sin, cosin, các phép tính đại số phức đến các
Trang 8hàm phức tạp như tìm ma trận đảo, tìm ma trận riêng, hàm Bessel và biến đổi Fourier nhanh (Fast Fourier Transform – FFT)
• Ngôn ngữ lập trình: Là một ngôn ngữ bậc cao liên quan đến ma trận
và mảng Trong MATLAB có đầy đủ những đặc trưng của một ngôn ngữ lập trình bao gồm các lệnh rẽ nhánh, các hàm, cấu trúc dữ liệu, nhập/xuất dữ liệu, và các đặc tính liên quan đến lập trình hướng đối tượng (object-oriented programming)
• Đồ hoạ: Là một tập hợp các công cụ để biểu diễn ma trận và vector bằng đồ hoạ Bên cạnh các công cụ ở mức thấp để thể hiện dữ liệu dạng 2 chiều và 3 chiều, xử lý hình ảnh tĩnh, ảnh động còn có các công cụ ở mức cao dùng để tạo ra các biểu diễn đồ hoạ theo ý đồ của người sử dụng cũng như tạo ra các giao diện đồ hoạ người sử dụng
• Giao diÖn ch-¬ng tr×nh øng dông Matlab API (Application Program Interface): §©y lµ mét th- viÖn cho phÐp b¹n viÕt c¸c ch-¬ng tr×nh C vµ Fortran t-¬ng thÝch víi Matlab
1.3 Chế độ làm việc
Trang 91.3.1 Làm việc ở chế độ hội thoại (command window)
- Tại dấu mời >> gõ dòng lệnh, dòng lệnh sẽ đ-ợc thực hiện ngay lập
tức sau khi nhấn phím Enter Kết quả sẽ đ-ợc đ-a ra cửa sổ lệnh hoặc cửa
sổ đồ hoạ Nếu có lỗi, lỗi sẽ đ-ợc ghi ngay tại cửa sổ lệnh
- Qui tắc viết dòng lệnh:
+ Trên 1 dòng có thể viết nhiều lệnh, các lệnh đ-ợc phân cách bởi dấu ',' hoặc ';' Nếu kết quả lệnh trả về giá trị số và kết thúc bởi dấu ',' kết quả
sẽ đ-ợc in trên cửa sổ lệnh, còn nếu kết thúc bởi dấu ';' kết quả sẽ không
đ-ợc in ra Với các lệnh không trả về biến nào, dấu phân cách lệnh ',' và ';' là nh- nhau
+ Khi lệnh quá dài, hoặc muốn viết trên nhiều dòng lệnh dùng dấu
để matlab nhận dòng tiềp theo
- Chỉ nên sử dụng chế độ hội thoại khi giải bài toán có cấu trúc đơn giản Còn với bài toán có cấu trúc phức tạp nên sử dụng chế độ lập trình
1.3.2 Làm vệc ở chế độ viết ch-ơng trình
- Tại cửa sổ lệnh (Command Window) chọn File menu New file để vào chế độ soạn thảo viết ch-ơng trình Hoặc mở m-file có sẵn để sửa,
Trang 10m-chọn File menu Open m-chọn m-file cần sửa, hoặc viết tại cửa sổ lệnh dòng lệnh edit filename
- Chạy file ch-ơng trình đã soạn thảo: Có 3 cách
+Chạy ngay tại cửa sổ soạn thảo: Tool menu Run , chỉ dùng đ-ợc khi file đ-ợc l-u (Save) vào th- mục hiện tại (current path)
+Chạy trong cửa sổ lệnh: >>edit tên_m_file +Chạy trong cửa sổ lệnh: File menu Run Script viết tên file, hoặc chọn Browse để tìm m-file cần chạy
1.4 Một số khỏi niệm cơ bản
1.4.1 Một số phớm chuyờn dụng và lệnh thụng dụng
1.4.1.1 Cỏc phớm thụng dụng
- phớm hoặc Ctrl + P : gọi lại cỏc lệnh đó thực hiện trước đú
- phớm hoặc Ctrl + n: gọi lại lệnh vừa thực hiện trước đú
- phớm hoặc Ctrl + f: chuyển con trỏ sang bờn phải một ký tự
- phớm hoặc Ctrl + b: chuyển con trỏ sang trỏi một ký tự
Trang 11- Dấu ” ; ” dùng để kết thúcc một biểu thức hoặc câu lệnh mà không hiển thị kết quả ra màn hình
- : nhảy xuống dòng dưới
1.4.1.2 Các lệnh thông dụng hệ thống
- Ctrl + C: dừng chương trình đang thực hiện
- Clc: lệnh xóa màn hình
- Clf: lệnh xóa màn hình đồ họa
- input: lệnh nhập dữ liệu vào từ bàn phím
- help: lệnh cho phép xem phần trợ giúp
- Dòng lệnh dài: nếu dòng lệnh dài quá dùng . để chuyển xuống dòng dưới
1.4.2 Câu lệnh và biến
Các lệnh Matlab thường có dạng:
tên biến= biểu thức hoặc đơn giản: biểu thức
Trang 12Các biểu thức được cấu thành từ các toán tử và các ký tự đặc biệt khác, từ các hàm, và các tên biến Nếu tên biến và dấu = bị bỏ qua thì một biến có tên là ans được tự động tạo ra Một câu lệnh được kết thúc bình thường với ký tự sang dòng hay phím enter Tuy nhiên, nếu ký tự cuối cùng của câu lệnh là dấu “ ; ” thì việc in ra kết quả được hủy, nhưng lệnh vẫn được thực hiện
Matlab là ngôn ngữ nhạy cảm nó phân biệt chữ thường và chữ hoa, bởi vậy a và A không phải là tên của cùng một biến
1.4.3 Một số phép toán trong Matlab
Phép cộng: + Phép trừ: - Phép nhân: * Chia phải \ Chia trái : / Lũy thừa : ^ Phép gán : =
Trang 14Chương 2:
Xử lý ảnh mờ trong Matlab 2.1 Thế nào là làm mờ ?
2.1.1 Nguyên nhân của sự mờ
- Sự làm mờ hay sự phai nhạt của một ảnh có thể gây ra bởi nhiều tác
nhân :
+ Chuyển động trong khi capture ảnh - bởi camera hoặc khi thời gian lộ sáng nhiều được sử dụng - bởi vật
Trang 15+ Ngoài vùng tiêu cự của ống kính , sử dụng một ống kính có góc
mở rộng , sự hỗn loạn của môi trường , thời gian lộ sáng ngắn … sẽ làm giảm số lượng phôtôn được bắt giữ (captured)
2.1.2 Các chế độ chống mờ ảnh
- Một ảnh bị mờ hay bị phai nhạt có thể được mô tả vắn tắt bởi phương trình g=Hf+n trong đó
+ g : Ảnh bị mờ + H : Tác nhân làm méo cũng được gọi là PSF + f : Ảnh gốc
+ n : Nhiễu phụ , được tạo ra trong quá trình nhận ảnh , nó làm hỏng ảnh
Chú ý : Ảnh f thực tế không tồn tại Ảnh này đại diện cho bức ảnh mà ta
có nếu tình trạng thu nhận ảnh là hoàn hảo
- Tầm quan trọng của PSF: Dựa trên chế độ này , tác vụ chính của
việc chống làm mờ là Deconvolve ảnh bị mờ với PSF Để minh hoạ , ví dụ này sẽ lấy 3 ảnh không bị mờ và cố ý làm mờ chúng bằng cách convolve nó
Trang 16với PSF Ví dụ sử dụng hàm fspecial để tạo một PSF mô phỏng một chuyển động mờ , chỉ ra chiều dài của mờ tính bằng pixel ( LEN=31 ) và góc mờ tính theo độ ( THETA=11) Một khi PSF được tạo , ví dụ sử dụng hàm
imfilter để convolve PSF với ảnh gốc I để tạo ảnh bị làm mờ Blurred
figure; imshow(Blurred); title('Blurred Image');
2.2 Sử dụng các hàm khôi phục ảnh mờ
- Toolbox xử lý ảnh của Matlab gồm có 4 hàm khôi phục ảnh mờ bao gồm :
+deconvwnr : Sủ dụng bộ lọc Wiener
Trang 17+ deconvreg : Sử dụng bộ lọc được quy tắc hoá + deconvlucy : Sử dụng giải thuật Lucy-Richardson
+ đeconvblind : Sử dụng giải thuật blind deconvolution
- Tất cả những hàm này chấp nhận một PSF và một ảnh bị mờ như là các tham số chính của nó Với hai hàm đầu tiên , ta cung cấp một số thông tin về nhiễu để giảm sự khuếch đại nhiễu đến mức có thể trong quá trình khôi phục
- Hàm deconvlucy thi hành một cách nhanh chóng giải thuật Richardson Hàm này thực hiện nhiều vòng lặp , sử dụng kĩ thuật tối ưu và thống kê Poisson Với hàm này , ta không cần phải cung cấp thông tin về nhiễu phụ trong ảnh bị “bẩn”
Lucy Hàm deconvblind thi hành giải thuật blind deconvolution mà không cần nhận ra PSF Khi ta gọi hàm deconvblind , ta truyền một tham số như là gía trị đoán biết ban đầu ở PSF Hàm deconvblind trả lại một PSF đã được khôi phục để khôi phục ảnh Sự thi hành sử dụng cùng chế độ suy giảm và lặp như hàm deconvlucy
Trang 18Chú ý : Ta có thể cần phải thi hành nhiều quá trình khử mờ lặp đi lặp lại ,
mỗi lần thay đổi tham số truyền vào hàm khử mờ cho tới khi thu được một ảnh gần xấp xỉ với ảnh gốc
- Để tránh bị rung động trong ảnh được khử nhiễu , ta có thể sử dụng hàm edgetaper để tiền xử lý ảnh trước khi truyền nó cho hàm khử mờ
Trang 192.3.2 Khử mờ với bộ lọc được quy tắc hoá
- Sử dụng hàm deconvreg để khử mờ một ảnh sử dụng bộ lọc được quy tắc hoá Một bộ lọc kiểu này có thể được sử dụng hiệu quả khi thông tin về nhiễu phụ được biết một cách hạn chế
2.3.3 Khử mờ với giải thuật Lucy- Richardson
- Sử dụng hàm deconvlucy để khử mờ một ảnh bằng cách sử dụng giải thuật Lucy-Richardson Hàm này có thể được sử dụng hiệu quả khi biết được hàm PSF nhưng biết ít về nhiễu tác động phụ lên ảnh
- Hàm deconvlucy thi hành vài sự điều hợp tới giải thuật Richardson Sử dụng những điều hợp này ta có thể :
Trang 20Lucy-+ Giảm tác động của sự mở rộng nhiễu trên một ảnh khôi phục + Giải thích được tính không đồng nhất của chất lượng ảnh + Điều khiển camera đọc hết nhiễu nền
+ Cải thiện độ phân giải của ảnh phục hồi bằng cách lấy mẫu phụ
2.3.4 Sử dụng giải thuật trộn deconvolution
- Sử dụng hàm deconvblind để khử mờ một ảnh Giải thuật này có thể được sử dụng hiệu quả khi không có thông tin về mờ hoặc nhiễu được biết Hàm deconvblind khôi phục ảnh và PSF đồng thời , sử dụng một quá trình lặp tương tự như giải thuật Lucy-Richardson
Trang 21- Hàm deconvblind chỉ giống như hàm deconvlucy , thi hành một vài sự điều hợp tới giải thuật Lucy-Richardson
- Các bước khử mờ:
+ Đọc một ảnh vào không gian làm việc + Tạo hàm PSF để làm mờ ảnh
+ Tạo mờ trên ảnh + Khử mờ ảnh , tạo một sự ước lượng ban đầu cho kích thước của PSF
2.2 Chương trình minh họa
Trang 23Tài liệu tham khảo