Biến đổi Fourier rời rạc

Trong toán họ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 sử 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 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).

## Định nghĩa
Dãy của *N* số phức:x_0,..., x_{N-1} được biến đổi thành chuỗi của *N* số phức *X*0,..., *X**N*−1 bởi công thức sau đây:

:X_k = \sum_{n=0}^{N-1} x_n e^{-\frac{2 \pi i}{N} k n} \quad \quad k = 0, \dots, N-1
 
với *e* là cơ số của lôgarit tự nhiên, i\, là đơn vị ảo (i^2=-1), và π là pi. Phép biến đổi đôi khi được ký hiệu bởi \mathcal{F}, như sau \mathbf{X} = \mathcal{F} \left \{ \mathbf{x} \right \}  hoặc \mathcal{F} \left (\mathbf{x} \right) hoặc \mathcal{F} \mathbf{x}.

Phép **biến đổi Fourier rời rạc ngược (IDFT)** được cho bởi công thức sau

:x_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k e^{\frac{2\pi i}{N} k n} \quad \quad n = 0,\dots,N-1.

Những phương trình này có thể được mô tả đơn giản như sau: các số phức *X<sub>k</sub>* đại diện cho biên độ và pha ở các bước sóng khác nhau của "tín hiệu vào" *x<sub>n</sub>*. Phép biến đổi DFT tính các giá trị *X<sub>k</sub>* từ các giá trị *x<sub>n</sub>*, trong khi IDFT tính *x<sub>n</sub>* bằng tổng của các sóng thành phần 
\frac{1}{N} X_k e^{\frac{2\pi i}{N} k n} với tần số *k / N*. Khi viết các phương trình dưới dạng như trên, ta đã sử dụng công thức Euler để biểu diễn các hàm lượng giác dưới dạng lũy thừa số phức để biến đổi được dễ dàng. Khi viết *X<sub>k</sub>* dưới dạng tọa độ cực, ta thu được biên độ *A<sub>k</sub> / N* và pha *φ<sub>k</sub>* từ modulus và argument của *X<sub>k</sub>*:
:A_k = |X_k| = \sqrt{\operatorname{Re}(X_k)^2 + \operatorname{Im}(X_k)^2},
:\varphi_k = \arg(X_k) = \operatorname{atan2}\big(\operatorname{Im}(X_k), \operatorname{Re}(X_k) \big),

