# Calculation of frequency correlation function based on power delay profile

We know that the frequency-domain correlation function and the power delay profile appears as a Fourier transform pair, i.e., $$A_{c}(\Delta f) = \int_{-\infty}^{\infty}PDP(\tau) \cdot e^{-j2\pi \Delta f \tau} d\tau.$$

In practice, we can measure the PDP from the measurments and obtain the PDP in the discrete form. Then, the correlation function can be expressed in discrete form as $$A_{c}(\Delta f) = \sum_{i} PDP(\tau_{i}) \cdot e^{-j2\pi \Delta f \tau_{i}}.$$

Then, I did some simulation with Python. But the plotted result is very confusing for me. Intuitively, the correlation should goes down to zero as the frequency separation ($$\Delta f$$) becomes large. However, from the plotted figure, we can see the frequency correlation goes up and down as the frequency separtation increases.

So how should we understand the results, or is there anything wrong with the plotting?

import numpy as np
import matplotlib.pyplot as plt
pathNum = 7
delay = np.array([0.00000000e+00, 2.62467192e-07, 7.87401575e-07, 5.24934383e-07, 1.04986877e-06, 2.36220472e-06, 2.09973753e-06])
normPow = np.array([0.6232612, 0.27725289, 0.0092769, 0.00905148, 0.00252286, 0.00183185, 0.00155204])
deltaF = 30e3
freqNum = 256
corrFd = np.zeros(freqNum, dtype = complex)
for freqIdx in np.arange(freqNum):
for pathIdx in np.arange(pathNum):
corrFd[freqIdx] += normPow[pathIdx]*np.exp(-1j*2*np.pi*freqIdx*deltaF*delay[pathIdx])

fig2, ax2 = plt.subplots(2,1)
ax2[0].plot(np.absolute(corrFd), label="magnitude of freq-domain correlation function")
ax2[1].plot(np.angle(corrFd), label="angle of freq-domain correlation function")
ax2[0].legend(); ax2[1].legend()

plt.show()


The PDP tells us the delay characteristics of a multipath channel, and the result in the frequency domain (as the Fourier Transform of the PDP) is telling the coherence between different frequencies transmitted, and specifically if frequency selective fading is occurring (when we have deep nulls within a passband of interest for the frequencies we pass through the channel).

For example, if we had a direct path with no multipath components, the PDP would simply be a single impulse in time at the delay of the path, and the Fourier Transform would be flat for all frequencies- meaning no multipath distortion. If we had simply one delayed path with a magnitude of 0.3 added to a direct path with a magnitude of .6 (for example), since the phase in the delayed path will be growing relative to the direct path linearly as the frequency increases, some frequencies would add in phase for a magnitude of 0.9 while others would add completely out of phase for a magnitude of 0.3, and this would occur cyclically similar to the OP's result. This just means if we transmit a signal that has a wider bandwidth, we will get an amplitude and phase distortion of the signal according to this response.

In response to the subsequent question in the comments, the Fourier Transform of an exponential decay would indeed decrease as a function of frequency as given from the Fourier relationship:

$$e^{-at} \leftrightarrow \frac{1}{(j\omega + a)}$$

However the discrete Fourier Transform is periodic in frequency. Consider the following example for the case $$x(t)= e^{-5t}$$, when done discretely at a consistent sampling rate in time of 10 Hz for a 100 second duration, we would get the following result using the FFT:

The first 200 or so samples match closely that for the continuous time Fourier Transform of $$e^{-5t}$$, and after that we start to deviate due to frequency aliasing, and then after 500 samples (Nyquist) the result repeats mirroring that for the first 500 samples. If we for example zeroed all but every third sample in the time domain we would see the periodicity over the range of samples used:

This is similar to the OP's case of not having the time domain on a consistent sampling grid and shows for a simpler case how the result can be different from that expected for the continuous time Fourier Transform and demonstrates the periodicity in frequency that occurs in the Discrete Fourier Transform.

To get the expected result, interpolate the time domain function to a consistent sampling rate, and make the sampling rate sufficiently high to extend the frequency axis further. This will result in something similar to my first plot above where the frequency result shown is similar to the continuous time Fourier Transform out to half the length of the result (with frequency aliasing at and near this half way point to the extent that the result hasn't sufficiently decayed).

• Hi, Dan. Thanks a lot for the answer. Just another question, when we assume an exponentially-decaying multipath PDP, the frequency domain correlation function $A_{c}(\Delta f)$ becomes $A_{c}(\Delta f) = \frac{1}{1+j2\pi \tau_{rms}\Delta f}$, where $\tau_{rms}$ is the rms delay spread (Eq. (6.1.6) of the book "MIMO-OFDM Wireless Communications with Matlab"). From the equation, we can see that the frequency correlation gets smaller as the frequency separation becomes larger. So why the "peak and null" does not appear cyclically under this assumption of PDP?
– Vic
Dec 24, 2023 at 1:11