m序列自相关matlab代码,m序列的输出及其自相关序列

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

【例10-2】 设m序列的生成多项式为g(x)=1+x^3+x^4,求:

(1)m序列的输出及其自相关序列;

(2)脉冲波形成为矩形脉冲p(t)={1 0≤t≤Tc 画出m序列信号的自相关函数;

{0 其它 ,

(3)设脉冲波形为升余弦函数(滚降系数a=0),画出m序列信号的自相关函数。

% m序列发生器及其自相关mseq.m

clear all;

close 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(15:-1:1))/N;

figure(1)

subplot(222)

stem(ms(15:end));

axis([0 63 -0.3 1.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);

figure(1)

subplot(221);

plot(t,mt(1:length(t)));

axis([0 63 -1.2 1.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);

subplot(223)

plot(t,rt1(length(st):length(st)+length(t)-1));

axis([0 63 -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);

subplot(224)

t1=-55+dt:dt:Tc*L-dt;

plot(t1,rt2(1:length(t1)));

axis([0 63 -0.5 1.2]); title('m序列sinc成形信号的自相关');xlabel('t');

=========================================================================

function[out]=mgen(g,state,N)

% 输入g:m序列生成多项式(10进制输入)

% state: 寄存器初始状态(10进制输入)

% 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)];

end

=========================================================================

function[out]=sigexpand(d,M)

% 将输入的序列扩展成间隔M-1个0的序列

N=length(d);

out=zeros(1,M*N);

for i=0:N-1

out(i*M+1)=d(i+1);

end;

========================================================================

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值