0

I designed a fft filter (taking forward and inverse FFT) in Keil uvision using STM32F429 Discovery Board. However on taking the output from DAC to oscilloscope, between two consecutive DAC outputs a lot of noise occurs.

Any help in the coding or other related knowledge would be of great help.

Link to the oscilloscope pics displaying output from DAC(yellow) and input signal(pink) and the FFT filter code are posted below: Link1: https://drive.google.com/open?id=0B9NG28tRmEefVlBsTDNIZG1EUWM&authuser=0 Link2: https://drive.google.com/open?id=0B9NG28tRmEefZGlFdWc1N2Q5ZnM&authuser=0

user11622
  • 39
  • 1
  • 3
  • I also notice a phase shift occuring. You mentioned this is a filter. What exactly is it intended to filter? – Patrick Roberts May 12 '15 at 11:08
  • this was intended to filter noise from breathing and heart pulse signal. I decreased the number of FFT points and the noise was removed. However i need an explanation. Think that the arm processing speed was less. I want to discuss with you on this topic. In between the FFT and IFFT code i added the code for filtering i.e. for(i=2*n;i – user11622 May 12 '15 at 11:51

1 Answers1

1

Since you mentioned decreasing the number of samples in the FFT reduces the issue it sounds like a processing speed issue.

An FFT has an O(N log2(N)) so the increasing the number of samples greatly increases the amount of processing power required.

How are you coming up with the number of samples you need? What frequency resolution do you need for your application? If you intend for your sample rate to stay as it is now, then the only way to you to change the time and frequency resolution would be changing the number of samples.

I would recommend coming up with a minimum frequency resolution required. Round the number of samples to the closest power of 2 and test out the program with that criteria.