I have V-OFDM system (Vector OFDM) where every symbol is organized as in below figure:

enter image description here

The black cirles are pilots and white circles are data. First, iFFT operation it taken per column, and then collecting data is taken row-wise resulting collected data as shown in the figure right. It means first eight samples are pilot and following 24 sample are data, then 8 samples are pilot and so on. Then adding CP --> channel --> noise -->received data

In the receiver side, After usual processing of removing CP -->reshaping --> FFT column wise. We get the received data equivalent into transmitted data in above figure left. Then extract the pilots which are in our case of size $(3,8)$.

Then, LS estimation is performed, by dividing the received pilot by original pilot to get the frequency-domain estimated channel.

I ask here, how can we interpolate the channel in this case ? if I get a frequency-domain estimated channel of size $(3,8)$, what's the process to interpolate it into size of my symbol ? I think it should be vector interpolation? how can I do it in that case?

Thank you


You can use various methods to interpolate the channel - Linear, Polynomial, Sinc Interpolation etc. But what you need to keep in mind is synchronization. You have to make sure that frequency and timing offsets are eliminated or accounted for. Otherwise you will see an error floor in the Channel Estimation Error. Means your Mean Square Error (MSE) for Channel estimate will not go down even if SNR increases. It will go down for lower SNR but will flatten out for higher SNR. The residual errors due to timing/frequency offsets will spill over to channel estimation. See this paper (https://ir.nctu.edu.tw/bitstream/11536/32821/1/000072736100027.pdf). A simple search in google scholar with 'Channel Interpolation in OFDM' will reveal lot of good references.

| improve this answer | |
  • $\begingroup$ Thank you for your feedback. It's OK, but even in my case I can use the interpolation as used in conventional block-type pilot insertion ? for example in conventional OFDM, we use it as y = interp1(1:4:N, h_est, 1:N); where N is the number of subcarriers vector of length N, and h_est the estimated frequency-domain channel which is a vector of length N/4 and y is frequency estimated channel of length N. In my case I have matrix of size $(3,8)$, how can I do the equivalent process ? $\endgroup$ – Fatima_Ali Mar 31 at 8:09
  • $\begingroup$ You need to do it column-wise, taking each column of 3x8 matrix at a time. For the first column y=interp1(1:4:N,h_est,1:N). I think N is 9 here since you showed only 9 values in a column. This first column interpolated values can then further be used for equalization. Then you move on to next column. $\endgroup$ – jithin Mar 31 at 8:22
  • $\begingroup$ As I see, The performance is expected to be much worse in time-varied channel because it's equivalent to interpolating by 1: 8: end. Is that right ? That's because we are collecting the data row-wise. $\endgroup$ – Fatima_Ali Mar 31 at 9:00
  • $\begingroup$ Yes you are right. You should not do that. After FFT, think of data only column-wise. Take one-column at a time to find channel estimate -> interpolate -> equalize. $\endgroup$ – jithin Mar 31 at 9:06
  • $\begingroup$ OK, many thanks for that comment..OR another opinion, we can organize the pilots per columns, then take iFFT column-wise, after that, collect the data row-wise, which means that channel interpolation in time domain is 1:4:N. Is that right ? $\endgroup$ – Fatima_Ali Mar 31 at 9:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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