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

📄 am.c

📁 ask调制解调算法c语言设计!!可在code composer studio 中进行信号仿真
💻 C
字号:
#include <std.h>
#define N 320
#define L 101 /*the step of digital filter*/
#include "am.h" /*Qu=12*/ /*Qrx=10*/
int chans[N];
int sigout[N];
int indata[1061];
int buff[L];
void getdata(int *p);
void outputdata(int *p);
void setzero(int *p,int n);
void modulate(int *insig,int *incw,int *chansig);
void demodulate(int *inp,int *cwp);


void main()
{
int i,dt,j=0;
int *coff,*noise,*s,*cw;
setzero(buff,L);
setzero(sigout,N);
TARGET_INITIALIZE(); 
getdata(indata);
s=indata;
noise=indata+N;
cw=indata+2*N;
coff=indata+3*N;
modulate(s,cw,chans);
for (i=0;i<N;i++)
chans[i]+=noise[i]; /*add channel noise*/
demodulate(chans,cw);
for (i=0;i<N;i++,j++)
{dt=chans[i] ;
shtbuf(buff,dt);
mad(coff,buff,sigout,j);
}
outputdata(sigout);
}
void getdata(int *p)
{ Int status;
RTDX_enableInput(&ichan);
status=RTDX_read(&ichan, p,1061*sizeof(int));
while (status==0) ;
RTDX_disableInput(&ichan);
}
void modulate(int *insig,int *incw,int *chansig)
{ int i;
int Q=11;
long temp;
for (i=0;i<N;i++)
{ temp=(long)(*insig++)*(long)(*incw++);
*chansig++=(int)(temp>>Q);/*Qotsig=7*/
}
}
void demodulate(int *inp,int *cwp)
{ int i;
int Q=15;
long temp,temp1,temp2;
for (i=0;i<N;i++)
temp1=(long)(*cwp++);
temp2=(long)(*inp);
temp=temp1*temp2;
*inp++=(int)(temp>>Q); /*Qinp=8*/
} 
void outputdata(int *p)
{
int status;
RTDX_enableOutput(&ochan);
status=RTDX_write(&ochan, p, N*sizeof(int));
while (status==0) ;
RTDX_disableOutput(&ochan);
}
void setzero(int *p,int n)
{
int i;
for (i=0;i<n;i++)
*p++=0;
}

⌨️ 快捷键说明

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