← Về lộ trình học

GHI CHÉP 15 · OFDM FOUNDATIONS

IFFT/FFT trong OFDM

Sau mapper, transmitter đang có một dãy số phức nằm trên các subcarrier, nhưng DAC không thể phát “các ô tần số”. Nó cần một chuỗi sample theo thời gian. IFFT là cây cầu biến các hệ số X[k]X[k] trong miền tần số thành một block sample x[n]x[n] trong miền thời gian; FFT ở receiver làm phép ngược để lấy lại từng hệ số subcarrier.

BÀI NÀY GIẢI QUYẾT VẤN ĐỀ GÌ?

Ta đã có các QAM symbols trên các subcarrier. Làm sao biến chúng thành một waveform thật để phát qua DAC?

Sau Bài 14, hãy tưởng tượng transmitter đã quyết định giá trị cần đặt lên từng subcarrier. Ví dụ bin k=1k=1 mang một symbol QPSK, bin k=2k=2 mang một symbol khác. Những giá trị đó tạo thành vector X[0],…,X[N−1]X[0],\ldots,X[N-1]. Nhưng phần cứng phát không xuất ra “bin tần số”; nó xuất ra các sample nối tiếp theo thời gian.

TỪ SYMBOL TRÊN SUBCARRIER ĐẾN SAMPLE ĐỂ PHÁT
X[0],…,X[N−1]X[0],\ldots,X[N-1]→ IFFT →x[0],…,x[N−1]x[0],\ldots,x[N-1]→ DAC / RF / channel →y[0],…,y[N−1]y[0],\ldots,y[N-1]→ FFT →Y[0],…,Y[N−1]Y[0],\ldots,Y[N-1]

IFFT không “tạo thêm dữ liệu”. Nó chỉ đổi cách biểu diễn: từ các hệ số trên những basis tần số sang các sample của cùng một OFDM block theo thời gian. FFT thực hiện phép đổi ngược tại receiver.

CHỈ SỐ TẦN SỐkkđang nói tới basis / FFT bin nào?
↔
CHỈ SỐ THỜI GIANnnđang nói tới sample nào trong useful block?
·
KÍCH THƯỚC BLOCKNNNN hệ số phức ↔ NN sample phức

01 · MỘT BIN THỰC RA ĐẠI DIỆN CHO MỘT WAVEFORM CƠ SỞ

Nếu chỉ bật bin kk, toàn bộ block thời gian trở thành một complex exponential quay đều qua từng sample.

xk[n]=1NX[k]ej2πkn/Nx_k[n]=\frac{1}{N}X[k]e^{j2\pi kn/N}
BIN INDEXkksets phase advance per sample
+
COMPLEX COEFFICIENTX[k]X[k]sets magnitude + initial phase
→
TIME CONTRIBUTIONxk[n]x_k[n]one rotating basis sequence

Phase increment giữa hai adjacent samples của riêng basis này là:

Δϕk=2πkN\Delta\phi_k=\frac{2\pi k}{N}

Với k=0k=0, góc không đổi nên basis là một chuỗi DC phức không quay. Khi kk tăng, phasor quay nhanh hơn qua từng sample. Nghĩa là chỉ số bin quyết định tốc độ quay, còn hệ số X[k]X[k] quyết định biên độ và pha ban đầu của basis đó. Các index ở nửa sau của FFT array sẽ được diễn giải thành tần số âm khi ta chuyển sang signed-frequency ordering.

02 · VÍ DỤ N=4N=4: TỰ TÍNH TỪNG SAMPLE

Chỉ bật X[1]=1X[1]=1 để tự tay nhìn thấy IFFT tạo ra từng sample như thế nào.

x[n]=14ej2πn/4x[n]=\frac14e^{j2\pi n/4}
nnphasex[n]x[n]
00∘0^\circ0.250.25
190∘90^\circj0.25j0.25
2180∘180^\circ−0.25-0.25
3270∘270^\circ−j0.25-j0.25

