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 PAM, který obsahuje funke :

-       public PointPairList ModulacniSignal(Data data)

-       public PointPairList[ ] Vzorky (Data data, float sizeUp, float sizeDown)

-       public PointPairList PAModulation(Data data)

kde :

// Ampl_mod – amplituda signalu

// Freq – frekvence signalu

// typSignalu– typ signalu (sin, cos)

// Ts – počet vzorku na periodu

public Data(int Ampl_mod, int Freq, TypSignalu typSignalu, int Ts)

 

//Generovani modulacniho signalu

float t = (1.0f / (float)data.Freq1);

double y1 = 0;

for (float i = 0; i < t; i += (t / 1000))

{

   if(data.typSignalu == TypSignalu.sin)

      y1 = data.Ampl_mod * Math.Sin((float)i * 2 * 3.14 * data.Freq1);

   else y1 = data.Ampl_mod * Math.Cos((float)i * 2 * 3.14 * data.Freq1);

     vrat.Add(i, y1);

}

 

//Generovani vzorků pro graficke znazorneni

float t = (1.0f / (float)data.Freq1);

float t2 = t / data.Ts;

float dx = 0;

int index = 0;

for (float i = 0; i < t; i += (t / 1000))

{

   if (i > dx)

   {

       dx += t2;

       vrat[index] = new PointPairList();

       vrat[index].Add(i, sizeUp);

       vrat[index++].Add(i, -sizeDown);

    }

}

 

//Generovani modulovaneho signalu

float t = (1.0f / (float)data.Freq1);

float t2 = t / data.Ts;

float dx = 0;

double y1 = 0;

int pocetvzorku = 0;

for (float i = 0; i < t; i += (t / 1000))

{

   if (i > dx)

   {

       dx += t2;

       if (data.typSignalu == TypSignalu.sin)

           y1 = data.Ampl_mod * Math.Sin((float)i * 2 * 3.14 * data.Freq1);

       else y1 = data.Ampl_mod * Math.Cos((float)i * 2 * 3.14 * data.Freq1);

           vrat.Add(i, y1);

           pocetvzorku = 0;

        }

        if (typVzorkovani == TypVzorkovani.uniformni)

        {

            if (pocetvzorku < 10)

            {

                pocetvzorku++;

                vrat.Add(i, y1);

            }

            else vrat.Add(i, 0);

        }

        else

        {

            if (pocetvzorku < 10)

            {

                pocetvzorku++;

                if (data.typSignalu == TypSignalu.sin)

                    y1 = data.Ampl_mod * Math.Sin((float)i * 2 * 3.14 * data.Freq1);

                else y1 = data.Ampl_mod * Math.Cos((float)i * 2 * 3.14 * data.Freq1);

                    vrat.Add(i, y1);

             }

             else vrat.Add(i, 0);

        }

}