作业帮 > 综合 > 作业

matlab怎么将生成的m序列量化为-1到1之间的数

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/07 13:38:04
matlab怎么将生成的m序列量化为-1到1之间的数
就是将生成m序列4个一组进行16进制转化,然后对应进行量化,量化成-1,-0.9,-0.8,……0,……0.9,1之间的数,然后生成一个矩阵,怎么用matlab实现.
或者简单点,怎么生成m序列,然后转化成一个矩阵,matlab实现.
谁会啊?这个问题急!谢谢!
这样吧,怎么用matlab生成一个伪随机矩阵?这个谁会?
matlab怎么将生成的m序列量化为-1到1之间的数
首先生成m序列 以四介为例:
X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初值
m=60; %置M序列总长度(最大为63)
for i=1:m %1#
Y4=X4; Y3=X3; Y2=X2; Y1=X1;
X4=Y3; X3=Y2; X2=Y1;
X1=xor(Y3,Y4); %异或运算
if Y4==0
U(i)=-1;
else
U(i)=Y4;
end
end
M=U
这样即生成了一个四阶的m序列,近似为白噪声.然后将它转化为矩阵即可:
for i=1:N
MM(i,j)=M(mod(j-i,N)+1);
end
这样差不多就是一个伪随机矩阵MM()了吧
再问: 你给我写个八介的m序列吧,还有那个for i=1:N有问题,不能转化成矩阵。嗯,有劳你你了!
再答: %生成8阶m序列最大周期为255 X1=1;X2=0;X3=1;X4=0; X5=1;X6=0;X7=1;X8=0; %移位寄存器输入Xi初值 m=255; %置M序列总长度(最大为2的n次方-1) for i=1:m %1# Y8=X8; Y7=X7; Y6=X6; Y5=X5;Y4=X4; Y3=X3; Y2=X2; Y1=X1; X8=Y7; X7=Y6; X6=Y5; X5=Y4; X4=Y3; X3=Y2; X2=Y1; X1=xor(Y7,Y8); %异或运算 if Y8==0 U(i)=-1; else U(i)=Y4; end end M=U %以上都类似 for i=1:m for j=1:m MM(i,j)=M(mod(j-i,m)+1); end end %不好意思 刚才落下了一个循环
再问: k= 0.099 r1=92.0% r2=89.3% k= 0.291 r1=92.6% r2=89.8% k= 0.463 r1=95.0% r2=91.0% k= 0.655 r1=92.6% r2=92.2% k= 0.905 r1=94.0% r2=90.5% 你能将上面数据用matlab画成坐标图吗?画了我给你加分
再答: k=[0.099 0.291 0.463 0.655 0.905]; r1=[92 92.6 95 92.6 94]; r2=[89.3 89.8 91 92.2 90.5]; plot(k,r1,'r',k,r2,'b'); legend('r_1','r_2'); xlabel('k'); ylabel('r'); 这样子可以吗?