suiyingy的个人空间 https://blog.eetop.cn/853625 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

LFSR基本结构与MATLAB程序

已有 4673 次阅读| 2015-12-7 09:05 |个人分类:Circuits

LFSR基本结构MATLAB程序

      线性反馈移位寄存器(LFSR)是一组由D触发器和异或门组成的电路模块,其输出是一串除全零序列以外的周期性序列。

1 LFSR基本结构

      上图中,Q1~Qn为输出,g1~gn为反馈系数。以3位输出为例,若g1=1g2=1g3=0,图1可以转换成图2的形式。

2 3LFSR

      Q3Q2Q1的初始值(种子)为111,则LFSR循环输出如下:

3 循环输出

      下表为LFSRmatlab程序,其中seed为初始种子,g为反馈系数,n为位数,cycle为时钟周期。

 

function q=LFSR(seed,g,n,cycle)

% LFSR序列输出

% q    LFSR依次输出所得矩阵

% seed LFSR种子

% g    反馈系数

% n    序列长度

% cycle:循环次数,即时钟周期数

 

%分别获取种子和反馈系数矩阵

%低位在前

seed_matrix=rot90(bitget(seed,n:-1:1))'

g_matrix=rot90(bitget(g,n:-1:1))'

 

%输出矩阵第一行为seed

q(1,1:n)=seed_matrix;

 

%依次输出每一个触发器的值

%反馈系数决定是否异或

for i=1:cycle

    q(i+1,1)=q(i,n);

    for j=2:n

        if(g_matrix(j)==1)

            q(i+1,j)=xor(q(i,j-1),q(i,n));

        else

            q(i+1,j)=q(i,j-1);

        end

    end

end

%将高位在前转换成低位在前

q=rot90(q)';

      验证结果如下,与图3一致。

>> Q=LFSR(5,3,3,7)

Q =  1     0     1

     0     0     1

     0     1     0

     1     0     0

     0     1     1

     1     1     0

     1     1     1

     1     0     1

 


转载请注明出处,谢谢!


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 48

    粉丝
  • 15

    好友
  • 55

    获赞
  • 37

    评论
  • 3585

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 20:43 , Processed in 0.021638 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部