⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urz.txt

📁 基于matlab仿真的单(双)极性(不)归零码,及其功率谱
💻 TXT
字号:
%实验一:画出单(双)极性(不)归零码,及其功率谱
global dt t df N
close all
k=input('取样点数=2^k,k=[14]');
if isempty(k),k=14;end
Rt=input('输入占空比(在[0,1]间,默认为0.5)');
if isempty(Rt),Rt=0.5;end
N=2^k;			%采样点数
L=64;			%每码元的采样点数
M=N/L;			%码元数
Rb=2;			%码速率为2Mb/s
Ts=1/Rb;		%码元间隔
dt=Ts/L;		%时域采样间隔
%Rt=0.5;		%占空比
df=1/(N*dt);	%频域采样间隔
T=N*dt;		%截短时间
Bs=N*df/2;		%系统带宽
t=linspace(-T/2,T/2,N);	%时域横坐标
f=linspace(-Bs,Bs,N);	%频域横坐标
EP=zeros(1,N);
%---------单极性归零码 ----------
for jj=1:100
a=round(rand(1,M));		%产生M个取值0,1等概的随机码
s=zeros(1,N);				%产生一个N个元素的零序列
for ii=1:Rt*Ts/dt
   s(ii+[0:M-1]*L)=a;	%产生单极性归零码
end
Q=t2f(s);					%付氏变换
P=Q.*conj(Q)/T; 			%P为单极性归零码的功率  
EP=(EP*(ii-1)+P)/ii;    %累计平均
aa=30+10*log10(EP+eps);	%加eps以避免除以零
end 
figure(1)
set(1,'position',[10,50,750,350]) %设定窗口位置及大小
subplot(1,2,1)
plot(f,aa,'g')
title('单极性归零码的功率谱')
xlabel('f(MHZ)')
ylabel('Ps(f)(MHZ)')
axis([-15,+15,-50,50])
grid
subplot(1,2,2)
plot(t,s,'r')
title('单极性归零码')
xlabel('t(ms)')
ylabel('s(t)(V)')
axis([-5,5,-1.5,1.5])
grid
%---------单极性不归零码 ----------
for jj=1:100
a=round(rand(1,M));	%码元矢量
s=zeros(1,N);
for ii=1:L
   s(ii+[0:M-1]*L)=a;
end						%产生NRZ码
S=t2f(s);
P=S.*conj(S)/T;		%功率谱
EP=(EP*(ii-1)+P)/ii; %累计平均
aa=30+10*log10(EP+eps);	%加eps以避免除以零
end
figure(2)
set (2,'position',[10,50,750,350]);%设定窗口位置及大小
subplot(1,2,1)
plot(f,aa,'g');
title('单极性不归零码的功率谱')
grid
axis([-10,+10,-50,+50])
xlabel('f(MHZ)')
ylabel('Ps(f)(MHZ)')
subplot(1,2,2)
plot(t,s,'r')
title('单极性不归零码')
grid
axis([-10,+10,-1,+2])
xlabel('t(us)')
ylabel('s(t)(V)')
%---------双极性不归零码 ----------
for jj=1:100
a=round(rand(1,M));	%码元矢量
a=1-2*a;
s=zeros(1,N);
for ii=1:L
   s(ii+[0:M-1]*L)=a;
end						%产生NRZ码
S=t2f(s);
P=S.*conj(S)/T;		%功率谱
EP=(EP*(ii-1)+P)/ii; %累计平均
aa=30+10*log10(EP+eps);	%加eps以避免除以零
end
figure(3)
set (3,'position',[10,50,750,350]);%设定窗口位置及大小
subplot(1,2,1)
plot(f,aa,'g');
title('双极性不归零码的功率')
grid
axis([-10,+10,-50,+50])
xlabel('f(MHZ)')
ylabel('Ps(f)(MHZ)')
subplot(1,2,2)
plot(t,s,'r')
title('双极性不归零码')
grid
axis([-10,+10,-2,+2])
xlabel('t(us)')
ylabel('s(t)(V)')
%---------双极性归零码 ----------
for jj=1:100
a=round(rand(1,M));		%产生M个取值0,1等概的随机码
a=1-2*a;
s=zeros(1,N);				%产生一个N个元素的零序列
for ii=1:Rt*Ts/dt
   s(ii+[0:M-1]*L)=a;	%产生双极性归零码
end
Q=t2f(s);					%付氏变换
P=Q.*conj(Q)/T; 			%P为双极性归零码的功率  
EP=(EP*(ii-1)+P)/ii;    %累计平均
aa=30+10*log10(EP+eps);	%加eps以避免除以零
end 
figure(4)
subplot(1,2,1)
set(4,'position',[10,50,750,350]) %设定窗口位置及大小
plot(f,aa,'g')
title('双极性归零码的功率')
xlabel('f(MHZ)')
ylabel('Ps(f)(MHZ)')
axis([-15,+15,-50,50])
grid
subplot(1,2,2)
plot(t,s,'r')
title('双极性归零码')
xlabel('t(ms)')
ylabel('s(t)(V)')
axis([-5,5,-2,2])
grid

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -