Có một số hiểu biết chính bạn cần để hiểu cách DFT cho phép bạn thay đổi hình ảnh.
Đầu tiên, lý thuyết của Fouri: Có thể dễ dàng nhìn vào trường hợp liên tục (nghĩa là tương tự) trước tiên. Hãy tưởng tượng bạn có một số chức năng, gọi nó là g (t). Để đơn giản, giả sử g (t) là bản ghi âm tương tự, do đó, đây là chức năng một chiều, liên tục và biểu thị áp suất tức thời là một hàm của thời gian.
Bây giờ, g (t) là một cách chúng ta có thể biểu diễn bản ghi âm của mình. Một cái khác là G (f). G (f) là biến đổi Fourier của g (t). Vậy, G (f) == FT (g (t)). G (f) có tất cả thông tin giống như g (t), nhưng nó đại diện cho thông tin đó trong miền tần số thay vì miền thời gian. Có một số chi tiết kén chọn về Fourier Transform, mà tôi sẽ không đề cập đến.
Bạn có thể nghĩ G (f) là "phân phối tần số" có trong g (t). Vì vậy, nếu g (t) là sóng hình sin (nghĩa là âm thuần), thì G (f) sẽ bằng 0 ở mọi nơi, ngoại trừ ở tần số của âm đó. Đây có lẽ là một điểm tốt để đề cập rằng G (f) nói chung là một hàm phức tạp - nghĩa là nó trả về các số phức, có thể được coi là có thành phần thực và ảo hoặc cường độ và pha.
δ( w )δ
Ok, vì vậy bây giờ chúng tôi đã có FT liên tục trong vành đai của chúng tôi.
Đây là cái nhìn sâu sắc thứ hai: Biến đổi Fourier rời rạc là Biến đổi Fourier như một tín hiệu được lấy mẫu là tín hiệu tương tự. Trong trường hợp này, "rời rạc" đề cập đến lượng tử hóa miền (thời gian hoặc tần suất) của hàm, không phải là phạm vi. (Tín hiệu số được lấy mẫu từ thẻ âm thanh của bạn được lượng tử hóa ở cả miền và phạm vi.)
Luồng byte kỹ thuật số bạn nhận được từ card âm thanh chứa "mẫu" tín hiệu liên tục (tương tự) ban đầu từ micrô. Nếu chúng ta lấy DFT của g (t) được lấy mẫu, chúng ta vẫn nhận được G (f). G (f), hãy nhớ, chỉ là một cách khác để biểu thị thông tin có trong g (t). Nếu chúng ta tuân theo lý thuyết của Nyquist , tín hiệu được lấy mẫu g (t) chứa tất cả "trí thông minh" của tín hiệu liên tục ban đầu, do đó G (f) rời rạc của chúng ta phải chứa tất cả thông tin từ tín hiệu liên tục ban đầu của chúng ta. Về mặt khoa học, G (f) vẫn là một hàm phức tạp.
Đây là nơi kỳ diệu của sự dịch chuyển pixel phụ xuất hiện, nhưng trong trường hợp này tôi sẽ viết về việc dịch chuyển tín hiệu âm thanh kịp thời ít hơn một mẫu, vì đó là điều tương tự.
ei π2
Điều đó có nghĩa là chúng ta có thể thay đổi bản ghi âm của mình theo thời gian (bằng bất kỳ số lượng nào chúng ta chọn, bao gồm một phần thời gian mẫu) chỉ bằng cách sửa đổi pha của G (t). Trên thực tế, tuyên bố đó có lẽ là một chút quá bình thường. Đối với tín hiệu không được lượng tử hóa, được lấy mẫu, pha có thể được điều chỉnh tùy ý (đây là một phần lý do tôi thực hiện phân biệt giữa lượng tử hóa miền và phạm vi trước đó). Tuy nhiên, đối với tín hiệu được lấy mẫu lượng tử hóa (ví dụ dòng âm thanh byte của chúng tôi), kích thước bước lượng tử hóa (nghĩa là số bit) xác định độ phân giải mà chúng ta có thể điều chỉnh pha. Khi chúng tôi nghịch đảo Biến đổi Fourier G (f) (hoặc DIFT nó, đối với tín hiệu được lấy mẫu này), tập hợp mẫu mới g '(t) = DIFT (G (F)) sẽ được thay đổi theo thời gian theo số lượng chúng tôi chọn.
Áp dụng điều này cho pixel của bạn chỉ đơn giản là sử dụng FT 2 chiều thay vì FT 1 chiều được thảo luận ở đây.