out = zeros(1, 2^stg-1)%输出数组初始化
fpos = zeros(stg, 1) %寄存器状态初始化
fpos(taps) = 1 %寄存器状态载入 taps = [1,6]fpos(taps) = [1,0,0,0,0,1]
for l = 1:2^stg-1
out(1,l) = inidata(stg) % 输出第一个点(十进制)
num = mod(inidata*fpos,2) % 乘法按照模2运算
inidata(2:stg) = inidata(1:stg-1) % 移位运算
inidata(1) = num % 输出反馈给第一个寄存器
end
function [goldseq]=gold_seq(fbconnection1,fbconnection2)
mseq1=m_sequence(fbconnection1)
mseq2=m_sequence(fbconnection2)
N=2^length(fbconnection1)-1
for shift_amount=0:N-1
shift_mseq2=[mseq2(shift_amount+1:N) mseq2(1:shift_amount)]
goldseq(shift_amount+1,:)=mod(mseq1+shift_mseq2,2)
end
更加详细的你可以看看参考资料的!
http://0605014129.blog.163.com/blog/static/21700061201011891227110/
方法如下:1、 选5个移位寄存器 其实我也不知道这名字正不正确,反正就是Z分之1那个 按顺序排列好,其中第二个初始条件(initial conditions)设置为0,其他的默认为1.
2、 先把这5个移位寄存器链接起来 第一个输出连第二个输入,以此类推到第五个接OUT,out这里再接一个scope以便观察信号波形
3 、选一个logical operator,并从设置中调成XOR,4输入端
4、 继续连线,XOR的输出端接第一个移位寄存器的输入端;然后把XOR输入端引到第二个移位寄存器和第三个移位寄存器的连线上,此时XOR还有3个输入端,分别像刚刚那样分别引到第三和第四,第四和第五,第五和out的线上
5 、点击运行 scope中显示的便是m序列,看吧 周期是31,1的个数比0多一个,而且没有重复波形!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)