30. marca, 2017

Digitalni avdio filter s Teensy 3.5

Revija 251 251 40 1 - Digitalni avdio filter s Teensy 3.5Revija logo se - Digitalni avdio filter s Teensy 3.5

Zadnjih nekaj mesecev sem Jureta Mikelna, urednika revije Svet elektronike, »dražil« z različnimi avdio projekti, ki sem jih uresničil s pomočjo Teensy razvojnih ploščic na ARM osnovi. O njih se je v reviji Svet elektronike že pisalo in Jure je bil mnenja, da bi bil Teensy lahko odlična platforma za avdio filter, ki bi ga lahko uporabili za radioamaterske namene. Odločil sem se, da sprejmem izziv.

Revija 251 251 40 2 - Digitalni avdio filter s Teensy 3.5

KLIK

Kaj od takšnega filtra pričakujemo?

  • Časovno prepustni (Bandpass) filter z centralno frekvenco na območju, ki ga lahko določi sam uporabnik (znotraj območja 500-1500Hz), ter nastavljiva pasovna širina obsega od 100 do 1500Hz.
  • Notch filter s sredinsko frekvenco v prej omenjenem območju, prav tako z nastavljivo pasovno širino
  • Sprejema naj analogni avdio signal, z 0.3 do 1V vrednosti od vrha do vrha.
  • Oddajati mora avdio signal z močjo 1W ali več, ki se nato dovaja v zvočnik ali slušalke
  • Dodatni LCD zaslon, ki prikazuje uporabniško izbrane parametre

Tekom pisanja programa mi je Jure predlagal še uvedbo Auto-Notcha. To je funkcija, ki zazna konstantni prenosni ton, ter nastavi notch fiter tako, da ga ta odstrani. Tudi dodajanje te dodatne funkcije ni bila pretežka naloga.

Osnovni koncepti digitalnega filtriranja

Revija 251 251 40 3 - Digitalni avdio filter s Teensy 3.5

KLIK

Digitalni filter je zelo uporaben, saj je sestava analognih pasovno prepustnih in notch filtrov precej zapletena, ter zahteva več komponent z nizkimi tolerancami ter operacijskih ojačevalnikov. V primeru digitalnega filtra pa analogne komponente zamenjamo s programsko kodo, ki jih učinkovito zamenja le do takšne mere, kot to narekujejo ustrezne matematične funkcije, ki jih kliče. Frekvenčni odziv navadnih radioamaterskih filtrov ni zelo napreden, saj zadošča le telefonskim standardom. Da bi izvajali zadostno digitalno filtriranje, potrebujemo hiter mikrokontroler, čemur Teensy vsekakor ustreza.

a programiranje Teensy ploščice uporabljamo Teensyduino integrirano razvojno okolje (IDE), ki je nadgradnja popularnega Arduino IDE. O tem IDE smo že pisali, prav tako pa tudi o napredni avdio knjižnici, ki jo Teensyduino vsebuje. Ta obsega vse osnovne gradnike analogno-digitalne oziroma obratne pretvorbe in tudi različne funkcije za filtriranje.

Najprej si poglejmo filtrirne algoritme. Avdio knjižnica nam ponuja tri vrste algoritmov za filtriranje, vsako s svojimi prednostmi in pomanjkljivostmi.

Biquad filter ima skromne potrebe po procesiranju, saj za vsak vzorec signala izvede le 5 produktov in 4 vsote. Mikrokontroler računa koeficiente sproti, zato lahko zamenjamo frekvenco ali pasovno širino brez prekinitve zvočnega prenosa. Oba filtra, ki ju potrebujemo sta podprta. Pomanjkljivost pa se pokaže pri nizki kotni frekvenci relativno na vzorčno frekvenco, saj koeficienti konvergirajo na 0, -2 in +1. To omeji bočni naklon filtra zaradi omejene natančnosti matematičnih operacij, ki jih knjižnica uporablja. (32-bitna matematika s fiksnim številom decimalk)

Program

Celotni članek

Digitalni avdio filter s Teensy 3.5

2017_SE251_40