Project 5: About Discrete Fourier Transform



next up previous
Next: FFT Algorithm Implementation Up: DSP Lab home page Previous: Structure for Discrete

Project 5: About Discrete Fourier Transform

Objective: To understand DFT in depth.

Problem 1: Ex 1.1. P46

Problem 2: Ex 6.1, b P56, You may use the function CSYAS provided below to finish this problem.

MATLAB program

   %[CSY,CAS] = CSYAS(v)
   %  Extract the conjugate symetric part CSY and conjugate antisymetric 
   %  part CAS of finite sequence v[n] which is defined in [0,...,N-1]
   %  
   %  Programmer: Chenyang Xu, 9/18/94

   function [CVS,CAS] = CVSAS(v)
   N = length(v);
   CVS(1) = real(v(1));
   CAS(1) = j*imag(v(1));
   vflip = v(N:-1:2);
   vcflip = conj(vflip);
   CVS(2:N) = (v(2:N) + vcflip)/2;
   CAS(2:N) = (v(2:N) - vcflip)/2;

Problem 3: We want to filter a very long string of data with an FIR filter whose impulse response is 50 samples long. We wish to implement this filter with a DFT using the overlap-save technique. The procedure is as follows:

1. The input sections must be overlapped by V samples.

2. From the output of each section we must extract M samples such that when those from each section are abutted, the resulting sequence is the desired filtered output.

Assume that the input segments are 100 samples long and that the size of the DFT is 128 points. (Is the algorithm more effective or not by using 128 DFT instead of 100 DFT? Please illustrate your anwser.) Further assume that the output sequence from the circular convolution is indexed from point 0 to point 127.

(a) Determine V.

(b) Determine M.

(c) Determine the index of the beginning and the end of the M points extracted; i.e., determine which of the 128 points from the circular convolution are extracted to be abutted with the result from the previous section.

(d) Use MATLAB to verify your results are indeed correct (You can use long signal ``i=1:460; x=cos(i/100);h=ones(1,50)'' to do your experiment)



Chenyang Xu
Mon Sep 11 15:45:15 EDT 1995