document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2. -------------------------------------------------------------------------------------------------
  3.  Assignment No:5
  4.  Title: Compute N Point DFT Using linear transformation matrix.
  5. -------------------------------------------------------------------------------------------------
  6. */
  7.  
  8. #include<conio.h>
  9. #include<iostream.h>
  10. #include<math.h>
  11.  
  12. # define max 50
  13.  
  14. void main()
  15. {
  16.   int i,j,k,n,ch,xr[max]={0},xi[max]={0};
  17.   int x[max]={0},wi[max]={0},wr[max]={0},c[max][max]={0},s[max][max]={0};
  18.   clrscr();
  19.   do
  20.   {
  21.     cout<<"\\n--::MENU::---\\n";
  22.     cout<<"\\n-------------\\n";
  23.     cout<<"\\n 1.DFT \\n";
  24.     cout<<"\\n 2.IDFT \\n";
  25.     cout<<"\\n-------------";
  26.     cout<<"\\nEnter your choice:\\n";
  27.     cin>>ch;
  28.     switch(ch)
  29.     {
  30.       case 1:
  31.           cout<<"\\n Enter your choice of seq u want:";
  32.           cin>>n;
  33.           cout<<"\\n Enter values in x(n)\\n";
  34.           for(i=0;i<n;i++)
  35.           {
  36.         cout<<"x("<<i<<")=";
  37.         cin>>x[i];
  38.           }
  39.           for(i=0;i<n;i++)
  40.           {
  41.          for(j=0;j<n;j++)
  42.          {
  43.           c[i][j]=s[i][j]=0;
  44.          }
  45.           }
  46.          for(i=0;i<n;i++)
  47.            {
  48.          for(j=0;j<n;j++)
  49.         {
  50.            c[i][j]=cos((2*M_PI*i*j)/n);
  51.            s[i][j]=sin((2*M_PI*i*j)/n);
  52.            s[i][j]=s[i][j]*(-1);
  53.            cout<<c[i][j]<<"+j("<<s[i][j]<<")\\t";
  54.         }
  55.           cout<<"\\n";
  56.         }
  57.            for(i=0;i<n;i++)
  58.            {
  59.          for(j=0;j<n;j++)
  60.           {
  61.             wr[i]=wr[i]+(c[i][j]*x[j]);
  62.             wi[i]=wi[i]+(s[i][j]*x[j]);
  63.           }
  64.          cout<<"\\n";
  65.            }
  66.            cout<<"\\nFinal Output Sequence:\\n";
  67.            for(i=0;i<n;i++)
  68.            {
  69.             cout<<"\\t"<<wr[i]<<"+j("<<wi[i]<<")\\n";
  70.            }
  71.            cout<<"\\nFinal output Sequence is:\\n";
  72.            cout<<"{";
  73.            for(i=0;i<n;i++)
  74.            {
  75.             cout<<wr[i]<<"+j("<<wi[i]<<"),";
  76.            }
  77.            cout<<"}";
  78.            break;
  79.        case 2:
  80.           cout<<"\\n Enter your choice of seq u want:";
  81.           cin>>n;
  82.           cout<<"\\n Enter values in x(n)\\n";
  83.           for(i=0;i<n;i++)
  84.           {
  85.         cout<<"x("<<i<<")=";
  86.         cin>>xr[i]>>xi[i];
  87.           }
  88.           for(i=0;i<n;i++)
  89.           {
  90.          for(j=0;j<n;j++)
  91.          {
  92.           c[i][j]=s[i][j]=0;
  93.          }
  94.           }
  95.          for(i=0;i<n;i++)
  96.            {
  97.          for(j=0;j<n;j++)
  98.           {
  99.            c[i][j]=cos((2*M_PI*i*j)/n);
  100.            s[i][j]=sin((2*M_PI*i*j)/n);
  101.            s[i][j]=s[i][j]*(1);
  102.            cout<<c[i][j]<<"+j("<<s[i][j]<<")\\t";
  103.            }
  104.           cout<<"\\n";
  105.         }
  106.          for(i=0;i<n;i++)
  107.          {
  108.         wi[i]=wr[i];
  109.          }
  110.          for(i=0;i<n;i++)
  111.           {
  112.         for(j=0;j<n;j++)
  113.          {
  114.             wr[i]=wr[i]+(c[i][j]*xr[j])-(s[i][j]*xi[i]);
  115.             wi[i]=wi[i]+(s[i][j]*xr[j])+(c[i][j]*xi[j]);
  116.          }
  117.          wr[i]=wr[i]/n;
  118.          wi[i]=wi[i]/n;
  119.          cout<<"\\n";
  120.           }
  121.            cout<<"\\nFinal Output Sequence:\\n";
  122.            for(i=0;i<n;i++)
  123.            {
  124.             cout<<"\\t"<<wr[i]<<"+j("<<wi[i]<<")\\n";
  125.            }
  126.            cout<<"\\nFinal output Sequence is:\\n";
  127.            cout<<"{";
  128.            for(i=0;i<n;i++)
  129.            {
  130.             cout<<wr[i]<<"+j("<<wi[i]<<"),";
  131.            }
  132.            cout<<"}";
  133.            cout<<"\\n";
  134.            break;
  135.     }//case
  136.   }while(ch!=3);
  137.   getch();
  138. }
');