Concordo sul fatto che il metodo di progettazione del filtro per finestre non è più uno dei metodi di progettazione più importanti e potrebbe in effetti essere sovrarappresentato nei libri di testo tradizionali, probabilmente a causa di ragioni storiche.
Tuttavia, penso che il suo uso possa essere giustificato in determinate situazioni. Non sono d'accordo sul fatto che la complessità computazionale non sia più un problema. Questo dipende dalla piattaforma. Seduti sul nostro computer desktop e progettando un filtro, non dobbiamo preoccuparci della complessità. Tuttavia, su piattaforme specifiche e in situazioni in cui la progettazione deve essere eseguita quasi in tempo reale, la complessità computazionale è un problema e una tecnica di progettazione subottimale semplice sarà preferita rispetto a una tecnica ottimale che è molto più complessa. Ad esempio, una volta ho lavorato su un sistema di beamforming in cui il filtro (beamformer) avrebbe dovuto essere riprogettato al volo, e quindi la complessità computazionale era davvero un problema.
Sono anche convinto che in molte situazioni pratiche non dobbiamo preoccuparci della differenza tra il design ottimale e quello non ottimale. Ciò diventa ancora più vero se dobbiamo usare l'aritmetica in virgola fissa con coefficienti quantizzati e risultati quantizzati di operazioni aritmetiche.
Un altro problema è la stabilità numerica dei metodi ottimali di progettazione del filtro e delle relative implementazioni. Mi sono imbattuto in diversi casi in cui l'algoritmo Parks-McClellan (dovrei dire, l' implementazione che ho usato) semplicemente non converge. Questo accadrà se la specifica non ha molto senso, ma può anche accadere con specifiche totalmente ragionevoli. Lo stesso vale per il metodo di progettazione dei minimi quadrati in cui è necessario risolvere un sistema di equazioni lineari, che può diventare un problema mal condizionato. In queste circostanze, il metodo a finestre non ti deluderà mai.
Un'osservazione sul tuo confronto tra il metodo della finestra e il design dei minimi quadrati: non penso che questo confronto mostri alcuna superiorità generale del metodo dei minimi quadrati rispetto al metodo della finestra. Innanzitutto, sembra che si osservi l'attenuazione della banda di arresto, che non è un obiettivo di progettazione per nessuno dei due metodi. Il metodo a finestre non è ottimale in alcun senso e il design dei minimi quadrati minimizza l'energia della banda di arresto e non si preoccupa affatto delle dimensioni dell'ondulazione della banda di arresto. Ciò che si può vedere è che il bordo della banda passante del design della finestra è più grande di quello del design dei minimi quadrati, mentre il bordo della fascia di arresto è più piccolo. Di conseguenza, l'ampiezza della banda di transizione del filtro progettato per finestre è inferiore, il che si tradurrà in increspature della banda di arresto più elevate. La differenza nella larghezza della banda di transizione può essere piccola, ma le proprietà del filtro sono molto sensibili a questo parametro. Non c'è dubbio che il filtro dei minimi quadrati superi quello dell'altro filtro quando si tratta di fermare l'energia della banda, ma non è facile da vedere quanto le dimensioni dell'ondulazione. E la domanda rimane se quella differenza farebbe davvero la differenza in un'applicazione pratica.
Lascia che ti mostri che tali confronti possono spesso essere fatti per apparire come vorremmo che fossero. Nella figura seguente paragone un filtro passa basso ottimale dei minimi quadrati progettato con la funzione Matlab / Octave firls.m
(blu) con un filtro passa basso progettato con il metodo della finestra usando una finestra Kaiser (rossa).
Dalla figura, si potrebbe persino concludere che il filtro progettato per finestre è leggermente migliore del filtro ottimale dei minimi quadrati. Questo ovviamente non ha senso perché non abbiamo nemmeno definito "migliore", e il filtro dei minimi quadrati deve avere un errore di approssimazione al quadrato medio più piccolo. Tuttavia, non lo vedi direttamente nella figura. Ad ogni modo, ciò serve solo a sostenere la mia affermazione secondo cui bisogna fare molta attenzione e chiarezza quando si effettuano tali confronti.
In sintesi, oltre ad essere utile per gli studenti DSP per motivi puramente didattici, penso che, nonostante i progressi tecnologici dagli anni '70, l'uso del metodo del windowing possa essere giustificato in alcuni scenari pratici, e non penso che lo farà cambia molto presto.
firpm()
e confirls()
.