使用matlab绘制三维图形的方法

使用matlab绘制三维图形的方法
使用matlab绘制三维图形的方法

使用matlab 绘制三维图形的方法

三维曲线

plot3函数与plot 函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n),其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同。当x,y,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数。 例 绘制三维曲线。 程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t);

z=t.*sin(t).*cos(t); plot3(x,y,z);grid

title('Line in 3-D Space');

xlabel('X');ylabel('Y');zlabel('Z'); 如下图:

-1

1

X

Line in 3-D Space

Y

Z

三维曲面

1.产生三维数据

在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵。其格式为: x=a:d1:b; y=c:d2:d; [X,Y]=meshgrid(x,y);

语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数。 2.绘制三维曲面的函数

surf 函数和mesh 函数的调用格式为:

mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。 surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。

一般情况下,x,y,z 是维数相同的矩阵。x,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。 例 绘制三维曲面图z=sin(x+sin(y))-x/10。 程序如下:

[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标 z=sin(x+sin(y))-x/10; mesh(x,y,z);

axis([0 4*pi 0 4*pi -2.5 1]); 如下图:

-2.5

-2-1.5-1-0.500.51

此外,还有带等高线的三维网格曲面函数meshc 和带底座的三维网格曲面函数meshz 。其用法与mesh 类似,不同的是meshc 还在xy 平面上绘制曲面在z 轴方

向的等高线,meshz 还在xy 平面上绘制曲面的底座。

例 在xy 平面内选择区域[-8,8]×[-8,8],绘制4种三维曲面图。 程序如下:

[x,y]=meshgrid(-8:0.5:8);

z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps); subplot(2,2,1); mesh(x,y,z);

title('mesh(x,y,z)') subplot(2,2,2); meshc(x,y,z);

title('meshc(x,y,z)') subplot(2,2,3); meshz(x,y,z)

title('meshz(x,y,z)') subplot(2,2,4); surf(x,y,z);

title('surf(x,y,z)') 如下图:

10

mesh(x,y,z)

10

10

-101meshc(x,y,z)

10

meshz(x,y,z)

10

10

-101surf(x,y,z)

3.标准三维曲面

sphere 函数的调用格式为:

[x,y,z]=sphere(n):generates three (N+1)-by-(N+1) matrices so that SURF(X,Y,Z) produces a unit sphere. cylinder 函数的调用格式为:

[x,y,z]= cylinder(R,n),其中r 为圆周半径,n 为组成圆周的点数。

MATLAB 还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。 例 绘制标准三维曲面图形。 程序如下:

t=0:pi/20:2*pi;

[x,y,z]= cylinder(2+sin(t),30); subplot(2,2,1); surf(x,y,z); subplot(2,2,2); [x,y,z]=sphere; surf(x,y,z); subplot(2,1,2); [x,y,z]=peaks(30); surf(x,y,z); 如下图:

-5

55

-1

1

1

-10

1

其他三维图形

在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fill3。 bar3函数绘制三维条形图,常用格式为: bar3(y) bar3(x,y)

stem3函数绘制离散序列数据的三维杆图,常用格式为:

stem3(z)

stem3(x,y,z)

pie3函数绘制三维饼图,常用格式为: pie3(x)

fill3函数等效于三维函数fill ,可在三维空间内绘制出填充过的多边形,常用格式为:

fill3(x,y,z,c)

例 绘制三维图形:

(1) 绘制魔方阵的三维条形图。

(2) 以三维杆图形式绘制曲线y=2sin(x)。

(3) 已知x=[2347,1827,2043,3025],绘制饼图。 (4) 用随机的顶点坐标值画出五个黄色三角形。 程序如下:

subplot(2,2,1); bar3(magic(4)) subplot(2,2,2);

y=2*sin(0:pi/10:2*pi); stem3(y);

subplot(2,2,3);

pie3([2347,1827,2043,3025]); subplot(2,2,4);

fill3(rand(3,5),rand(3,5),rand(3,5), 'y' )

1

010

2040

2

-202

1

1

00.51

例 绘制多峰函数的瀑布图和等高线图。 程序如下:

subplot(1,2,1); [X,Y,Z]=peaks(30); waterfall(X,Y,Z)

xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); subplot(1,2,2);

contour3(X,Y,Z,12,'k'); %其中12代表高度的等级数 xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');

-5

-55

X -axis

Z -a x i s

Z -a x i s X -axis

图形修饰处理 视点处理

MATLAB 提供了设置视点的函数view ,其调用格式为: view(az,el)

其中az 为方位角,el 为仰角,它们均以度为单位。系统缺省的视点定义为方位角-37.5°,仰角30°。

例 从不同视点绘制多峰函数曲面。 程序如下:

subplot(2,2,1);mesh(peaks);

view(-37.5,30); %指定子图1的视点 title('azimuth=-37.5,elevation=30') subplot(2,2,2);mesh(peaks);

view(0,90); %指定子图2的视点 title('azimuth=0,elevation=90') subplot(2,2,3);mesh(peaks);

view(90,0); %指定子图3的视点

title('azimuth=90,elevation=0') subplot(2,2,4);mesh(peaks);

view(-7,-10); %指定子图4的视点 title('azimuth=-7,elevation=-10')

50

azimuth=-37.5,elevation=30

20

40

60

01020

3040

50

azimuth=0,elevation=90

20

40

60

-10-505

10

azimuth=90,elevation=0

60

-10-505

10

azimuth=-7,elevation=-10

色彩处理

1.颜色的向量表示

MATLAB 除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。向量元素在[0,1]范围取值,3个元素分别表示红、绿、蓝3种颜色的相对亮度,称为RGB 三元组。 2.色图

色图(Color map)是MATLAB 系统引入的概念。在MATLAB 中,每个图形窗口只能有一个色图。色图是m×3 的数值矩阵,它的每一行是RGB 三元组。色图矩阵可以人为地生成,也可以调用MATLAB 提供的函数来定义色图矩阵。 3.三维表面图形的着色

三维表面图实际上就是在网格图的每一个网格片上涂上颜色。surf 函数用缺省的着色方式对网格片着色。除此之外,还可以用shading 命令来改变着色方式。 shading faceted 命令将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其shading flat 命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。

shading interp 命令在网格片内采用颜色插值处理,得出的表面图显得最光滑。 颜色是黑色。这是系统的缺省着色方式

例 3种图形着色方式的效果展示。 程序如下:

[x,y,z]=sphere(20); colormap(copper); subplot(1,3,1); surf(x,y,z); axis equal

subplot(1,3,2);

surf(x,y,z);shading flat; axis equal

subplot(1,3,3);

surf(x,y,z);shading interp; axis equal

-1

1

-1

1

-1

1

1

光照处理

MATLAB 提供了灯光设置的函数,其调用格式为:

light('Color',选项1,'Style',选项2,'Position',选项3)

光照处理后的球面。 程序如下:

[x,y,z]=sphere(20); subplot(1,2,1);

surf(x,y,z);axis equal; light('Posi',[0,1,1]);

shading interp; hold on;

plot3(0,1,1,'p');text(0,1,1,' light'); subplot(1,2,2);

surf(x,y,z);axis equal; light('Posi',[1,0,1]); shading interp; hold on;

plot3(1,0,1,’p ’); text(1,0,1,’light ’);

plot3(1,0,1,'p');text(1,0,1,'light');

-1

1

-1

1

1

图形的裁剪处理

例4-22 绘制三维曲面图,并进行插值着色处理,裁掉图中x 和y 都小于0部分。

程序如下:

[x,y]=meshgrid(-5:0.1:5);

z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4); surf(x,y,z);shading interp;

pause %程序暂停 i=find(x<=0&y<=0); z1=z;z1(i)=NaN;

surf(x,y,z1);shading interp;

-5

5

为了展示裁剪效果,第一个曲面绘制完成后暂停,然后显示裁剪后的曲面。

图像处理与动画制作图像处理

1.imread 和imwrite 函数

imread 和imwrite 函数分别用于将图像文件读入MATLAB 工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。MATLAB 支持多种图像文件格式,如.bmp 、.jpg 、.jpeg 、.tif 等。 2.image 和imagesc 函数

这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用colormap 函数设置图像色图。

例5-23 有一图像文件flower.jpg ,在图形窗口显示该图像。 程序如下:

[x,cmap]=imread('flower.jpg'); %读取图像的数据阵和色图阵 image(x);colormap(cmap);

axis image off %保持宽高比并取消坐标轴 动画制作

MATLAB 提供getframe 、moviein 和movie 函数进行动画制作。 1.getframe 函数

getframe 函数可截取一幅画面信息(称为动画中的一帧),一幅画面信息形成一个很大的列向量。显然,保存n 幅图面就需一个大矩阵。

2.moviein函数

moviein(n)函数用来建立一个足够大的n列矩阵。该矩阵用来保存n幅画面的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。3.movie函数

movie(m,n)函数播放由矩阵m所定义的画面n次,缺省时播放一次。

例绘制了peaks函数曲面并且将它绕z轴旋转。

程序如下

[X,Y,Z]=peaks(30);

surf(X,Y,Z)

axis([-3,3,-3,3,-10,10])

axis off;

shading interp;

colormap(hot);

m=moviein(20); %建立一个20列大矩阵

for i=1:20

view(-37.5+24*(i-1),30) %改变视点

m(:,i)=getframe; %将图形保存到m矩阵

end

movie(m,2); %播放画面2次

(完整版)MATLAB常用函数大全

一、MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数(Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 三、适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 四、MATLAB的永久常数

Matlab常用操作、绘图等小知识

Matlab 小知识 1、翻转fliplr(左右)、flipud(上下) fftshift()上下左右 fftshift(,1)对行(row)同时操作,引起列的变化(不是简单的上下) 类似fpliud fftshift(,2)对列(column)同时操作,引起行的变化(不是简单的左右) 类似fplilr eg:a=[1 2 3;4 5 6; 7,8 9]; fliplr=321 654 987 flipud= 789 456 123 fftshift=978 312 645 fftshift(a,1)= 789 123 456 fftshift(a,2)= 312 645 978 2、data:Naz*Nrg,行为方位向,列为距离向 fft(,[],1)同时对一列进行fft,在SAR数据处理中为方位向FFT,变换到距离时域,方位频域(距离-多普勒域)== fft() fft(,[],2)同时对一行进行fft,在SAR数据处理中为距离向FFT,变换到距离频域,方位时域。== fft(x.’).’ fft(,[],1) + fft(,[],2) = fft2() 3、conj(共轭) conv(卷积) 4、imagesc,colormap(gray) 5、转置:“’” 对于复数为共轭转置,若要只转置不取共轭,则应该是“.’” 对于实数,“’”即可实现转置。 6、对于有复数j的程序,在循环中切忌再次使用j作为循环变量,同理,不可再次定义变量j进行其他运算。 7、算法优化: a) sinc(1:100)比单独计算sinc(1)…sinc(100)快N倍; b) 如果遇到a^2*b^2,则可以先计算(a*b)再对乘积求平方; 8、eps 计算机最小正数,在pc机上,它等于2e-52。 9、保存的指令格式 (1)save 工作间中的所有变量保存在磁盘上名为matlab.mat 的文件中。(2)save [文件名] [变量名] 将指定的变量保存在指定文件中,如: save temp x y z 把x,y,z 这三个变量保存在文件temp.mat 中。在下次加载MATLAB 时可以利用load 指令将保存在文件中的变量恢复到工作间中其格式有: (1)load 将保存在matlab.mat 中的变量装入到MATLAB 工作间中。 (2)load [文件名] [变量名] 从指定的文件中将指定的变量装入。 save e:\mydir\data AR load e:\mydir\data AR 10、reshape(变量,行,列) 11、取整函数: fix朝零方向取整ceil 朝正无穷大方向取整

基于MATLAB的GMSK调制与解调课设报告

基于Matlab的GMSK调制与解调 1.课程设计目的 (1)加深对GMSK基本理论知识的理解。 (2)培养独立开展科研的能力和编程能力。 (3)通过SIMULINK对BT=0.3的GMSK调制系统进行仿真。 2.课程设计要求 (1)观察基带信号和解调信号波形。 (2)观察已调信号频谱图。 (3)分析调制性能和BT参数的关系。 3.相关知识 3.1GMSK调制 调制原理图如图2.2,图中滤波器是高斯低通滤波器,它的输出直接对VCO 进行调制,以保持已调包络恒定和相位连续。 非归零数字序 高斯低通滤 波器频率调制器 (VCO) GMSK已 调信号 图3.1GMSK调制原理图 为了使输出频谱密集,前段滤波器必须具有以下待性: 1.窄带和尖锐的截止特性,以抑制FM调制器输入信号中的高频分量; 2.脉冲响应过冲量小,以防止FM调制器瞬时频偏过大; 3.保持滤波器输出脉冲响应曲线下的面积对应丁pi/2的相移。以使调制指数为1/2。前置滤波器以高斯型最能满足上述条件,这也是高斯滤波器最小移频键控(GMSK)的由来。

GMSK 信号数据 3.2GMSK 解调 GMSK 本是MSK 的一种,而MSK 又是是FSK 的一种,因此,GMSK 检波也可以采用FSK 检波器,即包络检波及同步检波。而GMSK 还可以采用时延检波,但每种检波器的误码率不同。 GMSK 非相干解调原理图如图2.3,图中是采用FM 鉴频器(斜率鉴频器或相位鉴频器)再加判别电路,实现GMSK 数据的解调输出。 图3.2GMSK 解调原理图 4.课程设计分析 4.1信号发生模块 因为GMSK 信号只需满足非归零数字信号即可,本设计中选用(Bernoulli Binary Generator)来产生一个二进制序列作为输入信号。 图4.1GMSK 信号产生器 该模块的参数设计这只主要包括以下几个。其中probability of a zero 设置为0.5表示产生的二进制序列中0出现的概率为0.5;Initial seed 为61表示随机数种子为61;sample time 为1/1000表示抽样时间即每个符号的持续时为0.001s。当仿真时间固定时,可以通过改变sample time 参数来改变码元个数。例如仿真时间为10s,若sample time 为1/1000,则码元个数为10000。 带通滤 波器限幅器判决器鉴频器GMSK 信号 输出

(完整版)matlab函数大全(非常实用)

信源函数 randerr 产生比特误差样本 randint 产生均匀分布的随机整数矩阵 randsrc 根据给定的数字表产生随机矩阵 wgn 产生高斯白噪声 信号分析函数 biterr 计算比特误差数和比特误差率 eyediagram 绘制眼图 scatterplot 绘制分布图 symerr 计算符号误差数和符号误差率 信源编码 compand mu律/A律压缩/扩张 dpcmdeco DPCM(差分脉冲编码调制)解码dpcmenco DPCM编码 dpcmopt 优化DPCM参数 lloyds Lloyd法则优化量化器参数 quantiz 给出量化后的级和输出值 误差控制编码 bchpoly 给出二进制BCH码的性能参数和产生多项式convenc 产生卷积码 cyclgen 产生循环码的奇偶校验阵和生成矩阵cyclpoly 产生循环码的生成多项式 decode 分组码解码器 encode 分组码编码器 gen2par 将奇偶校验阵和生成矩阵互相转换gfweight 计算线性分组码的最小距离 hammgen 产生汉明码的奇偶校验阵和生成矩阵rsdecof 对Reed-Solomon编码的ASCII文件解码rsencof 用Reed-Solomon码对ASCII文件编码rspoly 给出Reed-Solomon码的生成多项式syndtable 产生伴随解码表 vitdec 用Viterbi法则解卷积码 (误差控制编码的低级函数) bchdeco BCH解码器 bchenco BCH编码器 rsdeco Reed-Solomon解码器 rsdecode 用指数形式进行Reed-Solomon解码 rsenco Reed-Solomon编码器 rsencode 用指数形式进行Reed-Solomon编码 调制与解调

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受到了广大理工科学生和学者青睐,除了Matlab强大的矩阵计算功能和功能齐全的toolbox以外,一个重要原因是因为它提供了方便的绘图功能。下面我们将详细介绍2维图形对象的生成函数及图形控制函数的使用方法以及一些图形的修饰与标注函数及操作和控制MATLAB各种图形对象的方法. 一、图形窗口与坐标系; A.图形窗口 1.MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸. 2.在MATLAB下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句 柄.MATLAB通过管理图形窗口的句柄来管理图形窗口; 3.当前窗口句柄可以由MATLAB函数gcf获得; 4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口); figure(h)----将句柄为h的窗口设置为当前窗口; 5.打开图形窗口的方法有三种: 1)调用绘图函数时自动打开; 2)用File---New---Figure新建; 3)figure命令打开,close命令关闭. 在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形. 6.窗口中的图形打印:用图形窗口的File菜单中的Print项. 7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜单中选择Properties项,打开图形对象的参数设置窗口,可以设置对象的属性. B.坐标系; 1.一个图形必须有其定位系统,即坐标系; 2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系; 3.每个坐标系都有唯一的标识符,即句柄值; 4.当前坐标系句柄可以由MATLAB函数gca获得; 5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值.

matlab 函数大全

matlab 函数大全 信源函数 randerr 产生比特误差样本 randint 产生均匀分布的随机整数矩阵 randsrc 根据给定的数字表产生随机矩阵 wgn 产生高斯白噪声 信号分析函数 biterr 计算比特误差数和比特误差率 eyediagram 绘制眼图 scatterplot 绘制分布图 symerr 计算符号误差数和符号误差率 信源编码 compand mu律/A律压缩/扩张 dpcmdeco DPCM(差分脉冲编码调制)解码dpcmenco DPCM编码 dpcmopt 优化DPCM参数 lloyds Lloyd法则优化量化器参数 quantiz 给出量化后的级和输出值 误差控制编码 bchpoly 给出二进制BCH码的性能参数和产生多项式convenc 产生卷积码 cyclgen 产生循环码的奇偶校验阵和生成矩阵cyclpoly 产生循环码的生成多项式 decode 分组码解码器 encode 分组码编码器 gen2par 将奇偶校验阵和生成矩阵互相转换gfweight 计算线性分组码的最小距离 hammgen 产生汉明码的奇偶校验阵和生成矩阵rsdecof 对Reed-Solomon编码的ASCII文件解码rsencof 用Reed-Solomon码对ASCII文件编码rspoly 给出Reed-Solomon码的生成多项式

syndtable 产生伴随解码表 vitdec 用Viterbi法则解卷积码 (误差控制编码的低级函数) bchdeco BCH解码器 bchenco BCH编码器 rsdeco Reed-Solomon解码器 rsdecode 用指数形式进行Reed-Solomon解码 rsenco Reed-Solomon编码器 rsencode 用指数形式进行Reed-Solomon编码 调制与解调 ademod 模拟通带解调器 ademodce 模拟基带解调器 amod 模拟通带调制器 amodce 模拟基带调制器 apkconst 绘制圆形的复合ASK-PSK星座图 ddemod 数字通带解调器 ddemodce 数字基带解调器 demodmap 解调后的模拟信号星座图反映射到数字信号dmod 数字通带调制器 dmodce 数字基带调制器 modmap 把数字信号映射到模拟信号星座图(以供调制)qaskdeco 从方形的QASK星座图反映射到数字信号qaskenco 把数字信号映射到方形的QASK星座图 专用滤波器 hank2sys 把一个Hankel矩阵转换成一个线性系统模型hilbiir 设计一个希尔伯特变换IIR滤波器 rcosflt 升余弦滤波器 rcosine 设计一个升余弦滤波器 (专用滤波器的低级函数) rcosfir 设计一个升余弦FIR滤波器 rcosiir 设计一个升余弦IIR滤波器

Matlab中使用Plot函数动态画图方法

%% %先画好,然后更改坐标系 %在命令行中使用 Ctrl+C 结束 t=0:0.1:100*pi; m=sin(t); plot(t,m); x=-2*pi; axis([x,x+4*pi,-2,2]); grid on while 1 if x>max(t) break; end x=x+0.1; axis([x,x+4*pi,-2,2]); %移动坐标系 pause(0.1); end %% % Hold On 法 % 此种方法只能点,或者分段划线 hold off t=0; m=0; t1=[0 0.1]; %要构成序列 m1=[sin(t1);cos(t1)]; p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:100 hold on t=0.1*i; %下一个点 m=t-floor(t); t1=t1+0.1; %下一段线(组) m1=[sin(t1);cos(t1)]; p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5); x=x+0.1; axis([x x+2*pi -1.5 1.5]); pause(0.01); end

%% %采用背景擦除的方法,动态的划点,并且动态改变坐标系% t,m 均为一行,并且不能为多行 t=0; m=0; p = plot(t,m,'*',... 'EraseMode','background','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:1000 t=0.1*i; %两个变量均不追加 m=sin(0.1*i); set(p,'XData',t,'YData',m) x=x+0.1; drawnow axis([x x+2*pi -1.5 1.5]); pause(0.1); end %% %采用背景擦除的方法,动态的划线,并且动态改变坐标系% 多行划线 t=[0] m=[sin(t);cos(t)] p = plot(t,m,... 'EraseMode','background','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:1000 t=[t 0.1*i]; %Matrix 1*(i+1) m=[m [sin(0.1*i);cos(0.1*i)]]; %Matrix 2*(i+1) set(p(1),'XData',t,'YData',m(1,:)) set(p(2),'XData',t,'YData',m(2,:)) drawnow x=x+0.1; axis([x x+2*pi -1.5 1.5]); pause(0.5);

基于matlab的通信信道及眼图的仿真 通信原理课程设计

通信原理课程设计 基于matlab的通信信道及眼图的仿真 作者: 摘要 由于多径效应和移动台运动等影响因素,使得移动信道对传输信号在时间、频率和角度上造成了色散,即时间色散、频率色散、角度色散等等,因此多径信道的特性对通信质量有着重要的影响,而多径信道的包络统计特性则是我们研究的焦点。根据不同无线环境,接收信号包络一般服从几种典型分布,如瑞利分布、莱斯分布等。因此我们对瑞利信道、莱斯信道进行了仿真并针对服从瑞利分布的多径信道进行模拟仿真。由于眼图是实验室中常用的一种评价基带传输系统的一种定性而方便的方法,“眼睛”的张开程度可以作为基带传输系统性能的一种度量,它不但反映串扰的大小,而且也可以反映信道噪声的影响。为此,我们在matlab上进行了仿真,加深对眼图的理解。 关键词:瑞利信道莱斯信道多径效应眼图 一、瑞利信道 在移动通信系统中,发射端和接收端都可能处于不停的运动状态之中,这种相对运动将产生多普勒频移。在多径信道中,发射端发出的信号通过多条路径到达接收端,这些路径具有不同的延迟和接收强度,它们之间的相互作用就形成了衰落。MATLAB中的多径瑞利衰落信道模块可以用于上述条件下的信道仿真。 多径瑞利衰落信道模块用于多径瑞利衰落信道的基带仿真,该模块的输入信号为复信号,可以为离散信号或基于帧结构的列向量信号。无线系统中接收机与发射机之间的相对运动将引起信号频率的多普勒频移,多普勒频移值由下式决定: 其中v是发射端与接收端的相对速度,θ是相对速度与二者连线的夹角,λ是信号的波长。

Fd的值可以在该模块的多普勒平移项中设置。由于多径信道反映了信号在多条路径中的传输,传输的信号经过不同的路径到达接收端,因此产生了不同的时间延迟。当信号沿着不同路径传输并相互干扰时,就会产生多径衰落现象。在模块的参数设置表中,Delay vector(延迟向量)项中,可以为每条传输路径设置不同的延迟。如果激活模块中的Normalize gain vector to 0 dB overall gain,则表示将所有路径接收信号之和定为0分贝。信号通过的路径的数量和Delay vector(延迟向量)或Gain vector(增益向量)的长度对应。Sample time(采样时间)项为采样周期。离散的Initial seed(初始化种子)参数用于设置随机数的产生。 1.1、Multipath Rayleigh Fading Channel(多径瑞利衰落信道)模块的主要参数 参数名称参数值 Doppler frequency(Hz) 40/60/80 Sample time 1e-6 Delay vector(s) [0 1e-6] Gain vector(dB) [0 -6] Initial seed 12345 使能 Normalize gain vector to 0 dB overall gain Bernoulli Random Binary Generator(伯努利二进制随机数产生器)的主要参数 参数名称参数值 Probability of a zero0.5 Initial seed54321

MATLAB通信系统仿真实验报告1

MATLAB通信系统仿真实验报告

实验一、MATLAB的基本使用与数学运算 目的:学习MATLAB的基本操作,实现简单的数学运算程序。 内容: 1-1要求在闭区间[0,2π]上产生具有10个等间距采样点的一维数组。试用两种不同的指令实现。 运行代码:x=[0:2*pi/9:2*pi] 运行结果: 1-2用M文件建立大矩阵x x=[0.10.20.30.40.50.60.70.80.9 1.11.21.31.41.51.61.71.81.9 2.12.22.32.42.52.62.72.82.9 3.13.23.33.43.53.63.73.83.9] 代码:x=[0.10.20.30.40.50.60.70.80.9 1.11.21.31.41.51.61.71.81.9 2.12.22.32.42.52.62.72.82.9 3.13.23.33.43.53.63.73.83.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=[56;78]B=[910;1112]x1=A+B X2=A-B X3=A*B X4=A.*B X5=A^3 X6=A.^3X7=A/B X8=A\B

运行结果: 1-4任意建立矩阵A,然后找出在[10,20]区间的元素位置。 程序代码及运行结果: 代码:A=[1252221417;111024030;552315865]c=A>=10&A<=20运行结果: 1-5总结:实验过程中,因为对软件太过生疏遇到了些许困难,不过最后通过查书与同学交流都解决了。例如第二题中,将文件保存在了D盘,而导致频频出错,最后发现必须保存在MATLAB文件之下才可以。第四题中,逻辑语言运用到了ij,也出现问题,虽然自己纠正了问题,却也不明白错在哪了,在老师的讲解下知道位置定位上不能用ij而应该用具体的整数。总之第一节实验收获颇多。

matlab画图基本函数和参数之plot

matlab画图基本函数和参数之plot (2010-06-05 16:54:20) 基本语法: plot(Y) plot(X1,Y1,...) plot(X1,Y1,LineSpec,...) plot(...,'PropertyName',PropertyValue,...) plot(axes_handle,...) h = plot(...) hlines = plot('v6',...) 详解: plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线;如果Y是复数,则plot(Y)等效于plot(real(Y),imag(Y));其它使用情况下,忽略坐标数据中的虚部。 plot(X1,Y1,...)如果X和Y都是数组,按列取坐标数据绘图,此时它们必须具有相同的尺寸;如果X和Y其中一个是向量另一个为数组,X和Y中尺寸相等的方向对应绘制多条曲线;如果X和Y其中一个是标量另一个为向量,那么将绘制垂直X或者Y轴离散的点。 plot(X1,Y1,LineSpec,...)通过参数 LineSpec指定曲线的曲线属性,它包括线型、标记符和颜色。plot函数支持同时绘制任意组图形 plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,...) 此时完全等效于 plot(X1,Y1,LineSpec1,...) hlod all plot(X2,Y2,LineSpec2,...)

MATLAB中提供的线型属性有: 需要说明的是,LineSpec中设置曲线线型、标识符和颜色三项属性时,控制符的顺序不受限制并可以省略或者部分省略。也就是说'r-.*'、'-.r*'、'*-.r'等形式是等效的,都表示使用红色点划线连接各个节点,各节点使用“*”标识。 plot(...,'PropertyName',PropertyValue,...) 设置由plot创建的所有曲线句柄对象的属性,Line对象属性和属性值参见附录,具体设置参考下面的实例,当然可以使用set/get进行设置。 plot(axes_handle,...)指定坐标系,也就是在 axes_handle坐标系中绘图,在没有指定时默认为gca。 h = plot(...)返回由plot创建的所有曲线句柄对象的句柄。每条曲线对应一个句柄,如果有n条曲线,则h为n×1的数组。 注意事项: 在同时绘制多条曲线时,如果没有指定曲线属性,plot按顺序循环使用当前坐标系中ColorOrder和LineStyleOrder两个属性。 默认情况,MATLAB在每次调用plot函数时将ColorOrder和 LineStyleOrder自动重置为DefaultAxesColorOrder和DefaultAxesLineStyleOrder。 Default**属性我们可以自定义,有效期至MATLAB关闭,Matlab下次启动时将Default**属性重置为厂家设置(Factory) set(0,'DefaultAxesColorOrder',’r|g|b|k’,... 'DefaultAxesLineStyleOrder','-|-.|--|:')

实验五MATLAB的基本绘图方法

实验三MATLAB的基本绘图方法 一、实验目的 1.二维平面图形的绘制 2.三维立体图形的绘制 3.隐函数作图 二、实验地点:A404 三、实验日期: 四、实验内容 (一)二维平面图形的绘制 1、Plot的使用方法介绍 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m×n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,…元素为纵坐标值绘制多条曲线。 例1:画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 注:在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MA TLAB 软件专门提供了这方面的参数选项,我们只要在每个坐标后加上相关字符串,就可实现它们的功能。具体参见教材。 2、图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 图形修饰函数表如下: 函数含义 grid on (/off) 给当前图形标记添加(取消)网络 xlable(‘string’) 标记横坐标 ylabel(‘string’) 标记纵坐标 title(‘string’) 给图形添加标题 text(x,y,’string’) 在图形的任意位置增加说明性文本信息 gtext(‘string’) 利用鼠标添加说明性文本信息 axis([xmin xmax ymin ymax]) 设置坐标轴的最小最大值 例2、给例1的图形中加入网络和标记。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2)

(matlab)plot画图的颜色线

(matlab)plot画图的颜色线型 y 黄色 ·点线 m 粉红○圈线 c 亮蓝 × ×线 r 大红++字线 g 绿色-实线 b 蓝色 * 星形线 w 白色:虚线 k 黑色-. -- 点划线 matlab6.1线形: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ] square 正方形 diamond 菱形 pentagram 五角星 hexagram 六角星 用法 grid 打开网格线-- 虚线 hold on 命令用于在已画好的图形上添加新的图形 1 x=0:0.001:10; % 0到10的1000个点(每隔0.001画一个点)的x座标 y=sin(x); % 对应的y座标 plot(x,y); % 绘图 注:matlab画图实际上就是描点连线,因此如果点取得不密,画出来就成了折线图,请试验之 2 Y=sin(10*x); plot(x,y,'r:',x,Y,'b') % 同时画两个函数 3 若要改变颜色,在座标对后面加上相关字串即可: x=0:0.01:10; plot(x,sin(x),'r') 4 若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:plot(x,sin(x),'r*') 5 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围 axis([0,6,-1.5,1]) 6 MATLAB也可对图形加上各种注解与处理:(见上表) xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解

(完整word版)使用matlab绘制眼图.docx

使用 matlab 绘制数字基带信号的眼图实验 一、实验目的 1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法; 2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ 基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度; 3、熟悉 MATLAB语言编程。 二、实验原理和电路说明 1、基带传输特性 基带系统的分析模型如图3-1 所示,要获得良好的基带传输系统,就应该 a n t nT s 基带传输a n h t nT s n n抽样判决 H ( ) 图 3-1基带系统的分析模型 抑制码间干扰。设输入的基带信号为a n t nT s, T s为基带信号的码元周期,则经过 n 基带传输系统后的输出码元为a n h t nT s。其中 n h(t )1H ()e j t d(3-1 ) 2 理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足: ,k 0 h( kT s)(3-2) 0,k为其他整数 频域应满足: T s, T s(3-3) H ( ) 0,其他

H ( ) T s T s T s 图 3-2 理想基带传输特性 此时频带利用率为 2Baud / Hz , 这是在抽样值无失真条件下,所能达到的最高频率利用率。 由于理想的低通滤波器不容易实现, 而且时域波形的拖尾衰减太慢, 因此在得不到严格 定时时,码间干扰就可能较大。在一般情况下,只要满足: 2 i H 2 2 , (3-4) H H ( ) H T s i T s T s T s T s 基带信号就可实现无码间干扰传输。这种滤波器克服了拖尾太慢的问题。 从实际的滤波器的实现来考虑,采用具有升余弦频谱特性 H ( ) 时是适宜的。 1 sin T s ( ) , (1 ) (1 ) 2 T s T s T s H ( ) 1, (1 ) 0 (3-5) T s 0, (1 ) T s 这里 称为滚降系数, 1。 所对应的其冲激响应为: sin t cos( t T s ) h(t ) T s (3-6) t 1 4 2t 2 T s 2 T s 此时频带利用率降为 2 / (1 ) Baud/ Hz ,这同样是在抽样值无失真条件下, 所能达到的最 高频率利用率。换言之,若输入码元速率 R s ' 1/ T s ,则该基带传输系统输出码元会产生码

matlab画图技巧方法

matlab绘图的一些技巧 1.在坐标轴上任意标上感兴趣的刻度。 用XTick、YTick、ZTick。如图1. 如:x=0:0.1:10;y=x.^2;h=plot(x,y,'o',x,y);set(gca,'YTick',[0,10,25,50,80,99],'XTick',[0.5,8,10]); 用XTickLabel、YTickLabel、ZTickLabel属性把标记标签从数值改为字符串。如图2. 如将y轴上的值80用字符串代替:x=0:0.1:10;y=x.^2;h=plot(x,y,'o',x,y); set(gca,'YTickLabel','0|10|25|50|cutoff|99'); 图1 图2 2.使用多个x轴和y轴

XAxisLocation和YAxisLocation属性指定在图形的哪一侧放置x轴和y轴。如图3. x1=0:0.01:10;y1=sin(x1); h1=line(x1,y1,'Color','r'); ax1=gca;set(ax1,'XColor','r','YColor','r'); ax2=axes('Position',get(ax1,'Position'),'XAxisLocation','top','YAxisLocation','right','Color','none',' XColor','k','YColor','k'); x2=x1;y2=cos(x2); h2=line(x2,y2,'Color','k','Parent',ax2); 图3 3.连接图形与变量(更新自变量或因变量的值) 用数据源属性XDataSource、YDataSource、ZDataSource及refreshdata.可以做动画。 t=0:0.01:2*pi; y=exp(sin(t)); h=plot(t,y,'YDataSource','y'); for k=1:0.1:20 y=exp(sin(t.*k)); refreshdata(h,'caller'); drawnow; pause(0.1); end 4.创建组(Hggroup)对象 将每个Hggroup子对象的HitTest属性值设置为off,使得单击任何子对象时,可以选择所有子对象。

基带信号眼图实验——matlab仿真

基带信号眼图实验——matlab 仿真

————————————————————————————————作者:————————————————————————————————日期: ?

数字基带信号的眼图实验——matla b仿真 一、实验目的 1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法; 2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ 基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度; 3、熟悉MATL AB 语言编程。 二、实验预习要求 1、复习《数字通信原理》第七章7.1节——奈奎斯特第一准则内容; 2、复习《数字通信原理》第七章7.2节——数字基带信号码型内容; 3、认真阅读本实验内容,熟悉实验步骤。 三、实验原理和电路说明 1、基带传输特性 基带系统的分析模型如图3-1所示,要获得良好的基带传输系统,就应该 () n s n a t nT δ-∑() H ω() n s n a h t nT -∑基带传输抽样判决 图3-1?基带系统的分析模型 抑制码间干扰。设输入的基带信号为()n s n a t nT δ-∑,s T 为基带信号的码元周期,则经过基 带传输系统后的输出码元为 ()n s n a h t nT -∑。其中 1 ()()2j t h t H e d ωωωπ +∞ -∞ = ? ?(3-1) 理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足: 10()0,s k h kT k =?=? ? , 为其他整数 ?? ?(3-2) 频域应满足:

(完整版)matlab的一些画图技巧

matlab中如何在指定一点画一个填充颜色的小圆 plot(1,1,'r.','markersize',50) 二维作图 绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图. 基本形式 如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出 y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y) 它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y的长度 Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y是由计算机自动绘出的. 图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14])

上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title 命令可以加上. 如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例: x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x )曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图. 图4.1.1.2 y=sin(x)的图形 title图形标题 xlabel x坐标轴标注 ylabel y坐标轴标注 text标注数据点

legend 在右上角加解释 文字 grid给图形加上网格 hold保持图形窗口的图形 表4.1.1.1 Matlab图形命令 多重线 在一个单线图上,绘制多重线有三种办法. 第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,xn,yn) x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上.第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1) hold on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵:

MATLAB中绘图命令介绍

MATLAB中绘图命令介绍 本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制。 plot是绘制一维曲线的基本函数,但在 使用此函数之前,我们需先定义曲线上每一 点的x 及y座标。 下例可画出一条正弦曲线: close all; x=linspace(0, 2*pi, 100); % 100个点的x坐标 y=sin(x); % 对应的y坐标 plot(x,y); 小整理:MATLAB基本绘图函数 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 若要画出多条曲线,只需将座标对依次放入plot函数即可: hold on 保持当前图形,以便继续画图到当前坐标窗口 hold off 释放当前图形窗口 title(’图形名称’)(都放在单引号内) xlabel(’x轴说明’) ylabel(’y轴说明’)

text(x,y,’图形说明’) legend(’图例1’,’图例2’,…) plot(x, sin(x), x, cos(x)); 若要改变颜色,在座标对後面加上相关字串即 可: plot(x, sin(x), 'c', x, cos(x), 'g'); 若要同时改变颜色及图线型态,也是在座标对後 面加上相关字串即可: plot(x, sin(x), 'co', x, cos(x), 'g*'); 小整理:plot绘图函数的叁数字元、颜色元、 图线型态, y 黄色 .点k 黑色o 圆w 白色x xb 蓝色+ +g 绿色* *r 红色- 实线c 亮青色: 点线m 锰紫色-. 点虚线-- 虚线plot3 三维曲线作图 图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]); axis函数的功能丰富,其常用的用法有: axis equal :纵横坐标轴采用等长刻度 axis square:产生正方形坐标系(默认为矩形)

相关文档
最新文档