Hi Danny,

It was the reinterpretcast function that fixed my problems.

Cheers,

Ross

p.s. BTW in python there is a fixed_point module called SPFPM but it's
not great.  I've just found that bit manipulation is a little more
straight forward using python.


On Thu, Oct 3, 2013 at 1:39 PM, Danny Price <[email protected]> wrote:
> Hi Ross
>
> I think this should do exactly what you want:
>
> % Convert complex data stored in a 36_0 Unsigned format into
> % actual complex data in a matlab array
> % Useful for converting output of casper FFT into complex array.
>
> function cplx_vec  = conv36u_cplx(vec_36u)
> %disp('Converting 36_0 data to 18_17 complex')
> s18  = numerictype(1, 18, 17);
> cplx_vec = complex(zeros(length(vec_36u),1));
>
> for jj=1:length(vec_36u)
>     a  = fi(vec_36u(jj), 0, 64, 0);
>     re = reinterpretcast(bitsliceget(a, 18, 1), s18);
>     im = reinterpretcast(bitsliceget(a, 36, 19), s18);
>     cplx = re + im*1i;
>     cplx_vec(jj) = cplx;
> end
>
> There may be a neater way to do this (in which case please tell me!).
>
> Regards
> Danny
>
> PS: I've never done fixed point stuff with scipy, can you point me in the
> direction of some examples?
>
>
>
> Ross Williamson wrote:
>
> Hi,
>
> I'm trying to implement a test suite for a correlator and I'm having
> serious problems with my understanding of fi.  The output of the fft
> stage is UFIX 36_0.  I capture that in a matlab variable (say
> fft_out0).  All I want to do is split that up into Re and Im parts at
> FIX 18_17. I'm finding this rather difficult to do in matlab
> (especially because simple bit operations such as & >> and
> representing numbers via 0x notation do not work).
>
> If for example I try and convert the output from matlab
>
> fi(fft_out0,0,36,0) I still get a fractional number which baffles me.
>
> Is there a way to take this UFIX36_0, split into two FIX 18_17 and
> turn it into a complex number?
>
> Ross
>
> p.s. I'm using the unbus blocks to create the simulink output. I don't
> want to manually add gateways from every re_im block unless I really
> have to.
>
> (p.p.s I'm coming from scipy where this would be trivial hence the
> want to throw the toys out of the pram)
>



-- 
Ross Williamson
Research Scientist - Sub-mm Group
California Institute of Technology
626-395-2647 (office)
312-504-3051 (Cell)

Reply via email to