MATLAB通信系统仿真实验报告_第1页
MATLAB通信系统仿真实验报告_第2页
免费预览已结束,剩余18页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB通信系统仿真实验报告专业年级姓名学号指导教师实验学时实验时间实验地占八、实验一、MATLAB的基本使用与数学运算目的:学习MATLAB的基本操作,实现简单的数学运算程序。内容:1-1要求在闭区间0,2n上产生具有10个等间距采样点的一维数组。试用两种不同的指令实现。运行代码:x二0:2*pi/9:2*pi运行结果:I|*“HWWWWlW-1I23456789lfl00.69811.39632.09442.79253/19074.18884.88&95.58516283201-2用M文件建立大矩阵xx=1.1 1.21.3

2、2.1 3.83.9代码:x=m_mat运行结果:>matCoIujiuie1tticough3口.10右02009Qr30000.4000o.5oao0.60000.70000.000l10右01,2009lr30001.40001.50301,6

3、0001."0001SdOO2.10W2*20002.300024-OOC2,60002-.7000益8000呂1ooo头2QOO3.300Q3.3-50003.60003-7OQQ3-SOOO'CoIujtux.9Q.1. 90002. 90003. POg1-3已知A=5,6;7,8,B=9,10;11,12,试用MATLAB分别计算A+B,A*B,A.*B,A"3,A.3A/B,AB.代码:A=56;78B=910;1112x1=A+BX2=A-BX3=A*BX4=A.*BX5=A"3X6二A3X7=A/BX8=AB运行结果:田:'14J6;

4、L8,20A5,&7rEWU21X2卜仆4;-4厂4X3111,122:151,166X445,60:7A96X5881J026;1197,1394X612521隊43,512X73J00Q,-2皿0;2九X8-3,-4.00005.00001- 4任意建立矩阵A,然后找出在10,20区间的元素位置。程序代码及运行结果:代码:A=1252221417;111024030;552315865c=A>=10&A<=20运行结果:二二100L111000001001- 5总结:实验过程中,因为对软件太过生疏遇到了些许困难,不过最后通过查书与同学交流都解决了。例如第二题中,

5、将文件保存在了D盘,而导致频频出错,最后发现必须保存在MATLAB文件之下才可以。第四题中,逻辑语言运用到了ij,也出现问题,虽然自己纠正了问题,却也不明白错在哪了,在老师的讲解下知道位置定位上不能用ij而应该用具体的整数。总之第一节实验收获颇多。实验二、MATLAB程序的编写目的:掌握顺序结构、选择结构、循环结构程序设计方法。学会编写函数。内容:2-1编写程序,建立向量N=l,2,3,4,5,然后利用向量N产生下列向量;(1) 2,4,6,8,10(2) 1/2,1,3/2,2,5/2(3) 1,1/2,1/3,1/4,1/5(4) 1,1/4,1/9,1/16,1/25代码:N=1,2,3

6、,4,5X1=N*2X2=N/2X3=1./NX4=X3*X3运行结果:NameValue-N-XI尊昭10-X20.5000,1,1.5000,2,2.5000-X31,0.5000,0.3333,0.2500,0.2000X41,0.2500.0.1111,0.0625;0.04002-2从键盘输入一个三位整数,将他反向输出,如输入为639,输出为936输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90100分为A,8089分为B,7079分为C,6069分为D,60分以下为E。要求:(1) 分别用if语句代码:clearm=input('请输入一个三位数:'

7、)m1=fix(m/100);m2二rem(fix(m/10),10);m3=rem(m,10);n=m1+m2*10+m3*100;disp(n);Name*ValueMinMaxm35535&356ml333m2555m3666n653653653(2) clear;Mark二input('请输入成绩:');Rank=cell(1,5);S=struct('Marks',Mark,'Rank',Rank);fori=1:10;ai=89+i;bi=79+i;ci=69+i;di=59+i;ei=0+i;qi=9+i;gi=19+i;h

8、i=29+i;mi=39+i;ni=49+i;end;fori=1:5;switchS(i).Markscase100S(i).Rank='A'caseaS(i).Rank='A'casebS(i).Rank='B'casecS(i).Rank='C'casedS(i).Rank='D'caseeS(i).Rank='E'caseqS(i).Rank='E'casegS(i).Rank='E'casehS(i).Rank='E'casemS(i).Ra

9、nk二'E'casenS(i).Rank='E'otherwiseS(i).Rank='成绩输入错误';endenddisp(num2str(S(i).Marks),blanks(3),S(i).Rank);disp('');运行结果:>>st谙输入成绩:8989E»st请输入咸绩:108108成篦输入错误I2 3输入20个两位随机数,求其中的最大数最小数。要求分别用循环结构和调用MATLAB的max函数、min函数实现。(1)a=fix(rand(1,20)*100)ma=max(a)mi=min(a)运行

10、结果:>>a=fiic(raiLd(lJ20)w100)Coluimis1"through1016793152166026653874Columns11through2046822Snna99C0mi7(2)a二fix(rand(1,20)*100);fori=1:20;max=a(1);min=a(1);ifmax<a(i);max二a(i);endifmin>a(i);min=a(i);endendmaxmin运行结果:Name企ValueMinM曰<1x20double99711202020may955595mm81818

11、12- 6写出下列程序输出结果(1) s=0;a=12,13,14;15,16,17;l8,19,20;21,22,23;fork二aforj=l:4ifrem(k(j),2)=0s=s+k(j);endendends运行结果:田g(2) globalxx=1:2:5;y=2:2:6;sub(y);xy(3) functionfun二sub(z)globalxz=3*x;x=x+z;运行结果:亠田320112614耳Pdoubledouble(global)double总结:第二次实验,对软件的使用比较熟练了,但还是遇到了些许问题。在运算符号的使用中,应当注意“*”的使用,在最初因为不太会运用

12、遇到了些困难,后来通过同学讨论和翻阅课本找到了答案。22中的第二种方法是按照课本例题改编的,有些啰嗦,不多至少是结果正确。还有26中刚开始没能正常输出,在老师的指导下知道(2)(3)是一起使用,算是运用到了函数调用。好在最后所有题目都得到了满意的结果。实验三、MATLAB图形处理目的:能够根据数据绘制各种形状的二、三维图形。3- 1绘制曲线y=x"+x+l,x的取值范围为-5,5代码:x=-5:0.01:5y=x.3+x+1plot(x,y)运行结果:3- 4有一组测量数据满足y=exp(-a*t),t的变化范围为010,用不同的线性和标记点画出a=0.1,a=0.2和a=0.5三种

13、情况下的曲线。代码:t=0:0.1:10;y1=exp(-0.1*t);y2=exp(-0.2*t);y3=exp(-0.5*t);title('tfrom0to10');plot(t,y1,t,y2,t,y3);xlabel('Variablet');ylabel('Variabley');text(0.8,1.5,'曲线y1二exp"-0.11');text(2.5,1.1,'曲线y1二exp"-0.21');text(0.8,1.5,'曲线y1二exp"-0.51'

14、;);legend(,y1,,,y2,,,y3,)运行结果:3-7绘制饼图,x=6649715638,并将第五个切块分离出来。代码:x=6649715638;subplot(1,2,1);pie(x);subplot(1,2,2);pie(x,0,0,0,0,1);运行结果:穆Not?newtcolbdrbuttons:datahmihinfl&li厂ikrdpin乜銘包Pby曾id匕口5总结:这次实验,比较有成就感,并没有遇到什么太复杂的困难,但是软件操作上出现了写麻烦,一不小心将软件页面的各个功能窗口关上了,颇费周折终于找到了那些功能窗口,但是整个页面都有些混乱。好在还是将题目做了

15、出来,图出现的时候感觉特别有成就感。真的说明一件事情,英语学不好很麻烦啊。实验四、MATLAB仿真模拟调制目的:能用MATLAB仿真调幅信号和调角信号。5-1用在区间0,2内的信号m(t)=t0<=t<=1;m(t)=-t+21<=t<=2;以DSB-AM方式调制一个载波频率为25HZ、幅度为1的载波产生已调信号u(t)。写一个Matlab的M文件,并用该文件作下面的题:(1) 画出已调信号;(2) 求已调信号的功率;(3) 求已调信号的振频谱,并与消息信号m(t)的频谱作比较。程序代码:dt=0.01;%时间采样间隔fc=25;T=1;N=floor(T/dt);t1

