MATLAB仿真报告

MATLAB仿真报告
MATLAB仿真报告

无线通信

(MATLAB课后作业仿真)

姓名:

学院:

学号:

班级:

指导教师:

一、分集仿真

现给出最大比合并(MRC)、等增益合并(EGC)和选择性合并的分集合并程序,理解各程序,完成以下习题。将程序运行结果及各题目的解答写入word中:1. 用matlab分别运行“BPSKMRC.m”、“BPSKEGC.m”以及“BPSKSEL.m”

(a)在程序中标注“注释”处加上注释(英文或中文)

BPSKMRC.m注释

nd = 10000; %设置每个循环中的符号数

snr_in_dB=[0:15] ;

ber=zeros(1,length(snr_in_dB));

for snr_num=1:length(snr_in_dB)

SNR=exp(snr_in_dB(snr_num)*log(10)/10);

nloop=100; % 循环次数

noe = 0; % 错误数

nod = 0; % 传输的数量

for iii=1:nloop

data1=rand(1,nd)>0.5;

data2=2.*data1-1;

%以下为衰减量的计算

%在瑞利信道下

code_rate=1;

E=1;

sigma=E/sqrt(2*SNR*code_rate);

n =[randn(1,nd) + j*randn(1,nd)];

h1 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % 瑞利信道

data41=data2.*h1+sigma.*n;

h11=conj(h1); %计算信道质量指数的复共轭

data411 = data41.*h11; %计算组合后的价值

%*****************************************

n =[randn(1,nd) + j*randn(1,nd)];

h2 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % 瑞利信道

data42=data2.*h2+sigma.*n;

h22=conj(h2);

data422 =data42.*h22;

%*****************************************

data4=data411+data422;%在两个不相关的信道下的信号进行组合

% BPSK 解调

demodata1=data4 > 0;

%误码率

noe2=sum(abs(data1-demodata1));

nod2=length(data1);

noe=noe+noe2;

nod=nod+nod2;

end

%输出结果

ber(snr_num) = noe/nod

end;

%结尾

figure;

semilogy(snr_in_dB,ber,'O-');

hold on

semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),'+-');

hold on

semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr_in_dB/10))./(10.^(snr_in_dB/10)+1))),'-'); ylabel('BER');

xlabel('E_b/N_0 [dB]');

legend('simulation BPSK MRC L=2','theory gngauss BPSK','theory reyleigh' );

BPSKEGC.m注释

nd = 10000; %设置每个循环中的符号数

snr_in_dB=[0:15] ;

ber=zeros(1,length(snr_in_dB));

for snr_num=1:length(snr_in_dB)

SNR=exp(snr_in_dB(snr_num)*log(10)/10);

nloop=100; % 设置循环次数

noe = 0; % 错误数量

nod = 0; % 传输数量

for iii=1:nloop

data1=rand(1,nd)>0.5;

data2=2.*data1-1;

%衰减量的计算

%瑞利信道下

code_rate=1;

E=1;

sigma=E/sqrt(2*SNR*code_rate);

n =[randn(1,nd) + j*randn(1,nd)];

h1 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % 瑞利信道

data41=data2.*h1+sigma.*n;

h11=conj(h1)./abs(h1); %取信道质量指数的单位向量

data411 = data41.*h11; %计算组合后在信道1下的价值

%*****************************************

n =[randn(1,nd) + j*randn(1,nd)];

h2 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; %瑞利信道

data42=data2.*h2+sigma.*n;

h22=conj(h2)./abs(h2);

data422 =data42.*h22;

%*****************************************

data4=data411+data422;

%BPSK 解调

demodata1=data4 > 0;

%误码率计算

noe2=sum(abs(data1-demodata1));

nod2=length(data1);

noe=noe+noe2;

nod=nod+nod2;

end

%结果输出

ber1(snr_num) = noe/nod

end;

%结尾

figure;

semilogy(snr_in_dB,ber1,'O-');

hold on

semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),'+-');

hold on

semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr_in_dB/10))./(10.^(snr_in_dB/10)+1))),'-'); ylabel('BER');

xlabel('E_b/N_0 [dB]');

legend('simulation BPSK EGC L=2','theory gngauss BPSK','theory reyleigh' );

BPSKSEL.m注释

snr_in_dB=0:15;

for k=1:length(snr_in_dB)

k

N=10000;

E=1;

SNR=10^(snr_in_dB(k)/10);

sigma=E/sqrt(2*SNR);

for i=1:N

a=rand;

if(a<0.5)

data(i)=-1;

else

data(i)=1;

end

end

numofber=0;

totolnumber=0;

while numofber<1

totolnumber=totolnumber+1;

for i=1:N

H1 =1/sqrt(2)*[rand + j*rand]; %第一个瑞利信道

H2 =1/sqrt(2)*[rand + j*rand]; %第二个瑞利信道

H=[H1;H2];

y1=H(1)*data(i)+sigma*(rand + j*rand); %在第一个信道下计算数据y2=H(2)*data(i)+sigma*(rand + j*rand); %在第二个信道下计算数据y=[abs(y1),abs(y2)];

s=max(y); %选择其中最大的数据

if (s==abs(y2))

s=y2/H2;

else

s=y1/H1;

end

data2=sign(real(s));

if (data2~=data(i))

numofber=numofber+1; %计算误比特率

end

end

end

p(k)=numofber/(N*totolnumber); %计算误码率 end figure;

semilogy(snr_in_dB,p,'O-'); hold on

semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),'+-'); hold on

semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr_in_dB/10))./(10.^(snr_in_dB/10)+1))),'-'); ylabel('BER'); xlabel('E_b/N_0 [dB]');

legend('simulation BPSK SEL L=2','theory gngauss BPSK','theory reyleigh');

(b )观察信噪比变化10dB ,误比特率变化多少?

5

1015

10

1010101010

1010100

B E R

E b /N 0 [dB]

MRC 误比特率变化:0.0588-0.0017=0.0571

10

1010101010

1010100

B E R

E b /N 0 [dB]

EGC 误比特率变化:0.0650-0.0018=0.0632

5

1015

10

1010101010

1010100

B E R

E b /N 0 [dB]

SEL 误比特率变化:0.1733-0.0030=0.1703

(c )程序中给出的是2分集,将其换为3分集,观察信噪比变化10dB ,误比特率变化多少?

10

10101010101010100

B E R

E b /N 0 [dB]

MRC 误比特率变化:0.0248-0.0001=0.0247

10

1010101010

1010100

B E R

E /N [dB]

EGC 误比特率变化:0.0330-0.0002=0.0328

5

1015

10

1010101010

1010100

B E R

E b /N 0 [dB]

SEl 误比特率变化:0.1780-0.0003=0.1777

(d )将最大比合并和等增益合并及选择式合并的误比特率曲线,画在一张图上,比较这三种合并方法的优劣。

10

10101010-8

10

-6

10-4

10-2

100

B E R

E b /N 0 [dB]

由图可得,MRC方法所得到的误码率是最小的,性能也最稳定;EGC方法在误码率和稳定性方面次之;SEL方法在同一SNR下得到的误码率最高,而且稳定性很差,有时候能够得到比MRC、EGC更低的误码率,有时候就不行,增大SNR 只能使BER总体趋向下降,不保证增大SNR就能直接降低BER。

二、调制解调仿真

现给出bpsk、qpsk及“书上习题”的调制解调程序,理解各程序,完成以下习题。将程序运行结果及各题目的解答写入word中:

1.用matlab运行书上习题中的“bpskqpsk125.m”

(a)说明bpsk、qpsk解调判决方法

答:由该m文件可得,其中的判决设置为:

BPSK:if a (zero mean)noise sample is larger than sqrt(Eb) a wrong decsion is made.

如果一个噪声的样值比平均比特能量大的话,那么就会产生错误的判决。QPSK:if the constellation point angle is within pi/4 ang -pi/4 a corerect decision is made.

如果星座点上的角偏差在pi/4和-pi/4之间的话,判决就正确了。

(b)误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少?

答:运行该程序,可以得出如下的图像:

当误比特率在1e-2时其Eb/N0=4.3dB 当误比特率在1e-3时其Eb/N0=6.8dB

当误比特率在1e-4时其Eb/N0=8.3dB

(c)从物理意义上说明为什么bpsk、qpsk误比特率曲线是重叠的

答:QPSK为四元相位调制,而BPSK为二元相位调制。因此,从判决的区域来看BPSK的误码率(误符号率)是必然大于QPSK的。但是从另一个角度看,每一个QPSK的符号相当于是由两个BPSK的符号组合而成(如11是由二进制的两个1组成),最基本的比特的差错性能都是一样的,因此BPSK和QPSK的误比特率是相同的。

(d)当samples减少为100000,10000,1000时观察误比特率曲线的变化,你得出什么结论。

答:当samples=100000,10000,1000时,图像分别为:

此时误差已经非常明显

2.用matlab运行“bpsk.m”、“qpsk.m”

(a)在各程序中标注“注释”处加上注释(英文或中文)BPSK:

data1=rand(1,nd)>0.5; %返回一组行向量

code_rate=1;

E=1;

sigma=E/sqrt(2*SNR*code_rate)%计;算编码后高斯分布随机变量标准差for i=1:nd

if (data1(i)==0),

data4(i)=-E+Gngauss(sigma); %传0码时加入高斯分布白噪声干扰else

data4(i)=E+Gngauss(sigma); %传1码时加入高斯分布白噪声干扰end;

end;

%BPSK 解调

demodata1=data4 > 0; % data4中每个元素和0比较

%误码率

noe2=sum(abs(data1-demodata1)); %计算误码个数

nod2=length(data1); %计算总码数

noe=noe+noe2;

nod=nod+nod2;

end

ber(snr_num) = noe/nod %计算误码率

end;

QPSK:

ber=zeros(1,length(snr_in_dB));

for snr_num=1:length(snr_in_dB)

SNR=exp(snr_in_dB(snr_num)*log(10)/10);%计算信噪比

nloop=100; % 设置循环次数

noe = 0; % 错误数量

nod = 0; %传输数量

for iii=1:nloop

data=rand(1,nd*ml)>0.5; %生成同相分量

data1=2*data-1 %此为正交分量

% QPSK 调制

[tout]=qpskmod(data1,1,nd,ml);

code_rate=1;

E=1/sqrt(2);

sigma=E/sqrt(2*SNR*code_rate); %计算编码后高斯分布随机变量标准差

for i=1:nd,

[gsrv1,gsrv2]=Gngauss(sigma);

tout(i)=tout(i)+gsrv1+j*gsrv2;

%sigma=E/sqrt(2*SNR*code_rate);

%n = 1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)];

%sigma.*n %注释:另一种高斯白噪声产生方法

end;

%QPSK 解调

[demodata]=qpskdemod(tout,1,nd,ml);

demodata1=demodata > 0; %与原始码元对比判决,得到正确的码元数demodata=demodata1;

%误码率

noe2=sum(abs(data-demodata)); %错误码元数

nod2=length(data1); %总码元数

noe=noe+noe2;

nod=nod+nod2;

end

ber(snr_num) = noe/nod; %计算误码率

(b)说明加性高斯白噪声的产生方法,请再给出一种加性高斯白噪声的产生方法,并验证其正确性。

原始方法为Gngauss.m

if nargin == 0,

m=0; sgma=1;

elseif nargin == 1,

sgma=m; m=0;

end;

u=rand;

z=sgma*(sqrt(2*log(1/(1-u))));

u=rand;

gsrv1=m+z*cos(2*pi*u);

gsrv2=m+z*sin(2*pi*u);

nargin为输入变量的个数,如果nargin为零,即空号,产生均值为0,标准差为1的高斯分布系列。如果传号,产生均值为0,方差为m的随机序列。

另一种方法:y = awgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW 为单位指定输出噪声的强度。但与实际差距较大。

data2=2*data1-1;

data4=awgn(data2,snr_in_dB(snr_num))

(c)参考“bpskqpsk125.m”的画图功能,给出Eb/N0---误比特率曲线和高斯信道下的理论误比特率曲线。

Bpsk时,在末尾加上如下程序段,得到图样:

figure;

semilogy(snr_in_dB,ber,'O');

hold on

semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),'+'); ylabel('BER');

xlabel('E_b/N_0 [dB]');

legend('simulation BPSK','theory gngauss BPSK' );

Qpsk时,在末尾加上如下程序段,得到图样:

figure;

semilogy(snr_in_dB,ber,'O');

hold on

semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),'+'); ylabel('BER');

xlabel('E_b/N_0 [dB]');

legend('simulation QPSK','theory gngauss QPSK' );

(d)观察nd及nloop参数变化时,曲线的现象,并说明原因。

答:当参数nd、参数nloop足够大时,Eb/N0---误比特率曲线越平滑,可以从图得到信噪比越大误码率越小的结论;当参数nd、参数nloop足够小时,Eb/N0---

误比特率曲线越不平滑,不能从图得到信噪比越大误码率越小的结论。

原因:参数nd的意义为Number of symbols that simulates in each loop,即每个循环运算中取的符号个数,而nloop的意义为Number of simulation loops,即循环次数。参数取得越大,当然仿真精确性越高,参数越低,仿真精确性就越低。(此处就不附图样了)(e)画出不同信噪比条件下的的星座图,解释其对误码率的影响。

BPSK的不同性噪比条件下的星座图如下:

SNR =5dB

SNR =20dB

QPSK的不同性噪比条件下的星座图如下:

SNR=5dB

SNR=20dB

结论:性噪比越大,落在判决范围内的的点越多,即误码率越低。

(f)通过程序画出QPSK和BPSK的Eb/N0---误比特率曲线,观察曲线的现象,能得出什么结论。

答:由之前的结果可以看到,二者的误比特率曲线是一致的。

3.若信源是你的学号,结合程序说明其在qpsk (调制mod)和(解调demod)子程序中的具体实现过程。

学号为11211041,

将其编码:0001 0001 0010 0001 0001 0000 0100 0001 ,将其做正负电平值变换,之后编程:

Qpsk调制:

m2=ml./2;

paradata2=paradata;

count2=0;

for jj=1:nd

isi = zeros(para,1);

isq = zeros(para,1);

for ii = 1 : m2

isi = isi + 2.^( m2 - ii )

isq = isq + 2.^( m2 - ii ) ;

end

iout((1:para),jj)=isi/sqrt(2);

qout((1:para),jj)=isq/sqrt(2);

count2=count2+ml;

end

用isi和isp这两个集合存储虚部和实部,每次取出两个信号进行调制,得到编码为11(1/sqrt(2), 1/sqrt(2)),10(1/sqrt(2), -1/sqrt(2)),01(-1/sqrt(2), 1/sqrt(2)),00(-1/sqrt(2), -1/sqrt(2))

解调

demodata=zeros(para,ml*nd);

demodata((1:para),(1:ml:ml*nd-1))=idata((1:para),(1:nd));

demodata((1:para),(2:ml:ml*nd))=qdata((1:para),(1:nd));

解调时将数据按先虚部后实部的顺序存入demodata里面,在根据主程序的方法demodata1=demodata > 0,判断0或是1

4.针对题目2中的BPSK、QPSK,

(a)若信道使信号幅度呈瑞利衰落,画出Eb/N0---误比特率曲线和瑞利衰落下的理论误比特率曲线,说明与题目2观察结果的异同,并说明原因。

(a)bpsk:

Qpsk :

结论:加性高斯噪声的误比特率比瑞利信道的误比特率高,说明在瑞利信道对信号的影响大,我们可以通过提高信噪比来降低误码率。

(b)若信道使信号幅度呈莱斯衰落,更改K 值的大小,画出Eb/N0---误比特率曲线、瑞利衰落下的理论误比特率曲线和高斯信道下的理论误比特率曲线,观察曲线的现象,能得出什么结论。 Bpsk :

10

10

10

10

-5

10

B E R

E b /N 0 [dB]

10

10

10

10

-5

10

B E R

E b /N 0 [dB]

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

matlab实验报告

数学实验报告 班级: 学号: 姓名: 实验序号:1 日期:年 月 日 实验名称:特殊函数与图形 ◆ 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到 明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。 ◆ 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性, 另一方面,就 Matlab 强大的作图功能作一个简单介绍。 实验原理与数学模型: 1、 球2222x y z R ++= ,x=Rsin φcos θ, y= Rsin φsin θ, z= cos φ, 0≤θ≤2π , 0≤φ≤π 环面 222222222()4(),(cos )cos ,x y z a r a x y x a r φθ+++-=+=- (cos )sin ,sin ,02,02y a r z r φθφφπθπ=-=≤≤≤≤ 2、 平面摆线:2 22 31150,(sin ),(1cos ),0233 x y x a t t y a t t π+-==-=-≤≤ 3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)22 cos ,sin ,x t t y t t z t === 4、 椭球面sin cos ,sin sin ,cos ,02,0x a y b z c φθφθφθπφπ===≤<≤≤ 双叶双曲面3 tan cos ,tan sin ,sec ,02,22 x a y b z c π φθφθφθπφπ===≤<- << 双曲抛物面2 sec ,tan 2 u x au y bu z θθ=== 实验所用软件及版本:mathematica(3.0) 主要内容(要点): 1、 作出下列三维图形(球、环面) 2、 作出下列的墨西哥帽子 3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形 4、 试画出田螺上的一根螺线 5、 作出如图的马鞍面

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

matlab实验报告

MATLAB 数学实验报告 指导老师: 班级: 小组成员: 时间:201_/_/_

Matlab 第二次实验报告 小组成员: 1 题目:实验四,MATLAB 选择结构与应用实验 目的:掌握if 选择结构与程序流程控制,重点掌握break,return , pause语句的应用。 问题:问题1:验证“哥德巴赫猜想” ,即:任何一个正偶数(n>=6)均可表示为两个质数的和。要求编制一个函数程序,输入一个正偶数,返回两个质数的和。 问题分析:由用户输入一个大于6 的偶数,由input 语句实现。由if 判断语句判断是否输入的数据符合条件。再引用质数判断函数来找出两个质数,再向屏幕输出两个质数即可。 编程:function [z1,z2]=gede(n); n=input('please input n')

if n<6 disp('data error'); return end if mod(n,2)==0 for i=2:n/2 k=0; for j=2:sqrt(i) if mod(i,j)==0 k=k+1; end end for j=2:sqrt(n-i) if mod(n-i,j)==0 k=k+1; end end if k==0 fprintf('two numbers are') fprintf('%.0f,%.0f',i,n- i) break end

end end 结果分析 如上图,用户输入了大于6的偶数返回两个质数5和31,通过 不断试验,即可验证哥德巴赫猜想。 纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰,更快的解决问题。 2题目:实验四,MATLAB选择结构与应用实验 目的:用matlab联系生活实际,解决一些生活中常见的实际问 题。

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

MATLAB仿真实验报告

MATLAB 仿真实验报告 课题名称:MATLAB 仿真——图像处理 学院:机电与信息工程学院 专业:电子信息科学与技术 年级班级:2012级电子二班 一、实验目的 1、掌握MATLAB处理图像的相关操作,熟悉相关的函数以及基本的MATLAB语句。 2、掌握对多维图像处理的相关技能,理解多维图像的相关性质 3、熟悉Help 命令的使用,掌握对相关函数的查找,了解Demos下的MATLAB自带的原函数文件。 4、熟练掌握部分绘图函数的应用,能够处理多维图像。 二、实验条件

MATLAB调试环境以及相关图像处理的基本MATLAB语句,会使用Help命令进行相关函数查找 三、实验内容 1、nddemo.m函数文件的相关介绍 Manipulating Multidimensional Arrays MATLAB supports arrays with more than two dimensions. Multidimensional arrays can be numeric, character, cell, or structure arrays. Multidimensional arrays can be used to represent multivariate data. MATLAB provides a number of functions that directly support multidimensional arrays. Contents : ●Creating multi-dimensional arrays 创建多维数组 ●Finding the dimensions寻找尺寸 ●Accessing elements 访问元素 ●Manipulating multi-dimensional arrays操纵多维数组 ●Selecting 2D matrices from multi-dimensional arrays从多维数组中选择二维矩 阵 (1)、Creating multi-dimensional arrays Multidimensional arrays in MATLAB are created the same way as two-dimensional arrays. For example, first define the 3 by 3 matrix, and then add a third dimension. The CAT function is a useful tool for building multidimensional arrays. B = cat(DIM,A1,A2,...) builds a multidimensional array by concatenating(联系起来)A1, A2 ... along the dimension DIM. Calls to CAT can be nested(嵌套). (2)、Finding the dimensions SIZE and NDIMS return the size and number of dimensions of matrices. (3)、Accessing elements To access a single element of a multidimensional array, use integer subscripts(整数下标). (4)、Manipulating multi-dimensional arrays

自动控制原理MATLAB仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

MATLAB Simulink系统建模与仿真 实验报告

MATLAB/Simulink 电力系统建模与仿真 实验报告 姓名:****** 专业:电气工程及其自动化 班级:******************* 学号:*******************

实验一无穷大功率电源供电系统三相短路仿真 1.1 无穷大功率电源供电系统仿真模型构建 运行MATLAB软件,点击Simulink模型构建,根据电路原理图,添加下列模块: (1)无穷大功率电源模块(Three-phase source) (2)三相并联RLC负荷模块(Three-Phase Parallel RLC Load) (3)三相串联RLC支路模块(Three-Phase Series RLC Branch) (4)三相双绕组变压器模块(Three-Phase Transformer (Two Windings)) (5)三相电压电流测量模块(Three-Phase V-I Measurement) (6)三相故障设置模块(Three-Phase Fault) (7)示波器模块(Scope) (8)电力系统图形用户界面(Powergui) 按电路原理图连接线路得到仿真图如下: 1.2 无穷大功率电源供电系统仿真参数设置 1.2.1 电源模块 设置三相电压110kV,相角0°,频率50Hz,接线方式为中性点接地的Y形接法,电源电阻0.00529Ω,电源电感0.000140H,参数设置如下图:

1.2.2 变压器模块 变压器模块参数采用标幺值设置,功率20MVA,频率50Hz,一次测采用Y型连接,一次测电压110kV,二次侧采用Y型连接,二次侧电压11kV,经过标幺值折算后的绕组电阻为0.0033,绕组漏感为0.052,励磁电阻为909.09,励磁电感为106.3,参数设置如下图: 1.2.3 输电线路模块 根据给定参数计算输电线路参数为:电阻8.5Ω,电感0.064L,参数设置如下图: 1.2.4 三相电压电流测量模块 此模块将在变压器低压侧测量得到的电压、电流信号转变成Simulink信号,相当于电压、电流互感器的作用,勾选“使用标签(Use a label)”以便于示波器观察波形,设置电压标签“Vabc”,电流标签“Iabc”,参数设置如下图:

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。程序: theta=0:0.01:2*pi x=cos(theta) y=sin(theta) l=1 v=1 while l<10 for t=1:10 y=y+(-1)^l*v*t plot(x,y,[-1,1],[-56,2],'.') axis equal pause(0.1) end l=l+1 end 结果:

-50 -40 -30 -20 -10 收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往 返运动! 实验二 旋转五角星 内容:一个五角星在圆内匀速旋转 程序:x=[2 2 2 2 2 2] y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0] y1=2*sin(y) x1=2*cos(y) theta=0:4/5*pi:4*pi

x2=2*cos(theta) y2=2*sin(theta) plot(x,y,x1,y1,x2,y2) axis equal theta1=theta+pi/10 x2=2*cos(theta1) y2=2*sin(theta1) plot(x2,y2) axis equal theta=0:4/5*pi:4*pi for rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y) pause(0.1) end 结果:

-2 -1.5-1-0.500.51 1.52 -2-1.5-1-0.500.511.5 2 收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速 旋转! 实验三 转动的自行车 内容:一辆自行车在圆内匀速转动 程序:x=-4:0.08:4; y=sqrt(16-x.^2); theta1=-pi/2:0.01*pi:3*pi/2; x3=0.5*cos(theta1); y3=0.5*sin(theta1); theta=-pi/2+0.02*pi for k=1:100

matlab实验报告

2015秋2013级《MATLAB程序设计》实验报告 实验一班级:软件131姓名:陈万全学号:132852 一、实验目的 1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。 2、掌握MATLAB常用命令的使用。 3、掌握MATLAB帮助系统的使用。 4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。 二、实验内容 1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。 图1 MATLAB工作桌面 2、MATLAB的常用命令与系统帮助: (1)系统帮助 help:用来查询已知命令的用法。例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。 lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需的

命令後,即可用help进一步找出其用法。 (2)数据显示格式: 常用命令:说明 format short 显示小数点后4位(缺省值) format long 显示15位 format bank 显示小数点后2位 format + 显示+,-,0 format short e 5位科学记数法 format long e 15位科学记数法 format rat 最接近的有理数显示 (3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。 具体用法如下: ↑----重调前一行(可重复使用调用更早的) ↓----重调后一行 →----前移一字符 ←----后移一字符 home----前移到行首 end----移动到行末 esc----清除一行 del----清除当前字符 backspace----清除前一字符 (4)MATLAB工作区常用命令: who--------显示当前工作区中所有用户变量名 whos--------显示当前工作区中所有用户变量名及大小、字节数和类型 disp(x) -----显示变量X的内容 clear -----清除工作区中用户定义的所有变量 save文件名-----保存工作区中用户定义的所有变量到指定文件中 load文件名-----载入指定文件中的数据

参考答案Matlab实验报告

实验一 Matlab基础知识 一、实验目的: 1.熟悉启动和退出Matlab的方法。 2.熟悉Matlab命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握Matlab各种表达式的书写规则以及常用函数的使 用。 二、实验内容: 1.求[100,999]之间能被21整除的数的个数。(rem) 2.建立一个字符串向量,删除其中的大写字母。(find) 3.输入矩阵,并找出其中大于或等于5的元素。(find) 4.不采用循环的形式求出和式 63 1 2i i= ∑ 的数值解。(sum) 三、实验步骤: ●求[100,199]之间能被21整除的数的个数。(rem) 1.开始→程序→Matlab 2.输入命令: ?m=100:999; ?p=rem(m,21); ?q=sum(p==0) ans=43 ●建立一个字符串向量,删除其中的大写字母。(find) 1.输入命令:

?k=input('’,’s’); Eie48458DHUEI4778 ?f=find(k>=’A’&k<=’Z’); f=9 10 11 12 13 ?k(f)=[ ] K=eie484584778 ●输入矩阵,并找出其中大于或等于5的元素。(find) 1.输入命令: ?h=[4 8 10;3 6 9; 5 7 3]; ?[i,j]=find(h>=5) i=3 j=1 1 2 2 2 3 2 1 3 2 3 ●不采用循环的形式求出和式的数值解。(sum) 1.输入命令: ?w=1:63; ?q=sum(2.^w) q=1.8447e+019

实验二 Matlab 基本程序 一、 实验目的: 1. 熟悉Matlab 的环境与工作空间。 2. 熟悉M 文件与M 函数的编写与应用。 3. 熟悉Matlab 的控制语句。 4. 掌握if,switch,for 等语句的使用。 二、 实验内容: 1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 2. 编程完成,对输入的函数的百分制成绩进行等绩转换,90~100为优,80~89为良,70~79为中,60~69为及格。 3. 编写M 函数文件表示函数 ,并分别求x=12和56时的函数值。 4. 编程求分段函数 2226;03 56;0532 1;x x x x y x x x x x x x +-<≠=-+≤<≠≠-+且且及其它,并求输入x=[-5.0,-3.0,1.0,2.0,2.5,3.0,3.5]时的输出y 。 三、 实验步骤: 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 1. 打开Matlab ,新建M 文件 2. 输入命令: 51022-+x

控制理论实验报告MATLAB仿真实验解析

实验报告 课程名称:控制理论(乙) 指导老师:林峰 成绩:__________________ 实验名称:MATLAB 仿真实验 实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验九 控制系统的时域分析 一、 实验目的: 1.用计算机辅助分析的办法,掌握系统的时域分析方法。 2.熟悉Simulink 仿真环境。 二、实验原理及方法: 系统仿真实质上就是对系统模型的求解,对控制系统来说,一般模型可转化成某个微分方程或差分方程表示,因此在仿真过程中,一般以某种数值算法从初态出发,逐步计算系统的响应,最后绘制出系统的响应曲线,进而可分析系统的性能。控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,分别称为单位阶跃响应和单位冲激响应。在MATLAB 中,提供了求取连续系统的单位阶跃响应函数step ,单位冲激响应函数impulse ,零输入响应函数initial 等等。 二、实验内容: 二阶系统,其状态方程模型为 ? 1x -0.5572 -0.7814 1x 1 = + u ? 2x 0.7814 0 2x 0 1x y = [1.9691 6.4493] +[0] u 2x 四、实验要求: 1.编制MATLAB 程序,画出单位阶跃响应曲线、冲击响应曲线、系统的零输入响应、斜坡输入响应; (1)画出系统的单位阶跃响应曲线; A=[-0.5572 -0.7814;0.7814 0 ]; B=[1;0];

MATLAB实验报告

实验一 MATLAB 环境的熟悉与基本运算 一、实验目的及要求 1.熟悉MATLAB 的开发环境; 2.掌握MATLAB 的一些常用命令; 3.掌握矩阵、变量、表达式的输入方法及各种基本运算。 二、实验内容 1.熟悉MATLAB 的开发环境: ① MATLAB 的各种窗口: 命令窗口、命令历史窗口、工作空间窗口、当前路径窗口。 ②路径的设置: 建立自己的文件夹,加入到MATLAB 路径中,并保存。 设置当前路径,以方便文件管理。 2.学习使用clc 、clear ,了解其功能和作用。 3.矩阵运算: 已知:A=[1 2;3 4]; B=[5 5;7 8]; 求:A*B 、A.*B ,并比较结果。 4.使用冒号选出指定元素: 已知:A=[1 2 3;4 5 6;7 8 9]; 求:A 中第3列前2个元素;A 中所有列第2,3行的元素; 5.在MATLAB 的命令窗口计算: 1) )2sin(π 2) 5.4)4.05589(÷?+ 6.关系及逻辑运算 1)已知:a=[5:1:15]; b=[1 2 8 8 7 10 12 11 13 14 15],求: y=a==b ,并分析结果 2)已知:X=[0 1;1 0]; Y=[0 0;1 0],求: x&y+x>y ,并分析结果 7.文件操作 1)将0到1000的所有整数,写入到D 盘下的文件 2)读入D 盘下的文件,并赋给变量num

8.符号运算 1)对表达式f=x 3 -1 进行因式分解 2)对表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并 3)求 3(1)x dz z +? 三、实验报告要求 完成实验内容的3、4、5、6、7、8,写出相应的程序、结果

本科毕业设计__基于matlab的通信系统仿真报告

创新实践报告
报 告 题 目: 学 院 名 称: 姓 名:
基于 matlab 的通信系统仿真 信息工程学院 余盛泽 11042232 温 靖
班 级 学 号: 指 导 老 师:
二 O 一四年十月十五日

目录
一、引言 ....................................................................................................................... 3 二、仿真分析与测试 ................................................................................................... 4
2.1 随机信号的生成................................................................................................................ 4 2.2 信道编译码......................................................................................................................... 4 2.2.1 卷积码的原理 ......................................................................................................... 4 2.2.2 译码原理................................................................................................................. 5 2.3 调制与解调........................................................................................................................ 5 2.3.1 BPSK 的调制原理 ................................................................................................... 5 2.3.2 BPSK 解调原理 ....................................................................................................... 6 2.3.3 QPSK 调制与解调................................................................................................... 7 2.4 信道..................................................................................................................................... 8 2.4.1 加性高斯白噪声信道 ............................................................................................. 8 2.4.2 瑞利信道................................................................................................................. 8 2.5 多径合并............................................................................................................................. 8 2.5.1 MRC 方式 ................................................................................................................ 8 2.5.2 EGC 方式................................................................................................................. 9 2.6 采样判决............................................................................................................................. 9 2.7 理论值与仿真结果的对比 ................................................................................................. 9
三、系统仿真分析 ..................................................................................................... 11
3.1 有信道编码和无信道编码的的性能比较 ....................................................................... 11 3.1.1 信道编码的仿真 .................................................................................................... 11 3.1.2 有信道编码和无信道编码的比较 ........................................................................ 12 3.2 BPSK 与 QPSK 调制方式对通信系统性能的比较 ........................................................ 13 3.2.1 调制过程的仿真 .................................................................................................... 13 3.2.2 不同调制方式的误码率分析 ................................................................................ 14 3.3 高斯信道和瑞利衰落信道下的比较 ............................................................................... 15 3.3.1 信道加噪仿真 ........................................................................................................ 15 3.3.2 不同信道下的误码分析 ........................................................................................ 15 3.4 不同合并方式下的对比 ................................................................................................... 16 3.4.1 MRC 不同信噪比下的误码分析 .......................................................................... 16 3.4.2 EGC 不同信噪比下的误码分析 ........................................................................... 16 3.4.3 MRC、EGC 分别在 2 根、4 根天线下的对比 ................................................... 17 3.5 理论数据与仿真数据的区别 ........................................................................................... 17
四、设计小结 ............................................................................................................. 19 参考文献 ..................................................................................................................... 20

MATLAB仿真实验报告

MATLA仿真实验报告 学院:计算机与信息学院 课程:—随机信号分析 姓名: 学号: 班级: 指导老师: 实验一

题目:编写一个产生均值为1,方差为4的高斯随机分布函数程序, 求最大值,最小值,均值和方差,并于理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示 G仁random( 'Normal' ,0,4,1,1024); y=max(G1) x=mi n(G1) m=mea n(G1) d=var(G1) plot(G1);

实验二 题目:编写一个产生协方差函数为CC)=4e":的平稳高斯过程的程序,产生样本函数。估计所产生样本的时间自相关函数和功率谱密度,并求统计自相关函数和功率谱密度,最后将结果与理论值比较。 解:具体的文件如下,相应的绘图结果如下图所示。 N=10000; Ts=0.001; sigma=2; beta=2; a=exp(-beta*Ts); b=sigma*sqrt(1-a*a); w=normrnd(0,1,[1,N]); x=zeros(1,N); x(1)=sigma*w(1); for i=2:N x(i)=a*x(i-1)+b*w(i); end %polt(x); Rxx=xcorr(x0)/N; m=[-N+1:N-1]; Rxx0=(sigma A2)*exp(-beta*abs(m*Ts)); y=filter(b,a,x) plot(m*Ts,RxxO, 'b.' ,m*Ts,Rxx, 'r');

periodogram(y,[],N,1/Ts); 文件旧硯化)插入(1〕 ZMCD 克闻〔D ]窗口曲) Frequency (Hz) 50 100 150 200 250 300 350 400 450 500 NH---.HP)&UO 二 balj/ 」- □歹

matlab实验报告

Matlab实验报告 实验二图像处理 一、实验目的 (1)通过应用MA TLAB语言编程实现对图像的处理,进一步熟悉MATLAB软件的编程及应用; (2)通过实验进一步掌握图像处理的基本技术和方法。 二、实验内容及代码 ㈠.应用MA TLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换 首先,在matlab页面中的current directory下打开存放图像的文件夹。 1.显示各种图像 ⑴显示彩色图像: ①代码:>> mousetif=imread('tif.TIF'); >> image(mousetif) 显示截图: ②代码:>> mousetif=imread('tif.TIF'); >> imshow(mousetif) 显示截图:

③代码:mousetif=imread('tif.TIF'); subimage(mousetif) 显示截图: 显示截图:

⑵显示二值图像 ①代码:>> I=imread('单色bmp.bmp'); >> imagesc(I,[0 2]) 显示截图: ②代码:>> I=imread('单色bmp.bmp');

>> imshow(I,2) 显示截图: ③代码:>> I=imread('单色bmp.bmp'); >> subimage(I) 显示截图:

⑶显示灰度图像 ①代码:>> I1=imread('256bmp.bmp'); >> imagesc(I1,[0,256]) 显示截图: 代码:>> I1=imread('256bmp.bmp'); >> colormap(gray); >> subplot(1,2,1); >> imagesc(I1,[0,256]); >> title('灰度级为[0 256]的mouse.bmp图'); >> subplot(1,2,2); >> imagesc(I1,[0,64]); >> colormap(gray); >> title('灰度级为[0 64]的mouse.bmp图'); 显示截图:

相关文档
最新文档