Hi Has anyone written their own fft function for the dsPIC ? (NOT the supplied library fft). I need a fft for measuring signal in noise and not being a DSP person would prefer to implement it rather than write it from scratch. The dsPIC library scales the data by 1/N which limits the dynamic range of the fft. I can post scale and run the fft again until I have a usable number - its just a lot of extra processing. Thanks in advance.

# FFT code for dsPIC

Started by ●May 10, 2008

Posted by ●May 10, 2008

On May 10, 7:46 am, "charlyb" <c...@eca.co.za> wrote:> Hi > > Has anyone written their own fft function for the dsPIC ? (NOT the > supplied library fft). > > I need a fft for measuring signal in noise and not being a DSP person > would prefer to implement it rather than write it from scratch. The dsPIC > library scales the data by 1/N which limits the dynamic range of the fft. > > I can post scale and run the fft again until I have a usable number - its > just a lot of extra processing. > > Thanks in advance.you not going to get any more dynamic range unless you use floating point or 32 bit fixed point FFT

Posted by ●May 10, 2008

I am not sure this is true. Before 32bit fixed point and floating point DSP were introduced, everybody have to work on 16 bit or even 8 bit processor. Many techniques have been developed to gain high dynamic range. Among them the most popular one is called block floating point FFT. This method simply carefully scales each stage of FFT to maximize its calculation dynamic range. The problem of 1/N is naturally part of this process. Charlyb, you can find the solution on older textbooks. James www.go-ci.com

Posted by ●May 10, 2008

I am not sure this is true. Before 32bit fixed point and floating point DSP were introduced, everybody have to work on 16 bit or even 8 bit processor. Many techniques have been developed to gain high dynamic range. Among them the most popular one is called block floating point FFT. This method simply carefully scales each stage of FFT to maximize its calculation dynamic range. The problem of 1/N is naturally part of this process. Charlyb, you can find the solution on older textbooks. James www.go-ci.com

Posted by ●May 10, 2008

On May 10, 7:46 am, "charlyb" <c...@eca.co.za> wrote:> Hi > > Has anyone written their own fft function for the dsPIC ? (NOT the > supplied library fft). > > I need a fft for measuring signal in noise and not being a DSP person > would prefer to implement it rather than write it from scratch. The dsPIC > library scales the data by 1/N which limits the dynamic range of the fft. > > I can post scale and run the fft again until I have a usable number - its > just a lot of extra processing. > > Thanks in advance.you not going to get any more dynamic range unless you use floating point or 32 bit fixed point FFT

Posted by ●May 10, 2008

Hi Has anyone written their own fft function for the dsPIC ? (NOT the supplied library fft). I need a fft for measuring signal in noise and not being a DSP person would prefer to implement it rather than write it from scratch. The dsPIC library scales the data by 1/N which limits the dynamic range of the fft. I can post scale and run the fft again until I have a usable number - its just a lot of extra processing. Thanks in advance.