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 0 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

ĐẠ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[.]

ĐẠ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 2210647 2210671 2113198 2113258 2210945 2210946 2211020 2113454 2111281 Họ 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 Tên Đạo Đạt Đông Giang Hân Hân Hiếu Huy Huy Thành Phố Hồ Chí Minh, Tháng -2023 Nhiệm Vụ MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG 1: MỞ ĐẦU 1.1 Lí chọn đề tài: 1.2 Yêu cầu: 1.3 Nhiệm vụ: CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 2.1 Định nghĩa ánh xạ tuyến tính: 2.2 Nhân ảnh ánh xạ tuyển tính: 2.2.1 Định nghĩa nhân ánh xạ tuyến tính: 2.2.2 Định nghĩa ảnh ánh xạ tuyến tính: 2.2.3 Định lí: 2.2.4 Mệnh đề: 2.2.5 Các bước tìm ảnh ánh xạ tuyến tính: 2.3 Biểu diễn ma trận ánh xạ tuyến tính: 2.3.1 Định nghĩa ma trận ánh xạ tuyến tính: 2.3.2 Định lí: 2.3.3 Ma trận chuyển sở, đồng dạng: CHƯƠNG 3: GIỚI THIỆU KHAI TRIỂN FOURIER RỜI RẠC 3.1 Một số khái niệm bản: 3.2 DFT cho tín hiệu chiều: 3.2.1 Định nghĩa : 3.2.2 Một số tính chất DFT: 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 Matlab: 15 5.2 Các hàm thường dùng 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 liệu: 16 6.2 Code Matlab diễn giải: 16 6.2.1 Đoạn code: 16 6.2.2 Các hàm 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 LỜI MỞ ĐẦU Đại số tuyến tính nhánh tốn học nghiên cứu khơng gian vector, ma trận hệ phương trình tuyến tính Các khái niệm đại số tuyến tính bao gồm không gian vector, ma trận, định thức, vector riêng giá trị riêng, phân tích giảm số chiều, phương pháp Gram-Schmidt Singular Value Decomposition (SVD) Toàn kiến thức áp dụng rộng rãi ngành công nghiệp nghiên cứu khoa học đại Như biết, thời đại mà phát triển khoa học cơng nghệ có bước tiến rõ rệt, đến gần với nhân loại, toán kỹ thuật trở nên phức tạp cần nhiều thời gian để nghiên cứu làm rõ hơn, từ ứng dụng tính tốn thơng minh ngày ứng dụng để giải tốn Matlab mơi trường tính tốn số lập trình 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 Trong báo cáo này, hướng dẫn thầy Nguyễn Hữu Hiệp, chúng em có hội tìm hiểu phép biến đổi Fourier rời rạc (Discrete Fourier Transform, viết tắt DFT), thuật toán biến đổi Fourier nhanh (Fast Fourier Transform, viết tắt FFT) ứng dụng quan trọng nén liệu CHƯƠNG 1: MỞ ĐẦU 1.1 Lí chọn đề tài: Hiện nay, mạng Internet nói riêng thành tựu lĩnh vực công nghệ thông tin ngày phát triển kèm theo nhu cầu người dùng tốc độ truyền liệu ngày tăng Qua địi hỏi phải nén liệu để giảm độ dư thừa liệu gốc xuống cung cấp đầy đủ thông tin Vì lẽ mà chúng em định chọn đề tài “Ứng dụng Fourier vào nén liệu”, thuật toán nén liệu sử dụng phép biến đổi Fourier để phân tích thơng tin tần số tín hiệu giảm thiểu kích thước liệu cách loại bỏ thành phần tần số khơng quan trọng Ví dụ thuật tốn nén liệu MP3 JPEG sử dụng phép biến đổi Fourier để mã hóa tính hiệu âm hình ảnh 1.2 Yêu cầu: - Hiểu khái niệm tính chất phép biến đổi Fourier rời rạc (Discrete Fourier Transform, viết tắt DFT), thuật toán biến đổi Fourier nhanh (Fast Fourier Transform, viết tắt FFT) - Nghiên cứu ứng dụng phép biến đổi Fourier đặc biệt việc nén liệu để hiểu rõ tầm quan trọng thuật toán việc phát triển khoa học kỹ thuật - Tìm hiểu cơng cụ xử lý tính hiệu số Matlab để áp dụng thuật tốn phép biến đổi Fourier vào phân tích nén liệu 1.3 Nhiệm vụ: - Xây dựng chương trình Matlab - Nhập giá trị ban đầu (những đại lượng để cho) - Thiết lập phương trình tương ứng, sử dụng lệnh symbolic để giải hệ phương trình - Vẽ hình, sử dụng lệnh Matlab để vẽ CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 2.1 Định nghĩa ánh xạ tuyến tính: Cho V W hai không gian véctơ tập số K Ánh xạ tuyến tính f :V → W hai không gian véctơ V, W ánh xạ thỏa mãn hai điều kiện sau: ( v , v V ) f ( v1 + v2 ) = f ( v1 ) + f ( v2 ) K , v V ) f ( v ) = f ( v) ( Lưu ý: Đối với ánh xạ tuyến tính, biết ảnh tập sinh V tính ảnh véctơ V Cho f : V → W ánh xạ tuyến tính Cho E ={e1, e2, …, en} tập sinh V Giả sử biết f(e1), f(e2), …, f(en) x V x= 1e1 + e2 f(x)=f( e + + n en + e 11 f ( x ) = f ( e ) + f (e f(x)= 11 f(e)+ 2 2 f(e ) + + + e n n )+ +f( e + n f(e n 2.2 Nhân ảnh ánh xạ tuyển tính: 2.2.1 Định nghĩa nhân ánh xạ tuyến tính: Cho ánh xạ tuyến tính: Nhân ánh xạ tuyến tính V →W f tập hợp tất vectơ x không gian véctơ V, cho f(x) = Kerf = x V | f ( x) = ) n n ) ) 2.2.2 Định nghĩa ảnh ánh xạ tuyến tính: :V →W Cho ánh xạ tuyến tính: f tập hợp tất phần tử y Ảnh ánh xạ tuyến tính x V khơng để y = f(x) gian véctơ W cho tồn Im f = y W| x V : y = f ( x) 2.2.3 Định lí: Cho f :V →W ánh xạ tuyến tính: • Nhân ánh xạ tuyến tính f khơng gian V • Ảnh ánh xạ tuyến tính f khơng gian W • dim(Kerf) +dim(Imf) = dim (V) 2.2.4 Mệnh đề: Ảnh ánh xạ tuyến tính khơng gian sinh ảnh tập sinh V 2.2.5 Các bước tìm ảnh ánh xạ tuyến tính: E = { e1 , e2 , , en} f ( en ) − Chọn tập sinh V là: − Tìm: f ( e1 ), f ( e2 ), , − Im f = f ( e1 ), f ( e2 ), , f ( en ) 2.3 Biểu diễn ma trận ánh xạ tuyến tính: 2.3.1 Định nghĩa ma trận ánh xạ tuyến tính: f :V →W Cho E F ánh xạ tuyến tính: = {e1, e2, …, en} sở V = {f1, f2, …, fm} sở W sở F Ma trận cở mxn với cột thứ j tọa độ véctơ gọi ma trận f cặp sở E F = [ f ( e )] [ f ( e )] [ A E,F E F F f :V →V Cho ánh xạ tuyến tính: = {e1, e2, …, en} sở V f (e j ) Ma trận cở nxn với cột thứ j tọa độ véctơ gọi ma trận f sở E = A [ f ( e )] E,E [ f ( e )] E sở E [ f ( e )] E n 2.3.2 Định lí: o Cho ánh xạ tuyến tính: f :V →W Khi tồn ma trận AE,F cở mxn cho: A [ f ( x )] [ x] E ,F E với E F hai sở V W tương ứng A=(a ) o Cho ma trận m ij tồn ánh xạ tuyến tính thỏa =A [ f ( x )] F E,F 2.3.3 Ma trận chuyển sở, đồng dạng: Cho ánh xạ tuyến tính: f :V →W Cho hai sở V: E E’ n Cho hai sở W: F F’ tập số K Khi f:K n m →K Giả sử P ma trận chuyển sở từ E vào E’ Q ma trận chuyển sở từ F vào F’ A ma trận ánh xạ tuyến tính f cặp sở E F [ f ( x )] =A EF F [ x Q [ f ( x )] F ' = AEF P [ x ]E ' [ f ( x )] F ' = Q −1A EF P [ x ]E ' Khi Q −1 A ’ ’ P ma trận f cặp sở E F EF Trường hợp đặc biệt: f :V → V Cho ánh xạ tuyến tính: Cho hai sở V: E E’ Giả sử P ma trận chuyển sở từ E vào E’za A ma trận ánh xạ tuyến tính f sở E [ f ( x )] =P −1 AP [ x ] ' E Khi −1 A P P ma tr ận f sở E’ ' E 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 cịn gọi biến đổi Fourier hữu hạn, biến đổi giải tích Fourier cho tín hiệu thời gian rời rạc Đầu vào biến đổi chuỗi hữu hạn số thực số phức, làm biến đổi cơng cụ lí tưởng để xử lí thơng tin máy tính Đặc biệt, biến đổi xử dụng rộng rãi xử lí tín hiệu ngành liên quan đến phân tích tần số chứa tín hiệu, để giải phương trình đạo hàm riêng làm phép tính tích chập Biến đổi tính nhanh thuật tốn biến đổi Fourier nhanh (FFT) 3.1 Một số khái niệm bản: DFT tín hiệu tương tự: Với hàm liên tục biến F(t), phép biến đổi Fourier F(f) định nghĩa là: Và biến đổi ngược Với: j bậc hai -1, e biểu thị số mũ tự nhiên = cos( ) + ( ) DFT với tín hiệu rời rạc: Giả sử chuỗi phức X(k) với phép lấy mẫu gồm N mẫu: x1,x2,x3,…,xk,…xN1 Với x số phức Phép biến đổi Fourier chuỗi biểu thị X(k) gồm N mẫu Phép biến đổi thuận định nghĩa: Phép biến đổi ngược: Với N độ dài chu kì Chuỗi số thực tương tự phần ảo 3.2 DFT cho tín hiệu 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 viết gọn lại Với f(k) = f(kT) dạng − WN = Tổng quát F(n) có dạng F(n) = A(n) gọi hạt nhân phép biến đổi ∅( ) Kí hiệu A(n),∅(n) gọi phổ khuếch đại phổ pha F(n) Biến đổi ngược DFT Hàm f(k) biến đổi ngược DFT F(n) theo biểu thức Khi f(k) rút từ F(n) ngược lại, chúng gọi cặp biến đổi có dạng f(k) ⇔ F(n) Mặc dù f(k) xác định miền k ∈ [ 0, N], tín hiệu tuần hồn với chu kì NT 3.2.2 Một số tính chất DFT: - Tính chất 1: Tuyến tính Nếu ta có hai dãy tuần hồn 1( ) 2( ), hai dãy tuần hồn với chu kì N, dùng để tínhược dùng dùng để tínhể tính 3( ) = 1( ) + 2( ) kết biến dùng để tínhổi DFT 3( ) ℎ 3()= 1()+ 2() Với a,b số Tính chất 2: Tính dùng để tínhối xứng Tính dùng để tínhối xứng DFT hay dùng để tínhược dùng 1( ) = 2( ) = ủ ủ 1( ) 2( ) : - Tính chất 3: Tích chập tuần hoàn Coi 1( ) 2( ) hai dãy tuần hồn có chu kỳ N, với biến dùng để tínhổi Fourier rời rạc 1( ) 2( ) Xem xét tích F(n1).F(n2) Chú ý : Với l số nguyên Vì mà ( ) = Ở k = đến 2N-1 Biểu thức biểu diễn tích chập hai tín hiệu tuần hoàn Chú ý biểu thức áp dụng cho hai dãy có chung chu kỳ, chiều dài dãy tính theo biểu thức 2N-1 Kết chứng minh DFT, tín hiệu số mẫu lớn N biến đổi thành dãy tuần hồn có chu kỳ N 10 3.3 DFT hai chiều: 3.3.1 Định nghĩa: DFT hai chiều ảnh NxN { ( , )} phép biến đổi tách định nghĩa sau: Nếu U V ánh xạ vào vecto xếp thao hạng u,v thì: v = Fu, u = F*v F ma trận kích thước biểu diễn DFT đơn vị hai chiều F=F⊗F 2x 3.3.2 Tính chất: - Tính chất 1: Đối xứng, đơn vị: =F⊗F −1= ∗= ∗⊗ ∗ - Tính chất 2: Tính tuần hồn n) ∀ m, n ∀ , v(k + N), (l+ N) = v(k, l) u(m + N), (n+ N) = u(m, Nếu - Tính chất 3: Lấy mẫu phổ fourier (m, n) = u(m, n) ≤ , ≤ −1à (m,n) = thì: Với ̃ ( 1, 2)là biến dùng để tínhổi nhanh Fourier ̃ (m,n) 11 - Tính chất 4: Biến đổi nhanh Vì DFT hai chiều tách được, biến đổi tương đương với 2N phép DFT chiều với độ phức tạp tính tốn O (N log2 ) theo cách tính FFT Do độ phức tạp tính tốn tổng là: O ( 2log2 ) - Tính chất 5: Đối xứng kết hợp Biến dùng để tínhổi DFT DFT dùng để tínhơn vị ảnh thực có tính dùng để tínhối xứng kết hợp - Tính chất 6: Ảnh sở Ảnh sở cho định nghĩa - Tính chất 7: Định lí chập vòng hai chiều DFT chập vòng hai chiều hai mảng tích DFT chúng Chập vịng hai chiều hai mảng NxN U(m,n) x U1(m, n)được định nghĩa là: Với ℎ(m,n)c = h (m module N, n module N) Tính chất 8: Chia theo hai chiều theo N sử dụng định nghĩa tính knoncker ta có Với Hlaf ma trận vịng hai lần Dlaf ma trận đường chéo có thành phần cho : (F ⊗ F).H = D.(F ⊗ F) [ ] +, +≜ ,={ℎ( , )} 0≤ , ≤ −1 Từ tính chất phép biến đổi nhanh ta rút ra: Một ma trận vịng khối hai lần chéo hóa O( N2 log2N) phép toán Trị riêng K cho DFT hai chiều h (m, n) giống phép tính N F cột K thành phần h(m,n) ánh xạ vào theo thứ tự từ điển 12 CHƯƠNG 4: ỨNG DỤNG CỦA KHAI TRIỂN FOURIER RỜI RẠC TRONG NÉN DỮ LIỆU (CỤ THỂ LÀ NÉN ẢNH) Ở cấp độ khái niệm, Biến đổi Fourier cho bạn biết xảy hình ảnh theo tần số hình sin Ví dụ: bạn có hình ảnh tường đơn giản (hình 1), giá trị pixel thay đổi bạn từ trái sang phải từ xuống Trong miền tần số có nghĩa hình ảnh bạn chứa tần số thấp, khơng có tần số cao Hình Hình Mặt khác, bạn có hình ảnh hàng rào picket (hình 2), giá trị pixel thay đổi liên tục bạn từ trái sang phải Vì vậy, miền Fourier, bạn có tần số cao theo hướng X, không theo hướng Y Cuối cùng, bạn có hình ảnh bàn cờ (hình 3), giá trị pixel thay đổi nhiều theo hai hướng Do đó, biến đổi Fourier hình ảnh có tần số cao X Y 13 Hình Vì biến đổi Fourier cho bạn biết xảy hình ảnh bạn, nên việc mơ tả hoạt động xử lý hình ảnh theo chúng làm với tần số có hình ảnh thường 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ạnh Và tăng cường tần số cao giữ tần số thấp làm sắc nét hình ảnh Nén ảnh DFT cách nén liệu Khi dùng DFT để nén liệu ta loại bỏ số hệ số xuất ta tái tạo lại cách thay hệ số bị loại bỏ thành số thực DFT nghịch đảo Vì nên nén ảnh DFT ảnh bị mờ tùy thuộc vào mức độ nén, hạn chế DFT Phần sau thấy rõ việc 14 CHƯƠNG 5: GIỚI THIỆU VỀ MATLAB 5.1 Tổng quan Matlab: • Matlab (viết tắt matrix laborary) ngơn ngữ lập trình bậc cao bốn hệ, mơi trường để tính tốn số học, trực quan lập trình Được phát triển MathWorks • Matlab cho phép thao tác với ma trận, vẽ biểu đồ với hàm số liệu, thực thuật toán, tạo giao diện người dùng, bao gồm C,C++, Java Fortran; phân tích liệu, phát triển thuật tốn, tạo kiểu mẫu ứng dụng • Matlab có nhiều lệnh hàm toán học nhằm hỗ trợ đắc lực cho bạn việc tính tốn, vẽ hình vẽ, biểu đồ thông dụng thực thi phương pháp tính tốn 5.2 Các hàm thường dùng Matlab: Lệnh Cú pháp Ý nghĩa Disp disp(x) disp(‘chuỗi tự’) Hiển thị nội dung mảng chuỗi Syms syms x Khai báo biến x biến kí hiệu Input x=input(‘tên biến’) Hiển thị dấu nhắc lệnh 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 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 độ xác kép 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 6.1 Các bước áp dụng phép biến đổi Fourier vào nén 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 chiều vào ô ma trận Bước 3: Lấy giá trị tuyệt đối phần tử xếp phần tử theo chiều giảm dần Bước 4: Chọn ngưỡng để lọc giá trị Bước 5: Tạo ma trận lưu giá trị ma trận để thực lọc chi tiết để giảm dung lượng file hình Bước 6: Đối với giá trị nhỏ giá trị ngưỡng tự động đặt Bước 7: Thực phép biến đổi Fourier ngược để khơi phục lại hình 6.2 Code Matlab diễn giải: 6.2.1 Đoạn code: T A=imread('z4227721378424_bbc94a333140ad8676df24e3b6f5be37 jpg'); B=rgb2gray(A); imagesc(A) f=fft2(B); fs=sort(abs(f(:))); counter=1; for keep=[.80 02 005]; subplot(2,2,counter) = fs(floor((1-keep)*length(fs))); ind=abs(f)>T; A1=f.*ind; A2 = ifft2(A1) imshow(A2,[]) title(['',num2str(keep*100),'%'],'Fontsize', 12) counter = counter+1 end

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

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w