FPGA && MATLAB 实现M序列发生器

目录

前言

1、N=4的M序列发生器

1.1、实验原理

1.2、实验平台

1.3、N=4的M序列发生器在MATLAB上实现

1.4、N=4的M序列发生器在FPGA上实现


 

前言

本文是大学期间的课程设计作业。

 

 

1、N=4的M序列发生器

1.1、实验原理

FPGA && MATLAB 实现M序列发生器

FPGA && MATLAB 实现M序列发生器

FPGA && MATLAB 实现M序列发生器

1.2、实验平台

FPGA && MATLAB 实现M序列发生器

1.3、N=4的M序列发生器在MATLAB上实现

子函数:

function [mseq]= m_sequence(fbconnection)
n = length(fbconnection);
N = 2^n-1;                          %m序列的长度
register = [zeros(1,n - 1) 1];             %定义移位寄存器的初始状态
mseq(1)= register(n);                  %m序列的第一个输出码元
for i = 2:N
newregister(1)= mod(sum(fbconnection.*register),2);
%寄存器与反馈的模2和
for j = 2:n
newregister(j)= register(j-1);
end;
register = newregister;                 %移位后的寄存器
mseq(i) = register(n);                  %新的寄存器输出
end

主函数:

clear;
%fbconnection=[0 1 0 0 1];             %这是n=5时的m序列
fbconnection=[1 0 0 1];                %这是n=4时的m序列
m_sequence=m_sequence(fbconnection);
stem(m_sequence)
axis([0 35 -0.2 1.2]);
grid on;

仿真结果

M序列即为:1000-1111-0101-100

FPGA && MATLAB 实现M序列发生器

1.4、N=4的M序列发生器在FPGA上实现

顶层文件

FPGA && MATLAB 实现M序列发生器

测试文件

FPGA && MATLAB 实现M序列发生器

仿真结果

M序列即为:1000-1111-0101-100

FPGA && MATLAB 实现M序列发生器