FPGA && MATLAB 实现M序列发生器
目录
前言
本文是大学期间的课程设计作业。
1、N=4的M序列发生器
1.1、实验原理
1.2、实验平台
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
1.4、N=4的M序列发生器在FPGA上实现
顶层文件
测试文件
仿真结果
M序列即为:1000-1111-0101-100