Signal processing – why do convolution results have different lengths in frequency domain vs frequency domain?

I am not a DSP expert, but I understand that there are two methods to apply discrete time domain filter to discrete time domain waveform The first is to convolute in the time domain, and the second is to multiply the two complex spectra by using their FFT, and IFFT the results A key difference between these methods is that the second method is cyclic convolution

As an example, if both the filter and the waveform are n points long, the first method (i.e. convolution) produces the result of n-1 points, where the first half of the response is filter filling and the lower half is filter emptying In order to obtain the steady-state response, the filter needs fewer points than the waveform to be filtered

Continue this example with the second method, assuming that the discrete time-domain waveform data are real (not complex), and the FFT and waveform of the filter produce N-point FFT The time domain result obtained by multiplying the two spectrum IFFT is also n points long Here, the filter fill and empty responses overlap each other in the time domain, and there is no steady-state response This is the effect of cyclic convolution To avoid this, usually the filter size will be smaller than the waveform size, and both will be zero filled to allow the space of frequency convolution to expand in time after the IFFT of the product of the two spectra

My problem is that I often see work in the literature of experts / companies. They have discrete (real-time) time-domain waveforms (n points). They perform FFT, multiply them by some filters (also known as n points) and carry out subsequent processing of IFFT My naive idea is that this result should not include steady-state response, so it should include artifacts in filter filling / emptying, which will lead to errors in interpreting the generated data, but I must lose something Under what circumstances is this an effective method?

Any comments will be appreciated

Solution

The basic problem is not about zero filling and assumed periodicity, but Fourier analysis decomposes the signal into sine waves, which is considered to be infinite at the most basic level Both methods are correct, because IFFT using full FFT will return accurate input waveform, and neither method is correct, because using less than full spectrum may lead to the influence of edge (usually extending several wavelengths) The only difference is the details of the rest of your assumptions, not whether you make assumptions

Back to your first paragraph: usually, the biggest problem I encounter in DSP is that they are non causal, so I often like to stay in the time domain, such as using fir and IIR filters

to update:

In the problem statement, Op correctly pointed out some problems that may occur when using FFT to filter signals, such as edge effect, which may be particularly problematic when performing convolution of equivalent length (in the time domain) to the sampled waveform It is important to note that not all filtering is completed by FFT, but in the papers cited by OP, they are not implemented by FFT filter, but by FFT filter

For example, consider using two different implementations to implement a filter with a simple average of 128 sampling points

FFT: in the FFT / convolution method, there will be a sample of 256 points, for example, and it will be convoluted with the constant WFM in the first half and become zero in the second half The question here is (even if the system runs for several cycles), what determines the value of the first point of the result? FFT assumes that WFM is circular (i.e. infinitely periodic), so the first point of the result is determined by the last 127 (upcoming) samples of WFM (skip the middle of WFM) or 127 zeros if your zero pad Neither correct

Fir: another method is to use FIR filter to achieve average value For example, the average of the values in the FIFO queue of 128 registers can be used here That is, when each sampling point enters, 1) put it in the queue, 2) queue the oldest item; 3) 128 items remaining in the average queue; This is your result for this sampling point This method runs continuously, processes one point at a time, and returns the filtering results after each sample, and there is no problem from FFT because it is applied to finite sample blocks Each result is only the average of the current sample and the previous 127 samples

The paper cited by OP is more similar to FFT filter than FIR filter (note that the filter in this paper is more complex, and the whole article is basically an analysis of the filter) For example, this free book describes how to analyze and apply different filters, and also note that the Laplace analysis method for fir and IIR filters is very similar to that in the cited paper

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>