Zdravím, neporadí někdo jak vytvořit filtr v C, který je vlastně jako equalizér na mixážním pultu? Nebo navést co bych si k tomu měl nastudovat?
Zatím vím, že na to budu potřebovat asi IIR nebo FIR filtr. Na wikipedii je sice popis co to je, ale netuším jak to iplementovat do Cčka. Mají se spočítat nějaké koeficienty impulzní odezvy a těmi se pak budou postupně násobit nově příchozí vzorky? Nebo tam budou složitější matematické operace (pro každý vzorek), takže by to mikroprocesor s rychlostí 160 MHz nestíhal pro zvuk se vzorkováním 48 kHz počítat v reálném čase? - A tím pádem to nemusím dál řešit?
Asi bys ses měl více rozepsat o finální aplikaci, kde to bude sloužit a proč děláš, to co děláš. Jestli jde o diplomku nebo to má nějak v reálu sloužit...
Implementace FIR nebo IIR filtru je o násobení a sčítání vzorků. Máš buffer ve kterém jednotlivé vzorky násobíš koefecienty a pak je sečteš a pustíš do výstupu. V každém taktu posuneš vzorky o jedno místo a nejstarší zahodíš.
FIR má výhodu, že je jednodušší na výpočet koeficientů a není citlivý na zaokrouhlovací chyby. Nevýhodu má, že pokud má trochu lépe filtrovat, tak z principu funkce vzniká velké zpoždění mezi vstupem a výstupem.
Pro představu nejjednodušší příklad FIR filtru je klouzavý nebo vážený průměr - koeficienty jsou vlastně jednotlivé váhy.
IIR filtr má zpoždění podstatně menší, ale je kritický na výpočet koeficientů a zaokrouhlovací chyby. Vtip je jenom v tom jak se přičítají vzorky - je tam něco jako zpětná vazba. Může se tedy rozkmitat.
Vlastní výpočet je o tom vzít vzorkovací frekvenci, navrhnou parametry filtrace a hodit to do matlabu. Vlastní přepsání do C při pochopení principu výpočtu už je to úplně nejmenší.
bdn
Chtěl bych si udělat malý digitální mixáček. Pro začátek klidně jeden vstup a aplikovat na něj základní funkce mixu - předzesílení (to by se asi řešilo pomocí PGA v A/D převodníku), parametrický EQ a výstupní hlasitost.
HF_Tech
Díky za shrnutí jak to přibližně funguje. Takže IIR vypadá že je cesta
Akorát bych potřeboval, aby to umělo spočítat koeficienty samo, když zadám frekvenci, zesílení/zeslabení a Q. Řád filtru (počet koeficientů) asi bude záležet na tom Q, že?
A pokud není k dispozici Matlab, tak se ty koeficienty dají získat z inverzní FFT?
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.