【数字基带信号】基于matlab数字双相码仿真【含Matlab源码 989期】
2021/6/19 14:27:07
本文主要是介绍【数字基带信号】基于matlab数字双相码仿真【含Matlab源码 989期】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、简介
双相码,又名曼彻斯特码,其编码规则是:将信息代码 0 编码为线路码“01”,将信息代码1为线路码“10”双相码常用于局域网传输,每一位的中间的跳变,既作时钟信号,又作数据信号。
二、源代码
close all clear all %采样点数的设置 k=14; %每码元采样数的设置 L=128; 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)); for x=1:1000 % 取样1000次 K=round(rand(1,M)); %产生一个长度为M的随机序列K,0和1等概出现 original=zeros(L,M); %产生一个L行M列的original矩阵,初始化为全0矩阵 Manchester =zeros(L,M); %产生一个L行M列的Manchester矩阵,初始化为全0矩阵 for i=1:M if K(i)==1 original (:,i)=1;%原码 Manchester (1:L/2,i)=1; %使manchester矩阵第i列前L/2个元素为1 else original (:,i)=0;%原码 Manchester (:,i)=1; %使manchester矩阵第i列为1 Manchester (1:L/2,i)=0; %使manchester矩阵第i列前L/2个元素为0 end end %分别重排nrz、manchester矩阵为1行N列的矩阵 original =reshape(original,1,N); Manchester =reshape(Manchester,1,N); %做傅里叶变换并算出功率谱密度 ORIGINAL =t2f(original,dt); P1=ORIGINAL.*conj(ORIGINAL)/T; MANCHESTER=t2f(Manchester,dt); P2=MANCHESTER.*conj(MANCHESTER)/T; %求功率谱密度的均值 EP1=(EP1*(x-1)+P1)/x; EP2=(EP2*(x-1)+P2)/x; end figure(1) %开启一个编号为1的绘图窗口 subplot(2,2,1); plot(t,original); %画原码的时域图 axis([-3,3,min(original)-0.1,max(original)+0.1]); title('原码','fontsize',12); xlabel('t(ms)','fontsize',12); ylabel('original(t)','fontsize',12); grid on subplot(2,2,2); function X=t2f(x,dt) X=fftshift(fft(x))*dt;
三、运行结果
四、备注
版本:2014a
完整代码或代写加1564658423
这篇关于【数字基带信号】基于matlab数字双相码仿真【含Matlab源码 989期】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18机器学习与数据分析的区别
- 2024-10-28机器学习资料入门指南
- 2024-10-25机器学习开发的几大威胁及解决之道
- 2024-10-24以下是五个必备的MLOps (机器学习运维)工具,帮助提升你的生产效率 ??
- 2024-10-15如何选择最佳的机器学习部署策略:云 vs. 边缘
- 2024-10-12从软件工程师转行成为机器学习工程师
- 2024-09-262024年机器学习路线图:精通之路步步为营指南
- 2024-09-13机器学习教程:初学者指南
- 2024-08-07从入门到精通:全面解析机器学习基础与实践
- 2024-01-24手把手教你使用MDK仿真调试