MATLAB数字基带信号仿真

该函数实现MATLAB中的基带信号仿真,根据输入参数生成随机或自定义序列,并绘制信号波形。同时,函数还计算并显示了基带信号的反码及DNRZ(非归零反相)形式。通过 subplot 分别展示原始基带信号、反码及DNRZ信号的图形,便于分析和理解。

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]);
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无牙大白鲨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值