(#) |
Gusi hozzászólása |
Jan 10, 2017 |
|
/ |
|
|
Sziasztok!
FIR szűrőnél hogyan lehet kiszámolni a szükséges mintaszámot?
Kaiser-hez van képlet ami megadott frekvencia-meredekség és csillapítás értékéhez számol egy fokszámot, amiből ugye jön a mintaszám.
dOmega = 2 * pi * ftw / fs
ahol -> ftw = min(abs(f_stopband_1 - f_passband_1), abs(f_stopband_2 - f_passband_2))
N = upround[(A - 7.95) / (2.285 * dOmega)] @ A > 21dB
N = upround[ 5.794 / dOmega ] @ A <= 21dB (same as rectangular window)
Más szűrőnél hogyan lehet meghatározni?
IIR-nél szintén egyszerű, de nekem FIR-hez kellene.
Thx!
Mármint az együtthatók számára vagy kíváncsi ?
(#) |
Gusi hozzászólása |
Jan 10, 2017 |
|
/ |
|
|
Igen.
Ugye, több féle metódus van FIR szűrő tervezésére. Nekem a legszimpatikusabb a "kézzel rajzolt" karakterisztika által definiált módszer.
Ekkor ugye megtervezed a frekvenciaátvitelt, majd ez alapján kiszámolod az impulzusválaszát(Frekimenet->FFT=impulzusválasz). Ez egy végtelenhez konvergáló hosszúságot eredményezne, de mi előre bekorlátozzuk a hosszát az átalakítás során. Alkalmazunk rá valamilyen ablakoló függvényt(ez erősen befolyásolja az eredményt), és visszaalakítod frekvenciadoménre. Ekkor látni fogod a létrejött szűrő valós frekvenciamenetét. Ha az megfelel, akkor örülsz neki..., ha nem...változtatsz a paramétereken.
(#) |
Gusi hozzászólása |
Jan 10, 2017 |
|
/ |
|
|
Hümm, képletekkel esetleg ?
Vagy esetleg linket tudnál mutatni?
Köszönöm.
Itt mindent megtalálsz, amire szükséged lehet a témában.
(#) |
Gusi hozzászólása |
Jan 10, 2017 |
|
/ |
|
|
(#) |
Gusi hozzászólása |
Jan 10, 2017 |
|
/ |
|
|
Végülis, a Kaiser 0.922 szorzója (21dB-nél) majdnem megyegyező értéket ad ezzel (M=N/2).