|
|||||||
![]() |
|
|
Thread Tools |
|
|
#1 |
|
DriverHeaven Junior Member
Join Date: Oct 2004
Posts: 25
Rep Power: 0 ![]() |
FFT-filtering in Dane
I know .. 512 Instructions per cicle isn't much, but i think it should be possible to do a 4-point FFT.
Dunno if it's worth trying to build one, as the possibilities of such a filter would prolly be very limited. Don't wanna bore you with my thoughts about the topic so stop reading if you ain't into those discussions: With such an FFT-filter the second or third sample of the re-fft'd data would go to the output, the signal would be 2-3 samples delayed. It could be possible to store values of the calculation on the tram to avoid recalculating multiplications, maybe it's even possible to go up to 8 sample-ffts that way. Really difficult to tell without taking a very close look on ffts. Anyone got experience in progging an FFT-filter in dane? All i could see in this forum is that it is generally considered as not possible because of limited memory on the dsp. |
|
|
|
|
|
#2 |
|
kX user
Join Date: Apr 2004
Posts: 851
Rep Power: 0 ![]() |
no one has implemented FFT yet, so keep us in touch with the results if you achieve something
__________________
Miss you, Steve... |
|
|
|
|
|
|
|
DriverHeaven Junior Member
Join Date: Oct 2004
Posts: 25
Rep Power: 0 ![]() |
Took a look at the fourier stuff, and encountered a little problem:
The registers range from -1 to 1, but the first 'real' value of the fouriertransformed block of 4 samples is them all added together : (f(x) is the samples, F the fouriertransformed, the entire thing looks pretty short because the input data is all real only.) F(real)(0) = f(0)+f(1)+f(2)+f(3) F(real)(1) = f(0)-f(2) F(real)(2) = f(0)-f(1)+f(2)-f(3) F(real)(3) = f(0)-f(2) F(imag)(0) = 0 F(imag)(1) = f(3)-f(1) F(imag)(2) = 0 F(imag)(3) = f(1)-f(3) Actually it's not that much math needed to do a 4point-ft of real data. But it would be necesarry to store values of up to 4 times the max of a normal register. Would that work or cause problems due to saturated variables? |
|
|
|
|
|
#4 |
|
DriverHeaven Addict
Join Date: Feb 2003
Location: slovenia
Posts: 269
Rep Power: 0 ![]() |
how far is it from 4 point filter to a freq shifter? do you think it can be done? I WANT IT!
__________________
[kokoon] |
|
|
|
|
|
|
|
DriverHeaven Junior Member
Join Date: Oct 2004
Posts: 25
Rep Power: 0 ![]() |
Well without knowing details about frequency-shifting-FT-filters i assume it's done by shifting the FTdata.
With a 4-point-FT you could do samplerate/4 shifts, that'd be 12KHz shifts. So unless you wanna talk and understand some being that communicates at frequencies up to 24KHz i fear a 4-point-FT wouldn't be of much help. |
|
|
|
|
|
#6 |
|
DriverHeaven Addict
Join Date: Feb 2003
Location: slovenia
Posts: 269
Rep Power: 0 ![]() |
hmm i kinda forgot all i learnt in the 1year of uni, but ... FT-ing a function (audio signal) gives you 2 arrays (real and imaginary) and shifting one (hmm maybe both) of them left/right gives you a very nice effect, kinda like pitch shift.
samplerate/4 should be more than enough, the question is can you shift contents of the entire arrays and can you shift them for less than 12KHz.
__________________
[kokoon] |
|
|
|
|
|
#7 | |
|
DriverHeaven Newbie
Join Date: Jul 2005
Posts: 19
Rep Power: 0 ![]() |
Quote:
|
|
|
|
|
![]() |
| Thread Tools | |
|
|