MATLAB环境下多幅度电平信号仿真程序说明

MATLAB环境下多幅度电平信号仿真程序说明
MATLAB环境下多幅度电平信号仿真程序说明

MATLAB 环境下多幅度电平信号仿真程序说明

一、多幅度信号仿真系统模型

二、系统中涉及的公式

1、平均比特SNR 定义为:

2

01

200221()log 2log M T k avb av k s t dt M SNR N N M M

εεσ====

∑?

即可得:

二电平时平均比特SNR 为:2

2

12d SNR σ= 四电平时平均比特SNR 为:2

2

54

d SNR σ=

八电平时平均比特SNR 为:2

2

216d SNR σ

= 2、M 电平PAM 系统最佳检测器的差错概率为:

2(1)

M M P Q M -= 其中:1()2Q x erfc =

三、仿真结果图

附源程序代码:

main_plot.m

%主程序源代码,调用其他5个函数得出仿真结果图

clear;clc;echo off;close all;

% 二电平单极性

SNR_in_dB1=0:1:17;

SNR_in_dB2=0:0.1:16;

for i=1:length(SNR_in_dB1)

smld_err_prb21(i)=smldPe21(SNR_in_dB1(i)); %实测差错概率end;

for i=1:length(SNR_in_dB2)

SNR=exp(SNR_in_dB2(i)*log(10)/10); %信噪比换算成真值

theo_err_prb21(i)=1/2*erfc(sqrt(SNR/4)); %理论差错概率计算end;

semilogy(SNR_in_dB1,smld_err_prb21,'o'); %实测差错概率结果图hold on;

semilogy(SNR_in_dB2,theo_err_prb21); %理论差错概率结果图hold on;

% 二电平双极性

SNR_in_dB3=0:1:11;

SNR_in_dB4=0:0.1:10;

for i=1:length(SNR_in_dB3)

smld_err_prb22(i)=smldPe22(SNR_in_dB3(i)); %实测差错概率

end;

for i=1:length(SNR_in_dB4)

SNR=exp(SNR_in_dB4(i)*log(10)/10); %信噪比换算成真值

theo_err_prb22(i)=1/2*erfc(sqrt(SNR)); %理论差错概率计算

end;

semilogy(SNR_in_dB3,smld_err_prb22,'black.'); %实测差错概率结果图hold on;

semilogy(SNR_in_dB4,theo_err_prb22,'black'); %理论差错概率结果图

hold on;

% 四电平双极性

SNR_in_dB5=0:1:16;

SNR_in_dB6=0:0.1:14;

for i=1:length(SNR_in_dB5)

smld_err_prb42(i)=smldPe42(SNR_in_dB5(i)); %实测差错概率

end;

for i=1:length(SNR_in_dB6)

SNR_per_bit=exp(SNR_in_dB6(i)*log(10)/10);

theo_err_prb42(i)=3/4*erfc(sqrt(2/5*SNR_per_bit)); %理论差错概率计算end;

semilogy(SNR_in_dB5,smld_err_prb42,'red+');

hold on;

semilogy(SNR_in_dB6,theo_err_prb42,'red');

hold on;

% 八电平双极性

SNR_in_dB7=0:1:19;

SNR_in_dB8=0:0.1:19;

for i=1:length(SNR_in_dB7)

smld_err_prb82(i)=smldPe82(SNR_in_dB7(i)); %实测差错概率

end;

for i=1:length(SNR_in_dB8)

SNR_per_bit=exp(SNR_in_dB8(i)*log(10)/10);

theo_err_prb82(i)=7/8*erfc(sqrt(9/63*SNR_per_bit)); %理论差错概率计算end;

semilogy(SNR_in_dB7,smld_err_prb82,'green*');

hold on;

semilogy(SNR_in_dB8,theo_err_prb82,'green');

hold on;

xlabel('SNR in dB');

ylabel('Pe');

title('多幅度电平信号仿真结果与理论值比较');

legend('二电平单极性实测值','二电平单极性理论值','二电平双极性实测值','二电平双极性理论值',...

'四电平实测值','四电平理论值','八电平实测值','八电平理论值');

