u/OnboardG1

Circularity when convolving two DFT spectra
▲ 23 r/DSP

Circularity when convolving two DFT spectra

Good afternoon all.

I’ve been working through Rick Lyons’ Understanding DSP 3rd edition and there’s a problem on P672 I’m tripping over a bit. He talks about multiplying a sequence by an equal length sequence of alternating ones and zeroes to downshift by fs/2. I can’t post more than one image but the 32 length dft spectrum is a relatively trivial one of a single spike of height 32 at fs/2. He demonstrates this principle with the example above, multiplying the alternating ones and zeroes with a signal of spectra 13-2(a) and getting the spectrum 13-2(c). This makes sense as it’s just a translation by fs/2 and the result is the frequencies of interest wrapping round the end points and mirroring.

Where I’m getting stuck is that Lyons strongly recommends doing the convolution of the two spectra to aid understanding of the convolution theorem. I agree it’s a good idea and tried it, first by hand and then using a hand coded convolution script in octave. I get the same strange result: instead of 13-2(c) I get something that looks very like 13-2(a) but with the zero pad from the convolution extending out around it. I verified this with the built in conv function. I had a stroke of intuition and noticed it looked like if 13-2(c) were depicted as a conventional negative-first frequency plot rather than a positive-first plot output of a DFT. I applied the fftshift command, which produced exactly the result in 13-2(c). I’m struggling to understand why this is the case. It has to be to do with the periodicity of the DFT but I can’t quite make the jump to why that is. What’s special about the convolution that causes this phenomenon? Or have I made a mistake somewhere?

u/OnboardG1 — 11 days ago