I'm doing research into Channel Impulse Response of VLC links for my MSc degree thesis and I have encountered a lot of troubles when doing experimental work and processing the data. For context, the setup I have in the laboratory consists of a Tektronix AFG31052, a 0.2-12000 Mhz bandwidth bias tee, a CREE Xlamp 1507 white LED, a Thorlabs PDA36A2, and a Tektronix MSO 2024.
In theory, for time domain signals with finite energy and LTI systems, the output of the system is given by
$$ y(t) = x(t) * h(t), $$
or in the frequency domain representation
$$ Y(f) = X(f) H(f). $$
Obviously, this assumes that we know the values of $X(f)$ and $Y(f)$ for every frequency. This is not possible in practice because we're bandlimited to $fs/2$, with $fs$ is the sampling frequency of the ADC (in this case, the oscilloscope).
The experiment I'm currently running is transmitting an exitation signal (linear chirp) of the form
$$ x(t) = A \sin \left[ 2 \pi \left( f_0 + \frac{f_1 - f_0}{2 T} t \right) t + \phi(t) \right], $$
where $f_0$ and $f_1$ are initial and final frequencies (100 kHz and 12 MHz respectively), $T$ is the period of the sweep (20 ms), and $\phi(t)$ is the initial phase of the sweep (can't be controlled, it is random every cycle). The sampling frequency of the oscilloscope in this setting is 62.5 MS/s. Both channels of the AFG output the same signal; CH1 to the LED and CH2 directly to the oscilloscope. Their phases are synchronized, so I can calibrate the system to account for Tx and Rx transfer functions. Both Tx and Rx signals have a lenght of $N = 1250000$ samples.
Finally, what I got while experimenting with things is the following:
- Direclty computing $H(f) = Y(f) / X(f)$ makes the values outside the sweep frequency range to explode (dividing by values near zero).
- Doing the IDFT with this values gives of a signal similar to https://www.mathworks.com/matlabcentral/answers/uploaded_files/1360468/whole%20obtained%20function%20in%20time.png. I think this is likely due to mainly two things: (i) the sidelobes occur because I am using something similar to a rectangular window in the frequency domain, so i translates to a sinc function in the time domain and (ii) that sidelobes at the end of the image are a result of circular deconvolution, so time domain aliasing is occuring.
What I should do? Make a regularization filter in the frequency domain? If so, how? Is using a linear sweep exitation the adecuate method to characterize the CIR of my system? Should I use a logarithmic sweep instead? It is a problem that both signals have the same length? I want to get similar results (the CIR figures at the end) to the ones obtained here; however, they used a VNA and I don't have access to one.
I'm waiting for your answers!