DSP - Progettazione assistita da computer

I filtri FIR possono essere utili nella progettazione assistita dal computer dei filtri. Facciamo un esempio e vediamo come funziona. Di seguito è riportata una figura del filtro desiderato.

Durante la progettazione del computer, suddividiamo le cifre dell'intero grafico continuo in valori discreti. Entro certi limiti, lo suddividiamo in 64, 256 o 512 (e così via) numero di parti aventi grandezze discrete.

Nell'esempio sopra, abbiamo preso i limiti tra -π e + π. Lo abbiamo diviso in 256 parti. I punti possono essere rappresentati come H (0), H (1), ... fino a H (256). Qui applichiamo l'algoritmo IDFT e questo ci darà caratteristiche di fase lineari.

A volte, potremmo essere interessati a un particolare ordine di filtro. Supponiamo di voler realizzare il progetto sopra dato attraverso il filtro di 9 ° ordine. Quindi, prendiamo i valori del filtro come h0, h1, h2… .h9. Matematicamente, può essere mostrato come di seguito

$$ H (e ^ {j \ omega}) = h_0 + h_1e ^ {- j \ omega} + h_2e ^ {- 2j \ omega} + ..... + h_9e ^ {- 9j \ omega} $$

Dove c'è un gran numero di dislocazioni, prendiamo il massimo dei punti.

Ad esempio, nella figura sopra, c'è un improvviso calo di pendenza tra i punti B e C.Quindi, proviamo a prendere valori più discreti a questo punto, ma c'è una pendenza costante tra il punto C e D. Là prendiamo minor numero di valori discreti.

Per progettare il filtro sopra, seguiamo il processo di minimizzazione come segue;

$ H (e ^ {j \ omega1}) = h_0 + h_1e ^ {- j \ omega1} + h_2e ^ {- 2j \ omega1} + ..... + h_9e ^ {- 9j \ omega1} $

$ H (e ^ {j \ omega2}) = h_0 + h_1e ^ {- j \ omega2} + h_2e ^ {- 2j \ omega2} + ..... + h_9e ^ {- 9j \ omega2} $

Allo stesso modo,

$ (e ^ {j \ omega1000}) = h_0 + h_1eH ^ {- j \ omega1000} h_2e ^ {- 2j \ omega1000} + ..... + h_9 + e ^ {- 9j \ omega1000} $

Rappresentando l'equazione di cui sopra in forma di matrice, abbiamo:

$$ \ begin {bmatrix} H (e ^ {j \ omega_1}) \\. \\. \\ H (e ^ {j \ omega_ {1000}}) \ end {bmatrix} = \ begin {bmatrix} e ^ {- j \ omega_1} & ... & e ^ {- j9 \ omega_1} \\. & &. \\. & &. \\ e ^ {- j \ omega_ {1000}} & ... & e ^ {j9 \ omega_ {1000}} \ end {bmatrix} \ begin {bmatrix} h_0 \\. \\. \\ h_9 \ end {bmatrix} $$

Prendiamo la matrice 1000 × 1 come B, la matrice 1000 × 9 come A e la matrice 9 × 1 come $ \ hat {h} $.

Quindi, per risolvere la matrice sopra, scriveremo

$ \ hat {h} = [A ^ TA] ^ {- 1} A ^ {T} B $

$ = [A ^ {* T} A] ^ {- 1} A ^ {* T} B $

dove A * rappresenta il complesso coniugato della matrice A.