trong đó atan2 là dạng hai đối số của hàm arctan. Cần ghi chú rằng các thừa số chuẩn hóa của DFT và IDFT (ở đây là 1 và 1/*N*) và dấu của các số mũ chỉ là quy ước, và có thể khác nhau trong các tài liệu khác nhau. Điều kiện duy nhất cho các quy ước này là DFT và IDFT có dấu ngược nhau ở các số mũ và tích của hai thừa số chuẩn hóa phải là 1/*N*.

## Các tính chất
### Đầy đủ
Phép biến đổi Fourier rời rạc là một biến đổi tuyến tính khả nghịch
:\mathcal{F}\colon\mathbb{C}^N \to \mathbb{C}^N
trong đó **C** ký hiệu tập các số phức. Nói cách khác, với mọi *N* > 0, mọi vectơ phức *N* chiều đều có một DFT và một IDFT, và chúng đều là các vectơ phức *N* chiều.

### Trực giao
Các vectơ e^{ \frac{2\pi i}{N} kn} tạo thành một cơ sở trực giao của tập các vectơ phức *N* chiều:
:\sum_{n=0}^{N-1}\left(e^{ \frac{2\pi i}{N} kn}\right)\left(e^{-\frac{2\pi i}{N} k'n}\right)=N~\delta_{kk'}
trong đó \delta_{kk'} là hàm delta Kronecker. Có thể dùng điều kiện trực giao để suy ra công thức cho IDFT từ định nghĩa của DFT, và điều kiện này tương đương với điều kiện unita dưới đây.

### Định lý Plancherel và định lý Parseval
Nếu *X**k* và *Y**k* là các DFT của *x**n* và *y**n* thì theo định lý Plancherel:

:\sum_{n=0}^{N-1} x_n y^*_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k Y^*_k

trong đó dấu sao ký hiệu số phức liên hợp. Định lý Parseval là một trường hợp đặc biệt của định lý Plancherel:

:\sum_{n=0}^{N-1} |x_n|^2 = \frac{1}{N} \sum_{k=0}^{N-1} |X_k|^2.

Các định lý này tương đương với điều kiện unita dưới đây.

### Tuần hoàn
Nếu như ta tính biểu thức định nghĩa DFT tại mọi số nguyên *k* thay vì chỉ cho *k=0,..., N-1*, thì dãy số nhận được là một mở rộng tuần hoàn của DFT, và có chu kì *N*.

Tính tuần hoàn có được chứng minh trực tiếp từ định nghĩa:
:X_{k+N} \ \stackrel{\mathrm{def}}{=} \ \sum_{n=0}^{N-1} x_n e^{-\frac{2\pi i}{N} (k+N) n} =\sum_{n=0}^{N-1} x_n e^{-\frac{2\pi i}{N} k n}  \underbrace{e^{-2 \pi i n}}_{1} = \sum_{n=0}^{N-1} x_n e^{-\frac{2\pi i}{N} k n} = X_k.
Tương tự như vậy, biểu thức của IDFT cũng cho một dãy mở rộng tuần hoàn.

### Định lý dịch
Việc nhân các số *x<sub>n</sub>* với một pha tuyến tính e^{\frac{2\pi i}{N}n m} (*m* là một số nguyên bất kì) tương ứng với việc dịch vòng tròn các số *X<sub>k</sub>*: *X<sub>k</sub>* được thay bằng *X<sub>k-m</sub>*, trong đó các chỉ số được tính theo mô đun *N*. Tương tự như vậy, việc dịch vòng tròn các số *x<sub>n</sub>* tương ứng với việc nhân các số *X<sub>k</sub>* với một pha tuyến tính. Dưới dạng công thức, nếu {*x<sub>n</sub>*} đại diện cho vectơ **x** thì
:nếu \mathcal{F}(\{x_n\})_k=X_k

:thì \mathcal{F}(\{ x_n\cdot e^{\frac{2\pi i}{N}n m} \})_k=X_{k-m}

:và \mathcal{F}(\{x_{n-m}\})_k=X_k\cdot e^{-\frac{2\pi i}{N}k m}

### Unita
Có thể nhận thấy theo mô tả ở trên, toán tử DFT có thể được biểu diễn dưới dạng một ma trận Vandermonde:
:\mathbf{F} =\begin{bmatrix} \omega_N^{0 \cdot 0}     & \omega_N^{0 \cdot 1}     & \ldots & \omega_N^{0 \cdot (N-1)}     \\ \omega_N^{1 \cdot 0}     & \omega_N^{1 \cdot 1}     & \ldots & \omega_N^{1 \cdot (N-1)}     \\ \vdots                   & \vdots                   & \ddots & \vdots                       \\ \omega_N^{(N-1) \cdot 0} & \omega_N^{(N-1) \cdot 1} & \ldots & \omega_N^{(N-1) \cdot (N-1)} \\\end{bmatrix}

trong đó
:\omega_N = e^{-2 \pi i/N}\,
là một căn nguyên thủy bậc N của đơn vị. Phép biến đổi ngược chính là ma trận nghịch đảo của ma trận trên:
:\mathbf{F}^{-1}=\frac{1}{N}\mathbf{F}^*
Với hằng số chuẩn hóa unita 1/\sqrt{N}, DFT trở thành một biến đổi unita, định nghĩa bởi một ma trận unita:
:\mathbf{U}=\mathbf{F}/\sqrt{N}
:\mathbf{U}^{-1}=\mathbf{U}^*
:|\det(\mathbf{U})|=1
trong đó *det()* là hàm tính định thức. Định thức là tích của các giá trị riêng (luôn là \pm 1 hoặc \pm i như mô tả dưới đây). Trong không gian vectơ thực, một biến đổi unita có thể xem là phép quay vật rắn của hệ tọa độ, và tất cả các tính chất của phép quay vật rắn đều đúng cho toán tử unita DFT.

Tính trực giao của DFT nay có thể viết dưới dạng điều kiện trực chuẩn:
:\sum_{m=0}^{N-1}U_{km}U_{mn}^*=\delta_{kn}
Nếu *X* được định nghĩa là unita DFT của vectơ *x* thì 
:X_k=\sum_{n=0}^{N-1} U_{kn}x_n
và định lý Plancherel có thể viết dưới dạng:
:\sum_{n=0}^{N-1}x_n y_n^* = \sum_{k=0}^{N-1}X_k Y_k^*
Nếu ta coi DFT chỉ là một phép biến đổi tọa độ trong đó chỉ cần chỉ ra các thành phần của vectơ trong hệ tọa độ mới, thì mệnh đề trên chỉ nói rằng tích vô hướng của hai vectơ được giữ nguyên trong phép biến đổi unita DFT. Trong trường hợp đặc biệt khi *x=y*, điều này có nghĩa là độ dài vectơ cũng được giữ nguyên—đây chính là định lý Parseval:
:\sum_{n=0}^{N-1}|x_n|^2 = \sum_{k=0}^{N-1}|X_k|^2

## Ứng dụng
DFT có nhiều ứng dụng rộng rãi trong nhiều ngành khác nhau. Ở đây chỉ mô tả một số ví dụ (tham khảo thêm các tài liệu ở cuối trang). Tất cả các ứng dụng của DFT đều dựa trên một tính chất quan trọng là DFT và IDFT đều có thể được tính nhanh chóng bằng thuật toán biến đổi Fourier nhanh.

### Phân tích phổ
Khi sử dụng DFT để phân tích phổ, dãy {*x_n*} thường đại diện cho một dãy hữu hạn các mẫu tại các thời điểm cách đều nhau của một tín hiệu *x(t)*, trong đó *t* để chỉ thời gian. Việc chuyển từ thời gian liên tục sang mẫu (thời gian rời rạc) chuyển biến đổi Fourier liên tục của *x(t)* thành biến đổi Fourier thời gian rời rạc (DTFT), và thường gây ra hiệu ứng răng cưa. Việc chọn lựa tần số lấy mẫu thích hợp (xem tần số Nyquist) là vô cùng quan trọng cho việc giảm thiểu hiệu ứng này.

## Một số cặp biến đổi Fourier rời rạc

## Tham khảo

* 
* 
* 
*  esp. section 30.2: The DFT and FFT, pp.&nbsp;830–838.
* 
* 
* 
* 
* 
* 
* 
* 
* 

## Liên kết ngoài
*Mathematics of the Discrete Fourier Transform by Julius O. Smith III
*Fast implementation of the DFT - coded in C and under General Public License (GPL)