0
$\begingroup$

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. Example 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!

$\endgroup$

1 Answer 1

0
$\begingroup$

As you correctly noticed, you can't make any statements on the channel where you can't excite it. So, the answer is pretty simple: if your receiver can observe a larger range than you can cover with your excitation, you must not estimate outside that coverage.

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.

You might make your life easier by using pseudorandom noise instead of a chirp, if that is something that your transmitter system is amendable to. Then, you can estimate the channel impulse response directly with no ambiguity – by convolving your observed time domain signal with the transmit signal.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.