# How to demonstrate the orthogonality of OFDM subcarriers?

Assume if we have $$N$$ OFDM subcarriers represented by results of the inverse FFT of $$N$$ data symbols $$\mathbf x$$. As I know, the subcarriers of OFDM should be orthogonal. It means that

$$X(n)X(n+1) = 0\quad\text{where}\quad n = 0,\ldots,N-1$$

My question is that I can't get that right when doing it in MATLAB. For example suppose that $$N=4$$ and

$$\mathbf x = \begin{bmatrix} 0.7+0.7i\\ 0.7-0.7i\\ -0.7+0.7i\\ 0.7+0.7i\end{bmatrix}$$

is a data symbols gotten after QAM modulation. The OFDM $$N\times 1$$ subcarriers are gotten by iFFT of the data symbol as below:

X = ifft(x)*sqrt(4);


It means that

$$X = \begin{bmatrix} 0.7+ 0.7i\\ 1.4 + 0.0i\\ -0.7 + 0.7i\\ 0.0 + 0.0i\end{bmatrix}$$

Then,

\begin{align} X(1)\cdot X(2) &= (0.7000 + 0.7000i)\cdot(1.4000 + 0.0000i)\\ & = 0.9800 + 0.9800i \end{align}

If subcarriers are orthogonal, that wil be zero.

Thus, my question, how can I demonstrate the otrhognality of OFDM subcarriers ?

• Your definition of orthogonality is wrong: it would imply that at least one of $X(n)$ and $X(n+1)$ is zero.
– MBaz
Sep 30 '20 at 15:35
• How can we demonstrate the orthogonality in that case? Could you please help ? Oct 1 '20 at 8:20
– MBaz
Oct 1 '20 at 12:40

The other answer points out that the DFT is a matrix multiply. The matrix $$\mathbf{D}$$ is like this:

$$\mathbf{D}= \begin{bmatrix} 1 & 1 & 1 & ... & 1 \\ 1 & \omega & \omega^2 & ... & \omega^{N-1} \\ 1 & \omega^2 & \omega^4 & ... & \omega^{2(N-1)} \\ ... & ... & ... & ... & ... \\ 1 & \omega^{N-1} & \omega^{2(N-1)} & ... & \omega^{(N-1)(N-1)} \end{bmatrix}$$ where $$\omega=e^{j2\pi /N}$$.

Take your example of four QPSK symbols that you want to modulate ($$N=4$$). So you do :

\begin{align} \mathbf{s} &= \mathbf{D}\mathbf{x} \\ &= x_1\begin{bmatrix}1\\1\\1\\1 \end{bmatrix} + x_2\begin{bmatrix}1\\\omega\\\omega^2\\\omega^3 \end{bmatrix} + x_3\begin{bmatrix}1\\\omega^2\\\omega^4\\\omega^6 \end{bmatrix} + x_4\begin{bmatrix}1\\\omega^3\\\omega^6\\\omega^9 \end{bmatrix} \end{align}

We now have the OFDM symbol $$\mathbf{s}$$ which took your original symbols $$\mathbf{x}$$ and mapped them across the $$N$$ subcarriers. The orthogonality is important because it means at the receiver we can do the FFT to get the symbols back. To demonstrate this, consider the receiver gets $$\mathbf{s}$$ and wants to generate its first symbol estimate $$\hat{x}_1$$:

\begin{align} \hat{x}_1 &= \begin{bmatrix}1 & 1 & 1 & 1\end{bmatrix}\mathbf{s} \\ &= \begin{bmatrix}1 & 1 & 1 & 1\end{bmatrix} \bigg( x_1\begin{bmatrix}1\\1\\1\\1 \end{bmatrix} + x_2\begin{bmatrix}1\\\omega\\\omega^2\\\omega^3 \end{bmatrix} + x_3\begin{bmatrix}1\\\omega^2\\\omega^4\\\omega^6 \end{bmatrix} + x_4\begin{bmatrix}1\\\omega^3\\\omega^6\\\omega^9 \end{bmatrix} \bigg) \\ &= 4x_1 + 0 + 0 + 0 \end{align}

The fact that you got three zeros there is the orthogonal part, leaving it to you to do the inner product to convince yourself of that (inner product between $$\mathbf{y}$$ and $$\mathbf{x}$$ is $$\mathbf{x}^H\mathbf{y}$$). And this comes from the fact that $$\mathbf{D}$$ is unitary, $$\mathbf{D}^H\mathbf{D}=\mathbf{D}\mathbf{D}^H=\mathbf{I}$$.

• Thank you so much for your clear explanation. In your case, $s$ is similar to $X$ in my question. but how can I demonstrate that each element in $s$ is orthogonal on the other. it means that $s(1)s(2)=0$ Oct 2 '20 at 8:35
• What you're saying about orthogonal isn't right. $s_1s_2 \neq 0$ in general, do you have a reference for where you got that? Oct 2 '20 at 18:01
• @Fatima_Ali see above Oct 2 '20 at 18:55
• Yes, $s_1s_2$ doesn't equal to zeros as I demonstrated by MATLAB above in my question Oct 3 '20 at 16:44
• @Fatima_Ali what I mean is that is not a problem. Where did you get that their product equals zero? Oct 3 '20 at 17:10

Orthogonality is defined as "the inner product of two vectors equals zero".

Now, in OFDM, the transmit vector for a single subcarrier is exactly one row vector $$\mathbf D_k$$ of the DFT Matrix $$\mathbf D$$, multiplied by the complex value of a symbol $$c_k$$, i.e. $$c_K \mathbf D_K$$.

Two different subcarriers $$k, l, k\ne l$$ hence have the inner product $$\langle c_k\mathbf D_k,c_l\mathbf D_l\rangle$$; inner products are linear things, hence that's

\begin{align} \langle c_k\mathbf D_k,c_l\mathbf D_l\rangle &= c_kc_l \langle \mathbf D_k,\mathbf D_l\rangle\\ &= c_kc_l \begin{cases}0&k\ne l\\\|\mathbf D_k\| & k = l\end{cases} &\text{q.e.d.}, \end{align}

because the DFT matrix is unitary.

• Thank you for your reply, but as I see $X(n)$ explained in my question is the same of $c_KD_K$ mentioned in your reply, Is that right? Could you please implement that on the example I gave in my question? .. Oct 1 '20 at 8:09
• yes, it is. Since I think you're very much able to substitute one variable for another, I don't see the point in modifying my proof – it's a general demonstration (a proof!) of the orthogonality, and you just inserting your vectors will work, albeit being super boring (which is why I have no interest in doing it, especially since it'd feel like I'm doing even the last bit of your work). Oct 1 '20 at 8:31
• I mean in your last equation, if $c_k$ is the complex value of a symbol which is for example $0.7+0.7i$ and $c_l$ is another value of a symbol which is $0.7+0.7i$ .. their inner multiplication is not 0 ! it means $c_k$ $c_l$ is not 0 in all cases Oct 1 '20 at 13:01
• I mean if $X(n)$ is $c_KD_K$ it means that $X(n)X(n+1)$ won't be zeros as I explained in my question. Oct 1 '20 at 13:09
• you need to read the full line. There's a multiplication between $c_lc_k$ and the case $0$ or the case $\|\mathbf D_k\|$. This is standard notation for cases. Oct 1 '20 at 14:45

I would prove it like that (in Matlab)

F=dftmtx(4);
dot(F(:,1),F(:,2))
ans =
0

• Yes, but how to prove that after multiplying with the symbols ? Oct 2 '20 at 8:36