Hi all, I'm trying to design a DIY oscilloscope that can be connected with a PC and I want to be able to display signal at frequency as higher I can... (in theory fs/2).

I'm sampling at 100 MSPS with an 8 bit ADC, 45 MHz bandwidth. Eventually my plan is to achieve 200 MSPS. I'm having problem trying to interpolate the input data from a 2 kbyte buffer and please visit my blog to see the problem:

now in my blog I have attached 2 picture that shows why I believe my interpolation algorithm is not working...

I rewrite the function for clarity.

function sinc_interpolation(buff: TCH_BUFF; Fsample: float; t: float): float; var i: integer; sum: float = 0; x_nt: float; Ts: float = 0;

begin

{ x(t) = sum [ Xn sinc(pi/T(t-nT))] sum all the n... }

Ts := 1 / FSample; // sample time sum := 0; for i := 1 to BUF_SIZE - 2 do // remember to fix the bug inside the FPGA begin x_nt := buff[i] *** sinc((t - i *** Ts) / Ts); sum := sum + x_nt; end; Result := Sum;

end;

WHat am I doing wrong?

Thanks, Francesco