【例10-2】设m序列的生成多项式为g(x )=1 x^3 x^4,求出:
)1) m序列的输出及其自相关序列
)2)脉冲波形为矩形脉冲p(t )={10tTc,描绘m序列信号的自相关函数;
{0其他、
(3)以脉冲波形为余弦函数(滚降系数a=0),绘制m序列信号的自相关函数。
% m可编程序控制器及其自相关mseq.m
clear all;
全部关闭;
g=19; % G=10011
state=8 % state=1000
L=1000;
% m序列生成
N=15;
MQ=mgen(g,state,l );
求%序列自相关
ms=conv(1-2*MQ,1-2*MQ ) 153360-1:1 ) )/N;
图形(1)。
辅助(222 )。
stem(ms ) 153360end );
axis([063-0.31.2]; title(m序列自相关序列) )。
由% m序列组成的信号(矩形脉冲)。
N_sample=8;
Tc=1;
dt=Tc/N_sample;
t=0:dt:Tc*L-dt;
gt=ones(1,N_sample );
mt=SIGExpand(1-2*MQ,N_sample );
mt=conv(mt,gt );
图形(1)。
辅助(221;
plot(t,mt ) 1:长度t );
axis([063-1.21.2] ); title(m系列矩形成形信号) )。
ST=SIGexpand(1-2*MQ ) 1:15 ),N_sample );
s=conv(ST,gt );
ST=s(1:length ) ST );
RT1=conv(mt,ST ) end:-1:1 ) )/(n*n_sample );
辅助(223 )。
plot(t,rt1 ) length(ST ) : length (ST ) length(t )-1 );
axis ([ 063-0.2 ] 1.2 ); title(m序列矩形成形信号自相关); xlabel('t );
% sinc脉冲
Tc=1;
dt=Tc/N_sample;
t=-20:dt:20;
gt=Sinc(t/TC;
mt=SIGExpand(1-2*MQ,N_sample );
mt=conv(mt,gt );
ST2=SIGExpand(1-2*MQ ) 1:15 ),N_sample );
S2=conv(ST2,gt );
st2=s2;
RT2=conv(mt,ST2 ) end:-1:1 ) )/(n*n_sample );
辅助(224 )。
t1=-55 dt:dt:Tc*L-dt;
plot(T1,RT2 ) 1: length (t1 );
axis([063-0.51.2]; title(m系列sinc成形信号的自相关); xlabel('t );
=========================================================================================
函数[ out ]=mgen (g,state,n ) )。
%输入g:m序列生成多项式(十进制输入) ) ) ) ) ) ) ) ) ) ) ) )。
% state:寄存器初始状态(十进制输入) ) ) ) ) ) ) ) ) )。
%N:输出序列长度
% test g=11; state=3 N=15;
gen=deC2bin(G )-48;
m=length(gen;
curstate=deC2bin(state,M-1 )-48;
for k=1:N
out(k )=curstate(m-1 );
a=rem(sum(gen ) 2:end ).*curState ),2 );
curstate=[a]
curstate(1:m-2 );
结束
=========================================================================================
function[out]=SIGexpand(d,m ) ) ) ) ) ) ) ) )。
%将输入的序列扩展为间隔为M-1的0序列
n=length(d );
out=Zeros(1,M*N );
for i=0:N-1
out(I*m1 )=d ) I1;
结束;
=========================================================================================