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

23 4 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 và Ứng dụng Fourier vào Nén Dữ liệu
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 23
Dung lượng 1 MB

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

Nội dung

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ức tạp và cần nhiều

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

3 2113198 Nguyễn Minh Đông

4 2113258 Nguyễn Trường Giang

5 2210945 Nguyễn Trần Ngọc Hân

6 2210946 Phan Hoàng Gia Hân

7 2211020 Trần Trương Trung Hiếu

8 2113454 Dương Đang Huy

9 2111281 Đinh Gia Huy

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 1

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

1.1 Lí 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ồm khô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ức tạ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án thô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ột mô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ết vớ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ện Toolbox, 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

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ông tin 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ừa trong 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ín hiệ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ép biế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 (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)

- 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ệ phương trình

- Vẽ hình, sử dụng các lệnh trong Matlab để vẽ

Trang 5

: W

f V →

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 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 là ánh xạ tuyến tính

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:

  | ( ) =0

= x V f x Kerf

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:

Khi đó tồn tại duy nhất một ma trận AE,F cở mxn sao cho:

với E và F là hai cơ sở trong V và W tương ứng

tồn tại duy nhất một ánh xạ tuyến tính thỏa

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

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

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

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

f KK

W V

f : →

,[ f x ( )]F = AE F[ ] x E

f : →

Trang 8

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

Khi đó là ma trận của f trong cặp cơ sở E’ và F’.

Trường hợp đặc biệt:

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

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

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

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

f V

1

P AP

Trang 9

- Đị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à đồng dạ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:

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 :

f V

Trang 10

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ủa biế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ột cô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ứa trong 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ích chậ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,…xN-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 11

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

Hay chúng ta có thể viết gọn lại dưới dạng

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

WN = 𝑒−𝑗2𝜋𝑁 gọi là hạt nhân của phép biến đổi

Tổng quát F(n) có dạng F(n) = A(n)𝑒𝑗∅(𝑛)

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

𝐹3(𝑛) = 𝑎𝐹1(𝑛) + 𝑏𝐹2(𝑛) Với a,b là hằng số

Trang 12

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 14

- 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 (𝑁2log2 𝑁)

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

Trang 15

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

FOURIER RỜI RẠC TRONG NÉN DỮ LIỆU

Hình 1 Hình 2

Mặt khác, nếu bạn có hình ảnh của một hàng rào picket (hình 2), thì các giá trị của các pixel sẽ thay đổi liên tục khi bạn đi từ trái sang phải

Vì vậy, trong miền Fourier, bạn có tần số cao theo hướng X, nhưng không theo hướng

Y

Cuối cùng, nếu bạn có hình ảnh của một bàn cờ (hình 3), thì các giá trị pixel thay đổi rất nhiều theo cả hai hướng Do đó, biến đổi Fourier của hình ảnh sẽ có tần số cao ở cả

X và Y

Trang 16

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 17

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ởi MathWorks

• 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ực thuậ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 trong việ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:

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’)

yabel(‘tên’)

Thêm nhãn vào trục x 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

Trang 18

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 19

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

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

màu đen và giá trị tối đa là màu trắng

Trang 20

6.2.3 Giải thích code:

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

B=rgb2gray(A); % chuyển đổi ảnh ban đầu thành ảnh trắng đen và gán vào B

imagesc(A) % hiển thị hình ảnh trên các trục đồ thị với 2 màu đen trắng

%%FFT

f=fft2(B); %tính toán theo fourier

%%Fast Fourier Transform

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

% sắp xếp lại các giá trị của hệ số fourier về ma trận n hàng 1 cột theo thứ tự từ giá trị lớn nhất đến giá trị nhỏ nhất

counter=1;

for keep=[.80 5 02 005]; % giữ lại x% của ảnh gốc

subplot(2,2,counter) % hiển thị trên 1 bảng 2 hàng 2 cột và couter

là vị trí của đồ thị hiện tại trong lưới đồ thị, đếm từ trái sang phải, từ trên xuống dưới

T = fs(floor((1-keep)*length(fs))); % loại bỏ thông tin tấm ảnh

ind=abs(f)>T; % tạo ma trận mới cùng kích cỡ với ma trận f chỉ có

số 0 và 1 nếu độ lớn hệ số fourier bé hơn thresh là số 0 và lớn hơn là số 1

A1=f.*ind; % lấy ma trận C nhân ma trận ind sẽ loại bỏ hết số 0

A2 = ifft2(A1) % nén tấm ảnh bằng cách fft ngược

imshow(A2,[]) % tái tạo lại ảnh

title([ '' ,num2str(keep*100), '%' ], 'Fontsize' ,12) % tạo tiêu đề cho ảnh xuất ra

counter = counter+1 % Tăng giá trị counter để hiển thị hình được nén ở 4 vị trí 1, 2, 3, 4 ứng theo thứ từ từ trái qua phải, từ trên xuống dưới

end

Trang 21

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 Fourier rờ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áp tí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ính toán biến đổi Fourier nhanh hơn so với phương pháp truyền thống, giúp giảm thiểu thờ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 quan trọ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ành nhiệm vụ được giao và sử dụng MatLab để minh họa những ví dụ cũng đã cho ra kết quả 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 22

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ứu mô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ầy Nguyễ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ảng dạ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 tri thứ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 em họ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óm mộ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ảo tà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ếu sót Chúng em rất mong nhận được sự đóng góp từ thầy để từ đó có thể rút kinh nghiệ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 !

Ngày đăng: 10/05/2023, 15:38

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