Sign in

username:

password:



Not a member?

Search c6x



Search tips

Subscribe to c6x



c6x by Keywords

AD535 | BIOS | Booting | Bootloader | C621 | C6211 | C6415 | C671 | C6711 | C6711DSK | C6713 | CCS | Chassaing | COFF | DAT | DM64 | DM642 | DMA | DSK671 | DSK6711 | EDM | EDMA | EMIF | Emulator | EVM | EVM620 | FFT | FIR | GPIO | Halting | HPI | HWI | IDK | JTAG | LDB | LDH | LDW | Linker | LMS | LOG_printf | Matlab | McBSP | MEM_alloc | MIPS | PCI | PCM3003 | Pipeline | Profiling | QDM | Reset | ROM | RTDX | Sampling | SDRAM | Stack | TEB | THS1206 | TMS320C621 | TMS320C6416 | TMS320C6711 | TMS320C6713 | UART | Vector Table | XBUS | XDS560

Sponsor

Industry's highest performing at the lowest power DSPs now as low as $5.00*
Start development today!
*volume pricing for 10ku

Discussion Groups

See Also

Embedded SystemsFPGAElectronics

Discussion Groups | TMS320C6x | cfft DSPlib function

Technical discussions about the TI C6000 DSPs (including the c62x, c64x and c67x DSPs).

  

Post a new Thread

cfft DSPlib function - kaus...@yahoo.com - Jul 28 9:18:57 2009

Hello,
I am using 54x to implement frequency domain block filtered-x LMS . I am
required to evaluate 32 -pt FFTs. When I call the cfft function and set the
parameter 'nx' as 32, the resulting FFT is haphazard. But nx=8 seems to be
working fine. Please help.

_____________________________________

______________________________
New Code Sharing Section now Live on DSPRelated.com. Learn about the Reward Program for Contributors here.



(You need to be a member of c6x -- send a blank email to c6x-subscribe@yahoogroups.com )

Re: cfft DSPlib function - William C Bonner - Jul 28 12:39:47 2009

You've not described how you are calling the function. Are you aligning
the
data? Code examples of what works and what fails would be helpful in getting
correct answers.

Here's some info on how I'm using the FFT functions on the 6713.

#ifdef _TMS320C6X // Support for compiling on the DSP
    #pragma DATA_SECTION(".iram:FFTData")
    #pragma DATA_ALIGN(8);
#endif // _TMS320C6X // Support for compiling on the DSP
float FFTData[2*NSAMPLES];    // This is declared with global scope because
I need it to be properly aligned so the FFT routine can use it.

    DSPF_sp_bitrev_cplx(FFTData, bitrev_i2048, NSAMPLES);    // bitreversal
    DSPF_sp_icfftr2_dif(FFTData, w2048, NSAMPLES);            // complex
single precision FFT from dsp67x.lib
On Tue, Jul 28, 2009 at 1:44 AM, <k...@yahoo.com> wrote:

> Hello,
> I am using 54x to implement frequency domain block filtered-x LMS . I am
> required to evaluate 32 -pt FFTs. When I call the cfft function and set
the
> parameter 'nx' as 32, the resulting FFT is haphazard. But nx=8 seems to be
> working fine. Please help.
>  
>





(You need to be a member of c6x -- send a blank email to c6x-subscribe@yahoogroups.com )

Re: cfft DSPlib function - kaus...@yahoo.com - Jul 29 2:45:10 2009


Hello,
>I am using 54x to implement frequency domain block filtered-x LMS . I am
required to evaluate 32 -pt FFTs. When I call the cfft function and set the
parameter 'nx' as 32, the resulting FFT is haphazard. But nx=8 seems to be
working fine. Please help.
>
>_____________________________________

Sorry for not being descriptive. I have'nt used pragma as I am just trying out a
raw implementation. I have initialized the pointer argument to a location with 8
LSBs as zero. From what I understand, for 32-point complex FFT, it should
suffice if the lower 6 LSBs are 0. This is how I've done it.

	fltoq15(secondary_path, q15_secondary_path, 32);
	cbrev(q15_secondary_path,fft_secondary,16);
	cfft(fft_secondary,nx,noscale);
where, nx=8 for 8-pt FFT and 32 for 32-pt FFT.
secondary_path=(float*)0xA200;
q15_secondary_path=(DATA*)0xA400;
fft_secondary=(DATA*)0xA600;

I have included the required library files but only 8-pt seems to be working
fine. For 32-pt, the output is zero for most of the values.

_____________________________________

______________________________
New Code Sharing Section now Live on DSPRelated.com. Learn about the Reward Program for Contributors here.



(You need to be a member of c6x -- send a blank email to c6x-subscribe@yahoogroups.com )

Re: Re: cfft DSPlib function - Jeff Brower - Jul 29 3:49:08 2009

Kaushik-

>>I am using 54x to implement frequency domain block filtered-x LMS .
>> I am required to evaluate 32 -pt FFTs. When I
>> call the cfft function and set the parameter 'nx' as 32, the
>> resulting FFT is haphazard. But nx=8 seems to be working
>
> Sorry for not being descriptive. I have'nt used pragma as I am just
> trying out a raw implementation. I have
> initialized the pointer argument to a location with 8 LSBs as zero.
> From what I understand, for 32-point complex FFT,
> it should suffice if the lower 6 LSBs are 0. This is how I've done it.
>
> 	fltoq15(secondary_path, q15_secondary_path, 32);
> 	cbrev(q15_secondary_path,fft_secondary,16);
> 	cfft(fft_secondary,nx,noscale);
> where, nx=8 for 8-pt FFT and 32 for 32-pt FFT.
> secondary_path=(float*)0xA200;
> q15_secondary_path=(DATA*)0xA400;
> fft_secondary=(DATA*)0xA600;
>
> I have included the required library files but only 8-pt seems to be
> working fine. For 32-pt, the output is zero for most of the values.

When you say "working fine", how are you testing it?  Maybe 8-pt is
close but not working exactly either, causing you
to debug the wrong path.  If you call only cbrev() and cfft(), and put in the
following time sequence:

  Index: 0, 1, ... N-1
         -------------

  Real:  1, 0, ... 0
  Imag:  0, 0, ... 0

What do you get for 8-pt?  For 32-pt?  This output is something that is
concretely testable; if you calculate
magnitude you should get all 1's (or some constant, depending on size of the
FFT).

-Jeff

_____________________________________

______________________________
New Code Sharing Section now Live on DSPRelated.com. Learn about the Reward Program for Contributors here.



(You need to be a member of c6x -- send a blank email to c6x-subscribe@yahoogroups.com )