首页 > 编程知识 正文

MATLAB m 序列生成函数 & 相关函数

时间:2023-05-04 09:58:12 阅读:181885 作者:3446

看了Simon Haykin 《Communication Systems 4th Edition》第七章课后的代码,感觉有点神秘,做了评论和部分修改。

根据PN序列生成函数functionx=PNseq[p]%多项式p生成PN序列线性移位寄存器n=length[p]-1; 不包含%0次项=fliplr(p ); x=[1Zeros(1,N - 1 ) ]; %初始状态n=1; %输出的周期数%参考程序输出顺序为相反顺序,在此按照教材顺序输出forI=1:n*(2^n-1 ) x(I )=x (n ) )。 %输出x=[p(1) *rem ) sum ) p ) 2:n1 ).*x ) 1:n ) ],2 ) x ) X(1 : N - 1 ) ]; end end相关函数function[corrf]=pn_corr(u,v,n ) %用于确定u、v相关函数并处理循环移位而不进行归一化的n种情况下form=0: n-1 shifted _ 1 end%负相关函数是对称的corrf=[corr(2:n ) corr]; end函数使用考虑了周期N=63的2个m序列,反馈抽头为[ 6,5,2,1 ]、[ 6,5,4,1 ],求出相互相关函数。

%反馈抽头对应的多项式x ^ 6x ^ 5x ^ 2x1x ^ 6x ^ 5x ^ 4x1pol1=[ 1100111 ]; pol2=[1 1 1 0 0 1 1]; %码片周期N=63; %生成m序列pnseq1=pnseq(pol1; pnseq2=pnseq(pol2; 如果将序列映射到级别,则u=2 * pnseq1 - 1; v=2 * pnseq2 - 1; 确定%互相关函数[c_corrf]=pn_corr(u,v,n ); plot(-62:62,c_corrf ) ) 1:125 ); axis ([-62,62,- 20,20 ] ); xlabel(Delay(tau ) ); ylabel(crossfunctionr_{c} () tau ) );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。