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)

