【数字基带信号】基于matlab实现单双极归零码和功率谱仿真

1 简介

数字基带信号是通信系统中最基本的信号之一,为了更好地学习和掌握该类信号,利用MATLAB软件从单双极性归零编码和不归零编码两个角度对其展开研究,并且求各自的功率谱密度。

2 部分代码

close allclear all%采样点数的设置k=14;%每码元采样数的设置L= 32;N=2^k;M=N/L;%M为码元个数dt=1/L;%时域采样间隔T=N*dt;%时域截断区间df=1.0/T;%频域采样间隔Bs=N*df/2;%频域截断区间t=linspace(-T/2,T/2,N);%产生时域采样点f=linspace(-Bs,Bs,N);%产生频域采样点EP1=zeros(size(f));EP2=zeros(size(f));EP3=zeros(size(f));%程序第1部分:随机产生1000列0、1信号序列,分别对其进行双极性归零编码和不归零%编码,并且求各自的功率谱密度,求功率谱密度的均值for x=1:1000%取1000次样值    a=round(rand(1,M));%产生一个长度为M的随机序列a,0和1等概出现    nrz=zeros(L,M);%产生一个L行M列的nrz矩阵,初始化为全0矩阵    rz=zeros(L,M);%产生一个L行M列的rz矩阵,初始化为全0矩阵    for i=1:M         if a(i)==1            nrz(:,i)=1;%使nrz矩阵第i列全部元素都为1            rz(1:L/2,i)=1;%使rz矩阵第i列前L/2个元素为1        else            nrz(:,i)=0;%使nrz矩阵第i列全部元素都为-1            rz(1:L/2,i)=0;%使rz矩阵第i列前L/2个元素为-1        end    end        %分别重排nrz、rz矩阵为1行N列的矩阵    nrz=reshape(nrz,1,N);    rz=reshape(rz,1,N);    %做傅里叶变换并算出功率谱密度    NRZ=t2f(nrz,dt);    P1=NRZ.*conj(NRZ)/T;    RZ=t2f(rz,dt);    P2=RZ.*conj(RZ)/T;    %求功率谱密度的均值    EP1=(EP1*(x-1)+P1)/x;    EP2=(EP2*(x-1)+P2)/x;end%程序第2部分:画波形图和功率谱密度曲线figure(1)%开启一个编号为1的绘图窗口subplot(2,2,1);plot(t,nrz)%画单极性不归零码的时域图axis([-5,5,min(nrz)-0.1,max(nrz)+0.1])title('单极性不归零码','fontsize',12)xlabel('t(ms)','fontsize',12)ylabel('nrz(t)','fontsize',12)grid onsubplot(2,2,2);plot(t,rz)%画单极性归零码的时域图axis([-5,5,min(rz)-0.1,max(rz)+0.1])title('单极性归零码','fontsize',12)xlabel('t(ms)','fontsize',12)ylabel('rz(t)','fontsize',12)grid onsubplot(2,2,3);plot(f,EP1)%画单极性不归零码的功率谱密度图axis([-5,5,0,1.2])title('单极性不归零码功率谱密度图','fontsize',12)xlabel('f(kHz)','fontsize',12)ylabel('P1(f)','fontsize',12)grid onsubplot(2,2,4);plot(f,EP2)%画单极性归零码的功率谱密度图axis([-5,5,0,0.3])title('单极性归零码功率谱密度图','fontsize',12)xlabel('f(kHz)','fontsize',12)ylabel('P2(f)','fontsize',12)grid on

3 仿真结果

【数字基带信号】基于matlab实现单双极归零码和功率谱仿真_第1张图片

【数字基带信号】基于matlab实现单双极归零码和功率谱仿真_第2张图片

4 参考文献

[1]宋建华, 朱勇, 王尔馥,等. 基于MATLAB的数字基带信号及其功率谱研究[J]. 信息通信, 2016.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

你可能感兴趣的:(信号处理,matlab,开发语言)