1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn môn đại số tuyến tính đề tài ứng dụng fourier vào nén dữ liệu

26 1 0

Đ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

Tiêu đề Ứng dụng Fourier vào nén dữ liệu
Tác giả Trần Quang Hồ, Quốc Nguyễn Minh, Nguyễn Trường Nguyễn, Trần Ngọc Phan, Hoàng Gia Trần, Trương Trung Dương, Đang Đinh Gia
Người hướng dẫn Th.s Nguyễn Hữu Hiệp
Trường học Trường Đại Học Bách Khoa, Đại Học Quốc Gia TPHCM
Chuyên ngành Đại số tuyến tính
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 26
Dung lượng 882,68 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA  BÁO CÁO BÀI TẬP LỚN Môn ĐẠI SỐ TUYẾN TÍNH Đề tài ỨNG DỤNG FOURIER VÀO NÉN DỮ LIỆU GVHD Th s Nguyễn Hữu Hiệp Lớp L17 – Nhóm 11 STT MSSV Họ Tên Nhiệm[.]

Trang 1

ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA



BÁO CÁO BÀI TẬP LỚN

Môn: ĐẠI SỐ TUYẾN TÍNH

Đề tài: ỨNG DỤNG FOURIER VÀO NÉN DỮ LIỆU

GVHD: Th.s Nguyễn Hữu Hiệp Lớp: L17 – Nhóm 11

Thành Phố Hồ Chí Minh, Tháng 4 -2023

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 1

CHƯƠNG 1: MỞ ĐẦU 2

1.1Lí do chọn đề tài: 2

1.2 Yêu cầu: 2

1.3 Nhiệm vụ: 2

CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 3

2.1 Định nghĩa ánh xạ tuyến tính: 3

2.2 Nhân và ảnh của ánh xạ tuyển tính: 3

2.2.1 Định nghĩa nhân của ánh xạ tuyến tính: 3

2.2.2 Định nghĩa ảnh của ánh xạ tuyến tính: 4

2.2.3 Định lí: 4

2.2.4 Mệnh đề: 4

2.2.5 Các bước tìm ảnh của ánh xạ tuyến tính: 4

2.3 Biểu diễn ma trận của ánh xạ tuyến tính: 5

2.3.1 Định nghĩa ma trận của ánh xạ tuyến tính: 5

2.3.2 Định lí: 5

2.3.3 Ma trận chuyển cơ sở, đồng dạng: 5

CHƯƠNG 3: GIỚI THIỆU KHAI TRIỂN FOURIER RỜI RẠC 8

3.1 Một số khái niệm cơ bản: 8

3.2 DFT cho tín hiệu một chiều: 9

3.2.1 Định nghĩa : 9

3.2.2 Một số tính chất của DFT: 9

3.3 DFT hai chiều: 11

3.3.1 Định nghĩa: 11

3.3.2 Tính chất: 11

CHƯƠNG 4: ỨNG DỤNG CỦA KHAI TRIỂN FOURIER RỜI RẠC TRONG NÉN DỮ LIỆU 13

CHƯƠNG 5: GIỚI THIỆU VỀ MATLAB 15

5.1 Tổng quan về Matlab: 15

5.2 Các hàm thường dùng trong Matlab: 15

CHƯƠNG 6: CODE MATLAB VÀ HƯỚNG DẪN ÁP DỤNG PHÉP BIẾN ĐỔI FOURIER VÀO NÉN DỮ LIỆU 16

6.1 Các bước áp dụng phép biến đổi Fourier vào nén dữ liệu: 16

6.2 Code Matlab và diễn giải: 16

6.2.1 Đoạn code: 16

6.2.2 Các hàm được sử dụng: 17

6.2.3 Giải thích code: 18

KẾT LUẬN 19

LỜI CÁM ƠN 20

TÀI LIỆU THAM KHẢO 21

Trang 3

LỜI MỞ ĐẦU

Đại số tuyến tính là một nhánh của toán học nghiên cứu về không gian vector, ma trận

và hệ phương trình tuyến tính Các khái niệm cơ bản trong đại số tuyến tính bao gồmkhông gian vector, ma trận, định thức, vector riêng và giá trị riêng, phân tích giảm sốchiều, phương pháp Gram-Schmidt và Singular Value Decomposition (SVD) Toàn bộnhững kiến thức này đều được áp dụng rộng rãi trong các ngành công nghiệp vànghiên cứu khoa học hiện đại

Như chúng ta đã biết, trong thời đại mà sự phát triển của khoa học và công nghệ cónhững bước tiến rõ rệt, đến gần hơn với nhân loại, các bài toán kỹ thuật trở nên phứctạp và cần nhiều thời gian để nghiên cứu làm rõ hơn, từ đó các ứng dụng tính toánthông minh ngày càng được ứng dụng để giải quyết các bài toán này Matlab là mộtmôi trường tính toán số và lập trình cho phép tính toán số với ma trận, vẽ đồ thị hàm

số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kếtvới những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác Với thư việnToolbox, Matlab cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực

tế và kỹ thuật

Trong bài báo cáo này, dưới sự hướng dẫn của thầy Nguyễn Hữu Hiệp, chúng em có

cơ hội tìm hiểu về phép biến đổi Fourier rời rạc (Discrete Fourier Transform, viết tắt

là DFT), thuật toán biến đổi Fourier nhanh (Fast Fourier Transform, viết tắt là FFT) vàmột trong những ứng dụng quan trọng của nó là nén dữ liệu

1

Trang 4

CHƯƠNG 1: MỞ ĐẦU

1.1 Lí do chọn đề tài:

Hiện nay, mạng Internet nói riêng và những thành tựu trong lĩnh vực công nghệ thôngtin ngày càng phát triển kèm theo đó là nhu cầu của người dùng về tốc độ truyền dữliệu ngày càng tăng Qua đó đòi hỏi chúng ta phải nén dữ liệu để giảm độ dư thừatrong dữ liệu gốc xuống nhưng vẫn cung cấp đầy đủ thông tin Vì lẽ đó mà chúng em

đã quyết định chọn đề tài “Ứng dụng của Fourier vào nén dữ liệu”, các thuật toán

nén dữ liệu sử dụng phép biến đổi Fourier để phân tích các thông tin tần số của tínhiệu và giảm thiểu kích thước của dữ liệu bằng cách loại bỏ các thành phần tần sốkhông quan trọng Ví dụ các thuật toán nén dữ liệu như MP3 và JPEG sử dụng phépbiến đổi Fourier để mã hóa tính hiệu âm thanh và hình ảnh

1.2 Yêu cầu:

- Hiểu các khái niệm cơ bản và các tính chất về phép biến đổi Fourier rời rạc (DiscreteFourier Transform, viết tắt là DFT), thuật toán biến đổi Fourier nhanh (Fast FourierTransform, viết tắt là FFT)

- Nghiên cứu về các ứng dụng của phép biến đổi Fourier đặc biệt là trong việc nén dữliệu để hiểu rõ hơn về tầm quan trọng của thuật toán này trong việc phát triển khoa học kỹ thuật

- Tìm hiểu về các công cụ xử lý tính hiệu số như Matlab để áp dụng các thuật toán phép biến đổi Fourier vào phân tích và nén dữ liệu

1.3 Nhiệm vụ:

- Xây dựng chương trình Matlab

- Nhập các giá trị ban đầu (những đại lượng để cho)

- Thiết lập các phương trình tương ứng, sử dụng các lệnh symbolic để giải hệ

Trang 5

CHƯƠNG 2: CƠ SỞ LÍ THUYẾT

2.1 Định nghĩa ánh xạ tuyến tính:

Cho V và W là hai không gian véctơ trên cùng tập số K

Ánh xạ tuyến tính f :V → W giữa hai không gian véctơ V, W là một ánh xạ

thỏa mãn hai điều kiện sau:

Lưu ý: Đối với ánh xạ tuyến tính, nếu biết được ảnh của một tập sinh của

V thì có thể tính được ảnh của mọi véctơ của V

Cho E ={e1, e2, …, en} là tập sinh của V

Giả sử biết f(e1), f(e2), …, f(en)

2.2 Nhân và ảnh của ánh xạ tuyển tính:

2.2.1 Định nghĩa nhân của ánh xạ tuyến tính:

Cho ánh xạ tuyến tính:

Nhân của ánh xạ tuyến tính

véctơ V, sao cho f(x) = 0

Trang 6

2.2.2 Định nghĩa ảnh của ánh xạ tuyến tính:

Nhân của ánh xạ tuyến tính f là không gian con của V.

Ảnh của ánh xạ tuyến tính f là không gian con của W

dim(Kerf) +dim(Imf) = dim (V)

Trang 7

2.3 Biểu diễn ma trận của ánh xạ tuyến tính:

2.3.1 Định nghĩa ma trận của ánh xạ tuyến tính:

E = {e1 , e 2 , …, e n} là một cơ sở của V

Ma trận cở nxn với cột thứ j là tọa độ của véctơ được gọi là ma trận của f trong cơ sở E

Cho hai cơ sở của V: E và E’

Cho hai cơ sở của W: F và F’

f :V →W

Trang 8

trên tập số K Khi đó

5

Trang 9

Giả sử P là ma trận chuyển cơ sở từ E vào E’.

Q là ma trận chuyển cơ sở từ F vào F’

A là ma trận của ánh xạ tuyến tính f trong cặp cơ sở E và F.

Cho hai cơ sở V: E và E’

Giả sử P là ma trận chuyển cơ sở từ

là ma tr ận của f trong cơ sở E’

Trang 10

6

Trang 11

- Định nghĩa hai ma trận đồng dạng:

Cho hai ma trận vuông A và B cấp n trên cùng trường K A và B được gọi là đồngdạng nếu tồn tại ma trận khả nghịch P sao cho P-1 A P = B

- Hệ quả: Cho ánh xạ tuyến tính: f :V

A là ma trận của ánh xạ tuyến tính f trong cặp cơ sở E, E

B là ma trận của ánh xạ tuyến tính f trong cặp cơ sở F, F

Khi đó A và B là hai ma trận đồng dạng

→ V

7

Trang 12

CHƯƠNG 3: GIỚI THIỆU KHAI TRIỂN FOURIER

RỜI RẠC

Phép biến đổi Fourier rời rạc (DFT), đôi khi còn được gọi là biến đổi Fourier hữu hạn,

là một biến đổi trong giải tích Fourier cho các tín hiệu thời gian rời rạc Đầu vào củabiến đổi này là một chuỗi hữu hạn các số thực hoặc số phức, làm biến đổi này là mộtcông cụ lí tưởng để xử lí thông tin trên các máy tính Đặc biệt, biến đổi này được xửdụng rộng rãi trong xử lí tín hiệu và các ngành liên quan đến phân tích tần số chứatrong một tín hiệu, để giải phương trình đạo hàm riêng và làm các phép tính như tíchchập Biến đổi này có thể được tính nhanh bởi thuật toán biến đổi Fourier nhanh(FFT)

3.1 Một số khái niệm cơ bản:

DFT đối với tín hiệu tương tự:

Với một hàm liên tục một biến F(t), phép biến đổi Fourier F(f) được định nghĩa là:

Và biến đổi ngược

Với: j là căn bậc hai của -1, e biểu thị số mũ tự nhiên = cos( ) + ( )

DFT với tín hiệu rời rạc:

Giả sử một chuỗi phức X(k) với phép lấy mẫu gồm N mẫu: x1,x2,x3,…,xk,…x

N-1 Với x là số phức

Phép biến đổi Fourier của chuỗi này được biểu thị X(k) gồm N mẫu

Phép biến đổi thuận được định nghĩa:

Phép biến đổi ngược:

Với N là độ dài của một chu kì

Chuỗi số thực tương tự phần ảo bằng 0

Trang 13

3.2 DFT cho tín hiệu một chiều:

3.2.1 Định nghĩa :

Biến đổi Fourier 1-D cho tín hiệu thời gian rời rạc f(kT) tính theo công thức

Với f(k) = f(kT)

− 2

WN = gọi là hạt nhân của phép biến đổi

Kí hiệu A(n),∅(n) gọi là phổ khuếch đại và phổ pha của F(n).

Biến đổi ngược DFT

Hàm f(k) là biến đổi ngược DFT của F(n) theo biểu thức

Khi f(k) có thể rút ra từ F(n) và ngược lại, chúng gọi là cặp biến đổi và có dạng f(k) ⇔ F(n)

Mặc dù f(k) được xác định trên miền k ∈ [ 0, N], nó vẫn là tín hiệu tuần hoàn với chu kì NT.

- Tính chất 2: Tính ối xứng được dùng để tính

Tính ối xứng của DFT rất hay ược dùng được dùng để tính được dùng để tính

9

Trang 14

Biểu thức trên biểu diễn tích chập của hai tín hiệu tuần hoàn Chú ý rằng biểu thức chỉ

áp dụng cho hai dãy có chung một chu kỳ, và chiều dài của dãy tính theo biểu thức trên là 2N-1 Kết quả này chứng minh rằng trong DFT, tín hiệu số mẫu lớn hơn N sẽ được biến đổi thành dãy tuần hoàn có chu kỳ N

Trang 15

3.3 DFT hai chiều:

3.3.1 Định nghĩa:

DFT hai chiều của một ảnh NxN { ( , )} là một phép biến đổi tách được và được định nghĩa như sau:

Nếu U và V được ánh xạ vào các vecto sắp xếp thao hạng u,v thì:

Trang 16

- Tính chất 4: Biến đổi nhanh

Vì DFT hai chiều là tách được, biến đổi tương đương với 2N phép DFT một chiều với độ phức tạp tính toán O (N log2 ) theo cách tính FFT Do vậy độ phức tạp tính toán tổng là: O ( 2 log 2 ).

Với ℎ(m,n)c = h (m module N, n module N)

knoncker ta có

(F ⊗ F).H = D.(F ⊗ F)

Với Hlaf ma trận vòng hai lần và Dlaf ma trận đường chéo có các thành phần cho bởi :[ ] +, +≜ ,={ℎ( , )} 0≤ , ≤ −1

Từ các tính chất của phép biến đổi nhanh ta có thể rút ra: Một ma trận vòng khối hai

lần có thể được chéo hóa bằng O( N 2 log 2 N) phép toán Trị riêng của K cho bởi DFT hai chiều của h (m, n) giống như phép tính N F trong cột đầu tiên của K là các thành phần h(m,n) được ánh xạ vào theo thứ tự từ điển.

12

Trang 17

CHƯƠNG 4: ỨNG DỤNG CỦA KHAI TRIỂN

FOURIER RỜI RẠC TRONG NÉN DỮ LIỆU (CỤ THỂ

Trang 18

Hình 3

Vì biến đổi Fourier cho bạn biết những gì đang xảy ra trong hình ảnh của bạn,nên việc mô tả các hoạt động xử lý hình ảnh theo những gì chúng làm với tần số cótrong hình ảnh thường rất thuận tiện Ví dụ, loại bỏ tần số cao làm mờ hình ảnh Loại

bỏ tần số thấp mang lại cho bạn các cạnh Và tăng cường tần số cao trong khi vẫn giữtần số thấp làm sắc nét hình ảnh

Nén ảnh bằng DFT là một cách nén mất dữ liệu Khi chúng ta dùng DFT đểnén dữ liệu thì ta sẽ loại bỏ một số hệ số và khi xuất ta sẽ tái tạo lại bằng cách thay thếcác hệ số đã bị loại bỏ thành các số 0 và thực hiện DFT nghịch đảo Vì thế nên khi nénảnh bằng DFT thì ảnh sẽ bị mờ tùy thuộc vào mức độ chúng ta nén, và đó cũng chính

là hạn chế của DFT Phần sau chúng ta sẽ thấy rõ hơn về việc này

Trang 19

CHƯƠNG 5: GIỚI THIỆU VỀ MATLAB

5.1 Tổng quan về Matlab:

• Matlab (viết tắt của matrix laborary) là một ngôn ngữ lập trình bậc cao bốn thế

hệ, môi trường để tính toán số học, trực quan và lập trình Được phát triển bởiMathWorks

• Matlab cho phép thao tác với ma trận, vẽ biểu đồ với hàm và số liệu, hiện thựcthuật toán, tạo ra giao diện người dùng, bao gồm C,C++, Java và Fortran; phân tích dữliệu, phát triển thuật toán, tạo các kiểu mẫu và ứng dụng

• Matlab có rất nhiều lệnh và hàm toán học nhằm hỗ trợ đắc lực cho bạn trongviệc tính toán, vẽ các hình vẽ, biểu đồ thông dụng và thực thi các phương pháp tính toán

5.2 Các hàm thường dùng trong Matlab:

Lệnh Cú pháp Ý nghĩa

Disp disp(x) Hiển thị nội dung của mảng hoặc chuỗi

disp(‘chuỗi tự’) Syms syms x Khai báo biến x là một biến kí hiệu

Input x=input(‘tên biến’) Hiển thị dấu nhắc lệnh và chờ đầu vào

Plot plot(x,y) Tạo đồ thị xy

Title title(‘tên đồ thị’) Tựa đề đồ thị

Legend legend(‘vị trí’) Thêm chú giải vào đồ thị

Label xlabel(‘tên’) Thêm nhãn vào trục x

yabel(‘tên’) Thêm nhãn vào trục y Double Double(‘tên’) Chuyển đổi số thập phân với độ chính xác kép

15

Trang 20

CHƯƠNG 6: CODE MATLAB VÀ HƯỚNG DẪN

ÁP DỤNG PHÉP BIẾN ĐỔI FOURIER VÀO NÉN

DỮ LIỆU

6.1 Các bước áp dụng phép biến đổi Fourier vào nén dữ liệu:

Bước 1: Đọc ghi file hình ảnh vào

Bước 2: Áp dụng phép biến đổi Fourier 2 chiều vào từng ô trong ma trận

Bước 3: Lấy giá trị tuyệt đối các phần tử và sắp xếp các phần tử

theo chiều giảm dần

Bước 4: Chọn ngưỡng để lọc các giá trị

Bước 5: Tạo ra ma trận lưu giá trị ma trận để thực hiện lọc các chi

tiết để giảm dung lượng file hình

Bước 6: Đối với các giá trị nhỏ hơn giá trị ngưỡng sẽ tự động đặt là 0

Bước 7: Thực hiện phép biến đổi Fourier ngược để khôi phục lại hình

6.2 Code Matlab và diễn giải:

Trang 21

16

Trang 22

Kết quả sau khi mô phỏng:

6.2.2 Các hàm được sử dụng:

1) imread(): Đọc vào 1 file dưới dạng ma trận

2) rgb2gray(img) Chuyển đổi ảnh thành màu đen trắng

3) imagesc(img) Hiển thị các hình ảnh trên các trục đồ thị với giá trị min làmàu đen và giá trị tối đa là màu trắng

4) fft2() Thực hiện phép biển đổi Fourier nhanh 2 chiều đối với hình ảnh.5) sort() Thực hiện sắp xếp dữ liệu

6) abs() Thực hiện lấy giá trị tuyệt đối

7) subplot(m,n,p) Hiển thị lên theo m hàng n cột tính từ vị trí p hiện tại.8) ifft2() Thực hiện phép biến đổi Fourier nhanh 2 chiều ngược

9) imshow() Hiển thị ảnh

Trang 23

6.2.3 Giải thích code:

A=imread( 'z4227721378424_bbc94a333140ad8676df24e3b6f5be37.jpg ' );% đọc file a 9nh thành 1 ma trận và gán vào biế? n A

và gán vào B

%%FFT

%%Fast Fourier Transform

fs=sort(abs(f(:)));

counter=1;

a

9nh

sổ? 0

Trang 24

KẾT LUẬN

Thông qua đề tài này, chúng em đã tìm hiểu về khái niệm và các tính chất của Fourierrời rạc (DFT) - một công cụ quan trọng trong xử lý tín hiệu số, là một phương pháptính toán để biến đổi một tín hiệu thời gian liên tục thành một chuỗi các giá trị tần sốrời rạc và nghiên cứu về Fourier nhanh (FFT) - một thuật toán cho phép chúng ta tínhtoán biến đổi Fourier nhanh hơn so với phương pháp truyền thống, giúp giảm thiểuthời gian tính toán và tăng hiệu suất Ngoài ra, chúng em còn biết được tầm quantrọng của ứng dụng nén dữ liệu của DFT, từ đó nghiên cứu kỹ lưỡng và đưa ra ví dụliên quan bằng sự trợ giúp của phần mềm MatLab Với sự phân công cẩn thận, cốgắng chuẩn bị kiến thức để hoàn thành đề tài sớm nhất có thể, nhóm đã hoàn thànhnhiệm vụ được giao và sử dụng MatLab để minh họa những ví dụ cũng đã cho ra kếtquả như mong muốn Tuy vẫn còn nhiều hạn chế về mặt kiến thức, nhưng cũng nhờquá trình làm việc nhóm, chúng em đã tiếp thu được nhiều bài học kỹ năng bổ ích vàkinh nghiệm cần thiết

Trang 25

LỜI CÁM ƠN

Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến trường Đại học Bách Khoa

- ĐHQG Thành phố Hồ Chí Minh đã cho chúng em cơ hội để tìm hiểu và nghiên cứumôn học “Đại số tuyến tính” Tiếp đó, chúng em xin gửi lời tri ân sâu sắc đến thầyNguyễn Hữu Hiệp - giảng viên môn học “Đại số tuyến tính”, người đã tận tình giảngdạy và đồng hành với chúng em trong suốt học kì vừa qua và cung cấp rất nhiều trithức bổ ích cho nhiều thế hệ sinh viên Bên cạnh đó, qua báo cáo lần này, chúng emhọc hỏi được nhiều kinh nghiệm, kỹ năng và cách thức để cùng nhau làm việc nhómmột cách tối ưu và hiệu quả nhất Do lượng kiến thức của chúng em còn nhiều hạn chế,chưa thực sự hiểu sâu về môn học nên dù có cố gắng hoàn thiện đề tài qua tham khảotài liệu, trao đổi và tiếp thu ý kiến đóng góp nhưng cũng không thể tránh khỏi thiếusót Chúng em rất mong nhận được sự đóng góp từ thầy để từ đó có thể rút kinhnghiệm, hoàn thiện hơn trong những lần làm đề tài sau này

Chúng em xin chân thành cảm ơn !

20

Trang 26

TÀI LIỆU THAM KHẢO

[1] Slide bài giảng thầy Đặng Văn Vinh ( Đại Học Bách Khoa Tp.HCM)

[2] Đặng Văn Vinh ,Giáo trình Đại số tuyến tính, NXB ĐHQG Tp.HCM, 2020

[3] Blog tại Matlab-Mathworks, (13/5/2023), Code,

Truy cập từ: https://www.mathworks.com/products/matlab.html

Ngày đăng: 22/05/2023, 18:24

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w