c语言与matlab生成m序列结果对比
一、c语言生成m序列(以四级寄存器为例)
1.1、程序如下:
#include<stdio.h>
main()
{
int a[4]; //四级寄存器初始化[0 0 0 0 0 1]
int m[15];
int temp; //temp用于存放反馈量
float period = 0.0; //时间间隔
printf(“input a[]:”);
for (int k=0;k<4;k++)
{
scanf("%d",&a[k]);
}
for(int i=0;i<15;i++)
{
m[i] = a[0];
temp = a[3]^a[0];
a[0] = a[1];
a[1] = a[2];
a[2] = a[3];
a[3] = temp;
}
for(int j=0;j<15;j++)
{
printf("%d",m[j]);
}
FILE *fp = fopen("test.txt", "w"); //创建文本文件
if (fp == NULL)
{
printf("Failed to open file");
return 0;
}
for (int i = 0; i < 15; ++i)
{
fprintf(fp, "%d", m[i]); //写入数据
//printf("%d\n",m4[i]);
}
}
1.2、运行结果为:1.3、绘制图像:
1.4、运行结果:
以四级寄存器为例,当输入序列为[0 0 1 0]时,输出结果为001000111101011。通过比较两种编译方法可得出结论:C语言与matlab所得结果完全一致。