Mathematical Concept of "Orthogonality"
Generally orthogonality means that the inner product of two vector is zero.
There's not only a concept of the inner product of vectors, but the inner product of functions, and this can be expressed as a definite integral.
{<f,g>=∫baf(x)g(x) dxInnerProd.ofRealFn.<f,g>=∫baf(x)¯g(x) dxInnerProd.ofComplexFn.
Therefore, we can say that two functions are orthogonal if their inner product value is zero and this can be applied to complex signals.
Orthogonality of OFDM Subcarriers
Mathematical Expression of OFDM Signal
The OFDM signal can be expressed as below.
{S(t)=1N∑N−1n=0An(t)ej[ωnt+ϕn(t)]OFDMSignalSn(t)=An(t)ej[ωnt+ϕn(t)]SignalofEachSubcarrier
N is the number of subcarriers, An is amplitude of each subcarrier, and ϕn is phase of them.
An(t) and ϕn(t) has a constant value during a symbol duration and ωn=ω0+nΔω.
Suppose that the sampling rate is 1/Ts, then a period of one OFDM symbol is T=NTs because we should sample N times in one symbol. Also suppose that ω0=0, then ωn becomes nΔω.
We can now write a simple sampled signal expression: S(tTs)=1N∑N−1n=0CejnΔωtTs (0≤t<T)
C is a const from amplitude and phase values at a specific symbol.
The OFDM signal is generated from IDFT calculation, so let's compare above with general IDFT expression.
{S(tTs)=1N∑N−1n=0CejnΔωtTsSimplifiedOFDMSignalx(tTs)=1N∑N−1n=0X(tTs)ej2πtn/NGeneralIDFTExpression
So, Δω=2πT. This is a condition for the orthogonality. Why?
Dealing with Orthogonality
Let's try to show that subcarrier α and β is orthogonal. We should solve definite integral of two signal of each subcarrier.
∫T0Sα(t)¯Sβ(t) dt
For convinience of thinking, the amplitude part and phase part can be expressed as a symbol C because they are constant. Also suppose that the lowest frequency is 0 (ω0=0).
C∫T0ej(αΔω)te−j(βΔω)t dt=C∫T0ejtΔω(α−β) dt
Then the trigonometric form of the integration is C∫T0cos(tΔωk)+jsin(tΔωk) dt if k=α−β.
This equals to C∫T0cos(2πtkT)+jsin(2πtkT) dt and k is an integer!
When we solve the integral: C(0+0j)=0
So, for any subcarrier α and β, they are orthogonal!
MATLAB Example
% Select Two Subcarriers
sub_a = 11; % Subcarrier A [1 64]
sub_b = 48; % Subcarrier B [1 64]
% Environment Configuration
symbol_duration = 3.2e-6; % 3.2 microseconds
rx_sampling_time = 5e-8:5e-8:symbol_duration; % 20MHz
N = 64; % 64 subcarriers
% One Symbol Signal Generation
rng('shuffle');
syms t;
% oscillator_resolution = (symbol_duration / (N * 1e+2));
signal = sym(zeros(N));
for i = 1:N
signal(i) = (rand(1) + rand(1) * 1i) * ...
exp(1i * i * 2 * pi / symbol_duration * t);
end
% Plot Signals
figure(1); clf;
hold on;
plot(NaN, 'Color', [0 0 0], 'LineWidth', 2);
plot(NaN, 'Color', 'g', 'LineWidth', 2);
plot(NaN, 'Color', 'r');
for i = 1:N
if i ~= sub_a && i ~= sub_b
fplot(real(signal(i)), [0 27e-8], 'Color', [0 0 0] + 0.8);
end
end
fplot(real(signal(sub_a)), [0 27e-8], 'Color', [0 0 0], 'LineWidth', 2);
fplot(real(signal(sub_b)), [0 27e-8], 'Color', 'g', 'LineWidth', 2);
for i = 1:5
plot([i * 5e-8 i * 5e-8], [-1.5 1.5], 'Color', 'r');
end
hold off;
ylim([-1.5 1.5]);
xlim([0 27e-8]);
xticks(0:5e-8:25e-8);
xticklabels({'0ns' '50ns' '100ns' '150ns' '200ns' '250ns'});
text(28e-8, 0, '. . .');
legend('Subcarrier A', 'Subcarrier B', 'Sampling Time', 'Location', 'southeast');
title('Real Value of Subcarriers');
% Inner Product
signal_a = signal(sub_a);
signal_b_conj = conj(signal(sub_b));
product = int(signal_a * signal_b_conj, t, 0, symbol_duration);
% Display Product Result
figure(2); clf;
scatter(real(double(product)), imag(double(product)), 1200, 'Marker', '*', ...
'MarkerEdgeColor', [1 0.8 0.4] - 0.1, 'LineWidth', 2);
ylim([-1e-15 1e-15]);
yticks(-0.8e-15:0.2e-15:0.8e-15);
ylabel('Imag');
xlim([-1e-15 1e-15]);
xticks(-0.8e-15:0.2e-15:0.8e-15);
xlabel('Real');
pbaspect([1 1 1]);
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
text(1.2e-16, 1.2e-16, '↙ Zero?');
title({'Product Result =', strtrim(evalc('disp(double(product))'))});


References
- http://ocw.snu.ac.kr/sites/default/files/NOTE/10361.pdf
- https://web.wpi.edu/Pubs/ETD/Available/etd-041806-174713/unrestricted/navalekar.pdf
- https://fdocuments.us/document/tutorial-de-orthogonal-frequency-division-multiplexing.html
- http://www.wirelesscommunication.nl/reference/chaptr05/ofdm/ofdmmath.htm
- https://math.stackexchange.com/questions/1358485/what-does-it-mean-when-two-functions-are-orthogonal-why-is-it-important
- http://www.wirelesscommunication.nl/reference/chaptr05/ofdm/ofdmqual.htm