Bốn sample trên không phải bốn symbol khác nhau. Chúng là bốn điểm lấy mẫu của cùng một basis waveform. Nếu thêm X[0]=1X[0]=1, mỗi sample nhận thêm contribution 1/41/4 từ DC basis. Nếu bật thêm nhiều bin, nguyên tắc vẫn y hệt: tại mỗi nn, tính contribution của từng basis rồi cộng các vector phức lại.

03 · IFFT: MỖI SAMPLE LÀ TỔNG CỦA TẤT CẢ SUBCARRIER

Một sample x[n]x[n] không “thuộc” riêng subcarrier nào; nó là tổng vector của toàn bộ các basis tại thời điểm đó.

x[n]=1N∑k=0N−1X[k]ej2πkn/N,n=0,…,N−1x[n]=\frac1N\sum_{k=0}^{N-1}X[k]e^{j2\pi kn/N},\qquad n=0,\ldots,N-1
BIN 0 CONTRIBUTION1NX[0]\frac1N X[0]
+
BIN 1 CONTRIBUTION1NX[1]ej2πn/N\frac1N X[1]e^{j2\pi n/N}
+
… ALL BINS …1NX[k]ej2πkn/N\frac1N X[k]e^{j2\pi kn/N}
→
ONE TIME SAMPLEx[n]x[n]

04 · FFT: THỬ TỪNG BASIS VÀ ĐO XEM NÓ CÓ MẶT BAO NHIÊU

FFT bin qq quay ngược các sample theo basis ứng viên rồi cộng coherent để lấy lại hệ số của bin đó.

Y[q]=∑n=0N−1y[n]e−j2πqn/NY[q]=\sum_{n=0}^{N-1}y[n]e^{-j2\pi qn/N}

Dấu âm trong số mũ làm receiver “quay ngược” theo basis đang kiểm tra. Nếu block thật sự chứa basis qq, component tương ứng sẽ đứng gần như cùng hướng sau phép quay ngược và cộng lại một cách coherent. Các basis khác vẫn tiếp tục quay qua các sample nên trong điều kiện lý tưởng, tổng của chúng triệt tiêu về zero trên toàn block.

TIME SAMPLESy[n]y[n]mixture of all basis components
×
CANDIDATE BASIS CONJUGATEe−j2πqn/Ne^{-j2\pi qn/N}de-rotation for output bin qq
→ sum →
PROJECTION COEFFICIENTY[q]Y[q]how much of basis qq is present?

05 · TẠI SAO ROUND TRIP TRẢ LẠI ĐÚNG X[k]X[k]?

Thay IDFT vào DFT, mọi cross-basis terms biến mất nhờ finite-sum orthogonality.

Thay:

x[n]=1N∑k=0N−1X[k]ej2πkn/Nx[n]=\frac1N\sum_{k=0}^{N-1}X[k]e^{j2\pi kn/N}

vào:

Y[q]=∑n=0N−1x[n]e−j2πqn/NY[q]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi qn/N}

ta được:

Y[q]=1N∑k=0N−1X[k]∑n=0N−1ej2π(k−q)n/NY[q]=\frac1N\sum_{k=0}^{N-1}X[k]\sum_{n=0}^{N-1}e^{j2\pi(k-q)n/N}

Inner sum thỏa:

∑n=0N−1ej2π(k−q)n/N={N,k=q0,k≠q\sum_{n=0}^{N-1}e^{j2\pi(k-q)n/N}=\begin{cases}N,&k=q\\0,&k\ne q\end{cases}

nên ideal round trip cho:

Y[q]=X[q]Y[q]=X[q]

Đây chính là discrete version của orthogonality mà Bài 14 đã nhìn bằng continuous-time basis trên useful interval.

06 · INTERACTIVE LAB

Đi từ một basis, tới vector sum tạo một sample, rồi đảo chiều bằng FFT projection.

One bin → basis cho thấy phase advance qua từng sample. Many bins → one sample cho phép sửa từng X[k]X[k] và thấy tất cả frequency contributions cộng thành đúng một x[n]x[n]. FFT projection de-rotate từng sample theo selected output bin rồi cộng để recover coefficient.

Hệ số X[k]X[k]
FFT SIZEN=8N=8sample / bin
ACTIVE BINk=1k=1một tần số basis
PHASE ADVANCE / SAMPLE45∘45^\circ360∘k/N360^\circ k/N
COEFFICIENT0.71+j0.710.71+j0.71quyết định scale và pha ban đầu
CÁC SAMPLE PHASOR CỦA BASISmỗi sample tiến thêm cùng một lượng pha
01234567
II
QQ
MỘT HẠNG TỬ TRONG IDFTxk[n]=1NX[k]ej2πkn/Nx_k[n]=\frac{1}{N}X[k]e^{j2\pi kn/N}
nngóc pha tích lũyđóng góp
000∘0^\circ0.09+j0.090.09+j0.09
1145∘45^\circ0.00+j0.120.00+j0.12
2290∘90^\circ−0.09+j0.09-0.09+j0.09
33135∘135^\circ−0.12+j0.00-0.12+j0.00
44180∘180^\circ−0.09−j0.09-0.09-j0.09
55225∘225^\circ0.00−j0.130.00-j0.13
66270∘270^\circ0.09−j0.090.09-j0.09
77315∘315^\circ0.13+j0.000.13+j0.00

07 · TRANSFORM GIỮ NGUYÊN SỐ BẬC TỰ DO

NN hệ số phức và NN sample phức chỉ là hai cách biểu diễn của cùng một OFDM block.

FREQUENCY-DOMAIN COORDINATES

X[k]X[k]

Mỗi phần tử cho biết block có biên độ và pha bao nhiêu trên một DFT basis.

TIME-DOMAIN COORDINATES

x[n]x[n]

Mỗi phần tử cho biết giá trị sample phức tại một vị trí trong useful block.

Ma trận DFT lý tưởng là khả nghịch. Phép biến đổi không tự tạo thêm thông tin và cũng không tự làm mất thông tin. Ta chỉ đổi hệ biểu diễn để từng phép xử lý trở nên tự nhiên hơn: channel thường dễ nhìn bằng H[k]H[k] trong miền tần số, còn DAC, CP và cửa sổ sample lại diễn ra trong miền thời gian.

08 · RAW FFT ARRAY INDEX KHÔNG PHẢI LÚC NÀO CŨNG LÀ SIGNED FREQUENCY INDEX TA VẼ

Với even NN, raw array thường đi từ DC qua positive bins, tới Nyquist boundary, rồi wrap sang negative-frequency bins.

RAW INDEX ORDER · N=8N=8
01234567
interpret signed frequency ↓
SIGNED BIN VIEW
0+1+2+3±4−3−2−1
fftshift for display ↓
CENTERED DISPLAY
−4−3−2−10+1+2+3

Với sample rate fsf_s, bin spacing là:

Δf=fsN\Delta f=\frac{f_s}{N}

Một signed bin index k~\tilde k tương ứng frequency:

fk=k~fsNf_k=\tilde k\frac{f_s}{N}

09 · NORMALIZATION LÀ CONVENTION, KHÔNG PHẢI VẬT LÝ MỚI

Forward và inverse transforms phải có tổng scale phù hợp để round trip đúng amplitude.

Trong bài này ta dùng pair:

X[k]=∑n=0N−1x[n]e−j2πkn/NX[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N}
x[n]=1N∑k=0N−1X[k]ej2πkn/Nx[n]=\frac1N\sum_{k=0}^{N-1}X[k]e^{j2\pi kn/N}

Một implementation khác có thể đặt scale ở forward transform, inverse transform hoặc chia đều bằng1/N1/\sqrt N cho cả hai. Nếu sign convention và total scaling nhất quán thì information content không đổi.

THIS LESSONDFT: no scale

IDFT carries 1/N1/N.

UNITARY OPTION1/N1/\sqrt N on both

Preserves Euclidean norm directly between coordinate systems.

IMPLEMENTATIONstage / block scaling

Fixed-point FFTs may scale internally to manage overflow and headroom.

10 · PARSEVAL GIÚP KIỂM TRA SCALING VÀ ENERGY

Với convention của bài này, tổng squared magnitude ở time domain bằng frequency-domain energy chia cho NN.

∑n=0N−1∣x[n]∣2=1N∑k=0N−1∣X[k]∣2\sum_{n=0}^{N-1}|x[n]|^2=\frac1N\sum_{k=0}^{N-1}|X[k]|^2

Đây là sanity check rất hữu ích khi debug OFDM transmitter: nếu mapping giữ nguyên nhưng IFFT output power lệch bất ngờ theo FFT size, hãy kiểm tra normalization convention trước khi nghi ngờ modulation hoặc RF chain.

11 · VÌ SAO FOURIER BASIS LẠI HỢP VỚI CHANNEL CONVOLUTION?

Complex exponentials là eigenfunctions của linear time-invariant convolution; trong finite block, circular convolution được DFT diagonalize.

Với circular convolution:

y[n]=(h⊛x)[n]y[n]=(h\circledast x)[n]

DFT cho:

Y[k]=H[k]X[k]Y[k]=H[k]X[k]
TX FREQUENCYX[k]X[k]one coefficient per basis
→ IFFT →
TX TIMEx[n]x[n]one useful block
→ channel →
RX TIMEy[n]y[n]circular-convolution model when conditions hold
→ FFT →
RX FREQUENCYY[k]=H[k]X[k]Y[k]=H[k]X[k]diagonal per-bin relation

Physical multipath thực hiện linear convolution, không tự nhiên là circular. Bài 16 sẽ giải thích chính xác vì sao prepend một cyclic prefix rồi chọn đúng FFT window có thể làm useful block thỏa circular-convolution view dưới điều kiện channel memory phù hợp.

12 · IMPLEMENTATION CHECKLIST: NHỮNG LỖI FFT/IFFT RẤT DỄ TRÔNG GIỐNG “PHY BỊ HỎNG”

BIN MAPPINGlogical ↔ raw index

DC, negative-frequency bins và guard bins phải đặt đúng array positions.

SIGN CONVENTIONforward vs inverse exponent

Wrong sign có thể mirror/rotate interpretation thay vì chỉ thay amplitude.

NORMALIZATIONFFT-size-dependent scale

Mismatch dễ tạo power/EVM errors dù symbol geometry đúng.

FIXED POINTheadroom + rounding

Stage scaling, saturation và quantization ảnh hưởng waveform fidelity.

FFT WINDOWexact useful samples

Wrong start or including CP as useful data breaks the intended basis observation.

ROUND-TRIP TESTXX → IFFT → FFT → XX

Before adding channel/RF, ideal numerical round trip should match within expected arithmetic error.

13 · ĐỪNG GÁN CHO IFFT/FFT NHỮNG VIỆC CHÚNG KHÔNG LÀM

BÀI 15IFFT / FFT đổi cách biểu diễn

X[k]X[k] ↔ x[n]x[n]. Chúng không tự chống multipath, không tự equalize channel và không tự quyết định resource mapping.

BÀI 16Cyclic Prefix

Bài 16 mới giải thích cách bảo vệ FFT window để multipath phù hợp với circular-convolution model.

BÀI 17Resource grid

Bài 17 mới giải thích các giá trị X[k]X[k] được tổ chức trên trục thời gian–tần số như thế nào.

14 · NỐI LẠI CÁC Ý

  1. One bin: X[k]X[k] scales one discrete complex-exponential basis spanning the whole useful block.
  2. IFFT synthesis: every x[n]x[n] is the complex sum of contributions from all bins.
  3. FFT analysis: every output bin projects all time samples onto one candidate basis.
  4. Orthogonality: different DFT basis sequences have zero finite inner product over the full NN-sample block.
  5. Invertibility: ideal FFT after IFFT recovers the original frequency coefficients under consistent scaling/sign conventions.
  6. Bin order: raw array index, signed frequency index and centered display order are different concepts.
  7. Normalization: transform scaling is a convention; implementation must keep total round-trip scale consistent.
  8. Parseval: energy relation is a practical sanity check for scaling.
  9. Channel payoff: DFT diagonalizes circular convolution into per-bin multiplication.
  10. Implementation: mapping, sign, scale, fixed-point headroom and FFT-window selection are common failure points.