中南大学通信原理matlab课程设计报告
- 格式:doc
- 大小:393.00 KB
- 文档页数:14
最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改赠人玫瑰,手留余香。
Matlab实验报告姓名:班级:班学号:目录实验一熟悉MATLAB环境 (3)实验二数值数组创建、应用及可视化 ................................ 错误!未定义书签。
实验三字符串数组的使用、简单脚本文件和函数的编写错误!未定义书签。
实验四数据可视化方法 .. (22)Matlab实验报告实验室名称:综合实验楼4楼实验日期:2014年12月[实验目的]1 .熟悉 MATLAB 主界面,并学会简单的菜单操作。
2 .学会简单的矩阵输入与信号输入。
3 .掌握部分绘图函数。
[实验原理]MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。
它提供了各种矩阵的运算与操作,并有较强的绘图功能。
用户第一次使用 MATLAB 时,建议首先在屏幕上键入 demo 命令,它将启动 MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。
也可以键入 help 进行进一步了解。
MATLAB 启动界面如图所示:操作界面主要的介绍如下:指令窗(Command Window ),在该窗可键入各种送给MATLAB 运作的指令、函数、表达式,并显示除图形外的所以运算结果。
历史指令窗( Command History ),该窗记录已经运行过的指令、函数、表达式;允许自己的编写文件。
MATLAB 工作时,基本搜索过程为:首先在工作空间,即MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的M 文件存在;如还没有,则在 MATLAB 定义的搜索路径其他目录中,检查是否有该 M 文件存在。
通信原理matlab实验报告《通信原理matlab实验报告》在现代通信系统中,通信原理是至关重要的一部分。
为了更好地理解和应用通信原理,我们进行了一系列的实验,并在本报告中分享我们的实验结果和分析。
首先,我们使用了Matlab软件进行了频谱分析实验。
通过对信号的频谱进行分析,我们能够更好地了解信号的频率分布特性,从而为信号的传输和处理提供了重要的参考。
在实验中,我们使用了不同的信号类型,并通过Matlab的频谱分析工具对其进行了分析。
通过实验结果,我们发现不同类型的信号在频谱上呈现出不同的特征,这为我们在实际通信系统中的信号处理提供了重要的指导。
其次,我们进行了调制解调实验。
调制是将数字信号转换为模拟信号的过程,而解调则是将模拟信号转换为数字信号的过程。
在实验中,我们使用Matlab模拟了调制解调过程,并通过实验结果验证了调制解调的正确性。
通过这一实验,我们深入理解了调制解调的原理和过程,并为实际通信系统中的信号处理提供了重要的参考。
最后,我们进行了信道编码解码实验。
信道编码是为了提高通信系统的可靠性和抗干扰能力而进行的一种技术手段。
在实验中,我们使用Matlab对信道编码进行了模拟,并通过实验结果验证了信道编码的效果。
通过这一实验,我们更加深入地理解了信道编码的原理和作用,为实际通信系统中的信号处理提供了重要的参考。
综上所述,通过本次实验,我们更加深入地理解了通信原理的相关知识,并通过Matlab软件进行了实际操作,加深了对通信原理的理解和应用。
这些实验结果对我们今后在通信系统设计和应用中将起到重要的指导作用。
希望通过这份实验报告的分享,能够对通信原理的学习和应用有所帮助。
通讯原理课程设计MATLAB一、教学目标本课程的目标是让学生掌握通讯原理的基本知识,学会使用MATLAB进行通讯系统的仿真和分析。
通过本课程的学习,学生应能理解并运用模拟通信和数字通信的基本原理,熟练使用MATLAB进行通信系统的建模和仿真,提高解决实际通信问题的能力。
具体来说,知识目标包括:1.掌握通信系统的基本概念和分类。
2.理解模拟通信和数字通信的基本原理。
3.熟悉MATLAB在通信系统中的应用。
技能目标包括:1.能够使用MATLAB进行通信系统的仿真和分析。
2.能够根据实际问题选择合适的通信方案和算法。
3.能够撰写规范的实验报告,对实验结果进行分析和讨论。
情感态度价值观目标包括:1.培养学生的团队合作意识和沟通能力。
2.培养学生的创新精神和批判性思维。
3.培养学生对通信技术的兴趣和热情,提高其对专业学习的积极性。
二、教学内容本课程的教学内容主要包括通信系统的基本概念、模拟通信和数字通信的原理,以及MATLAB在通信系统中的应用。
具体的教学大纲如下:1.通信系统的基本概念和分类:介绍通信系统的定义、分类和性能指标。
2.模拟通信原理:包括调幅、调频和调相的原理及其应用。
3.数字通信原理:包括数字调制、解调、编码和解码的原理及其应用。
4.MATLAB在通信系统中的应用:介绍MATLAB的基本使用方法,以及如何利用MATLAB进行通信系统的仿真和分析。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,使学生掌握通信原理的基本知识和MATLAB的基本使用方法。
2.讨论法:引导学生进行思考和讨论,提高学生的创新精神和批判性思维。
3.案例分析法:通过分析实际案例,使学生更好地理解通信原理和MATLAB在通信系统中的应用。
4.实验法:让学生亲自动手进行实验,培养学生的实践能力和团队合作意识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《通信原理》和《MATLAB教程》。
Matlab实验报告院系名称:信息科学与工程学院专业班级:通信工程1303指导老师:陈科文,支国明,张金焕,周扬学生姓名:学号:目录实验一熟悉MATLAB环境 (3)实验二数值数组创建、应用及可视化 (7)实验三字符串数组的使用、简单脚本文件和函数的编写 (12)实验四数据可视化方法 (22)实验一一、实验目的1 .熟悉MATLAB 主界面,并学会简单的菜单操作;2 .学会简单的矩阵输入与信号输入;3 .掌握部分绘图函数。
二、实验内容及要求1.用户工作目录和当前目录的建立和设置;2.熟悉简单的矩阵输入;3.常用基本命令的使用;4.基本序列运算;三、实验步骤及结果测试1.用户工作目录和当前目录的建立和设置2.熟悉简单的矩阵输入四、实验体会及心得这是我第一次做Matlab实验,一打开页面就有很多地方都不明白,因为页面大部分是英文,由于上课时对Matlab操作页面还有一些记忆,感觉还可以:本次试验是我对Matlab这门课有了一定的了解,对矩阵在Matlab中的运用也有了初步的认识。
实验二一、 实验目的1 .掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别;2 .掌握标准数组生成函数和数组构造技法;3 .进一步熟悉 M 脚本文件编写的方法和技巧。
二、实验内容及要求1.数组的创建和寻访 ;2.编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。
三、实验步骤及结果测试仿照问题 1 中方法找出数组⎥⎦⎤⎢⎣⎡----=5311342024A 中所有绝对值大于 3 的元素。
程序如下图:运行指令 rand(‘state ’,11),A=rand(3,10000);B=(A>0.5);C=2*B -1;首先预测( C*C’)/100 的运行结果,然后再在机器上验证。
(本方法提供了产生通信等仿真中常需若干独立的双随机码的方法原型。
)A :B :C :编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。
通信原理实验报告matlab《通信原理实验报告:MATLAB》摘要:本实验报告基于通信原理课程的实验要求,利用MATLAB软件进行了一系列的实验。
通过实验,我们深入了解了通信原理中的一些重要概念和技术,并通过MATLAB软件进行了模拟和分析。
本实验报告将详细介绍实验的目的、原理、实验步骤、实验结果和分析,以及对实验过程中遇到的问题和解决方法进行了总结和讨论。
1. 实验目的本实验旨在通过使用MATLAB软件进行通信原理相关的实验,加深对通信原理中的相关概念和技术的理解,并通过实际操作加强对课程知识的掌握和应用能力。
2. 实验原理在本实验中,我们将涉及到通信原理中的一些重要概念和技术,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们可以对这些概念和技术进行模拟和分析,从而更好地理解其原理和应用。
3. 实验步骤本实验中,我们将根据实验要求,依次进行一系列的实验步骤,包括信号的调制与解调、信道编码、信道调制等内容。
通过MATLAB软件,我们将对这些实验步骤进行模拟和分析,得到实验结果。
4. 实验结果和分析在实验过程中,我们得到了一系列的实验结果,并进行了详细的分析。
通过对这些实验结果的分析,我们可以更好地理解通信原理中的相关概念和技术,并加深对课程知识的理解和掌握。
5. 实验总结和讨论在实验过程中,我们也遇到了一些问题,并通过一些方法进行了解决。
在本部分,我们将对实验过程中遇到的问题和解决方法进行总结和讨论,以便更好地应对类似的实验问题。
通过本次实验,我们加深了对通信原理中的相关概念和技术的理解,并通过MATLAB软件进行了模拟和分析,得到了一系列的实验结果。
这些实验结果将有助于我们更好地理解通信原理中的相关知识,并加强对课程知识的掌握和应用能力。
同时,本次实验也为我们今后的学习和研究提供了一定的参考和借鉴。
实验一单边带调幅系统的建模仿真一、实验目的1.了解单边带调幅系统的工作原理2.掌握单边带调幅系统的Matlab和Simulink建模过程二、实验内容1、Matlab设计一个单边带发信机、带通信道和相应的接收机,参数要求如下。
(1)输入话音信号为一个话音信号,采样率8000Hz。
话音输入后首先进行预滤波,预滤波器是一个频率范围在[300,3400]Hz的带通滤波器。
其目的是将话音频谱限制在3400Hz以下。
单边带调制的载波频率设计为10KHz,调制输出上边带。
要求观测单边带调制前后的信号功率谱。
(2)信道是一个带限高斯噪声信道,其通带频率范围是[10000,13500]Hz。
要求能够根据信噪比SNR要求加入高斯噪声。
(3)接收机采用相干解调方式。
为了模拟载波频率误差对解调话音音质的影响,设本地载波频率为9.8KHz,与发信机载波频率相差200Hz。
解调滤波器设计为300Hz到3400Hz的带通滤波器。
2、用Simulink方式设计一个单边带传输系统并通过声卡输出接收机解调的结果声音。
系统参数参照实例5.9,系统仿真参数设置为50KH显示结果(1)能观察音频信号、SSB加载后的信号,解调后的信号波形(2)能观察音频信号频谱、SSB加载后的信号频谱,解调后的信号频谱(3)解调结果放到.wav音频文件,改变信道信噪比听解调的结果三、实验要求1.按要求设计仿真参数;2.按计算所得参数建立Matlab和SIMULINK系统模型;3.设置各模块参数及仿真参数后仿真系统;4.分析仿真结果。
实验二数字通信系统的建模仿真一、实验目的1.了解数字通信系统的建模过程2.了解数字通信系统的仿真过程,并掌握对建模的好坏进行分析二、实验内容建立并测试一个直接序列扩频体制的码分多址传输系统,对比以Gold序列、m序列以及随机整数发生器Random Integer Generator 作为直接序列扩频的扩频序列的传输性能,观察两路CDMA码源的收发数据波形,测试误码率,并用频谱仪观察直接序列扩频调制前后和解调前后的信号频谱。
目录一.问题描述-----------------------------------------3 二.实验原理-----------------------------------------4 三.源程序-------------------------------------------6 四.数据测试----------------------------------------16 五.调试分析----------------------------------------22 六.用户使用手册------------------------------------23 七.心得体会----------------------------------------24一、问题描述1.使用matlab编程完成HDB3的编码与解码。
2.课程设计需要运用MATLAB编程实现2ASK,2FSK,2PSK,2DPSK调制解调过程,并且输出其源码,调制后码元以及解调后码元的波形。
二、实验原理1.HDB3编码解码原理HDB3码:三阶高密度双极性码。
HDB3码与二进制序列的关系:(1)二进制信号序列中的“0”码在HDB3码中仍编为“0”码,二进制信号中“1”码,在HDB3码中应交替地成+1和-1码,但序列中出现四个连“0”码时应按特殊规律编码(引入传号交替反转码的“破坏点”V码);(2)二进制序列中四个连“0”按以下规则编码:信码中出现四个连“0”码时,要将这四个连“0”码用000V或B00V取代节来代替(B和V也是“1”码,可正、可负)。
这两个取代节选取原则是,使任意两个相邻v脉冲间的传号数为奇数时选用000V取代节,偶数时则选用B00V取代节。
2.二进制数字调制技术原理数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。
为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。
通信原理Matlab仿真实验报告学号:姓名:实验一1、利用Matlab实现矩形信号串信号分解与合成⑴ Matlab程序代码:①矩形信号串信号分解与合成函数rectexpd():function rectexpd(T1,T0,m)%矩形信号串信号分解与合成%T1:矩信号区间为(-T1/2,T1/2)%T0:矩形矩信信号串周期%m:傅里叶级数展开项次数t1=-T1/2:0.01:T1/2;t2=T1/2:0.01:(T0-T1/2); t=[(t1-T0)';(t2-T0)';t1';t2';(t1+T0)'];n1=length(t1);n2=length(t2); %根据周期矩形信号函数周期,计算点数f=[ones(n1,1);zeros(n2,1);ones(n1,1);zeros(n2 ,1);ones(n1,1)]; %构造周期矩形信号串y=zeros(m+1,length(t));y(m+1,:)=f';figure(1);plot(t,y(m+1,:)); %绘制周期矩形信号串axis([-(T0+T1/2)-0.5,(T0+T1/2)+0.5,0,1.2]); set(gca,'XTick',[-T0,-T1/2,T1/2,T0]);set(gca,'XTickLabel',{'-T0','-T1/2','T1/2','T0'}) ;title('矩形信号串');grid on; a=T1/T0;pause; %绘制离散幅度谱freq=[-20:1:20];mag=abs(a*sinc(a*freq)); stem(freq,mag);x=a*ones(size(t));for k=1:m %循环显示谐波叠加图形pause;x=x+2*a*sinc(a*k)*cos(2*pi*t*k/T0);y(k,:)=x;plot(t,y(m+1,:));hold on;plot(t,y(k,:));hold off;grid on;axis([-(T0+T1/2)-0.5,[T0+T1/2]+0.5,-0.5,1.5]) ;title(strcat(num2str(k),'次谐波叠加')); xlabel('t');endpause;plot(t,y(1:m+1,:));grid on;axis([-T0/2,T0/2,-0.5,1.5]);title('各次谐波叠加');xlabel('t');②在命令窗口调用rectexpd()函数:T1=5;T0=10;m=5;rectexpd(T1,T0,m)⑵Matlab仿真结果:1次谐波叠加t3次谐波叠加tt2次谐波叠加t4次谐波叠加tt2、利用Matlab实现连续信号卷积运算⑴ Matlab程序代码:①连续信号卷积运算的通用函数sconv():function [f,k]=sconv(f1,f2,k1,k2,p) f=conv(f1,f2);f=f*p;k0=k1(1)+k2(1);k3=length(f1)+length(f2)-2;k=k0:p:k3*p; subplot(2,2,1); plot(k1,f1); title('f1(t)'); xlabel('t'); ylabel('f1(t)');subplot(2,2,2);plot(k2,f2);title('f2(t)'); xlabel('t'); ylabel('f2(t)'); subplot(2,2,3); plot(k,f); title('f(t)=f1(t)*f2(t)'); xlabel('t'); ylabel('f(t)');h=get(gca,'position'); h(3)=2.5*h(3);set(gca,'position',h);②在命令窗口调用sconv ()函数: p=0.01; k1=0:p:2; f1=exp(-k1); k2=0:p:3;f2=ones(1,length(k2)); [f,k]=sconv(f1,f2,k1,k2,p)⑵Matlab 仿真结果:0.511.5200.51f1(t)tf 1(t )01230.511.52f2(t)tf 2(t )00.51 1.522.533.544.550.51f(t)=f1(t)*f2(t)tf (t )实验二1、用Matlab模拟图形A律解码⑴Matlab程序代码:①建立函数ADecode()function y=ADecode(code,n) codesize=size(code);cr_len=codesize(1);cl_len=codesize(2);ca=zeros(1,cl_len-1);for i=1:cr_lenca=code(i,2:n);s=0;for j=1:n-1s=s+ca(j)*2^(n-1-j);enda=code(i,1);y(i)=s*((-1)^(a+1)); endy=y/(2^(n-1));A=87.6;A1=1+log(A); for j=1:length(y)if(y(j)>=0)if(y(i)<=1/A1)y(j)=y(j)*A1/A;elsey(j)=exp(y(j)*A1-1/A);endelsetemp=-y(j);if(temp<=1/A1)y(j)=-temp*A1/A;elsey(j)=-exp(temp*A1-1)/A;endendend②建立函数APCM()function code=APCM(x,n)xmax=max(abs(x));x=x/xmax;xlen=length(x);y=zeros(1,xlen);A=87.6;A1=1+log(A);for i=1:xlenif x(i)>=0if x(i)<=1/Ay(i)=(A*x(i))/A1;elsey(i)=(1+log(A*x(i)))/A1;endelsex1=-x(i);if x1<=1/Ay(i)=-(A*x1)/A1;elsey(i)=-(1+log(A*x1))/A1;endendendy1=y*(2^(n-1)-1);y1=round(y1);code=zeros(length(y1),n); c2=zeros(1,n-1);for i=1:length(y1)if(y1(i)>0)c1=1;elsec1=0;y1(i)=-y1(i);endfor j=1:n-1r=rem(y1(i),2);y1(i)=(y1(i)-r)/2;c2(j)=r;endc2=fliplr(c2);code(i,:)=[c1 c2];end③在新函数中调用前两个函数 t=0:0.01:1; x=sin(2*pi*t); code=APCM(x,7); y=ADecode(code,7); subplot(2,1,1) plot(t,x);title('原函数的图形'); subplot(2,1,2) plot(t,y);title('解码后函数的图形');⑵Matlab 仿真结果:00.10.20.30.40.50.60.70.80.91-1-0.500.51原函数的图形00.10.20.30.40.50.60.70.80.91-1-0.50.5解码后函数的图形2、用Matlab 模拟DSB 调制及解调过程 ⑴Matlab 程序代码: close all; clear all;dt=0.001;%采样时间间隔 fm=1; %信源最高频率 fc=10; %载波中心频率 N=4096;T=N*dt; t=0:dt:T-dt;mt=sqrt(2)*cos(2*pi*fm*t);%信源s_dsb=mt.*cos(2*pi*fc*t); %DSB-SC 双边带抑制载波调幅B=2*fm;figure(1); subplot(311) plot(t,s_dsb,'b-');hold on; %画出DSB 信号波形plot(t,mt,'r--');%画出m(t)信号波形 title('DSB 调制信号'); xlabel('t'); grid on;%DSB demodulation rt=s_dsb.*cos(2*pi*fc*t); rt=rt-mean(rt); [f,rf]=T2F(t,rt); [t,rt]=lpf(f,rf,B); subplot(312) plot(t,rt,'k-'); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较'); xlabel('t'); grid on; subplot(313)[f,sf]=T2F(t,s_dsb); %求调制信号的频谱psf=(abs(sf).^2)/T; %求调制信号的功率谱密度 plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]); title('DSB 信号功率谱'); xlabel('f'); grid on;⑵Matlab 仿真结果:00.51 1.52 2.53 3.54 4.5-22DSB 调制信号t0.511.522.533.544.5-101相干解调后的信号波形与输入信号的比较t-20-15-10-5051015200.5DSB 信号功率谱f实验三1、用Matlab模拟双极性归零码⑴ Matlab程序代码:function y=drz(x)t0=300;x=[1 0 0 1 1 0 0 0 0 1 0 1];t=0:1/t0:length(x);for i=1:length(x);if(x(i)==1)for j=1:t0/2y(t0/2*(2*i-2)+j)=1;y(t0/2*(2*i-1)+j)=0;endelsefor j=1:t0/2y(t0/2*(2*i-2)+j)=-1;y(t0/2*(2*i-1)+j)=0;endendendy=[y,x(i)];M=max(y);m=min(y); subplot(211)plot(t,y);grid on;axis([0,i,m-0.1,M+0.1]);title('1 0 0 1 1 0 0 0 0 1 0 1 ');⑵Matlab仿真结果:2、用Matlab产生2FSK信号⑴ Matlab程序代码:①建立函数fskdigital()function fskdigital(s,f1,f2) t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];for n=1:length(s)if s(n)==0;m=ones(1,100);c=sin(f2*t);b=zeros(1,100) else s(n)==1;m=ones(1,100);c=sin(f1*t);b=ones(1,100)endm1=[m1 m]; c1=[c1 c]; b1=[b1 b]; endfsk=c1.*m1;subplot(211);plot(b1,'r')title('原始信号');axis([0 100*length(s) -0.1 1.1]);grid on;subplot(212);plot(fsk)title('2FSK信号');grid on;②在命令窗口调用函数fskdigital() >> s=[1 0 1 1 0 0 1 0]; f1=200; f2=100;fskdigital(s,f1,f2)⑵Matlab 仿真结果:10020030040050060070080000.20.40.60.81原始信号100200300400500600700800-1-0.500.512FSK 信号3、用Matlab 的simulink 模块模拟三角波的分解与还原 ⑴模块图⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。
通信原理matlab课程设计一、课程目标知识目标:1. 理解通信原理的基本概念,掌握调制解调、信号传输、信道编码等基本知识点;2. 学会运用MATLAB软件进行通信系统的仿真和分析;3. 掌握通信系统性能指标的计算方法,并能够运用MATLAB进行验证。
技能目标:1. 能够运用MATLAB软件设计简单的通信系统模型;2. 学会利用MATLAB进行数据处理、图像绘制和结果分析;3. 提高实际操作能力,培养解决实际通信问题的思维和方法。
情感态度价值观目标:1. 培养学生对通信原理课程的兴趣,激发学习热情;2. 培养学生的团队协作精神,提高沟通与表达能力;3. 引导学生树立正确的价值观,认识到通信技术在我国经济社会发展中的重要地位。
课程性质:本课程为通信原理课程的实践环节,旨在通过MATLAB软件的运用,加深学生对通信原理知识的理解和掌握。
学生特点:学生已经掌握了通信原理的基本知识,具备一定的MATLAB编程基础,但实际操作能力和问题解决能力有待提高。
教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重理论与实践相结合,提高学生的实际操作能力和问题解决能力。
在教学过程中,关注学生的情感态度价值观培养,提高学生的学习兴趣和积极性。
二、教学内容1. 通信原理基本概念回顾:信号与系统、傅里叶变换、采样定理等;2. 调制解调技术:模拟调制(AM、FM、PM),数字调制(ASK、FSK、PSK、QAM);3. 信号传输与信道:信号传输特性、信道模型、信道编码;4. 通信系统性能分析:误码率、信噪比、带宽等性能指标;5. MATLAB软件操作与仿真:基本命令、数据类型、图形绘制、程序设计;6. MATLAB在通信系统中的应用:设计调制解调器、信道编码器、信号分析仪等;7. 实践项目:分组进行通信系统仿真,分析并优化系统性能。
教学内容安排与进度:第一周:通信原理基本概念回顾,MATLAB软件基本操作;第二周:调制解调技术,实践项目一(调制解调器设计);第三周:信号传输与信道,实践项目二(信道编码器设计);第四周:通信系统性能分析,实践项目三(信号分析仪设计);第五周:总结与成果展示。
通信原理课程设计matlab在通信原理课程中,Matlab是一款非常常用的工具。
通信原理课程设计Matlab主要涉及以下内容:1. 数字信号调制:通过Matlab实现常见的数字调制方式,包括ASK、FSK、PSK等。
2. 信道编码:实现信道编码技术,如卷积码、Turbo码等。
3. 信道仿真:通过Matlab编写仿真程序,模拟通信系统中信道的影响,包括加性白噪声、多径衰落等。
4. OFDM系统:实现OFDM系统的设计与仿真,包括生成OFDM信号、设计FFT算法等。
5. MIMO系统:通过Matlab实现多输入多输出(MIMO)技术,包括设计矩阵、SVD分解等。
在实现以上内容时,通信原理课程设计Matlab需要掌握一些基础知识和技巧:1. Matlab基础:掌握Matlab的基本语法、矩阵运算、图形绘制等。
2. 信号处理工具箱:掌握Matlab信号处理工具箱中的函数,如FFT、IFFT、滤波器等。
3. 通信工具箱:掌握Matlab通信工具箱中的函数,如通道模型、误码率分析等。
4. 编程技巧:掌握Matlab编程技巧,如函数、循环、判断语句等,能够高效地编写程序。
通信原理课程设计Matlab的目的在于帮助学生理解课程中的基础概念和技术,同时培养学生的程序设计能力。
在课程设计过程中,需要充分了解课程内容,确定程序设计的目标和方法,通过实现和仿真不同的信号处理和通信技术,提高学生的综合能力和实践能力。
总的来说,通信原理课程设计Matlab是一项有益的教学活动,能够帮助学生更好地掌握通信原理的基础知识和技术,同时提高学生的程序设计和解决问题的能力。
MATLAB课程设计报告题目:通信原理课程设计——PCM脉冲编码调制班级:08通信2班专业:通信工程姓名:成绩:一、课程设计目的通过本课程的学习我们不仅能加深理解和巩固理论课上所学的有关PCM 编码和解码的基本概念、基本理论和基本方法,而且能锻炼我们分析问题和解决问题的能力;同时对我们进行良好的独立工作习惯和科学素质的培养,为今后参加科学工作打下良好的基础。
二、课程设计内容利用MATLAB集成环境下仿真平台,设计一个PCM脉冲编码调制系统.也就是根据所给题目设计一个相应的PCM脉码调制系统,并对其结果分析。
因为我国主要采用A压缩率(简称A律),所以,这里我们就使用A律来进行非均匀量化编码。
三、脉码调制PCM原理PCM即脉冲编码调制,在通信系统中完成将语音信号数字化功能。
PCM的实现主要包括三个步骤完成:抽样、量化、编码。
分别完成时间上离散、幅度上离散、及量化信号的二进制表示,就是将模拟信号抽样量化,然后将已量化值变换成代码。
下面将用一个PCM系统的原理框图简要介绍。
原理框图如下所示。
在编码器中由冲激脉冲对模拟信号抽样,得到在抽样时刻上的信号抽样值。
这个抽样值仍是模拟量。
在它量化之前,通常由保持电路(holding circuit )将其作短暂保存,以便电路有时间对其量化。
在实际电路中,常把抽样和保持电路作在一起,称为抽样保持电路。
图中的量化器把模拟抽样信号变成离散的数字量,然后在编码器中进行二进制编码。
这样,每个二进制码组就代表一个量化后的信号抽样值。
图中的译码器的原理和编码过程相反。
其中,量化与编码的组合称为模/数变换器(A/D 变换器); 译码与低通滤波的组合称为数/模变换器(D/A 变换器)。
下面我们将各个部分分别说明:3.1抽样所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。
该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。
实验二1、用Matlab模拟图形A律解码⑴Matlab程序代码:①建立函数ADecode()function y=ADecode(code,n) codesize=size(code);cr_len=codesize(1);cl_len=codesize(2);ca=zeros(1,cl_len-1);for i=1:cr_lenca=code(i,2:n);s=0;for j=1:n-1s=s+ca(j)*2^(n-1-j);enda=code(i,1);y(i)=s*((-1)^(a+1)); endy=y/(2^(n-1));A=87.6;A1=1+log(A);for j=1:length(y)if(y(j)>=0)if(y(i)<=1/A1)y(j)=y(j)*A1/A;elsey(j)=exp(y(j)*A1-1/A);endelsetemp=-y(j);if(temp<=1/A1)y(j)=-temp*A1/A;elsey(j)=-exp(temp*A1-1)/A;endendend②建立函数APCM()function code=APCM(x,n)xmax=max(abs(x));x=x/xmax;xlen=length(x);y=zeros(1,xlen);A=87.6;A1=1+log(A);for i=1:xlenif x(i)>=0if x(i)<=1/Ay(i)=(A*x(i))/A1;elsey(i)=(1+log(A*x(i)))/A1;endelsex1=-x(i);if x1<=1/Ay(i)=-(A*x1)/A1;elsey(i)=-(1+log(A*x1))/A1;endendendy1=y*(2^(n-1)-1);y1=round(y1);code=zeros(length(y1),n); c2=zeros(1,n-1);for i=1:length(y1)if(y1(i)>0)c1=1;elsec1=0;y1(i)=-y1(i);endfor j=1:n-1r=rem(y1(i),2);y1(i)=(y1(i)-r)/2;c2(j)=r;endc2=fliplr(c2);code(i,:)=[c1 c2];实验三1、用Matlab模拟双极性归零码⑴ Matlab程序代码:function y=drz(x)t0=300;x=[1 0 0 1 1 0 0 0 0 1 0 1];t=0:1/t0:length(x);for i=1:length(x);if(x(i)==1)for j=1:t0/2y(t0/2*(2*i-2)+j)=1;y(t0/2*(2*i-1)+j)=0;endelsefor j=1:t0/2y(t0/2*(2*i-2)+j)=-1;y(t0/2*(2*i-1)+j)=0;endendendy=[y,x(i)];M=max(y);m=min(y); subplot(211)plot(t,y);grid on;axis([0,i,m-0.1,M+0.1]);title('1 0 0 1 1 0 0 0 0 1 0 1 ');⑵Matlab仿真结果:2、用Matlab产生2FSK信号⑴ Matlab程序代码:①建立函数fskdigital()function fskdigital(s,f1,f2) t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];for n=1:length(s)if s(n)==0;m=ones(1,100);c=sin(f2*t);b=zeros(1,100) else s(n)==1;m=ones(1,100);c=sin(f1*t);b=ones(1,100)endm1=[m1 m]; c1=[c1 c]; b1=[b1 b]; endfsk=c1.*m1;subplot(211);plot(b1,'r')title('原始信号');axis([0 100*length(s) -0.1 1.1]);grid on;subplot(212);plot(fsk)title('2FSK信号');⑵仿真结果:①三角波原图②用矩形波近似的冲击函数③分解后的三角波④经低通还原的三角波。
目录一、课程设计目的 (1)二、课程设计任务 (1)三、课程设计题目 (1)3.1、画出分段函数图: (1)3.2、信号的产生与变换 (2)3.3、财经问题 (3)3.4、计算平均学分积GPA (4)3.5、供煤量分配问题 (6)四、课程设计结论及分析 (7)五、心得体会 (7)六、参考文献 (7)一、课程设计目的1. 熟悉MATLAB 的工作环境;2. 熟悉并练习MATLAB 的命令;3. 掌握MATLAB 的基本操作;4. 熟练掌握MATLAB 的基本应用。
二、课程设计任务1.熟练掌握MATLAB 的基本用法以及实际应用;2.将课程设计题目解答完毕,完成一下内容:(1)、画出分段函数图;(2)、信号的产生与变换;(3)、财经问题;(4)、计算平均学分积GPA ;(5)、供煤量分配问题。
三、课程设计题目3.1、画出分段函数图:2222220.5457exp(0.75 3.75 1.5),1(,)0.7575exp(6),1105457exp(0.75 3.75 1.5),1y x x x y p x y y x x y y x x x y ⎧---+>⎪=---<+≤⎨⎪--++≤-⎩(1) 程序:x=-3:0.1:3;y=-3:0.1:3;length_of_x=length(x);length_of_y=length(y);for i=1:length_of_xfor j=1:length_of_yif (x(i)+y(j))>1z(i,j)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2-1.5*x(i)); elseif ((x(i)+y(j))>-1)&&((x(i)+y(j))<=1)z(i,j)=0.7575*exp(-y(j)^2-6*x(i)^2);elsez(i,j)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2+1.5*x(i)); endendendmesh(x,y,z)(2) 运行结果:3.2、信号的产生与变换数字信号处理中y(n)=x(-n)的画图实现;其中21,33()0, n 3n n x n +-≤≤⎧=⎨>⎩(1)程序:n=-4:4;for i=1:9if abs(n(i))>3x(i)=0;else x(i)=2*n(i)+1;endendy=fliplr(x);stem(n,y);(2)运行结果:3.3、财经问题一笔100000元的贷款要按每月等额偿付d元的方式付清。
《通信原理I课程设计》任务书目录一、课程设计要紧内容┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄4二、课程设计实验要求┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄——┄4三、课程设计原理┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄—┄┄4四、课程设计思路及进程—┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄——┄┄┄┄┄┄5五、课程设计实验结果┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄15六、课程设计分析及心得┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄18七、通信原理I课程设计环节参考资料┄┄┄┄┄┄┄┄┄——┄┄┄—————18一.课程设计要紧内容1、完成系统方案的设计;2、完成仿真程序的设计与调试;3、分析仿真结果,得出合理结论。
二.课程设计实验要求1.仿真输入的模拟信号,给出信号波形和功率谱密度;2.实现题目要求的模拟信号的调制与解调,画出调制后的信号波形和功率谱密度,和解调后的输出信号波形;3.实现题目要求的模拟信号的数字化;4.实现题目要求的数字基带码型变换和反变换,画出变换后数字基带信号的波形;5.实现题目要求的数字信号的调制与解调,画出调制后的信号波形和功率谱密度,和解调后的输出信号波形;6.在不同的条件下(基带码型、调制方式,输入信噪比),对系统信噪比(模拟)和误码性能(数字)进行分析,画出系统误码率仿真曲线;7.实现系统仿真平台正常运行;按要求完成设计报告。
三.课程设计原理数字频带通信系统(5号题目):输入:第一输入模拟信号,给出此模拟信号的时域波形。
数字化:将模拟信号进行数字化,取得数字信号,能够选择PCM编码。
调制:能够选择简单的二进制数字调制方式,例如振幅键控(2ASK)、相移监控(2PSK)、频移键控(2FSK),差分相移键控(DPSK)等。
要求每一个题目至少选择两种调制方式。
有能力的同窗也能够选择其它高效的调制方式,例如多进制数字振幅键控等,给出调制后信号的时域波形。
MATLAB简单仿真实验一、实验目的:学会利用MATLAB软件进行简单的仿真。
通过实验提高学生实际动手能力和编程能力,为日后从事通信工作奠定良好的基础。
二、实验内容:(1)绘制函数y=xe-x在0≤x≤1时的曲线。
(2)将输入的一段二进制代码编成单极性不归零码和双极性不归零码。
(3)学习使用simulink进行仿真建模三、仿真和实验结果:(1)x=0:0.1:1 %定义自变量的采样点取值数组y=x.*exp(-x) %利用数组运算计算各自变量采样点上的函数值plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)') %绘图(2)(a)单极性不归零码程序function y=snrz(x)t0=300;t=0:1/t0:length(x);for i=1:length(x)if(x(i)==1) %如果信息位为1for j=1:t0y((i-1)*t0+j)=1;%该码元对应的点值取1endelsefor j=1:t0y((i-1)*t0+j)=0; %否则,取0endendendy=[y,x(i)];%为了画图,要将y序列加上最后一位M=max(y);m=min(y);subplot(2,1,1)plot(t,y);grid on;axis([0,i,m-0.1,M+0.1]);title('1 0 0 1 1 0 0 0 0 1 0 1');(b)双极性码程序(3)a)在MATLAB的命令窗运行指令simulink,或点击命令窗中的图标,便打开如图所示的SIMULINK模型库浏览器(simulink Library Browser)。
b)在库浏览器中直接点击左侧分类目录中的Source子库,便可以看到各种信源模块,如图所示。
c)点击工具条上的图标,打开一个名为untitled的空白模型窗口。
《通信系统仿真》课程设计报告书课题名称 Rayleigh 无线衰落信道的MATLAB仿真姓 名 伍伟学 号 1312402-02 学 院 通信与电子工程学院专 业 通信工程 指导教师肖湘2015年 12月19日※※※※※※※※※ ※※ ※※※※ ※※※※※※※※※2013级学生 通信系统仿真课程设计Rayleigh 无线衰落信道的MATLAB 仿真1 设计目的(1) 对瑞利信道的数学分析,得出瑞利信道的数学模型。
(2) 利用MATLAB 对瑞利无线衰落信道进行编程。
(3) 针对服从瑞利分布的多径信道进行仿真,加深对多径信道特性的了解。
(4) 对仿真后的结果进行分析,得出瑞利无线衰落信道的特性。
2 设计要求(1) 设计一个瑞利无线衰落信道;(2) 进一步地了解瑞利无线衰落信道对信号的影响; (3) 在设计无线多径信道时,对路径的多少一定要选择合理。
3 设计思路(1) 分析出无线信道符合瑞利概率密度分布函数,写出数学表达式。
(2) 建立多径衰落信道的基本模型。
(3) 对符合瑞利信道的路径衰落进行分析,并利用MATLAB 进行仿真。
4 设计内容4.1 理论分析及数学推导无线信道大体可以分为4种:慢变瑞利衰落信道、快变瑞利衰落信道、慢变频率选择性信道、快变频率选择性信道。
在N 条路径的情况下,信道的输出为1()()[()]Nnnn y t a t x t t =τ=-∑ (4.1.1)式中,()n a t 和()n t τ表示与第N 条多径分量相关的衰落和传播延迟,延迟和衰减都表示为时间的函数。
由于大量散射分量导致接收机输入信号的复包络是一个复高斯过程。
在该过程均值为0的情况下,幅度满足瑞利分布。
如果存在直射路径,幅度则变为莱斯分布。
现在来确定介绍信号的复包络。
假定信道的输入是一个经过调制的信号,其形式为()()cos[2]()c x t A t f t x t π=+φ()t(4.1.2)通常采用低通等效信号来完成波形仿真,所以,下面确定()x t 和()y t 的低通复包络。
基于matlab的通信原理实验课程设计通信原理实验课程是基于Matlab环境设计的一种实验性课程,旨在帮助学生学习和深刻理解数字信号处理的基本原理和基础技术。
在这门课程中,学生将学习数字信号处理的基本概念,包括系统建模、系统分析、信号采样和数据处理,以及信号特征检测和数据特征提取等,并能够应用这些概念和技术来设计、分析和整理数字信号处理系统。
Matlab是一种高度开发的计算工具,具有强大的数学分析和高可读性的编程语言,有助于提高学生的编程能力。
在通信原理实验课程中,学生可以使用Matlab来建立信号处理的多种模型。
例如,学生可以使用Matlab来模拟PCM编码器/解码器,群技术,OFDM信号,QPSK 调制/解调器,以及非线性系统等等。
此外,学生可以使用Matlab来实时分析、调试和测试各种信号处理算法,包括传输线等,以进一步深入学习和理解信号处理算法。
除了应用Matlab的基础功能外,学习这门课程的学生还可以使用一些特殊的Matlab函数,这些函数能够有效地模拟信号处理中的数学
模型,比如变换、抽样和编码。
此外,学生可以使用Matlab的调试和图形功能来调试和分析信号处理系统,以及根据系统的需求灵活调整系统参数。
通过完成基于Matlab环境的通信原理实验课程,学生将学习到建立信号处理模型的基本方法,以及如何分析模型的性能和行为特性,从而熟练掌握信号处理算法的设计与分析。
学生利用Matlab环境构建功能强大而易用的信号处理系统,学习和掌握如何使用Matlab函数和图形来调试和分析信号处理算法,从而提高其信号处理的实践能力和熟练性。
通过完成这门课程,学生将能够更加胜任地设计出更加有效率的信号处理系统,以满足实际的要求。
通信原理课程设计报告通信1005班实验目的通信原理实验是针对通信工程专业学生的实践教学环节,通过这一环节,可使学生巩固相关课程知识,增强动手能力,提高学生对通信系统的仿真技能。
在强调基本原理的同时,更突出设计过程的锻炼,强化学生的实践创新能力。
选题:第二题、码型变换的仿真实现Ⅰ、基本任务:原始PCM脉冲编码信号的AMI码型和CMI码型变换。
主要步骤和要求:(1)把原始的PCM脉冲编码信号转换成适合在信道中传输的AMI码型。
要求PCM码可以是数字型也可以是字符型,要求画出AMI码型变换前后的波形图。
(2)把原始的PCM脉冲编码信号转换成适合在信道中传输的CMI码型。
要求PCM码可以是数字型也可以是字符型,要求画出CMI码型变换前后的波形图。
Ⅱ、选做任务:原始PCM脉冲编码信号的HDB3码型转换。
主要步骤和要求:把原始的PCM脉冲编码信号转换成适合在信道中传输的HDB3码型。
要求PCM码可以是数字型也可以是字符型;要求保证输入的PCM脉冲编码信号中1的个数为偶数;要求画出HDB3码型变换前后的波形图。
设计原理AMI码AMI(Alternative Mark Inversion)码的全称是信号交替反转码,是通信编码中的一种,为极性交替翻转码,分别有一个高电平和低电平表示两个极性。
一、编码规则:消息代码中的0 传输码中的0 ,消息代码中的1 传输码中的+1、-1交替例如: 消息代码:1 0 1 0 1 0 0 0 1 0 1 1 1AMI码: +1 0 -1 0 +1 0 0 0 -1 0 +1 -1 +1二、AMI码的特点:1 由AMI码确定的基带信号中正负脉冲交替,而0电位保持不变;所以由AMI码确定的基带信号无直流分量,且只有很小的低频分量;2 不易提取定时信号,由于它可能出现长的连0串。
三、解码规则从收到的符号序列中将所有的-1变换成+1后,就可以得到原消息代码程序流程图HDB3码一、High Density Bipolar of order 3code,三阶高密度双极性码。
HDB3的编码规则1 先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI码就是HDB3码;2 若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,用表示(+1+,-1-);3为了不破坏极性交替反转,当相邻符号之间有偶数个非0符号时,再将该小段的第1个0变换成+B或-B,符号的极性与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化。
例如: 消息代码: 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1AMI码: +1 0 0 0 0 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 +V -1 +1 流程图:CMI码CMI(Coded Mark Inversion)码是传号反转码的简称,与双相码类似,它也是一种双极性二电平码。
其编码规则是“1”码交替用“11”和“00”两位码表示;“0”码固定地用“01”表示。
CMI码易于实现,含有丰富的定时信息。
此外,由于10为禁用码组,不会出现三个以上的连码,这个规律可以用来宏观检错。
该码已被ITU-T推荐为PCM四次群的接口码型,有时也用在速率低于8.44Mb/s的光缆传输系统中。
运行结果截图输入源代码function varargout = gui02(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @gui02_OpeningFcn, ...'gui_OutputFcn', @gui02_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before gui02 is made visible.function gui02_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% varargin command line arguments to gui02 (see VARARGIN)% Choose default command line output for gui02handles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes gui02 wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = gui02_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;function inputcode_Callback(hObject, eventdata, handles)% hObject handle to inputcode (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of inputcode as text% str2double(get(hObject,'String')) returns contents of inputcode as a double%ÒÔ×Ö·û´®µÄÐÎʽÀ´´æ´¢Êý¾ÝÎı¾¿ò1µÄÄÚÈÝinput = str2num(get(hObject,'String'));guidata(hObject, handles);% --- Executes during object creation, after setting all properties. function inputcode_CreateFcn(hObject, eventdata, handles)% hObject handle to inputcode (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on button press in amibutton.function amibutton_Callback(hObject, eventdata, handles)% hObject handle to amibutton (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)xn = str2num(get(handles.inputcode,'String'));yn=xn;%AMIÂënum=0;for k=1:length(xn)if xn(k)==1num=num+1;if num/2==fix(num/2)yn(k)=1;elseyn(k)=-1;endendendxnynfigure;subplot(2,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);title('PMCÂë')subplot(2,1,2);stairs([0:length(xn)-1],yn);axis([0 length(xn) -2 2]);title('AMIÂë')% --- Executes on button press in hdb3button2.function hdb3button2_Callback(hObject, eventdata, handles)% hObject handle to hdb3button2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)xn = str2num(get(handles.inputcode,'String'));yn=xn;%AMIÂënum=0;for k=1:length(xn)if xn(k)==1num=num+1;if num/2==fix(num/2)yn(k)=1;elseyn(k)=-1;endendendnum=0;%HDB3yh=yn;sign=1;V=zeros(1,length(yn));for k=1:length(yn)if yn(k)==0num=num+1;if num==4v(1)=yh(k-4);breakendelsenum=0;endendfor k=1:length(yn)if yn(k)==0num=num+1;if num==4num=0;yh(k)=v(sign);v(sign+1)=-v(sign);if yh(k)==yh(k-4)elseyh(k-3)=yh(k);yh(k+1:length(yn))=-1*yh(k+1:length(yn));endsign=sign+1;endelsenum=0;endendys=zeros(1,2*length(xn));xnyhfiguresubplot(2,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);title('PMCÂë')subplot(2,1,2);stairs([0:length(xn)-1],yh);axis([0 length(xn) -2 2]);title('HDB3Âë')% --- Executes on button press in cimbutton3.function cimbutton3_Callback(hObject, eventdata, handles)% hObject handle to cimbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)xn = str2num(get(handles.inputcode,'String'));num=0;yc=zeros(1,2*length(xn));%CMIfor k=1:length(xn)if xn(k)==1num=num+1;if num/2==fix(num/2)yc(2*k-1)=1;yc(2*k)=1;elseyc(2*k-1)=0;yc(2*k)=0;endelseyc(2*k-1)=0;yc(2*k)=1;endendxnycfiguresubplot(2,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);title('PMCÂë')subplot(2,1,2);stairs([0:2*length(xn)-1],yc);axis([0 2*length(xn) -2 2]);title('CMIÂë')。