⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtcsfs1.cpp

📁 该软件的功能是一个超宽带无线通讯仿真软件
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <math.h>
#include <vcl.h>
#pragma hdrstop
#include "jtcsfs1.h"
#include "usb_AD\usbad1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float e = 2.718281828459,pi=3.1415926,alf=0.5e-5,tp,Ap;
float Pli[810],Pli1[810],Rxx[810],spy1[810],spy2[810],spy3[810],rt[810],n[810],n1[810],n2[810],Wb[810],Vb[810];
int i=0,k1=0,fc;//=100000;

    int BoardNum = 0;
    int ULStat = 0;
    int LowChan = 2;
    int HighChan =2;
    int Gain = BIP10VOLTS;
    long Count = 1000;
    long Rate = 8000;    //  long Rate = 3125;
    WORD ADData[1100];

    unsigned Options;
    float    RevLevel = (float)CURRENTREVNUM;



//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{

     alf=0.00005;
    tp=alf/(2*sqrt(pi));
    Ap=sqrt(2/alf);
    fc=1/(2*tp*pi);


}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
int k=0,j,t,tao;
int Tf=100,tc=10,kc=15,dj=0,Ns=2,dn=0;
float t1,c3,c30,c31,c4;
int ts;
int  C[10],d[24];

    C[0]=2;C[1]=3;C[2]=4;C[3]=5;C[4]=2;
    C[5]=2;C[6]=2;C[7]=2;C[8]=2;C[9]=2;
    ////    alf=0.5e-5;
    tp=alf/(2*sqrt(pi));

    Ap=sqrt(2/alf);
    fc=1/(2*tp*pi);




   Edit1->Text=fc;

for(j=0;j<24;j++){
  d[j]=0;
}
 if(Edit5->Text=="")Edit5->Text=0;
 dj=StrToInt(Edit5->Text);
  d[0]=dj&8; d[0]>>=3;
  d[1]=dj&4; d[1]>>=2;
  d[2]=dj&2; d[2]>>=1;
  d[3]=dj&1; //d[3]>>=0
   Edit6->Text=d[0];  Edit7->Text=d[1]; Edit8->Text=d[2]; Edit9->Text=d[3];

for(j=0;j<800;j++){
  spy1[j]=0;
  spy2[j]=0;
  spy3[j]=0;
}

for(j=0;j<8;j++){
 t=j*Tf+C[j]*tc;
 for(ts=-5;ts<5;ts++){
 spy1[t+ts]=Ap;
 }
}
for(j=0;j<8;j++){
 dn=j/Ns;
 t=j*Tf+C[j]*tc+kc*d[dn];
 for(ts=-20;ts< 20;ts++){

  //  t1=ts*(2*alf*pi);
    t1=2*alf*pi*ts/40.0;
  // spy2[t+ts]=2*sqrt(e)*Ap*pi*(ts/1000000.0)*fc*exp(-2*(pi*ts/1000000.0*fc)*(pi*ts*fc/1000000.0));
    spy2[t+ts]=2*sqrt(e)*Ap*pi*t1*fc*exp(-2*(pi*t1*fc)*(pi*t1*fc));
  //  Pli[t+ts]=2*sqrt(e)*Ap*pi*t1*fc*exp(-2*(pi*t1*fc)*(pi*t1*fc));


  }
}

  for(i=0;i<800;i++){
      //   Pli[i]=2000*sin(i/10.0);

         Pli[i]=2*(rand()%1000);
 }

  tao=0; i=0;  c4=1;  c3=0;   c30=0;c31=0;
      for(i=0;i<800;i++){

        for(k=1;k<800;k++){
        tao=k-i;
        if(i>k)tao=800-i;

       Pli1[k]=spy2[tao];
       c3+=spy2[k]*Pli1[k];
       c30+=spy2[k]*spy2[k];
       c31+=spy2[k]*spy2[k];
      }
        c4=sqrt(c30*c31);
        if(c4==0)c4=1;
      //   Rxx[i]=c3/(c30*c31);
        Rxx[i]=c3/sqrt(c30*c31);

      }











