Wdrażanie filtra dolnoprzepustowego FIR, kiedy należy użyć FFT i IFFT zamiast splotu w dziedzinie czasu?Filtr dolnoprzepustowy z wykorzystaniem FFT zamiast implementacji splotowania
Celem jest osiągnięcie najniższego czasu procesora wymaganego do obliczeń w czasie rzeczywistym. Z tego co wiem, FFT ma o O (n log n) złożoność, ale splot w dziedzinie czasu jest O (n²) złożoności. W celu realizacji filtru dolnoprzepustowego w domenie częstotliwości należy stosować FFT następnie mnożenie każdej z wartości współczynników filtrowania (które są przeliczane w dziedzinie częstotliwości), a następnie wykonać IFFT.
Pytanie brzmi, kiedy uzasadnione jest stosowanie filtrowania opartego na częstotliwościach (FFT + IFFT) zamiast stosowania filtru FIR opartego na bezpośrednim sprzężeniu? Powiedzmy, jeśli mamy 32 stałe współczynniki, czy FFT + IFFT powinno być używane czy nie? Jak około 128 współczynników? I tak dalej ...
Próbując zoptymalizować istniejący kod źródłowy (filtr FIR oparty na konwolucji), jestem całkowicie zdezorientowany, albo powinienem użyć FFT, albo po prostu zoptymalizować go, aby użyć SSE, czy nie.