有关m序列的
有关m序列的有一个作业要做一个和m序列相关的,先是形成自相关m序列,然后生成其自相关序列,两个都要产生图像。这些我都完成了。后面要用matlab图像处理,作出一个类似于示波器的调节旋钮的东西,点击一下就对自相关序列的延迟进行一些调节,调节至m序列和其自相关函数一样。各位牛人看看,给些指点,做了3天了,怎么都做不出来。
代码如下:%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(t,mt(1:length(t)) );
plot(t1,rt2(1:length(t1)));
axis([0 63 -0.5 1.2]);title('m序列sinc成形信号的自相关');xlabel('t');