# Is zero-padding necessary for speech processing to satisfy linear convolution property?

In the FFT domain, for example, if I multiply a noise reduction gain to the noisy signal, $$Y(w)H(w)$$, this translates to a circular convolution in the time domain of the same length $$y(t) \circledast h(t)$$. If I want to convert this to a linear convolution, I should do zero-padding such that the noisy signal y(t) is now twice the original length minus 1 (assuming the noisy signal $$y(t)$$ and filtering signal $$h(t)$$ are of the same length).

My question is, is obtaining a linear convolution necessary for speech processing? What happens if I just stay with the circular convolution (i.e. NFFT length = signal length)? What if I just want to maintain the same signal length before and after processing? I am quite confused about the importance of satisfying linear convolution property in the context of STFT.

• Is your ultimate goal to do just linear convolution? Because circular convolution is only a method to implement the linear convolution by carefully choosing FFT size. – jithin Mar 26 at 8:11
• No, I think not. My goal is just to modify the current spectrum of speech in FFT by multiplying it with a spectral gain. And then bring it back to time domain all with the same length. But somehow I read about the circular and linear convolution and I don't know what's the purpose of linear convolution in this case. – micropyre Mar 26 at 8:27
• Yes, you need zero padding and probably more than you think you do. Why don't try it without and listen to the results? That's going to answer your question quickly. – Hilmar Mar 26 at 11:52

My answer is not from speech processing angle but from a generic signal processing involving Linear and Circular Convolution.

Is zero-padding necessary for speech processing to satisfy linear convolution property?

If the FFT size is $$N$$, and the length of result of linear convolution size is $$\gt N$$, then you need to do zero-padding. Otherwise it will result in time-aliasing in time domain. The effect of this is, at the output of FFT you will get an under-sampled representation of the theoretical continuous time DFT signal. $$(Y.*H)(e^{j2\pi k/n}) = (Y.*H)(e^{j\omega})|_{\omega = 2\pi k/N}$$ but $$(Y.*H)(e^{j\omega})|_{\omega = 2\pi k/N} \ne (\sum_0^{N-1}p[n]e^{-j\omega n})|_{\omega = 2\pi k/N}$$ because of time aliasing. Here $$p$$ is the sequence obtained by linear convolution.

What happens if I just stay with the circular convolution (i.e. NFFT length = signal length)?

Since your FFT length $$N$$ is equal to signal length $$N$$, the above time aliasing will happen.

What if I just want to maintain the same signal length before and after processing?

Your FFT size has to be atleast equal to the resultant linear convolved signal length ($$2N-1)$$. Because that will be the length of signal you will be working with after the point-wise multiplication. So your FFT size has to be at least $$2N-1$$ before hand. See this question and its answers too Linear and Circular Convolution in Fourier Domain (DFT)