Channel Impulse Response of Visible Light Communication link

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.

So, simply don't do your $$Y/X$$ division where your $$X(f)=0$$; that's all, honestly, here. You can do the frequency domain transform on all your observation bandwidth, simply don't divide outside of what you covered with a chirp.