DSP Undergraduate Project Ideas?

Click For Summary
SUMMARY

The discussion centers on project ideas for a digital signals and systems class, specifically focusing on implementing the "overlap and save" method of linear convolution. This method utilizes Fast Fourier Transforms (FFTs) for efficient digital filtering with finite impulse response (FIR) filters. Key steps include defining an impulse response, zero-padding it to a power of 2, and applying the Discrete Fourier Transform (DFT) to filter input signals. The process involves careful management of output samples to ensure accurate results.

PREREQUISITES
  • Understanding of digital signal processing concepts
  • Familiarity with Fast Fourier Transforms (FFTs)
  • Knowledge of finite impulse response (FIR) filters
  • Experience with Discrete Fourier Transform (DFT) algorithms
NEXT STEPS
  • Research the implementation of the "overlap and add" method for linear convolution
  • Explore Hamming and Hanning windowing techniques in digital filtering
  • Study the mathematical foundations of Discrete Fourier Transforms (DFTs)
  • Learn about zero-padding techniques and their impact on FFT performance
USEFUL FOR

Students in digital signal processing courses, software developers working on audio processing applications, and researchers interested in efficient convolution methods.

mrmjp
Messages
9
Reaction score
0
I have to do a project of some kind for my digital signals and systems class and I really don't have a clue where to even start looking. ANY IDEAS OR DIRECTION WOULD BE APPRECIATED.
 
Physics news on Phys.org
Here's an idea. You could write a computer program which implements the "overlap and save" method of linear convolution. The "overlap and save" method allows you to do digital filtering with an finite impulse response (FIR) filter (you can make the impulse response of the filter yourself*). It's more efficient than straight, linear convolution because it uses Fast Fourier Transforms (FFTs).

You can define the impulse response of the filter yourself*, suppose it has M samples. You'll then want to zero-pad that out to N samples, where N is a power of 2. Typically you'll want N to be several times larger than M.

*(You can even apply Hamming or Hanning windowing to the filter, if you've covered that in your coursework, and if you want to get fancy).

Then you take N samples of the input signal you want to filter. Take the Discrete Fourier Transform (DFT, using the FFT algorithm) of that and multiply it times the DFT of your zero-padded impulse response [Edit: btw, you only need to take the DFT of your zero-padded impulse response once -- you'll use the same results of that over and over again]. Then take the inverse DFT to get a chunk of filtered output.

Since the DFT uses circular convolution -- not linear convolution -- you'll then need to throw away the first M-1 samples of the output. But that still leaves you with N - M + 1 good samples for that block.

When taking the next block of input samples, rather than increment by N, you'll need to increment your starting index by only N - M + 1 (although you'll still be taking N samples total), since you'll be anticipating throwing away some of those samples (M - 1 of them) of the output.

In the end, you just concatenate these N - M + 1 blocks of output to obtain your final output signal.

http://en.wikipedia.org/wiki/Overlap%E2%80%93save_method

There's a nearly equivalent method called "overlap and add" if you'd prefer.

Anyway, just an idea. :smile:
 
Last edited:

Similar threads

Replies
4
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
522
  • · Replies 4 ·
Replies
4
Views
2K
Replies
1
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
6
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K