求基于matlab产生m序列和gold序列的程序??? 请懂的人帮帮忙了~~~~~急用呢!

求基于matlab产生m序列和gold序列的程序??? 请懂的人帮帮忙了~~~~~急用呢!,第1张

function [out] = ms1(stg, taps, inidata, n)

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多一个,而且没有重复波形!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11413753.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存