16、=0:N*dt;t2=t1+1;%t=t1t2;mt1=t1;%信源mt2=-t2+2;%DSB-AMmodulationdsb1=mt1.*cos(2*pi*fc*t1);dsb2=mt2.*cos(2*pi*fc*t2);subplot(2,2,1);plot(t1,dsb1);holdon;plot(t2,dsb2);pwr1=mtl2;pwr2=mt22;subplot(2,2,2);plot(t1,pwr1);holdon;plot(t2,pwr2);mtf1,mtfft1=FFT_SHIFT(t1,mt1);mtf2,mtfft2=FFT_SHIFT(t2,mt2);subplot

17、(2,2,3);plot(mtf1,abs(mtfft1);holdon;plot(mtf2,abs(mtfft2);运行结果:5-2设AM调整时,输入信号为没(t)=0.2sinl000pi*t+0.5cosl000exp2*pi*t,A=1,载波中心频率fc=10khz(1) 用MATLAB画出AM信号的波形及其频谱程序代码:1、functionf,sf二FFT_SHIFT(t,st)df=t(2)-1(1);T二t(end);df=1/T;N=length(t);f二-N/2:N/2-1*df;sf=fft(st);sf=fftshift(sf);2、dt=0.00001;fm1=500

18、;fm2=500*1.414;fc=10000;%时间采样间隔%信源频率%载波中心频率T=0.01;N=floor(T/dt);t=0:N-1*dt;mt=0.2*sin(2*pi*fm1*t)+0.5*cos(2*pi*fm2*t);%信源%AMmodulationA=1;am=(A+mt).*cos(2*pi*fc*t);f,AMf=FFT_SHIFT(t,am);subplot(311);plot(t,mt);subplot(312);plot(t,am);subplot(313);plot(f,AMf);运行结果:5- 3设FM调制时,调频器的输入信号为一个周期性的锯齿波,锯齿波的一个

19、周期为信号g(t)=tO二t<l,g(t)=0其他,FM的中心频率fc=100hz,Kfm=10hz,试做(1) 画出调频后的信号波形及其振幅谱(2) 若接收端采用鉴频器进行解调,且AWGN信道的功率密度谱为N0/2,试画出当解调器输入信噪比0dB,10Db,20dB时的解调输出信号,并与原信号进行比较。程序代码:1、functionf,sf二FFT_SHIFT(t,st)df=t(2)-1(1);T二t(end);df=1/T;N=length(t);f=-N/2:N/2-1*df;sf=fft(st);2.dt=0.001;%时间采样间隔fc=100;T=1;N=floor(T/dt

20、);t=0:N*dt;kf=10;mt=t;mti二t."2/2;fmt=cos(2*pi*fc*t+2*pi*kf*mti);figure(1);subplot(2,1,1);plot(t,fmt);holdon;plot(t,mt,'r');f,ft=FFT_SHIFT(t,fmt);subplot(2,1,2);plot(f,abs(ft);s=l/2;%调制信号功率是A"2/2;sn=100;db二s/(10八(sn/10);%求白噪声的方差。noisel二sqrt(db)*randn(size(t);%产生高斯白噪声。fmt1=fmt+noise1

21、;figure(2);subplot(2,l,l);plot(t,fmtl);N=length(fmt);dfmt=zeros(l,N);fork=1:N-1%已调信号微分dfmt(k)=(fmtl(k+l)-fmtl(k)/dt;endenvlp=abs(hilbert(dfmt);%求瞬时幅度,即包络subplot(2,l,2);plot(t,envlp);运行结果:INotenewtoolbarbuttons:cistsbrusshi门g&li门k亡d感凰Plsy讦i日吕口x总结:这一次实验遇到的问题是花费了两节课解决的。第一个题目很快的完成后,第二个跟第三个题目都遇到了问题。第

22、二题不出图,第三题图不正确,反复检查修改了好多遍程序还是不对,一直提示f,ft=FFT_SHIFT(t,fmt)程序这句话有问题,就在打算放弃的时候,终于在老师的提醒下知道,是因为没有调用函数,讲课本后面附录中的函数体加上之后,图就顺利的出来了。说明对程序的理解还不够到位,需要继续学习和努力。实验五、MATLAB仿真模拟信号的数字传输目的:能用MATLAB仿真函数的抽样、量化过程,掌握信号编码方法。6- 1设低通信号s(t)二sin2*pi*t+0.5cos4*pi*t(1) 画出该低通信号的波形;(2) 画出抽样速率为fs=4Hz的抽样序列;(3) 从抽样序列恢复出原始信号;(4) 当抽样速

23、率fs=2hz时,画出恢复出的抽样信号。运行代码:1.clearall;closeall;dt=0.01;t=0:dt:10;xt=sin(2*pi*t)+0.5*cos(4*pi*t);f,xf=FFT_SHIFT(t,xt);fs=4;sdt=1/fs;t1=0:sdt:10;st=sin(2*pi*t1)+0.5*cos(4*pi*t1);f1,sf=FFT_SHIFT(t1,st);t2=-50:dt:50;gt=sinc(fs*t2);stt=INSERT0(st,sdt/dt);xt_t=conv(stt,gt);figure(1)subplot(3,1,1);plot(t,xt)

24、;title('原始信号');subplot(3,1,2);stem(t1,st);title('扌由样信号');subplot(3,1,3);t3=-50:dt:60+sdt-dt;plot(t3,xt_t);title('抽样信号恢复');axis(010-11)2. functionout=INSERT0(d,M)N=length(d);out=zeros(1,M*N);fori=0:N-1out(i*M+1)=d(i+1);end;3. functionf,sf=FFT_SHIFT(t,st)df=t(2)-t(1);T=t(end);d

25、f=1/T;N=length(t);f=-N/2:N/2-1*df;sf=fft(st);运行结果:FileEdi七ViToolstopJnfind.owHelp6-2用一个均匀量化器对零均值、单位方差的高斯源进行量化,这个量化器在区间-10,10内均匀量化。假定量化电平设在各量化区域的中间点,求出并画出量化电平数为N=.0时,量化产生的均方失真作为量化电平数N的函数。t二0:0.01:1;s二normrnd(0,1,size(t);err二zeros(1,8);fori=1:8err(i),x_qtz=myquantizer(s,i+2,10.10);endN=3

26、,4,5,6,7,8,9,10;Plot(n,err);functionerr,x_qtz=myquantizer(x,n,l,h)xmax=max(l,h);x_qtz=x/xmax;delta=2/n;q=delat*0:n-1-(n-1)/2*delat;fori=1:nindex=find(q(i)-delat/2<=x_qtz)&(x_qtz<=q(i)+delta/2);x_qtz(index)=q(i)*ones(1,length(index);endx_qtz=x_qtz*xmax;err=sum(x-x_qtz)/2)/length(x);function

27、sqnr,x_qtz,code=UniPcm(x,n)xmax=max(abs(x);x_qtz=x/xmax;b_qtz=x_qtz;delta=2/n;q=delat*0:n-1-(n-1)/2*delta;fori=1:n;index=delat=find(q(i)-delta/2<=x_qtz)&x_qtz<=q(i)+delta/2);x_qtz(index)=(q(i)*ones(1,length(index);b_qtz(find(x_qtz=q(i)=(i-1)*ones(1,length(find(x_qtz=q(i);endx_qtz=x_qtz*xma

28、x;nu=ceil(log2(n);code=zeros(length(x),nu);fori=1:length(x)forj=nu:-1:0if(fix(b_qtz(i)/W)=1)code(i,nu-j)=1;b_qtz(i)=b_qtz(i)-2j;endendend6-6试编写A律13折线近似法的编码与解码程序。functioncode=myAcode(x)iw=01632641282565121024实验六、MATLAB仿真数字信号的基带传输目的:能够绘制常用码型,码型功率谱和眼图。7- 1设二进制符号序列为1011010010,以矩形脉冲为例,利用Matlab分别画出相应的单极性不归零、双极性不归零、单极性归零和双极性归零波形。程序代码:1、单极性不归零functiony=snrz(x);t0=200;t=0:1/t0:length(x);fori=1:length(x)ifx(i)=1forj=1:t0y=(i-1)*t0+j)=1;endelseforj=1:t0y=(i-1)*t0+j)=0;endendendy=y,x(i);plot(t,y);title(1011010010');axis(0,i,-0.1,1.1);2、双极性不归零:将程序1中的y=(i-1)*t0+j)=0改为y=(i-1)*t0+j)=-13、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论