C ʵÏÖBPSKÐźŵĵ÷ÖÆ½âµ÷¹ý³Ì¿ÎÌâÉè¼Æ±¨¸æDOC ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/12/15 20:56:54ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

Ä£¿é»®·Ö

Bpskµ÷ÖÆÄ£¿é Bpsk½âµ÷Ä£¿é ÊäÈëÊä³öÄ£¿é

Ä£¿é¹¦ÄÜÉè¼Æ

Bpskµ÷ÖÆÄ£¿é°üÀ¨£º »ù´øÊý¾Ý²úÉúÄ£¿é µ¥Ë«¼«ÐԱ任ģ¿é FFTÄ£¿é

¹¦ÂÊÐźŷùÖµµ¥Î»×ª»»Ä£¿é ¼ÓÔØ²¨Ä£¿é

Bpsk½âµ÷Ä£¿é°üÀ¨£º ²úÉú¸ß˹°×ÔëÉùÄ£¿é È¥ÔØ²¨Ä£¿é µÍͨÂ˲¨Æ÷Ä£¿é ÅоöÄ£¿é FFTÄ£¿é

ÎóÂëÂʼÆËãÄ£¿é

ÊäÈëÊä³öÄ£¿é°üÀ¨£º Êý¾ÝÊäÈëÄ£¿é Êý¾Ý¶Áȡģ¿é Êý¾ÝÊä³öÄ£¿é

»æÍ¼Ä£¿éOnPaint() ͼÐνçÃæÄ£¿é

¶þ¡¢ ÏêϸÉè¼Æ

£¨Ò»£© ×ÊÔ´ÏîÄ¿

³ÌÐòÎļþ

Í·Îļþ

(¶þ)Bpskµ÷ÖÆÄ£¿é

¡ï»ù´øÊý¾Ý²úÉúÄ£¿é

int* CTools::BaseDataPut(long length) { int* nBaseDataBit; nBaseDataBit = (int*)malloc(length*sizeof(int)); srand((unsigned)time(NULL)); for (long i = 0; i

¡ïµ¥Ë«¼«ÐԱ任ģ¿é

int *pnget = NULL;//µ¥Ë«±ä»»ºóÊý¾Ý

pnget = (int*)malloc(m_nNumOfBase*sizeof(int));

for (i = 0; i < m_nNumOfBase; i++) {

pnget[i] = 1-m_pBaseData[i]*2; }//µ¥Ë«¼«ÐԱ任

¡ïFFTÄ£¿é

float *CTools::fft(float *y, long n, long *len) { //¸µÁ¢Ò¶±ä»»;

//len:·µ»Ø²¹0ÒÔºóÊý¾Ý³¤¶ÈµÄÒ»°ë£»

//º¯ÊýÊä³ö£ºfft±ä»»ºóµÄÊý¾Ý£¬³¤¶ÈΪlen; //Èôʧ°Ü£¬Ôò·µ»ØÒ»¸ö¿ÕÖ¸Õë(NULL) long i, j, k, m, i1, i2, i3, i4, n1, n2, n4; float a, e, cc, ss, xt, t1, t2; float *x;

long temp_n;

////////////////////////////////// //×Ô¶¯²¹Áã temp_n=1;

while(temp_n

x=(float *)malloc(temp_n*sizeof(float)); if (!x) return NULL; for (i=0;i

if(temp_n>n) { for (i=n;i

//////////////////////////// //¿ªÊ¼×öfftÔËËã

for (j=1, i=1;i<32;i++) { m=i; j=2*j; if(j==temp_n) break; }

n1=temp_n-1;

for (j=0, i=0;i

}

k=temp_n/2;

while(k<(j+1)) { j=j-k; k=k/2; } j=j+k; }

for (i=0;i

for (k=2;k<=m;k++) { n4=n2; n2=2*n4; n1=2*n2; e=float(6.283185307179596/n1); for (i=0;i

}

} }

*x=float(fabs(*x));

*(x+temp_n/2)=float(fabs(*(x+temp_n/2))); for (i=1;i

x=(float *) realloc(x, (temp_n/2)*sizeof(float)); *len=temp_n/2; if(!x) { free(x); return NULL; } else { return x; }

¡ï¹¦ÂÊÐźŷùÖµµ¥Î»×ª»»Ä£¿é

double CTools::TransformUnit(double dRecPower) { double dPower; dPower = pow(10, (dRecPower - 30) / 10); return dPower; }

¡ï¼ÓÔØ²¨Ä£¿é

float* pfModData = NULL;//µ÷ÖÆÊý¾Ý

pfModData=(float*)malloc(m_nNumOfScan*sizeof(float)); for (i = 0; i < m_nNumOfScan; i++)

{

j = long(i*m_nNumOfBase/m_nNumOfScan);

*(pfModData+i) =*(pnget+j)*dPa*cos(2*PI*m_dSimRf*i/m_dSampleFreq); //A*cos(wc*t)=A*cos(2*Pi*f*t) }

£¨¶þ£© Bpsk½âµ÷Ä£¿é

¡ï²úÉú¸ß˹°×ÔëÉùÄ£¿é