gngauss.m

%产生高斯白噪声

function [gsrv1,gsrv2]=gngauss(m,sgma)

if nargin == 0, %如果没有输入实参,则均方为0,标准差为1

m=0; sgma=1;

elseif nargin == 1, %如果输入实参为1个参数,则标准差为输入实参,均值为0

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);

smldPe21.m

% 通过已知的信噪比求出二电平单极性映射下的实测差错概率

function [p]=smldPe21(snr_in_dB)

E=1;

SNR=exp(snr_in_dB*log(10)/10); %信噪比单位换算

sgma=E/sqrt(2*SNR); % sigma, 噪声的标准差

N=10000;

% 生成二进制数据

for i=1:N,

temp=rand; % 生成在0-1之间的独立随机数

if (temp<0.5),

dsource(i)=0; % 1/2的概率输出为0

else

dsource(i)=1; % 1/2的概率输出为1

end

end;

% 判决及差错概率的计算

numoferr=0;

for i=1:N,

% 映射到电平

if (dsource(i)==0),

r=gngauss(sgma); % 输出为0

else

r=E+gngauss(sgma); % 输出为1

end;

% 判决

if (r

decis=0; % 判决为0

else

decis=1; % 判决为1

end;

if (decis~=dsource(i)), % 如果误判计数器加1

numoferr=numoferr+1;

end;

end;

p=numoferr/N; % 差错概率估计

smldPe22.m

% 通过已知的信噪比求出二电平双极性映射下的实测差错概率function [p]=smldPe22(snr_in_dB)

E=1;

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

sgma=E/sqrt(2*SNR); % sigma, 噪声的标准差

N=10000;

for i=1:N,

temp=rand;

if (temp<0.5),

dsource(i)=-1; % 1/2的概率输出为-1

else

dsource(i)=1; % 1/2的概率输出为1

end

end;

% 判决及差错概率的计算

numoferr=0;

for i=1:N,

if (dsource(i)==-1),

r=-E+gngauss(sgma);

else

r=E+gngauss(sgma);

end;

if (r<0),

decis=-1;

else

decis=1;

end;

if (decis~=dsource(i)),

numoferr=numoferr+1;

end;

end;

p=numoferr/N; % 差错概率估计

smldPe42.m

% 通过已知的信噪比求出四电平双极性映射下的实测差错概率function [p]=smldPe42(snr_in_dB)

d=1;

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

sgma=sqrt((5*d^2)/(4*SNR));

N=10000;

for i=1:N,

temp=rand;

if (temp<0.25),

dsource(i)=-3; %1/4的概率输出为00

elseif (temp<0.5),

dsource(i)=-1; %1/4的概率输出为01

elseif (temp<0.75),

dsource(i)=1; %1/4的概率输出为10

else

dsource(i)=3; %1/4的概率输出为11

end

end;

numoferr=0;

for i=1:N,

if (dsource(i)==-3),

r=-3+gngauss(sgma); %信源输出为00 elseif(dsource(i)==-1),

r=-1+gngauss(sgma); %信源输出为01 elseif(dsource(i)==1),

r=1+gngauss(sgma); %信源输出为10 elseif(dsource(i)==3),

r=3+gngauss(sgma); %信源输出为11 end;

% 判决

if (r<-2*d),

decis=-3;

elseif (r<-0),

decis=-1;

elseif (r<2*d),

decis=1;

else

decis=3;

end;

if (decis~=dsource(i)), % 误码检测

numoferr=numoferr+1;

end;

end;

p=numoferr/N; % 差错概率估计计算

smldPe82.m

% 通过已知的信噪比求出八电平双极性映射下的实测差错概率function [p]=smldPe82(snr_in_dB)

d=1;

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

sgma=sqrt((21*d^2)/(6*SNR));

N=10000;

for i=1:N,

temp=rand;

if (temp<0.125),

dsource(i)=-7; %1/8的概率输出为000

elseif (temp<0.25),

dsource(i)=-5; %1/8的概率输出为001

elseif (temp<0.375),

dsource(i)=-3; %1/8的概率输出为010

elseif (temp<0.5),

dsource(i)=-1; %1/8的概率输出为011

elseif (temp<0.625),

dsource(i)=1; %1/8的概率输出为100

elseif (temp<0.75),

dsource(i)=3; %1/8的概率输出为101

elseif (temp<0.875),

dsource(i)=5; %1/8的概率输出为110

else

dsource(i)=7; %1/8的概率输出为111

end

end;

numoferr=0;

for i=1:N,

if (dsource(i)==-7),

r=-7+gngauss(sgma);

elseif(dsource(i)==-5),

r=-5+gngauss(sgma);

elseif(dsource(i)==-3),

r=-3+gngauss(sgma);

elseif(dsource(i)==-1),

r=-1+gngauss(sgma);

elseif(dsource(i)==1),

r=1+gngauss(sgma);

elseif(dsource(i)==3),

r=3+gngauss(sgma);

elseif(dsource(i)==5),

r=5+gngauss(sgma);

elseif(dsource(i)==7),

r=7+gngauss(sgma);

end;

% 判决

if (r<-6*d),

decis=-7;

elseif (r<-4*d),

decis=-5;

elseif (r<-2*d),

decis=-3;

elseif (r<0),

decis=-1;

elseif (r<2*d),

decis=1;

elseif (r<4*d),

decis=3;

elseif (r<6*d),

decis=5;

else

decis=7;

end;

if (decis~=dsource(i)), % 误码检测

numoferr=numoferr+1;

end;

end;

p=numoferr/N; % 差错概率估计计算

基于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仿真实验报告

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程序设计基本方法1

实验二Matlab程序设计基本方法 覃照乘自092 电气工程学院 一、实验目的: 1、熟悉MATLAB 程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 二、实验基本知识: ◆for循环结构 语法:for i=初值:增量:终值 语句1 …… 语句n end 说明:1.i=初值:终值,则增量为1。 2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 ◆while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达 式的值为假,则程序执行end之后的语句。 2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位 置加break语句、以便程序能正常执行。(执行循环体的次数不确定; 每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下:

while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end ◆if-else-end分支结构 if 表达式1 语句1 else if 表达式2(可选) 语句2 else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。 2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。 ◆switch-case结构 语法:switch表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 …… otherwise 语句组n end

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 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 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仿真教程

一、设计目的 通过运用MATLAB对函数进行Z域分析和单边带信号的调制与解调,使我们进一步加深对MATLAB的认识和运用,以实现以下目的: 1.本次试验进一步熟悉了MATLAB软件的使用方法及相关的操作。 2.对Z变换及其反变换函数在MATLAB中的调用有了掌握。 3.理论与实际的仿真相结合,更直观的看到结果。 4.观察了单边带信号调制与解调后的图像,加深认识。 二、设计原理 MATLAB是The MathWorks公司在1984年推出的一种商品化软件,它提供了大量丰富的应用函数,并且具有扩充的开放性结构。目前,该软件包涵盖了控制系统应用、数字信号处理、数字图像处理、通讯、神经网络、小波理论分析、优化与统计、偏微分方程、动态系统实时仿真等多学科专业领域。 其中单边带调制信号是将双边带信号中的一个边带滤掉而形成的。根据方法的不同,产生单边带调制信号的方法有:滤波和相移法。 由于滤波法在技术上比较难实现所以在此我们将用相移法对单边带调制与解调系统进行讨论与设计。 三、设计内容和MATLAB图像

1、数字系统的响应 源代码如下: b=[0 1 2 1 0]; a=[1 -0.5 0 0.3 -0.005]; subplot(421);zplane(b,a); title('系统的零极点图'); subplot(422);impz(b,a,21); title('单位脉冲响应'); subplot(423);stepz(b,a,21); title('单位阶跃响应');

N=21;n=0:N-1; x=exp(-n); x0=zeros(1,N); y0=[1,-1]; xi=filtic(b,a,y0); y1=filter(b,a,x0,xi); xi0=filtic(b,a,0); y2=filter(b,a,x,xi0); y3=filter(b,a,x,xi); [h w]=freqz(b,a,21); subplot(424);stem(n,y1); title('零输入响应');grid on; subplot(425);stem(n,y2); title('零状态响应');grid on; subplot(426);stem(n,y3); title('系统的全响应');grid on; subplot(427);plot(w,abs(h)); title('幅频特性曲线');grid on; subplot(428);plot(w,angle(h)); title('相频特性曲线');grid on;

基于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

实验3MATLAB程序设计

1,编写M 函数实现求一个数是否为素数,再编写一主程序(脚本文件),要求通过键盘输入一个整数,然后调用判断素数函数,从而确定它是否素数。 x=input('请输入一个整数x:'); if myprime(x) disp('您输入的整数x是一个素数。') else disp('您输入的数x不是一个素数。') end function y=myprime(x) y=1; for i=2:fix(sqrt(x)) if mod(x,i)==0 y=0; end end 2,编写M 函数统计一数值中零的个数,然后编写脚本文件,实现统计从1—2007 中零的总个数。 function num=number0(a) %统计十进制数值中0的个数 sa=num2str(a);%将数值装化为字符串 num=length(find(sa=='0'));% ));%求取字符串中'0’的个数 y=0;

for a=1:2006 num=number0(a); y=num+y; end disp(y) 504 3,编写程序计算x∈[-3,3],字长0.01:并画出曲线x = -3:0.01:3; y=zeros(size(x)); for i = 1:length(x) if -3<= x(i)& x(i)<=-1 y(i)=(-x(i).^2-4*x(i)-3)/ 2; elseif -1<= x(i) & x(i)<=1 y(i)=-x(i).^2+1; elseif 1<=x(:,i)<=3 y(i)=(-x(i).^2+4*x(i)-3)/2; end end plot(x,y) -3-2-10123

直流电动机的MATLAB仿真..

第一章课程设计内容及要求 1. 直流电动机的机械特性仿真; 2. 直流电动机的直接起动仿真; 3. 直流电动机电枢串联电阻启动仿真; 4. 直流电动机能耗制动仿真; 5.直流电动机反接制动仿真; 6. 直流电动机改变电枢电压调速仿真; 7. 直流电动机改变励磁电流调速仿真。 要求:编写M文件,在Simulink环境画仿真模型原理图,用二维画图命令画仿真结果图或用示波器观察仿真结果,并加以分析

第二章直流电动机的电力拖动仿真绘制 1)直流电动机的机械特性仿真 clear; U_N=220;P_N=22;I_N=115; n_N=1500;R_a=;R_f=628; Ia_N=I_N-U_N/R_f; C_EPhi_N=(U_N-R_a*Ia_N)/n_N; C_TPhi_N=*C_EPhi_N; Ia=0;Ia_N; n=U_N/C_EPhi_N-R_a/(C_EPhi_N)*Ia; Te=C_TPhi_N*Ia; P1=U_N*Ia+U_N*U_N/R_f; T2_N=9550*P_N/n_N; figure(1); plot(Te,n,'.-'); xlabel('电磁转矩Te/'); ylabel('转矩n/rpm'); ylim([0,1800]); figure(2); plot(Te,n,'rs'); xlabel('电磁转矩Te/'); ylabel('转矩n/rpm');

hold on; R_c=0; for coef=1:;; U=U_N*coef; n=U/C_EPhi_N-(R_a+R_c)/(C_EPhi_N*C_TPhi_N)*Te; plot(Te,n,'k-'); str=strcat('U=',num2str(U),'V'); s_y=1650*coef; text(50,s_y,str); end figure(3); n=U_N/C_EPhi_N-(R_a+R_c)/(C_EPhi_N*C_TPhi_N)*Te; plot(Te,n,'rs'); xlabel('电磁转矩Te/'); ylabel('转矩n/rpm'); hold on; U=U_N;R_c=; for R_c=0::; n=U/C_EPhi_N-(R_a+R_c)/(C_EPhi_N*C_TPhi_N)*Te; plot(Te,n,'k-'); str=strcat('R=',num2str(R_c+R_a),'\Omega'); s_y=400*(4-R_c*; text(120,s_y,str);

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程序设计与应用课后实验六八九

实验六 高层绘图操作 %第一题: 程序代码如下: x=linspace(0,2*pi,101); y=(0.5+3*sin(x)./(1+x.^2)).*cos(x); plot(x,y) 01234567 -1 -0.5 0.5 1 1.5 %第二题: %(1) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,'b-',x,y2,'r:',x,y3,'y--'); text(4,16,'\leftarrow y1=x^2'); text(6*pi/4,-1,'\downarrow y2=cos(2*x)'); text(-1.5*pi,-2.25*pi*pi,'\uparrow y3=y1*y2');

