📄 modulations.c
字号:
extern int Cos_map[];
extern int Sin_map[];
extern int Ascend_coe[];
extern int CosW_array[];
extern int SinW_array[];
long sum;
int cos_part[124]; /*golbal vars -- stored in .bss section*/
int sin_part[124];
void modulation(int *point, int Out_p[])/*8psk waveform carrymodulation*/
{
int *cos_p=Cos_map;
int *sin_p=Sin_map;
int *coe_p=Ascend_coe;
int *CosW_p=CosW_array;
int *SinW_p=SinW_array;
int tribit=0;
int i,j,k,m,n;
int *p0,*p1,*p2;
for (i=0;i<124;i++) {cos_part[i]=0; sin_part[i]=0;}
/*8psk map */
for (i=0;i<16;i++)
{
tribit=*point++;
cos_part[24+i*5]=cos_p[tribit];
sin_part[24+i*5]=sin_p[tribit];
}
/*I-waveform*/
p0=p1=cos_part+44;
p2=coe_p;
for (i=1;i<=80;i++)
{
p1=p0;
p2=coe_p;
sum=0;
for (j=1;j<=45;j++)
{
m=*p1--;
n=*p2++;
sum=sum+((long)m)*((long)n);
}
k=sum>>16;
Out_p[i-1]=k; /*stored in Out_p*/
p0++;
}
/*Q-waveform*/
p0=p1=sin_part+44;
p2=coe_p;
for (i=1;i<=80;i++)
{
p1=p0;
p2=coe_p;
sum=0;
for (j=1;j<=45;j++)
{
m=*p1--;
n=*p2++;
sum=sum+((long)m)*((long)n);
}
k=sum>>16;
cos_part[i-1]=k; /*stored in cos_part*/
p0++;
}
/*carry modulation*/
/*I-carry modulation*/
m=0;
n=0;
p1=Out_p;
p2=CosW_p;
for (i=1;i<=80;i++)
{
sum=0;
m=*p1;
n=*p2++;
sum=(long)m*(long)n;
*p1++=sum>>17;
if(i%20==0) p2=CosW_p; /*stored in Out_p*/
}
/*Q-carry modulation*/
p1=cos_part;
p2=SinW_p;
for (i=1;i<=80;i++)
{
sum=0;
m=*p1;
n=*p2++;
sum=(long)m*(long)n;
*p1++=sum>>17;
if(i%20==0) p2=SinW_p; /*stored in cos_part*/
}
/*I+Q->Out_p*/
p1=Out_p;
p2=cos_part;
for (i=1;i<=80;i++)
{
sum=0;
m=*p1;
n=*p2++;
sum=(long)m+(long)n;
*p1++=sum;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -