Vypravcovali: Adam Přibyl Jan Prokš
Protože jsme původně ještě nevěděli jak správně pomocí matlabu navrhovat filtry typu FIR navrhli jsme iniciativně filtr o zadaných vlastnostech jako IIR (viz. 'semfir2.m').
Správný návrh filtru je v souboru 'semfir3.m'.
Největší problémy při návrhu FIRu dělá zjištění řádu a mezních frekvencí. Prvotní odhad řádu jsme získali ze vztahu uvedeného v literatuře, odhad mezních frekvencí z frekvencí zadaných tolerančním polem a úvahy, že 6dB odpovídá zhruba polovině přechodového intervalu.
Po získání prvotního odhadu je třeba ho korigovat. Protože filtr má užší přechodové pásmo v nižších kmitočtech bylo třeba jakožto optimalizační parametry volit útlum v propustném a nepropustném pásmu na frekvencích 600Hz a 1000Hz.
Tím jsme dostali v N konečný řád filtru a v b koeficienty příslušného FIR filtru.
Ověřili jsme, že okno vybrané podle útlumu z literatury je skutečně nejvhodnější, neboť jakékoli jiné znamená nárůst řádu filtru. (hanning=41, hamming=42, blackman=56, bartlett=231) Vzhledem k tomu, že jsme neměli sledovat žádné další vlastnosti filtru považujeme toto řešení za optimální.
Poté jsme koeficienty filtru získané z Matlabu použili pro vytvoření zdrojových kódů v assembleru TMSc50. Soubor 'semfir41.asm' je FIR filtr bez cirkulárního adresování. Dá se spustit pouze v simulátoru. Soubor 'fir.asm' je FIR filtr podle zadání - tedy s cirkulárním adresováním. Ten se dá spustit jak na simulátoru (ze simulátoru pochází též soubor 'output.hex', který obsahuje impulsovou odezvu filtru) tak na vývojové desce. (Proměnná DSP na začátku zdrojového textu.) Vstupní inpuls je definován v 'input.hex'. Kompilace, linkování a spuštění simulátoru se provede prikazem 'a.bat', 'l.bat', 's.bat'. V programu pro aplikaci na vývojové desce je třeba příslušný kód programu nejdříve nahrát (LC) pak přenést a spustit (XG).
Jak vidno i ze zdrojových textů vlastní cást vykonávajíci filtraci je velmi krátká. Daleko největší část tvoří inicializace destičky a procesoru. Bez příkladů které byly k dispozici by to byla pro nás úloha velmi složitá, takto však stačilo příslušné části modifikovat pro náš případ.
Výsledky měření filtru na vývojové desce jsou v souboru 'vys_mer.txt'.