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

📄 prbs.cpp

📁 产生伪随机序列的方法
💻 CPP
字号:

//M序列源程序
#include<iostream.h>
#include<math.h>
#include<fstream.h>
void main()
{
	int i,n,a,N,k;
	int zita[8200],u[8200];
     ofstream fop("PRBS.txt");           //输出数据文件PRBS.txt
 	cout<<"请输入n:";                   //对n和幅值a赋初值
	cin>>n;
	cout<<"请输入幅值a:";
	cin>>a;
     N=int(pow(2,n)-1);
	cout<<"序列周期长度为"<<N<<"\n";
	fop<<"序列周期长度为"<<N<<"\n";
	if(n==12||n==13)
	{
		cout<<"序列总长度为"<<N<<"\n";
		fop<<"序列总长度为"<<N<<"\n";
	}
	else
	{
		cout<<"序列总长度为2041"<<"\n";
		fop<<"序列总长度为2041"<<"\n";
	}
    
	for(i=1;i<=n;i++)                    //对zita[k]赋初值
	{
      zita[i]=1;
	  fop<<zita[i]<<"  ";
    }
 	switch(n)
	{
	case 2: 
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-1];	
            u[k]=(2*zita[k]-1)*a;
			fop<<u[k]<<"  ";
        }
		break;
	case 3: 
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-2];	
            u[k]=(2*zita[k]-1)*a;
			fop<<u[k]<<"  ";
        }
		break;
	case 4:
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-3];	
            u[k]=(2*zita[k]-1)*a;
			fop<<u[k]<<"  ";
        }
		break;
	case 5:
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-3];	
			u[k]=(2*zita[k]-1)*a;
			fop<<u[k]<<"  ";
        }
		break;
	case 6:
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-5];	
            u[k]=(2*zita[k]-1)*a;
		    fop<<u[k]<<"  ";
        }
		break;
	case 7:
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-4];	
            u[k]=(2*zita[k]-1)*a;
		    fop<<u[k]<<"  ";
        }
		break;
	case 9: 
		for(k=n+1;k<=2041;k++)
		{
            zita[k]=zita[k-n]^zita[k-5];	
            u[k]=(2*zita[k]-1)*a;
		    fop<<u[k]<<"  ";
        }
		break;
	case 10: 
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-7];	
            u[k]=(2*zita[k]-1)*a;
		    fop<<u[k]<<"  ";
        }
		break;
	case 11:
		for(k=n+1;k<=2041;k++)
		{
			zita[k]=zita[k-n]^zita[k-9];	
            u[k]=(2*zita[k]-1)*a;
		    fop<<u[k]<<"  ";
        }
		break;   
	case 8:
		for(k=n+1;k<=2047;k++)
		{
			zita[k]=zita[k-n]^zita[k-7]^zita[k-6]^zita[k-1];
			u[k]=(2*zita[k]-1)*a;
			fop<<u[k]<<"  "; 
		}
		break;
	case 12:
		for(k=n+1;k<=N;k++)
		{
			zita[k]=zita[k-n]^zita[k-8]^zita[k-5]^zita[k-1];
			u[k]=(2*zita[k]-1)*a;
			fop<<u[k]<<"  "; 
		}
		break;
	case 13:
		for(k=n+1;k<=N;k++)
		{
			zita[k]=zita[k-n]^zita[k-8]^zita[k-6]^zita[k-1];
			u[k]=(2*zita[k]-1)*a;
			fop<<u[k]<<"  "; 
		}
		break;
	default: 
		    cout<<"请重新输入2到13之间的数:";
	}
	cout<<"结果在文件PRBS.txt中.";
  fop.close();
}

⌨️ 快捷键说明

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