Advertisement
Guest User

lab3_ptd

a guest
Dec 7th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. int main()
  2. {
  3.     fstream zad1;
  4.     zad1.open("zad1.csv",ios::out);
  5.     //------------plik-----------------
  6.     if (!zad1.is_open())
  7.     {
  8.         exception("Nie mozna otworzyc pliku \"zad1\"");
  9.         return 0;
  10.     }
  11.     //----------------------------------
  12.  
  13.     fstream zad2;
  14.     zad2.open("zad2.csv",ios::out);
  15.     //------------plik-----------------
  16.     if (!zad2.is_open())
  17.     {
  18.         exception("Nie mozna otworzyc pliku \"zad2\"");
  19.         return 0;
  20.     }
  21.     //----------------------------------
  22.  
  23.     double f=15.0;
  24.     double fs=800;
  25.     double ts=2;
  26.     double fi=M_PI/2;
  27.     double N=fs*ts;
  28.  
  29.     double FIm=0, FIc=0, Am=1.0, Ac=1.0; // stale
  30.     double kAM, kPM; // stale
  31.     //-----ustwawienie_k---------------
  32.  
  33.     //kAM=0.1;
  34.     //kAM=0.8;
  35.     kAM=1.0;
  36.     //kPM=1.0;
  37.     //kPM=2.1;
  38.     kPM=5.0;
  39.  
  40.     //----------------------------------
  41.     double fm=30; //stale pm = fi
  42.     double m[1600];
  43.     double c[1600];
  44.     double zAM[1600]; // z(t) dla AM
  45.     double zPM[1600]; // z(t) dla PM
  46.     double amplituda1=0, amplituda2=0;
  47.     double xi1[1600];
  48.     double xi2[1600];
  49.     double zi[1600];
  50.     double max=0;
  51.  
  52.     for(int t=0;t<=N-1;t++)
  53.     {
  54.         m[t]=Am*(sin(2.0*M_PI*fm*t/fs+fi)); // fi = pm 
  55.     }
  56.  
  57.     for(int s=0;s<=N-1;s++)
  58.     {
  59.         c[s]=Ac*(sin(2.0*M_PI*f*s/fs+fi));
  60.     }
  61.  
  62.     //----------------------AM--------------------
  63.     for(int r=0;r<=N-1;r++)
  64.     {
  65.         amplituda1 = 1.0+kAM*c[r];
  66.         zAM[r] = amplituda1 * (sin(2.0*M_PI*fm*r+fi));
  67.         //zad1 << r*fs/N << ";" << zAM[r] << "\n";
  68.         amplituda1=0;
  69.     }
  70.  
  71.     //----------------------PM--------------------
  72.     for(int w=0;w<=N-1;w++)
  73.     {
  74.         zPM[w]=Am*(sin(2.0*M_PI*fm*w+kPM+c[w]));
  75.         //zad2 << w*fs/N << ";" << zPM[w] << "\n";
  76.     }
  77.     //--------------------------------------------
  78.     for(int h=0;h<=N-1;h++)
  79.     {
  80.         zi[h]=(sqrt(zAM[h]*zAM[h]+zPM[h]*zPM[h]));
  81.         xi1[h]=10*log(zi[h]*zi[h]);
  82.         //zad2 << h*fs/N << ";" << xi1[h] << "\n";
  83.     }
  84.     // obliczanie maxa w tablicy xi1
  85.     for(int d=0;d<=1600-1;d++)
  86.     {
  87.         if(xi1[d]>max)
  88.         {
  89.             max=xi1[d];
  90.         }
  91.     }
  92.  
  93.     for(int p=0;p<=N-1;p++)
  94.     {
  95.         xi2[p]=xi1[p]-max;
  96.         //zad1 << p*fs/N << ";" << xi2[p] << "\n";
  97.     }
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement