2

I have developed a Algorithm in MATLAB using floating point variable. In my algortihm I am doing eigen value decomposition ,rotation, transformation of matrices, inverse of matrices, division , addition and multipications of matrices several times.(So it is kind of processing of the the signal). I tried to convert it into the fixed point but I am unable to do because my variables and matrices changes it values every time. So for me it is very difficult to handle the overflow problem as I can not make any routine to handle the overflow. Can any one tell me how to handle this problem or is it not possible to convert the algorithm into fixed point. I need a concerte reason to justify that I can not convert my Algorithm into fixed point(As it is my master thesis!)

P.S:- This algorithm is developed for the controller of the Analog to digital converter, which utilizes the Statistics of the signal and gives the effective decision threshold. I have just written the mathemetical operations.

  • I was going to down vote , then saw 'for my master's thesis' :) , but you should be more specific otherwise you'll just invite down votes as this is not the place for getting your homework,thesis etc get done without stating the problem clearly. – advocateofnone Mar 13 '15 at 13:12
  • @sasha what I need to expalin more.. can you tell me please . What you didnt understand in my description .. – mangleshwar srivastava Mar 13 '15 at 13:37
  • Given enough precision, sure, why not? Floating point is an optimization. – David Eisenstat Mar 13 '15 at 17:16
  • You feel scared simply because you don't know how to do it. If you are asking about if it's doable, then it is. If you are asking about how to do it, submit another question. – user3528438 Mar 14 '15 at 16:20
  • @user3528438 I am currently doing it in fixed point and I am not geting the desriable result., that is why I put the the queastion is it possible to convert every algortithm from fixed point to floating point? Sorry that I didnt able to make you understood.. – mangleshwar srivastava Mar 14 '15 at 18:04

1 Answers1

1

the answer is YES and NO. it depends on the processed data dynamic range

  • if you are processing numbers/signal in specified range then YES
  • but if the numbers/signal has very high dynamic range then NO

you should use more fixed point formats for different stage of signal processing

  • for example ADC gives you values in exact defined range
  • so you have to use fixed format such that does not loss precision and have not many unused bits
  • after that you apply some filter or what ever the range changes
  • so you need to get bound of possible number ranges per stage and use the best suited fixed point format you have at disposal

This means you need some number of fixed point formats

  • and also the operations between them
  • you can have fixed number of bits and just change the position of decimal point...

To be more specific then you need add the block diagram of your processing pipeline

  • with the number ranges included
  • and list of used operations
  • matrix operations and integrals/sums are tricky because they can change the dynamic range considerably

The real question always stays if such implementation is faster then floating point ...

  • because sometimes the transition between different fixed point stages can be slower then direct floating point implementation ...
Spektre
  • 49,595
  • 11
  • 110
  • 380
  • Thanks for your comment. You are right as I am changing the position of the decimal point several times and loosing some precision. Also I have noticed that there is problem in the eigenvalue decompostion. As to fine eigen value and eigen vector I have used QR decomposition. In this QR I used modified Gram-schdimt technique. But it is converging easily in the floating point but in case of the fixed point there is always some minute error, but as I am using eigenvalue decomposition several times. It makes the eigenvalue worse and hence I am not able to find the correct eigenvalue. – mangleshwar srivastava Mar 15 '15 at 01:00
  • I have also used Householder technique but it is very slow and MATLAB get hanged when I am using matrices more than 2 dimension. – mangleshwar srivastava Mar 15 '15 at 01:03