-8 -6 -4 -2 2 4 6 8 -30-20 -10 10 20 30 40 %(2) 程序代码如下: x=linspace(-2*pi,2*pi,100); y1=x.^2; y2=cos(2*x); y3=y1.*y2; subplot(1,3,1);%分区 plot(x,y1); title('y1=x^2');%设置标题 subplot(1,3,2); plot(x,y2); title('y2=cos(2*x)'); subplot(1,3,3); plot(x,y3); title('y3=x^2*cos(2*x)');

-10 10 0510 15202530 35 40y1=x 2 -10 10 -1-0.8 -0.6 -0.4-0.200.20.4 0.6 0.8 1y2=cos(2*x) -10 10 -30-20 -10 10 20 30 40 y3=x 2*cos(2*x) %(3) 程序代码如下: x=linspace(-2*pi,2*pi,20); y1=x.^2; subplot(2,2,1);%分区 bar(x,y1); title('y1=x^2的条形图');%设置标题 subplot(2,2,2); stairs(x,y1); title('y1=x^2的阶梯图'); subplot(2,2,3); stem(x,y1); title('y1=x^2的杆图'); subplot(2,2,4); fill(x,y1,'r');%如果少了'r'则会出错 title('y1=x^2的填充图'); %其他的函数照样做。

Matlab Simulink 仿真步骤

MATLAB基础与应用简明教程 张明等编著 北京航空航天大学出版社(2001.01) MATLAB软件环境是美国New Mexico大学的Cleve Moler博士首创的,全名为MATrix LABoratory(矩阵实验室)。它建立在20世纪七八十年代流行的LINPACK(线性代数计算)和ESPACK(特征值计算)软件包的基础上。LINPACK和ESPACK软件包是从Fortran语言开始编写的,后来改写为C语言,改造过程中较为复杂,使用不便。MA TLAB是随着Windows环境的发展而迅速发展起来的。它充分利用了Windows环境下的交互性、多任务功能语言,使得矩阵计算、数值运算变得极为简单。MA TLAB语言是一种更为抽象的高级计算机语言,既有与C语言等同的一面,又更为接近人的抽象思维,便于学习和编程。同时,它具有很好的开放性,用户可以根据自己的需求,利用MA TLAB提供的基本工具,灵活地编制和开发自己的程序,开创新的应用。 本书重点介绍了MA TLAB的矩阵运算、符号运算、图形功能、控制系统分析与设计、SimuLink仿真等方面的内容。 Chap1 MATLAB入门与基本运算 本章介绍MATLAB的基本概念,包括工作空间;目录、路径和文件的管理方式;帮助和例题演示功能等。重点介绍矩阵、数组和函数的运算规则、命令形式,并列举了可能得到的结果。由于MA TLAB的符号工具箱是一个重要分支,其强大的运算功能在科技领域有特殊的帮助作用。 1.1 MATLAB环境与文件管理 1.2 工作空间与变量管理 1.2.1 建立数据 x1=[0.2 1.11 3]; y1=[1 2 3;4 5 6]建立一维数组x1和二维矩阵y1。分号“;”表示不显示定义的数据。 MATLAB还提供了一些简洁方式,能有规律地产生数组: xx=1:10 %xx从1到10,间隔为1 xx=-2:0.5:1 %xx从-2到1,间隔为0.5 linespace命令等距离产生数组,logspace在对数空间中等距离产生数组。对于这一类命令,只要给出数组的两端数据和维数就可以了。 xx=linespace(d1,d2,n) %表示xx从d1到d2等距离取n个点 xx=logspace(d1,d2,n) %表明xx从10d1到10d2等距离取n个点 1.2.2 who和whos命令 who: 查看工作空间中有哪些变量名 whos: 了解这些变量的具体细节 1.2.3 exist命令 查询当前的工作空间内是否存在一个变量,可以调用exist()函数来完成。 调用格式:i=exist(…A?); 式中,A为要查询的变量名。返回的值i表示A存在的形式: i=1 表示当前工作空间内存在一个变量名为A的矩阵; i=2 表示存在一个名为A.m的文件; i=3 表示MATLAB的工作路径下存在一个名为A.mex的文件;

增量调制MATLAB仿真实验

增量调制MATLAB仿真实验

增量调制(DM)实验 一、实验目的 (1)进一步掌握MATLAB的应用。 (2)进一步掌握计算机仿真方法。 (3)学会用MATLAB软件进行增量调制(DM)仿真实验。 二、实验原理 增量调制是由PCM发展而来的模拟信号数字化的一种编码方式,它是PCM的一种特例。增量调制编码基本原理是指用一位编码,这一位码不是表示信号抽样值的大小,而是表示抽样幅度的增量特性,即采用一位二进制数码“1”或“0”来表示信号在抽样时刻的值相对于前一个抽样时刻的值是增大还是减小,增大则输出“1”码,减小则输出“0”码。输出的“1”,“0”只是表示信号相对于前一个时刻的增减,不表示信号的绝对值。 增量调制最主要的特点就是它所产生的二进制代码表示模拟信号前后两个抽样值的差别(增加、还是减少)而不是代表抽样值本身的大小,因此把它称为增量调制。在增量调制系统的发端调制后的二进制代码1和0只表示信号这一个抽样时刻相对于前一个抽样时刻是增加(用1码)还是减少(用0码)。收端译码器每收到一个1码,译码器的输出相对于前一个时刻的值上升一个量化阶,而收到一个0码,译码器的输出相对于前一个时刻的值下降一个量化阶。 增量调制(DM)是DPCM的一种简化形式。在增量调制方式下,采用1比特量化器,即用1位二进制码传输样值的增量信息,预测器是

一个单位延迟器,延迟一个采样时间间隔。预测滤波器的分子系数向量是[0,1],分母系数为1。当前样值与预测器输出的前一样值相比较,如果其差值大于零,则发1码,如果小于零则发0码。 三、实验内容 增量调制系统框图如图一所示,其中量化器是一个零值比较器,根据输入的电平极性,输出为 δ,预测器是一个单位延迟器,其输出为前一个采样时刻的解码样值,编码器也是一个零值比较器,若其输入为负值,则编码输出为0,否则输出为1。解码器将输入1,0符号转换为 δ,然后与预测值相加后得出解码样值输出,同时也作为预测器的输入 输入样值 e n e n =δsgn(e n ) 传输 n ) n n-1+δsgn(e n ) x n + - + + 预测输出 + n-1 + 预测输出 解码样值输出 x n-1 预测输入x n =x n-1+δsgn(e n ) 图一 增量调制原理框图 设输入信号为: x(t)=sin2π50t+0.5sin 2π150t 增量调制的采样间隔为1ms,量化阶距δ=0.4,单位延迟器初始值为0。建立仿真模型并求出前20个采样点使客商的编码输出序列以 解码 编码 二电平量化 单位延迟 单位 延迟

MATLAB程序设计实验报告

MATLAB 程序设计实验报告 一、实验目的 1. 通过实验熟悉MATLAB 仿真软件的使用方法; 2. 掌握用MATLAB 对连续信号时域分析、频域分析和s 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 3. 掌握用MATLAB 对离散信号时域分析、频域分析和z 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 4. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。 二、实验设备 1. 计算机 : 2. MATLAB R2007a 仿真软件 三、实验原理 对系统的时域分析 信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。 (1)信号的相加和相乘:已知信号)(1t f 和)(2t f ,信号相加和相乘记为 )()(1t f t f =)(2t f +;)()(1 t f t f =)(2t f *。 (2)信号的微分和积分:对于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function,’variable’,n),其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。连续信号的积分运算用int 函数来完成,语句格式为:diff(function,’variable’,a,b),其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a 和b 省略时为求不定积分。 (3)信号的平移、翻转和尺度变换 信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(t f 的面积和能量。信号的尺度变换是对信号)(t f 在时间轴上的变化,可使信号压缩或扩展。)(at f 将原波形压缩a 倍,)/(a t f 将原波形扩大a 倍。 ¥ 对系统频率特性的分析

matlabsimulink初级教程

S i m u l i n k仿真环境基础学习Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1)在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口,如图7.1所示。

图7.1Simulink界面 (2)单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。 (3)在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。 (4)用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图7.2所示。

(5) Scope ”模块(示波器)拖放到“untitled ”窗口中。 (6)在“untitled ”窗口中,用鼠标指向“SineWave ”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope ”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7)开始仿真,单击“untitled ”模型窗口中“开始仿真”图标 ,或者选择菜单“Simulink ”——“Start ”,则仿真开始。双击“Scope ” 模块出现示波器显示屏,可以看到黄色的正弦波形。如图7.4所示。 图7.2Simulink 界面

高频电子线路Matlab仿真实验

高频电子线路Matlab 仿真实验要求 1. 仿真题目 (1) 线性频谱搬移电路仿真 根据线性频谱搬移原理,仿真普通调幅波。 基本要求:载波频率为8kHz ,调制信号频率为400Hz ,调幅度为0.3;画出调制信号、载波信号、已调信号波形,以及对应的频谱图。 扩展要求1:根据你的学号更改相应参数和代码完成仿真上述仿真;载波频率改为学号的后5位,调制信号改为学号后3位,调幅度设为最后1位/10。(学号中为0的全部替换为1,例如学号2010101014,则载波为11114Hz ,调制信号频率为114,调幅度为0.4)。 扩展要求2:根据扩展要求1的条件,仿真设计相应滤波器,并获取DSB-SC 和SSB 的信号和频谱。 (2) 调频信号仿真 根据调频原理,仿真调频波。 基本要求:载波频率为30KHz ,调制信号为1KHz ,调频灵敏度32310f k π=??,仿真调制信号,瞬时角频率,瞬时相位偏移的波形。 扩展要求:调制信号改为1KHz 的方波,其它条件不变,完成上述仿真。 2. 说明 (1) 仿真的基本要求每位同学都要完成,并且记入实验基本成绩。 (2) 扩展要求可以选择完成。

1.0 >> ma = 0.3; >> omega_c = 2 * pi * 8000; >> omega = 2 * pi * 400; >> t = 0 : 5 / 400 / 1000 : 5 / 400; >> u_cm = 1; >> fc = cos(omega_c * t); >> fa = cos(omega * t); >> u_am = u_cm * (1 + fa).* fc; >> U_c =fft(fc,1024); >> U_o =fft(fa,1024); >> U_am =fft(u_am, 1024); >> figure(1); >> subplot(321);plot(t, fa, 'k');title('调制信号');grid;axis([0 2/400 -1.5 1.5]); >> subplot(323);plot(t, fc, 'k');title('高频载波');grid;axis([0 2/400 -1.5 1.5]); >> subplot(325);plot(t, u_am, 'k');title('已调信号');grid;axis([0 2/400 -3 3]); >> fs = 5000; >> w1 = (0:511)/512*(fs/2)/1000; >> subplot(322);plot(w1, abs([U_am(1:512)']),'k');title('调制信号频谱');grid;axis([0 0.7 0 500]); >> subplot(324);plot(w1, abs([U_c(1:512)']),'k');title('高频载波频谱');grid;axis([0 0.7 0 500]); >> subplot(326);plot(w1, abs([U_am(1:512)']),'k');title('已调信号频谱');grid;axis([0 0.7 0 500]); 1.1 >> ma = 0.8; >> omega_c = 2 * pi * 11138; >> omega = 2 * pi * 138; >> t = 0 : 5 / 400 / 1000 : 5 / 400; >> u_cm = 1; >> fc = cos(omega_c * t);

Matlab程序设计实验报告

实验七Matlab 程序设计 实验目的: 1、掌握建立和执行M 文件的方法; 2、掌握实现选择结构的方法; 3、掌握实现循环结构的方法。 实验内容: 1. 编写用 5 次多项式拟合函数y=sin(x), x [0, 2 ]的脚本M 文件,要求绘图观察拟合的效果。 function shiyan1 x=0:0.5:2*pi y=sin(x) p=polyfit(x,y,5) x1=0:0.2:2*pi y1=polyval(p,x1) plot(x,y, 'b' ,x1,y1, '*r' x =

Columns 1 through 9 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 Columns 10 through 13 4.5000 5.0000 5.5000 6.0000 y = Columns 1 through 9 0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411 -0.3508 -0.7568 Columns 10 through 13 -0.9775 -0.9589 -0.7055 -0.2794 p = -0.0056 0.0881 -0.3967 0.2671 0.8902 0.0029 x1 = Columns 1 through 10 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 Columns 11 through 20

2. 2.2000 2.4000 2.6000 2.8000 3.0000 3.2000 3.4000 3.6000 1.8001 Columns 21 through 30 4.0 4.2000 4.4000 4.6000 4.8000 5.0000 5.2000 5.4000 5.6000 5.8000 Columns 31 through 32 6.0 6.2000 y1 = Columns 1 through 10 0.29 0.1886 0.3786 0.5585 0.7172 0.8461 0.9391 0.9926 1.0048 0.9761 Columns 11 through 20 0.9083 0.8048 0.6701 0.5098 0.3301 0.1381 -0.0590 -0.2538 -0.4389 -0.6073 Columns 21 through 30 -0.7524 -0.8685 -0.9505 -0.9949 -0.9991 -0.9626 -0.8863 -0.7732 -0.6288 -0.4606 Columns 31 through 32

matlab电力电子仿真教程

MATLAB在电力电子技术中的应用 目录 MATLAB在电力电子技术中的应用 (1) MATLAB in power electronics application (2) 目录 (4) 1绪论 (6) 1.1关于MATLAB软件 (6) 1.1.1MATLAB软件是什么 (6) 1.1.2MATLAB软件的特点和基本操作窗口 (7) 1.1.3MATLAB软件的基本操作方法 (10) 1.2电力电子技术 (12) 1.3MATLAB和电力电子技术 (13) 1.4本文完成的主要内容 (14) 2MATLAB软件在电路中的应用 (15) 2.1基本电气元件 (15) 2.1.1基本电气元件简介 (15) 2.1.2如何调用基本电器元件功能模块 (17) 2.2如何简化电路的仿真模型 (19) 2.3基本电路设计方法 (19) 2.3.1电源功能模块 (19) 2.3.2典型电路设计方法 (20) 2.4常用电路设计法 (21) 2.4.1ELEMENTS模块库 (21) 2.4.2POWER ELECTRONICS模块库 (22) 2.5MATLAB中电路的数学描述法 (22) 3电力电子变流的仿真 (25) 3.1实验的意义 (25) 3.2交流-直流变流器 (25)

3.2.1单相桥式全控整流电路仿真 (26) 3.2.2三相桥式全控整流电路仿真 (38) 3.3三相交流调压器 (53) 3.3.1无中线星形联结三相交流调压器 (53) 3.3.2支路控制三角形联结三相交流调压器 (59) 3.4交流-交流变频电路仿真 (64) 3.5矩阵式整流器的仿真 (67)

相关文档
最新文档