lfsr.m
来自「线性反馈移位寄存器的matlab实现」· M 代码 · 共 40 行
M
40 行
function [ lfsrBit ] = lfsr( lfsrLength, tap1, tap2, tap3, SEQLEN )%by TNT@maxscend (2009/02)if(lfsrLength>200 || tap1>tap2 || tap2>tap3 || tap3>= lfsrLength) %exitendfor i = 1:lfsrLength lfsrReg(i)=1;endfor clk=1:SEQLEN lfsrRegTemp(1) = lfsrReg(tap1); lfsrRegTemp(2) = lfsrReg(tap2); if(tap2 == tap1) lfsrRegTemp(2) = 0; end lfsrRegTemp(3) = lfsrReg(tap3); if(tap3 == tap2) lfsrRegTemp(3) = 0; end lfsrRegTemp(4) = lfsrReg(lfsrLength); lfsrReg0 = xor(xor(lfsrRegTemp(1),lfsrRegTemp(2)),xor(lfsrRegTemp(3),lfsrRegTemp(4))); for i=lfsrLength:-1:2 lfsrReg(i)=lfsrReg(i-1); end lfsrReg(1)=lfsrReg0; lfsrBit(clk)=lfsrReg(lfsrLength); if(lfsrBit(clk)==0) lfsrBit(clk)=-1; end % %print% lfsrRegNum = 0;% for i=1:lfsrLength% lfsrRegNum = lfsrRegNum+lfsrReg(i)*2^(i-1);% end% fprintf('%d: %d\n',clk,lfsrRegNum);end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?