谁知道如何用matlab生成m序列,不用simulink。。。。急求程序。。。谢谢了
4个回答
2011-05-29
展开全部
下面是最简化的程序,参考书目《系统辨识》》笑旁
1.m序列
clear
p=5
np=(2^p-1)
x=[1 0 1 0 0 0 1]
for i=10:2*(np+1)
x(i)=xor(x(i-4),x(i-9))
end
xi=x/np
plot(xi)
2.逆m序列
clear
p=5
np=(2^p-1)
x=[1 0 1 0 0 0 1]
for i=10:2*(np+1)
x(i)=xor(x(i-4),x(i-9))
end
plot(x)
s=[]
for i=1:(np+1)
s=[s,[1,0]]
end
plot(s)
%###################
m(i)=xor(x,s)
plot(m)
有问题物升宴了请罩银补充
1.m序列
clear
p=5
np=(2^p-1)
x=[1 0 1 0 0 0 1]
for i=10:2*(np+1)
x(i)=xor(x(i-4),x(i-9))
end
xi=x/np
plot(xi)
2.逆m序列
clear
p=5
np=(2^p-1)
x=[1 0 1 0 0 0 1]
for i=10:2*(np+1)
x(i)=xor(x(i-4),x(i-9))
end
plot(x)
s=[]
for i=1:(np+1)
s=[s,[1,0]]
end
plot(s)
%###################
m(i)=xor(x,s)
plot(m)
有问题物升宴了请罩银补充
更多追问追答
追问
感觉出的图不对呀。。。。正确的图形应该是矩形波。。。。
追答
上面那是我以前写下的程序,M序列得到的结果是脉冲形式的,类似于矩形波,因为本身它属于随机序列。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
展开全部
X1=1;X2=0;X3=1;X4=0; X5=0;X6=0; %移位寄存器输入Xi初T态(010100), Yi为移位寄存器笑搭各级输出
m=63; %置M序列总长度
for i=1:m %1#
Y6=X6;Y5=X5;Y4=X4; Y3=X3; Y2=X2; Y1=X1;
X6=Y5;X5=Y4;X4=Y3; X3=Y2; X2=Y1;
X1=xor(Y6,Y5); %异或运算
if Y6==0
U(i)=-1;
else
U(i)=Y6;
end
end
M=U
%绘图
i1=i
k=1:1:i1;
plot(k,U,k,U,'rx')
xlabel('k')
ylabel('M序列')
title('移位寄存器产生盯野的凯升喊M序列')
m=63; %置M序列总长度
for i=1:m %1#
Y6=X6;Y5=X5;Y4=X4; Y3=X3; Y2=X2; Y1=X1;
X6=Y5;X5=Y4;X4=Y3; X3=Y2; X2=Y1;
X1=xor(Y6,Y5); %异或运算
if Y6==0
U(i)=-1;
else
U(i)=Y6;
end
end
M=U
%绘图
i1=i
k=1:1:i1;
plot(k,U,k,U,'rx')
xlabel('k')
ylabel('M序列')
title('移位寄存器产生盯野的凯升喊M序列')
追问
我想要的是m序列(小m的),这种图出来好像不对。。。。
追答
这产生的就是伪随机数啊就是m序列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
clear all
len=3;
L=128;
registersone=[0 0 1];
seqone(1)=registersone(1);
registerstwo=[0 0 1];
seqtwo(1)=registerstwo(1);
for i=2:L
newregistersone(2:len) = registersone(1:len-1);
newregistersone(1) = mod((registersone(2)+registersone(3)),2); %系辩顷裂数为5321;携闭
registersone=newregistersone;
seqone(i)=registersone(1);
% newregisterstwo(2:len) = registerstwo(1:len-1);
% newregisterstwo(1) = mod((registerstwo(5)+registerstwo(4)+registerstwo(3)+registerstwo(1)),2); %系数为5431;乎腔
%
%
% registerstwo=newregisterstwo;
% seqtwo(i)=registerstwo(1);
end
% translocationone=seqone;
%
% for n=1:31
% translocationone(n+31)=translocationone(n);
% end
% for n=32:62
% translocationone(n+31)=translocationone(n-31);
% end
%
% %码序列循环延长,便于自互相关计算;
% for k=1:61
% for j=1:31
% trans(j)=translocationone(j+k);
% % mxor(j)=xor(seqone(j),trans(j));
% mxoronetwo(j)=xor(seqtwo(j),trans(j));
% end
% cor(k)=31-2*sum(mxor);
% coronetwo(k)=31-2*sum(mxoronetwo);
% %相关值为:两序列对应模二加,相同的个数减去不同的个数;
% end
% subplot(2,1,1):plot(cor);
% subplot(2,1,2):plot(coronetwo);
len=3;
L=128;
registersone=[0 0 1];
seqone(1)=registersone(1);
registerstwo=[0 0 1];
seqtwo(1)=registerstwo(1);
for i=2:L
newregistersone(2:len) = registersone(1:len-1);
newregistersone(1) = mod((registersone(2)+registersone(3)),2); %系辩顷裂数为5321;携闭
registersone=newregistersone;
seqone(i)=registersone(1);
% newregisterstwo(2:len) = registerstwo(1:len-1);
% newregisterstwo(1) = mod((registerstwo(5)+registerstwo(4)+registerstwo(3)+registerstwo(1)),2); %系数为5431;乎腔
%
%
% registerstwo=newregisterstwo;
% seqtwo(i)=registerstwo(1);
end
% translocationone=seqone;
%
% for n=1:31
% translocationone(n+31)=translocationone(n);
% end
% for n=32:62
% translocationone(n+31)=translocationone(n-31);
% end
%
% %码序列循环延长,便于自互相关计算;
% for k=1:61
% for j=1:31
% trans(j)=translocationone(j+k);
% % mxor(j)=xor(seqone(j),trans(j));
% mxoronetwo(j)=xor(seqtwo(j),trans(j));
% end
% cor(k)=31-2*sum(mxor);
% coronetwo(k)=31-2*sum(mxoronetwo);
% %相关值为:两序列对应模二加,相同的个数减去不同的个数;
% end
% subplot(2,1,1):plot(cor);
% subplot(2,1,2):plot(coronetwo);
追问
怎么不出图呀
追答
整个程序后面是产生的M序列的相关性(注释掉的那部分)如果要求m序列只要 seqone(i)
clear all;clc;close all;
len=5;
L=128;
registersone=[0 0 1 0 1];
seqone(1)=registersone(1);
registerstwo=[0 0 0 1 1];
seqtwo(1)=registerstwo(1);
for i=2:L
newregistersone(2:len) = registersone(1:len-1);
newregistersone(1) = mod((registersone(2)+registersone(3)),2); %系数为5321;
registersone=newregistersone;
seqone(i)=registersone(1);
end
stem(seqone);
axis([0 128 0 2]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询