4级M序列及其逆M序列生成C语言模拟

原创 2018年04月17日 21:15:20
/******************************************************************************
* 文件名: 4orderMSequence.c 
* 功能:用于产生4级M序列以及逆M序列 
* 说明:4级M序列以15位为一个周期,逆M序列以30位为一个周期 
* 编者:Louis Zhang 
* 日期:2018-4-17 
******************************************************************************/
#include <stdio.h>

//4级M序列生产函数 
void M4(int *m, int *InverM)
{
	int x[4] = {1,1,1,0};  //四级寄存器初始化 
	int temp,s=0;          //temp,用于存放中间量,s模拟时钟方波信号值,0,1表示 
		
	for(int i=0;i<15;i++) 
	{
		m[i] = x[0];
		temp = x[2]^x[3];
		x[3] = x[2];
		x[2] = x[1];
		x[1] = x[0];
		x[0] = temp;
		
		//产生逆M序列前14位 
		if(i!=0)  //逆M序列从M序列的第2个元素开始生成 
		{
			s ^= 1;
			InverM[i-1] = m[i]^s;
		}
	}
	s ^= 1;
	InverM[14] = m[0]^s;  //逆M序列第15位 
	
	//产生逆M序列后15位 
	for(int i=0;i<14;i++)
	{
		s ^= 1;
		InverM[i+15] = m[i+1]^s; 
	}
	s ^= 1;
	InverM[29] = m[0]^s;		
}
int main()
{	 
	int MSeq[15];
	int InverMSeq[30];
	int msec=0;
	 
	M4(MSeq, InverMSeq);
	
	printf("The M Sqeuence is:");
	for(int i=0;i<15;i++)
		printf("%d ",MSeq[i]);
	printf("\n");
	
	printf("The Inversion M Sequence is:");
	for(int i=0;i<30;i++)
		printf("%d ",InverMSeq[i]);
	printf("\n");	
} 

可用于模型辨识、通信、加密等学习中的M序列的学习。

转载请标明出处!

相互学习,共同进步!

m序列c语言实现

演示,不是算法 void m4() { int a[4]={1,0,0,1}; int m[15]; int temp; for(int i=0;i
  • lewy7
  • lewy7
  • 2016-11-29 17:49:05
  • 530

labview产生3—8级m序列

  • 2013年11月08日 19:25
  • 30KB
  • 下载

四阶M序列及逆序列的产生

  • 2010年05月13日 11:31
  • 584B
  • 下载

m序列

m序列式最长线性反馈位移寄存器序列的简称 先不去逐字解释最长线性反馈的意思,我们从m序列的产生入手 图上显示出一个4级线性反馈移存器。设其初始状态为(a3,a2,a1,a0)=(1,0,0,0)...
  • Calcular
  • Calcular
  • 2016-09-11 23:02:21
  • 7583

m序列生成器的原理与MATLAB及FPGA实现

m序列作为一种伪随机的序列,因其较好的自相关特性,常常用作通信系统的同步码字,而且其生成的原理较为简单,可以通过移位寄存器实现,...
  • u011639609
  • u011639609
  • 2016-05-21 21:54:24
  • 3578

m序列生成电路

m序列
  • lewy7
  • lewy7
  • 2016-11-23 17:14:50
  • 467

在matlab中生成m序列

本文叙述了如何用matlab生成m序列的步骤
  • laomai
  • laomai
  • 2014-04-23 07:53:19
  • 19684

m序列的原理以及verilog实现

定义 m序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移存器产生的周期最长的序列。一般来说,一个n级线性反馈移存器可能产生的最长周期等于(2^n -1)。 m序列是一种典型的伪随机...
  • heshiliqiu
  • heshiliqiu
  • 2017-09-21 19:19:16
  • 1896

伪随机序列的产生c语言和verilog实现

  • 2012年01月13日 22:11
  • 818KB
  • 下载

逆M序列m文件

  • 2013年12月08日 16:52
  • 576B
  • 下载
收藏助手
不良信息举报
您举报文章:4级M序列及其逆M序列生成C语言模拟
举报原因:
原因补充:

(最多只允许输入30个字)