V Programu jsou vytvořeny
funkce, které se zavolají s příslušnými parametry a následně nám vrátí
požadované data, které lze přímo vykreslit do grafu. Je zde soubor Filtry,
který obsahuje funke :
-
public PointPairList
SkupinoveZpozdeni(TypFiltru typF, Data data)
-
public PointPairList
FazoveZpozdeni(TypFiltru typF, Data data)
-
public PointPairList[]
Pasmo(TypFiltru typF, Data data)
-
public PointPairList
AmplitudovaFCH(TypFiltru typF, Data data)
-
public PointPairList
FazovaFCH(TypFiltru typF, Data data)
kde:
public enum TypFiltru
{
F1 = 0,
F2
}
// citatel – citatele
filtru
//jmenovatel –
jmenovatele filtru
//Freq_nosne – frekvence
nosne
//SirkaPasma – sirka
pasma BT
//osax – delka x-ove osy
//rozliseni – počet
vzorku na dekadu
public Data(double citatel1, double
citatel2, double citatel3, double jmenovatel1, double
jmenovatel2, double
jmenovatel3, int Freq_nosne, int SirkaPasma, int
osax, double rozliseni)
//Skupinove zpozdeni
vrat.Add(i, Math.Atan(2 * Math.PI
* i * data.jmenovatel2) / (2 * Math.PI *
i));
//Fazove zpozdeni
vrat.Add(i,
data.jmenovatel2 / Math.Pow(1+(2*Math.PI*i*data.jmenovatel2) , 2));
//Pasmo
vrat[0].Add(data.Freq_nosne -
(data.SirkaPasma / 2), i);
vrat[1].Add(data.Freq_nosne +
(data.SirkaPasma / 2), i);
vrat[2].Add((data.SirkaPasma / 2),
-i);
//Amplitudova frekvencni charakteristika
com.Re = 1 / (1+ Math.Pow(i*data.jmenovatel2,
2));
com.Im = (-i*data.jmenovatel2)/(1+Math.Pow(i*data.jmenovatel2, 2));
vrat.Add(i / (2 * Math.PI), 20*Math.Log10(com.Magnitude)
);
//Fazova frekvencni charakteristika
com.Re = 1 / (1 + Math.Pow(i
* data.jmenovatel2, 2));
com.Im = (-i * data.jmenovatel2) / (1 + Math.Pow(i * data.jmenovatel2, 2));
vrat.Add(i / (2*Math.PI), 180 / Math.PI
* com.Phase);
Pro
zobrazení písmen řeské abecedy byla vytořeny funkce :
-
ReckceZnaky.Velke
-
ReckceZnaky.Male
Pro práci
s komplexními čísly byla použita knihovna třetí strany Aforge
Framework dostupná ze stránek
http://www.aforgenet.com/framework/