MATLAB仿真绘制四种基本基带信号————双极性不归零码(DNRZ)、双极性归零码(DRZ)、单极性不归零码(SNRZ)、单极性归零码(SRZ)的时域波形及其功率谱
目录
一、双极性不归零码
二、双极性归零码
三、单极性不归零码
四、单极性归零码
五、四种基本波形的功率谱
六、MATLAB绘制四种基本波形及其功率谱
七、MATLAB代码
总结
提示:以下是本篇文章正文内容,写文章实属不易,希望能帮助到各位,转载请附上链接。
无直流
1—高电平+1;0—负电平-1
无直流
基本规则与双极性不归零码雷同,但是在一个信码周期中存在50%的零电平
单极性:1—高电平;0—0电平,码元持续期间电平不变
不归零:NRZ (nor-return to zero)
有直流且有固定0电平,多用于终端设备或近距离传输(线路板内或线路板间)
归零:RZ (return to zero)发送“1”码时高电平在码元期间内只持续一段时间(一般取占空比50%),多用于近距离波形变换;
有直流;
可直接提取位定时;
规则:1—高电平;0—0电平(与单极性非归零码相同),但是在一个定时信号中,存在归零现象,也就是比如二进制1—高点平1,但是存在归零,高电平不能占满整个一个的定时信号,而会存在50%占空比为0电平。
clc;
clear all;
close all;
N=10000; % 码元个数
fc=1e9; % 载波信号频率
Rb=1e6; % 码速率
sps=16; % 每个码元的采样点数
fs=Rb*sps; % 采样频率
n=N*sps; % 总的采样点数
ts=1/fs; % 最小采样间隔
Tb=ts*sps; % 码元周期
t1=(1:N)*Tb; % 码元持续时间
t2=(1:n)*ts; % 总的持续时间
%% 产生双极性不归零基带信号
x=randi([0 1],1,N)*2-1; % 产生双极性序列 1 -1
figure(1);
subplot(211);
stem(t1(1:20),x(1:20));grid on;
ylim([-1.2 1.2]);
title('双极性不归零基带信号');
x1=repmat(x,sps,1); %将x复制sps行
xt=reshape(x1,1,n); %将x1按列拼接成行向量
subplot(212);
plot(t2(1:20*sps),xt(1:20*sps));grid on;
ylim([-1.2 1.2]);
title('双极性不归零基带信号时域波形');
figure(2);
[p,f]=pwelch(xt,500,300,500,fs,'centered','power'); %500,300,500分别为计算样本点数,重叠点数,DFT点数
plot(f,10*log10(p));
xlabel('Frequency (Hz)');ylabel('Magnitude (dB)');title('双极性不归零基带信号功率谱');
%% 产生双极性归零基带信号
x=randi([0 1],1,N)*2-1;
figure(3);
subplot(211);
stem(t1(1:20),x(1:20));grid on;
ylim([-1.2 1.2]);
title('双极性归零基带信号');
x1=repmat(x,sps/2,1);
x2=[x1;zeros(sps/2,N)];
xt=reshape(x2,1,n);
subplot(212);
plot(t2(1:20*sps),xt(1:20*sps));grid on;
ylim([-1.2 1.2]);
title('双极性归零基带信号时域波形');
figure(4);
[p,f]=pwelch(xt,500,300,500,fs,'centered','power'); %500,300,500分别为计算样本点数,重叠点数,DFT点数
plot(f,10*log10(p));
xlabel('Frequency (Hz)');ylabel('Magnitude (dB)');title('双极性归零基带信号功率谱');
%% 产生单极性不归零基带信号
x=randi([0 1],1,N); % 产生双极性序列 1 0
figure(5);
subplot(211);
stem(t1(1:20),x(1:20));grid on;
ylim([-0.2 1.2]);
title('单极性不归零基带信号');
x1=repmat(x,sps,1);
xt=reshape(x1,1,n);
subplot(212);
plot(t2(1:20*sps),xt(1:20*sps));grid on;
ylim([-0.2 1.2]);
title('单极性不归零基带信号时域波形');
figure(6);
[p,f]=pwelch(xt,500,300,500,fs,'centered','power'); %500,300,500分别为计算样本点数,重叠点数,DFT点数
plot(f,10*log10(p));
xlabel('Frequency (Hz)');ylabel('Magnitude (dB)');title('单极性不归零基带信号功率谱');
%% 产生单极性归零基带信号
x=randi([0 1],1,N); % 产生双极性序列 1 0
figure(7);
subplot(211);
stem(t1(1:20),x(1:20));grid on;
ylim([-0.2 1.2]);
title('单极性归零基带信号');
x1=repmat(x,sps/2,1);
x2=[x1;zeros(sps/2,N)];
xt=reshape(x2,1,n);
subplot(212);
plot(t2(1:20*sps),xt(1:20*sps));grid on;
ylim([-0.2 1.2]);
title('单极性归零基带信号时域波形');
figure(8);
[p,f]=pwelch(xt,500,300,500,fs,'centered','power'); %500,300,500分别为计算样本点数,重叠点数,DFT点数
plot(f,10*log10(p));
xlabel('Frequency (Hz)');ylabel('Magnitude (dB)');title('单极性归零基带信号功率谱');
以上就是今天要讲的全部内容,希望对大家有帮助。