Real Time FFT - Is the Prop up to it?
Philldapill
Posts: 1,283
We are getting into digital filter design(finally!) in my Digital Signal Processing class. I've been playing around with filters in Matlab, and have tons of ideas for things I want to build involving these filters. With the 8 cogs in a propeller, I'd love to get knee deep in turning the propeller into a voice distorter. I've got a pretty nice ADC that can pull in about 500ksps with one cog, so ADC sampling isn't a problem.
However, I'm wondering if the Propeller is up to doing real time Fast Fourier Transforms with this ADC input. I've got 7 cogs to work with... Surely a decent FFT can be made with the propeller... Has anyone done some work on this?
However, I'm wondering if the Propeller is up to doing real time Fast Fourier Transforms with this ADC input. I've got 7 cogs to work with... Surely a decent FFT can be made with the propeller... Has anyone done some work on this?
Comments
nick
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Visit some of my articles at Propeller Wiki:
MATH on the propeller propeller.wikispaces.com/MATH
pPropQL: propeller.wikispaces.com/pPropQL
pPropQL020: propeller.wikispaces.com/pPropQL020
OMU for the pPropQL/020 propeller.wikispaces.com/OMU
pPropellerSim - A propeller simulator for ASM development sourceforge.net/projects/ppropellersim
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
I looked for the file fft1024.zip using Google advanced search as well as the parallax general search. Can't find it (not surprised). Perhaps you can post a link or better yet add the .zip to ObEx and/or the Propeller Wiki. There is some FFT stuff on from you on the Propeller Wiki, is this the source for fft1024.zip?
propeller.wikispaces.com/FFT
Regards, David
·http://forums.parallax.com/showthread.php?p=803389
Jim
Can you provide some details about your FFT?· It looks like it works with 16-bit data, is that correct?· Does it work with real data inputs only, or will it work on complex inputs also?· How many cycles does it take to compute a single 1024-point transform?
Dave
It uses 16 bit values (15 bit plus sign) and I should work with real/complex pairs. but be aware of the cleaning of the imaginary buffer and the lack of decimation of that data.
I really have to improve that code and put it into the obex... long due :-(
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Visit some of my articles at Propeller Wiki:
MATH on the propeller propeller.wikispaces.com/MATH
pPropQL: propeller.wikispaces.com/pPropQL
pPropQL020: propeller.wikispaces.com/pPropQL020
OMU for the pPropQL/020 propeller.wikispaces.com/OMU
pPropellerSim - A propeller simulator for ASM development sourceforge.net/projects/ppropellersim
Do you have any timing data for your FFT?· I'm just trying to understand how fast of a sampling rate it can handle in real time.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Visit some of my articles at Propeller Wiki:
MATH on the propeller propeller.wikispaces.com/MATH
pPropQL: propeller.wikispaces.com/pPropQL
pPropQL020: propeller.wikispaces.com/pPropQL020
OMU for the pPropQL/020 propeller.wikispaces.com/OMU
pPropellerSim - A propeller simulator for ASM development sourceforge.net/projects/ppropellersim
One of the things I want to build, is an audio frequency shifter. What I'm thinking, is getting an FFT, then shifting all the data points up an octave or something, then reconstructing the signal with the shifted frequencies. Is THIS possible in real time?
if the only thing you want to do is shifting the voice up one octave then it could be done without FFT. Find the fundamental frequency, cut the stream of samples at the zero crossing points and simply play each snippet twice at double the sampling rate
Cheers