📄 manchest.m
字号:
clear all;
close all;
%双相码波形及功率谱密度
L=16;%每个码元的采样点数
TS=1;%码元周期
x=round(rand(1,1000));%产生0,1随机序列
t=0:1/L:length(x);%定义对应时间序列
for i=1:length(x)%进行编码
if(x(i)==1)%若输入信息为1
for j=1:L/2;
y(L/2*(2*i-2)+j)=1;%定义前半时间为1
y(L/2*(2*i-1)+j)=-1;%定义后半时间为-1
end
else
for j=1:L/2 %反之,输入信息为0
y(L/2*(2*i-2)+j)=-1;%定义前半时间为-1
y(L/2*(2*i-1)+j)=1;%定义后半时间为1
end;end;end
y=[y,x(i)];
figure(1)
subplot(221)
plot(t,y);
axis([0 20 -1.5 1.5]);xlabel('双相码波形');
[f st1f]=T2F(t,y);
subplot(222)
plot(f,10*log10(abs(st1f+eps).^2/TS));grid
axis([-5 5 -40 20]);xlabel('f');ylabel('双相码功率谱密度(dB/Hz)');
%密勒码波形及功率谱密度
t=0:1/L:length(x);
i=1; %由于第一码元的编码不定,直接给出
if(x(i)==1) %输入为1,则
for j=1:L/2;
y2(L/2*(2*i-2)+j)=1;%前半时间为1
y2(L/2*(2*i-1)+j)=-1;%后半时间为-1
end
else %反之,输入为0
for j=1:L;
y2(L*(i-1)+j)=1;%所有时间为1
end
end
for i=2:length(x)%开始进行密勒编码
if(x(i)==1) %输入信息为1
for j=1:L/2
y2(L/2*(2*i-2)+j)=y2(L/2*(2*i-3)+L/4);%前半时间与前一码元后半时间取值相同
y2(L/2*(2*i-1)+j)=-y2(L/2*(2*i-2)+j);%后半时间与前半时间相反
end
else
if(x(i-1)==1)%反之,若前一信息为1,输入信息0
for j=1:L
y2(L*(i-1)+j)=y2(L/2*(2*i-3)+L/4);%所有时间与前一码元后半时间值相同
end
else %否则,前一信息为0
for j=1:L
y2(L*(i-1)+j)=-y2(L/2*(2*i-3)+L/4);%所有时间与前一码元后半时间值相反
end
end
end
end
y2=[y2 x(i)];
subplot(223)
plot(t,y2);
axis([0 20 -1.5 1.5]);
xlabel('Miller码波形');
[f st2f]=T2F(t,y2);
subplot(224)
plot(f,10*log10(abs(st2f+eps).^2/TS));grid
axis([-5 5 -40 20]);xlabel('f');ylabel('Miller功率谱密度(dB/Hz)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -