function[t,signal1,signal2,DNRZ]=Baseband_Signal(T,Xn)
if nargin < 2
%产生基带信号
a=T; %基带信号码元数
b=10000000;
x=round(rand(1,a));%将 X 的每个元素四舍五入为最近的整数,产生随机序列
%产生基带信号
% fc=1/T; %码元速率
t=linspace(0,1,b); %0-T之间产生5000个点行矢量,即将[0,T]分成5000份
% fm=a/5; %基带信号频率 码元数是10,而时域长度是5,也就是一个单位2个码元
else
x=Xn;
b=10000000;
a=length(x);
t=linspace(0,1,b); %0-T之间产生5000个点行矢量,即将[0,T]分成5000份
end
signal1=t; %长度一致的向量
for n=1:a
if x(n)<1
for m=b/a*(n-1)+1:b/a*n
signal1(m)=0;
end
else
for m=b/a*(n-1)+1:b/a*n
signal1(m)=1;
end
end
end
figure ;
subplot(211);
plot(t,signal1);grid;
xlabel('基带信号signal');
axis([0,1,-0.2,1.2]);
%基带信号求反
signal2=~signal1;
% subplot(312);
% plot(t,signal2);grid;
% xlabel('基带信号反码 signal2');
% axis([0,T,-1,2]);
%DNRZ基带信号
DNRZ=t;
for n=1:b
if signal1(n)==1
DNRZ(n)=1;
else
DNRZ(n)=-1;
end
end
M = max(DNRZ);
m = min(DNRZ);
subplot(212);
plot(t,DNRZ);grid;
xlabel('DNRZ基带信号 DNRZ');
axis([0,1,m-0.2,M+0.2]);
该函数实现MATLAB中的基带信号仿真,根据输入参数生成随机或自定义序列,并绘制信号波形。同时,函数还计算并显示了基带信号的反码及DNRZ(非归零反相)形式。通过 subplot 分别展示原始基带信号、反码及DNRZ信号的图形,便于分析和理解。
1815

被折叠的 条评论
为什么被折叠?



