📄 b_single_guiling.m
字号:
%例二 AMI码的功率谱
%本程序中时间单位是微秒
%频率单位为MHz
%码元速率单位是Mb/s
global dt df t f N
close all
N=2^13; %采样点数
L=64; %每码元的采样点数
M=N/L %码元数
Rb=2;
Ts=0.5 %码元宽度是0.5us
dt=Ts/L;
df=1/(N*dt) %MHz
T=N*dt %截短时间
Bs=N*df/2 %系统带宽
t=[-T/2+dt/2:dt:T/2]; %时域横坐标
f=[-Bs+df/2:df:Bs]; %频域横坐标
%figure(1)
%set(1,'Position',[10,50,300,200])
%设定窗口位置及大小
%figure(2)
%set(2,'Position',[400,50,300,200])
%设定窗口位置及大小
EP=zeros(size(f));
for ii=1:50
n=1; %每次有偶数个1
while rem(n,2)~=0, %求余数,n为奇数
a=round(rand(1,M)); %M个随机的01码
n=length(find(a==1)); %1的个数
end
bb=find(a==1); %bb是a中1的位置,例如bb=1 2 3 4 9 10
%cc=bb(1:2:length(bb));
%cc是a中奇序数1的位置,若bb如上,则cc=1 3 9
b=a; %b,a相当于一个数组
%b(cc)=-ones(size(cc)); %所有位于cc的1变成-1
ami=zeros(L,M); %L行M列的零矩阵
for loop=1:L,ami(loop,:)=b; end %每一行都赋为a的值,M列即M个码元,L行即每码元采样L点
for loop=L/2+1:L,ami(loop,:)=zeros(1,M); end %所有码元后半周期归零
ami=reshape(ami,1,N); %将ami转成1行N列,以便作为横坐标
AMI=t2f(ami); %AMI信号的傅氏变换
P=AMI.*conj(AMI)/T; %AMI信号的功率谱;conj是取复共轭
EP=(EP*(ii-1)+P)/ii; %累计平均
%length(EP)/M=?
%figure(1)
%figure(2)
subplot(2,1,1)
plot(t,ami,'r')
grid
axis([-3,+3,-1.5,1.5])
xlabel('t (us)')
ylabel('s(t) (V)')
title('单极性归零码码型(Ts=0.5us)')
subplot(2,1,2)
aa=30+10*log10(EP+eps);%加eps以避免除以零,如果把EP换成P,则图形有毛刺;随机码越长,图形越平滑
plot(f,aa,'r');
grid
axis([-15,+15,-50,50])
xlabel('f (MHz)')
ylabel('Ps(f) (dBm/MHz)')
title('单极性归零码功率谱')
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -