当前位置:文档之家› MATLAB通信系统仿真实验报告

MATLAB通信系统仿真实验报告

实验一、MATLAB的基本使用与数学运算目的:学习MATLAB的基本操作,实现简单的数学运算程序。

内容:1-1 要求在闭区间[0,2π]上产生具有10个等间距采样点的一维数组。

试用两种不同的指令实现。

运行代码:x=[0:2*pi/9:2*pi]运行结果:1-2 用M文件建立大矩阵xx=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]代码:x=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]m_mat运行结果:1-3已知A=[5,6;7,8],B=[9,10;11,12],试用MATLAB分别计算A+B,A*B,A.*B,A^3,A.^3,A/B,A\B.代码:A=[5 6;7 8] B=[9 10;11 12] x1=A+B X2=A-B X3=A*B X4=A.*B X5=A^3 X6=A.^3 X7=A/B X8=A\B运行结果:1-4任意建立矩阵A,然后找出在[10,20]区间的元素位置。

程序代码及运行结果:代码:A=[12 52 22 14 17;11 10 24 03 0;55 23 15 86 5 ] c=A>=10&A<=20运行结果:1-5 总结:实验过程中,因为对软件太过生疏遇到了些许困难,不过最后通过查书与同学交流都解决了。

例如第二题中,将文件保存在了D盘,而导致频频出错,最后发现必须保存在MATLAB文件之下才可以。

第四题中,逻辑语言运用到了ij,也出现问题,虽然自己纠正了问题,却也不明白错在哪了,在老师的讲解下知道位置定位上不能用ij而应该用具体的整数。

总之第一节实验收获颇多。

实验二、MATLAB程序的编写目的:掌握顺序结构、选择结构、循环结构程序设计方法。

学会编写函数。

内容:2-1编写程序,建立向量N=[1,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,4,5] X1=N*2 X2=N/2 X3=1./N X4=X3*X3运行结果:2-2从键盘输入一个三位整数,将他反向输出,如输入为639,输出为936.输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。

其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:(1)分别用if语句代码:clearm=input('请输入一个三位数:')m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);n=m1+m2*10+m3*100;disp(n);(2)clear;Mark=input('请输入成绩:');Rank=cell(1,5);S=struct('Marks',Mark, 'Rank',Rank);for i=1:10;a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;e{i}=0+i;q{i}=9+i;g{i}=19+i;h{i}=29+i;m{i}=39+i;n{i}=49+i;end;for i=1:5;switch S(i).Markscase 100S(i).Rank='A';case aS(i).Rank='A';case bS(i).Rank='B';case cS(i).Rank='C';case dS(i).Rank='D';case eS(i).Rank='E';case qS(i).Rank='E';case gS(i).Rank='E';case hS(i).Rank='E';case mS(i).Rank='E';case nS(i).Rank='E';otherwiseS(i).Rank='成绩输入错误';endenddisp([num2str(S(i).Marks),blanks(3),S(i).Rank]);disp('');运行结果:2—3输入20个两位随机数,求其中的最大数最小数。

要求分别用循环结构和调用MATLAB的max函数、min函数实现。

(1)a=fix(rand(1,20)*100) ma=max(a) mi=min(a)运行结果:(2)a=fix(rand(1,20)*100);for i=1:20;max=a(1);min=a(1);if max<a(i);max=a(i);endif min>a(i);min=a(i);endendmaxmin运行结果:2-6写出下列程序输出结果(1) s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0s=s+k(j);endendends运行结果:(2)global xx=1:2:5;y=2:2:6;sub(y);xy(3) function fun=sub(z)global xz=3*x;x=x+z;运行结果:总结:第二次实验,对软件的使用比较熟练了,但还是遇到了些许问题。

在运算符号的使用中,应当注意“.*”的使用,在最初因为不太会运用遇到了些困难,后来通过同学讨论和翻阅课本找到了答案。

2—2中的第二种方法是按照课本例题改编的,有些啰嗦,不多至少是结果正确。

还有2—6中刚开始没能正常输出,在老师的指导下知道(2)(3)是一起使用,算是运用到了函数调用。

好在最后所有题目都得到了满意的结果。

实验三、MATLAB图形处理目的:能够根据数据绘制各种形状的二、三维图形。

3-1绘制曲线y=x^3+x+1,x的取值范围为[-5,5]代码:x=-5:0.01:5y=x.^3+x+1plot(x,y)运行结果:3-4有一组测量数据满足y=exp(-a*t),t的变化范围为0~10,用不同的线性和标记点画出a=0.1,a=0.2和a=0.5 三种情况下的曲线。

代码:t=0:0.1:10;y1=exp(-0.1*t);y2=exp(-0.2*t);y3=exp(-0.5*t);title('t from 0 to 10');plot(t,y1,t,y2,t,y3);xlabel('Variable t');ylabel('Variable y');text(0.8,1.5,'曲线y1=exp^{-0.1t}');text(2.5,1.1,'曲线y1=exp^{-0.2t}');text(0.8,1.5,'曲线y1=exp^{-0.5t}');legend('y1','y2','y3')运行结果:3-7绘制饼图,x=[66 49 71 56 38],并将第五个切块分离出来。

代码:x=[66 49 71 56 38];subplot(1,2,1);pie(x);subplot(1,2,2);pie(x,[0,0,0,0,1]);运行结果:总结:这次实验,比较有成就感,并没有遇到什么太复杂的困难,但是软件操作上出现了写麻烦,一不小心将软件页面的各个功能窗口关上了,颇费周折终于找到了那些功能窗口,但是整个页面都有些混乱。

好在还是将题目做了出来,图出现的时候感觉特别有成就感。

真的说明一件事情,英语学不好很麻烦啊。

实验四、MATLAB仿真模拟调制目的:能用MATLAB仿真调幅信号和调角信号。

5-1 用在区间[0,2]内的信号m(t)=t 0<=t<=1;m(t)=-t+2 1<=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=[0:N]*dt;t2=t1+1;%t=[t1 t2];mt1=t1; %信源mt2=-t2+2;%DSB-AM modulationdsb1=mt1.*cos(2*pi*fc*t1);dsb2=mt2.*cos(2*pi*fc*t2);subplot(2,2,1);plot(t1,dsb1);hold on;plot(t2,dsb2);pwr1=mt1.^2;pwr2=mt2.^2;subplot(2,2,2);plot(t1,pwr1);hold on;plot(t2,pwr2);[mtf1,mtfft1]=FFT_SHIFT(t1,mt1);[mtf2,mtfft2]=FFT_SHIFT(t2,mt2);subplot(2,2,3);plot(mtf1,abs(mtfft1));hold on;plot(mtf2,abs(mtfft2));运行结果:5-2 设AM调整时,输入信号为没(t)=0.2sin1000pi*t+0.5cos1000exp2 *pi*t,A=1,载波中心频率fc=10khz(1)用MATLAB画出AM信号的波形及其频谱程序代码:1、function [f,sf]=FFT_SHIFT(t,st)df=t(2)-t(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;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); %信源%AM modulationA=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调制时,调频器的输入信号为一个周期性的锯齿波,锯齿波的一个周期为信号g(t)=t0<=t<1,g(t)=0其他,FM的中心频率fc=100hz,Kfm=10hz,试做(1)画出调频后的信号波形及其振幅谱(2)若接收端采用鉴频器进行解调,且AWGN信道的功率密度谱为N0/2,试画出当解调器输入信噪比0dB,10Db,20dB时的解调输出信号,并与原信号进行比较。

相关主题