如何用MATLAB产生m序列

不用simulink,怎么用MATLAB产生PN码啊?... 不用simulink,怎么用MATLAB产生PN码啊? 展开
 我来答
日向淳正
推荐于2018-03-30 · TA获得超过2810个赞
知道大有可为答主
回答量:2770
采纳率:0%
帮助的人:1388万
展开全部
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
丛勇雀月朗
2019-01-21 · TA获得超过3931个赞
知道小有建树答主
回答量:3110
采纳率:25%
帮助的人:230万
展开全部
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多一个,而且没有重复波形!
不知道你要编程的还是simulink的....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式