⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch7example24func.m

📁 清华大学出版社 邵玉斌编写的《通信系统建模与仿真实例分析》一书的所有MATLAB和SIMULINK代码
💻 M
字号:
% ch7example24func.m
function diff_of_1_0=ch7example24func()
reg1=[1 0 0 0 0 0 0 0 0 0 0];    % 寄存器初态从低到高位a_(n-r),..., a_(n-1)
coeff1=[1 0 0 0 0 0 0 0 0 1 0 1]; % 抽头系数cr,...,c0,取决于特征多项式:4005
coeff2=[1 1 1 0 1 1 0 1 1 1 0 1]; % 抽头系数cr cr-1 ...c0 :7335
diff_of_1_0(2^11)=0;              % 1和0个数差值存储数组初始化
for L=1:(2^11-1)
    reg2=decinttobin(L,11);       % 寄存器组2的状态
    gold=gld_seq_gen(reg1,coeff1,reg2,coeff2);
    num_of_1=sum(gold);           % 统计其中1的个数
    num_of_0=sum(1-gold);         % 统计其中0的个数
    diff_of_1_0(L)=num_of_1-num_of_0;% 返回1和0个数差值
end
banlanceGoldNum=sum(diff_of_1_0==1)  % 计算并显示1和0个数差值
Num65=sum(diff_of_1_0==65)
NumNeg63=sum(diff_of_1_0==-63)
% 以下是本函数内部使用的子函数:m 序列、Gold 序列和进制转换
% m 序列计算函数
function m=m_seq_gen(reg,coeff)    
for k=1:(2^length(reg)-1)                         % 计算一个周期的m序列输出
    a_n=mod(sum(reg.*coeff(1:length(coeff)-1)),2);% 反馈
    m(k)=reg(1);                                  % 寄存器最低位输出
    reg=[reg(2:length(reg)),a_n];                 % 寄存器移位,反馈                             
end
% Gold 序列计算函数
function g=gld_seq_gen(reg1,coeff1,reg2,coeff2)
m1=m_seq_gen(reg1,coeff1); % 第一个m序列
m2=m_seq_gen(reg2,coeff2); % 第二个m序列
g=mod(m1+m2,2);            % 模二加得到Gold序列
% 进制转换函数
function binvec=decinttobin(x,d) % 将十进制整数转换为二进制数存放在矩阵中
% d 为指定的转换二进制位数
for k=0:d-1
    binvec(d-k)=rem(x,2);
    x=floor(x/2);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -