Hi, Suppose I have frequency domain measurements from a channel between 1 and 10 GHz - for example like (c) in this figure: https://www.researchgate.net/profile/Sergey_Rylov/publication/2983309/figure/fig1/AS:394710586806272@1471117745152/Fig-1-Backplane-channel-characteristics-a-Backplaneline-card-application-b.ppm What is the best way to upsample the impulse response to a higher rate? (In the rest of the posting I describe the details and what I've tried) Thanks, Peter At the rate of 20 GHz, the impulse response is trivially given as h = ifft([ A ; conj(A(end:-1:2) ]); Now suppose I want to simulate this channel together with an equalizer at a rate of 5x20 = 100 GHz. There are multiple options like: 1.) h1a = upsample(h,5); 2.) h1b = resample(h,5,1); Option 1 is not physical since it represents a pulse train. Option 2 performs nice interpolation and removes the images. However, the impulse response has ringing (looks like a windowed sinc function). This results in the problem that after I equalize for the channel (which naturally happens at the symbol rate) I see this ringing as a big overshoot: https://snag.gy/qxIusN.jpg Looking at the eye diagram, it can be seen that the eye for a [-1,1] signal is closed although the equalization is nearly optimal: https://snag.gy/VO82Dk.jpg The reason (I think) is that the convolution between the (upsampled) impulse response and the equalizer coefficients is this nice ringing interpolation filter: https://snag.gy/mWnKp6.jpg However, in practice, this equalized pulse response looks like a spread pulse, like: https://snag.gy/AWy49P.jpg Of course I do not have the filter response beyond 10 GHz. However, using the Kaiser window resample uses results in a sudden drop in the frequency response of the filter. In practice, it can be assumed that the requency response continues to drop at the same rate beyond 10 GHz. So is there a way to perform the upsampling in a way such that the frequency data beyond 10 GHz is assumed to be a smooth as possible continuation of the given frequency response, hence minimizing time domain ringing?
Physical continuation of analog filter (physical resampling)
Started by ●July 7, 2017
Reply by ●July 7, 20172017-07-07
On Fri, 7 Jul 2017 16:19:03 -0700, Peter Mairhofer <63832452@gmx.net> wrote:>Suppose I have frequency domain measurements from a channel between 1 >and 10 GHz - for example like (c) in this figure:...>What is the best way to upsample the impulse response to a higher rate?Once again, FDLS might be the right answer, if you have phase as well as magnitude measurements. You can try extrapolating the magnitude and phase curves up to half your desired upsampled rate, creating just enough discrete points in the extrapolated region to make the algorithm happy. The example Matlab code that I wrote and distribute is capable of creating a weighted least-squares fit; you should definitely weight the measured frequency response points higher than the extrapolated points. Once you have the transfer function model, it is a trivial matter to use it to compute the impulse response. I experimented with such high-frequency extrapolation 30 years ago, but I do not remember how successful the results were. So if you try it, please tell the world whether it worked ... or didn't. Greg