cn=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1]%cn为移位寄存器,从左向右由小到大
an=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1] %初始寄存器内容
len=length(an)%所需的移位寄存器的长度
L=2^len-1%m序列的长度
an=[zeros(1,len-1),1]%初始寄存器内容,zeros矩阵函数
m=zeros(1,L)%提速
m(1)=an(1)%m序列的第一个输出码元
for i=2:L
an1(1:len-1)=an(2:len)%移位
an1(len)=mod(sum(cn.*an),2)%寄存器与反馈的模2和
an=an1%移位后的寄存器
m(i)=an(1)%新的寄存器输出
end
one_num=sum(m,2)
zero_num=L-one_num
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画饼图
num=[one_num zero_num]%输入数据
name={'1的概率','0的概率'}%输入标签
name1={'1的数量','0的数量'}%标题
bili=num/L
percent=round(bili*100000000000000000)/100%计算百分比
percent=num2str(percent')%转化为字符型
percent=cellstr(percent)%转化为字符串数组
biaoti=num2str(num')%转化为字符型
biaoti=cellstr(biaoti)%转化为字符串数组
%在每个标签后加2个空格
for i=1:length(name)
name(i)={[name{i},blanks(2)]}
end
bfh=cellstr(repmat('%',length(num),1))%创建百分号字符串数组
c=strcat(name,percent',bfh')
bt=strcat(name1,biaoti')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%饼图
figure(1)
pie(num,c)
title(bt)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画波形图
figure(2)
%subplot(3,1,2)
stairs(m)%对m序列绘图
xlabel('n')
ylabel('y')
title('m序列')
%%%%%%%%%%%%%%%%%%%%%%自相关函数由于阶数大所以运行时间久
%求自相关函数
%rho=zeros(1,L)
%bwb=zeros(1,L)
%xg=2*m-1 %变为双极性序列,1对应1,0对应-1
%for j=0:L-1
%bwb=[xg(1+j:L),xg(1:j)]
% rho(j+1)=sum(m.*bwb)
%end
%j=-L+1:L-1%调整自相关图像显示的横坐标范围
%rho=[fliplr(rho(2:L)),rho]
%figure(3)
%plot(j,rho)
%axis([-L L -0.1 1.2])%设置横纵坐标范围
%title('m序列的自相关函数')
axis([min(k1),min(k2)-1,max(max(k1),max(k2))+1,min(f)-0.5,max(f)+0.5])五个元素,axis对坐标轴中最大最小值的限定,要求 4, 6, or 8 个元素,成对的
有两种方法:【方法一】:这里用到两个函数:
1.rand()用来产生0-1之间的随机数,
2.fix()求取最小整数
若想产生一个包含m个整数且整数的范围在1-n之间的任意数,可通过以下命令:
1+fix(rand(1,m)*n)来产生
【方法二】:用randint
在matlab中用于产生基质的均匀分布的随机整数。
比如想产生10个元素的随机序列数组,使用语法:
>>
randint(1,10,2)
ans
=
0
0
0
1
1
0
1
0
0
0
更多信息,可以参考帮助文档
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)