//====================动态曲线显示============
        i++;
     if(i>=800){i=0;}
     Series1->Clear();
     Series2->Clear();
     Series3->Clear();
        k1=i+1;
     for(k=0;k<800;k++){

          // if(CheckBox1->Checked==true){Series1->Add(spy1[k],1,clRed);}
           if(CheckBox1->Checked==true){Series1->Add(Pli[k],1,clRed);}
           if(CheckBox2->Checked==true){Series2->Add(spy2[k],5,RGB(0,255,0));}
           if(CheckBox3->Checked==true){Series3->Add((Rxx[k]),5,clYellow);}
    }
    }
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{

 int k=0,j,t,f;
int Tf=100,tc=10,kc=15,dj=0,Ns=2,dn=0;
float A=1,Ak=1,H,rd,nr=1.0,As=1.0,nn=10.0,w=1,pp=0,t2;
int ts;
int  C[10],d[24],Hd[24];

    C[0]=2;C[1]=3;C[2]=4;C[3]=5;C[4]=2;
    C[5]=2;C[6]=2;C[7]=2;C[8]=2;C[9]=2;

   //  alf=0.5e-5;
    tp=alf/(2*sqrt(pi));
    Ap=sqrt(2/alf);
    fc=1/(2*tp*pi);
    Edit18->Text=2*alf*pi;


     Edit1->Text=fc;
    Label8->Caption=Ap;
   if(Edit15->Text=="")Edit15->Text=1;
   Ak=StrToFloat(Edit15->Text);
   if(Edit16->Text=="")Edit16->Text=1;
   nr=StrToFloat(Edit16->Text);
 if(Edit17->Text=="")Edit17->Text=1;
   As=StrToFloat(Edit17->Text);

   

 if(Edit19->Text=="")Edit19->Text=1;
   w=StrToFloat(Edit19->Text);

if(Edit20->Text=="")Edit20->Text=1;
   pp=StrToFloat(Edit20->Text);

if(Edit21->Text=="")Edit21->Text=0.5e-5;
   alf=StrToFloat(Edit21->Text);


if(CheckBox10->Checked==true){pp=100*((rand()%10)/10.0-0.5);}

for(j=0;j<24;j++){
  d[j]=0;
}
for(j=0;j<800;j++){
  rt[j]=0;
  n[j]=nr*(rand()%100);
  
  if(CheckBox9->Checked==false){n[j]=0;}

 // n1[j]=As*sin(pp+j/w);
  if(CheckBox8->Checked==false){n1[j]=0;}
   n2[j]=As*sin(2*pi+pp+j/(w));

  //  n2[j]=As*sin(40+pp+j/(w+80));
  if(CheckBox8->Checked==false){n2[j]=0;}

  Wb[j]=0;
  Vb[j]=0;
  spy3[j] =0;
  Edit4->Text=n[j];
}

A=Ap*Ak;
Label13->Caption=A;
for(j=0;j<800;j++){

rt[j]=Ak*spy2[j]+n[j]+n1[j]+n2[j];

}

for(j=0;j<8;j++){
 t=j*Tf+C[j]*tc;

 for(ts=-20;ts<20;ts++){

    //   t2=ts/100000.0;
       t2=2*alf*pi*ts/40.0;
   // Wb[t+ts]=2*sqrt(e)*A*pi*(ts/100000.0)*fc*exp(-2*(pi*ts/100000.0*fc)*(pi*ts*fc/100000.0));
    Wb[t+ts]=2*sqrt(e)*A*pi*t2*fc*exp(-2*(pi*t2*fc)*(pi*t2*fc));
  Vb[t+ts]=Wb[t+ts]-Wb[t+ts-kc];
 }
}

//==============USB-AD==============

 ULStat = cbDeclareRevision(&RevLevel);
    cbErrHandling (PRINTALL, DONTSTOP);
    Options = CONVERTDATA;
  //  ULStat = cbAInScan (BoardNum, LowChan, HighChan, Count, &Rate,
     ULStat = cbAInScan (BoardNum, LowChan, HighChan, Count, &Rate,
                                            Gain, ADData, Options);









//=========================
for(k=0;k<kc;k++){
Vb[k]=0;
 }
rd=0;
Hd[0]=0;  Hd[1]=0; Hd[2]=0; Hd[3]=0;


for(k=0;k<4;k++){
H=0;
for(j=k*2*Tf;j<k*2*Tf+2*Tf;j++){

 H+=rt[j]*Vb[j];
 Edit2->Text=H;


 }
 if(H<0)Hd[k]=1;
 if(H>=0)Hd[k]=0;
}

Edit11->Text=Hd[0];  Edit12->Text=Hd[1]; Edit13->Text=Hd[2]; Edit14->Text=Hd[3];
Hd[0]<<=3;
Hd[1]<<=2;
Hd[2]<<=1;
Hd[3]<<=0;
rd= Hd[0]+Hd[1]+Hd[2]+Hd[3];
Edit10->Text=rd;


//====================动态曲线显示============     
        i++;
     if(i>=800){i=0;}
     Series4->Clear();
     Series5->Clear();
     Series6->Clear();
        Series7->Clear();
        k1=i+1;
     for(k=0;k<800;k++){

         if(CheckBox4->Checked==true){Series4->Add(rt[k],1,clRed);}
         if(CheckBox5->Checked==true){Series5->Add(Vb[k],5,RGB(0,255,0));}
         if(CheckBox6->Checked==true){Series6->Add((Wb[k]),1,RGB(0,0,255));}
         if(CheckBox7->Checked==true){Series7->Add((spy1[k]),1,RGB(255,255,0));}
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -