# Restore sgn(f(x)), f(x)=abs(sinc(x)) ?

1. Jun 20, 2013

### blighme

Hello

I don't know if this is the right place to place this, but here it goes:

I tried an IDFT approach in LTspice, which doesn't know sqrt(-1). If z=a+i*b then, in LTspice, z=a, |z|=a, so b is lost. With this in mind, the IDFT is done with sin^2+cos^2 which gives me |sinc(x)|, but I need the sinc to be "regular" sinc, oscillating. So, the question is: is it possible through whatever trick/cheat/etc to restore or get an oscillating sinc(x) after the transform? Anything.

I am using this chain of .funcs:

real(n,t)=sin(2*pi*n*(t-M/2)/(M+1))*f(n)
imag(n,t)=cos(...)
re(t)=real(0,t)+real(1,t)+...
im(t)= ...
h(t)=hypot(re(t),im(t))/(M+1)

Anticipated thanks,

PS: No homework,their time is long past. This is to try and implement a simple IDFT in LTspice.

2. Jun 21, 2013

### blighme

Unfortunately, I was in a hurry to fight a headache last night, so I mixed up: real(n,t)=cos(...), imag=sin. Also, the resulting impulse response can't be a result of a simulation, for example, I can't just use u(sinc-1m) and then divide the pulses with a DFLOP -- that would require simulating to find out the coefficients, then applying them to h[n], then running the simulation again.

A small test for if(abs(x)<wc,1,0) reveals it works, but it's still |sinc| (by the way, the title is actually sgn(abs(f(x))), f(x)=sinc(x), it was a really bad headache, apparently). To actually test the coefficients, I could use sgn(sinc(wc))*result, but that would only work for rectangular spectrum or one band only.

So, there you have it, if anyone knows just a little bit, please let me know.