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序列的自相关函数')
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)