📄 m_sequence_and_brf.c
字号:
#include "m_sequence_and_brf.h"
/*void main()
{
int i;
int j=0;
int m_sequence[kMseq];
int reg[25]={1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0};
//int reg[25]={1,0,1,0,1,0,1,0,1,0,1,0,1,0,
// 1,0,1,0,1,0,1,0,1,0,1};
double BER[1];
int receive[kMseq];
//,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,
//1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
for (i = 0;i<100;i++)
{
GSMSource(reg,m_sequence);
for (j = 0;j<kMseq;j++)
{
printf("%d ",m_sequence[j]);
//receive[j] = m_sequence[j];
receive[j] = 0;
}
printf("\n");
GSMSink(m_sequence,receive,BER);
printf("BER:%f\n",BER[0]);
}
}
*/
int GSMSource(int reg[25],int m_sequence[VOCODELEN])
{
int i,t;
//cout<<"m_sequence=";
for(i=0;i<VOCODELEN;i++)
{
m_sequence[i]=reg[0];
for(t=0;t<24;t++)
{
{
reg[t]=reg[t+1];
}
reg[24]=m_sequence[i]^reg[22];
//cout<<reg[t];
}
}
return 0;
}
int GSMSink(int m_sequence[VOCODELEN],int receive[VOCODELEN],int count[1],int errCI[1],int errCII[1])
{
int i,j;
int result;
//cout<<'\n';
//j = 0;
j = count[0];
for(i=0;i<VOCODELEN;i++)
{
result=receive[i]^m_sequence[i];
if(result)
j=j+1;
}
count[0] = j;
j = errCI[0];
for(i=0;i<50;i++)
{
result=receive[i]^m_sequence[i];
if(result)
j=j+1;
}
errCI[0] = j;
j = errCII[0];
for(i=182;i<VOCODELEN;i++)
{
result=receive[i]^m_sequence[i];
if(result)
j=j+1;
}
errCII[0] = j;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -