wind量化MATLAB接口功能

wind量化MATLAB接口功能
wind量化MATLAB接口功能

MATLAB接口主要功能是读取数据并且支持一些基本的函数运算。

1. windmatlab

创建windmatlab数据提取对象;

比如w=windmatlab,即可创建w对象句柄。

help windmatlab,即可查看windmatlab各类接口命令说明。

2. menu

用来显示wind数据向导工具条,也可以指定只显示特定的向导窗体。

比如w.menu(‘wsd’),即只显示wsd向导窗体。

查看menu说明,可以输入help windmatlab/menu

3. isconnected

用来确定创建的wind data object对象是否成功登陆。

比如x=isconnected(w),即判断wind对象w是否已经登陆成功。

4. cancelRequest

可以根据创建的数据请求id,取消数据请求。

比如你订阅了实时数据,返回reqid,那么想取消订阅,则可以通过如下命令行:

w.cancelRequest(reqid)

5. wsd

返回选定证券品种的历史序列数据,包括日间的行情数据,基本面数据以及技术数据指标。

[data,codes,fields,times,errorid,reqid] = w.wsd(windCodes,windFields,startTime,endTime,v arargin)

其中,Data返回序列数据结果集。

Codes返回提取数据的WindCode代码。

Fields返回提取的指标名。

Times返回时间序列。

errorID返回错误ID号。

reqID返回请求ID号。

6. wsi

返回指定品种的日内分钟K线数据,包含历史和当天,分钟周期可以指定,技术指标参数可以自定义设置;

[data,codes,fields,times,errorid,reqid] = w.wsi(windCodes,windFields,startTime,endTime,va rargin)

7. wst

返回日内盘口买卖十档快照数据和分时成交数据;

[data,codes,fields,times,errorid,reqid] = w.wst(windCodes,windFields,startTime,endTime,va rargin)

8. wss

返回指定品种的历史截面数据,比如取沪深300只股票的2012年3季度的净利润财务指标数据;[data,codes,fields,times,errorid,reqid] = w.wss(windCodes,windFields,varargin)

9. wsq

可以返回当天实时指标数据,数据可以一次性请求,也可以通过订阅的方式获取当日实时行情数据;

?一次性请求实时行情数据:

[data,codes,fields,times,errorid,reqid] = w.wsq(windCodes,windFields)

?订阅实时行情数据:

[data,codes,fields,times,errorid,reqid] = w.wsq(windCodes,windFields,callback)

其中callback为回调函数,用来指定实时指标触发时执行相应的回调函数;

10. wset

返回数据集,包括板块成分、指数成分、ETF申赎成分信息、分级基金明细、融资标的、融券标的、融资融券担保品、回购担保品、停牌股票、复牌股票、分红送转。参数设置为起止日期、板块名称等。[data,codes,fields,times,errorid,reqid]=w.wset(windCodes windFields, varargin)

注意:wset、wpf、tdays、tdaysoffset、tday函数第二个与第四个输出变量没有实际意义,仅仅是为了保持与wsd、wss、wst、wsq函数输出格式的统一性。

11. weqs

返回终端的股票筛选列表。

[w_weqs_data,w_weqs_codes,w_weqs_fields,w_weqs_times,w_weqs_errorid,w_weqs_reqid]= w.weqs(ScreenName)

12. wpf

读取交易账户(AMS)与资管账户(PMS)中的报表数据。

[data,codes,fields,times,errorid,reqid]=w.wpf(windCodes windFields, varargin)

注意:wset、wpf、tdays、tdaysoffset、tday函数第二个与第四个输出变量没有实际意义,仅仅是为了保持与wsd、wss、wst、wsq函数输出格式的统一性。

13. tdays/tdaysoffset/tdayscount

日期函数,包括tdays 、tdaysoffset、tdayscount三个函数,其功能分别是交易日序列、偏移日期、交易日合计等。

[data,codes,fields,times,errorid,reqid]=w.tdays(startTime,endTime, TradingCalendar,vararg in)

[data,codes,fields,times,errorid,reqid]=w.tdaysoffset(startTime,endTime, TradingCalendar, varargin)

[data,codes,fields,times,errorid,reqid]=w.tdayscount(startTime,endTime, TradingCalendar,v arargin)

其中TradingCalendar是交易所代码。

注意:wset、wpf、tdays、tdaysoffset、tday函数第二个与第四个输出变量没有实际意义,仅仅是为了保持与wsd、wss、wst、wsq函数输出格式的统一性。

14. tlogon/tlogout/torder/tcancel/tquery

交易函数包括tlogon、tlogout、torder、 tcancel、 tquery五个函数,其功能分别为登录、登出、下单、撤单、查询功能。

[data,fields,errorcode]=w.tlogon(BrokerID, DepartmentID,AccountID,Password,AccountTyp e)

[data,fields,errorcode]=w.tlogout(logonID)

[data,fields,errorcode]=w.torder(WindCode,TradeSide, OrderPrice,OrderVolume,option)

[data,fields,errorcode]=w.tcancel(OrderNumber,option)

[data,fields,errorcode]=w.tquery(QueryType,option)

15. showblank参数

Showblank 任何参数可以指定对返回的NaN 单元进行特别处理,如:NaN 用-1 替换:

w.wsd('600001.sh','open,close','20130707','20130909','showblank=-1');

或者:w.wsd('600001.sh','open,close','20130707','20130909','showblank=0');

如果NaN用0替换:

w.wsd('600001.sh','open,close','20130707','20130909','showblank=0');

或者w.wsd('600001.sh','open,close','20130707','20130909',showblank=0);

16. 交易接口的Showfields 参数

客户需要指定特定的返回字段,此时可以使用showfields

参数。如:

w.tquery(1,'showfields=securitycode,Profit,securityBalance')

字段名可参考交易接口查询返回的数据字段。

matlab实现:常见的离散时间信号

1. 单位抽样序列,或称为离散时间冲激,单位冲激: ? ??=01)(n δ 00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-01)(k n δ 0≠=n k n 2.单位阶跃序列 ? ??01)(n u 00<≥n n 在MATLAB 中可以利用ones( )函数实现。 );,1(N ones x = 3.正弦序列 )(cos )(0φω+=n A n x 这里, ,,0ωA 和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。 πω200=f 为频率。 4.复正弦序列 n j e n x ω=)( 5.实指数序列 n A n x α=)( 6. 随机序列 长度为N 的随机序列 基本数学函数参考教材P69页以及随后的使用说明。 注意使用行向量,特别是冒号运算符。 举例,长度为N 的实指数序列在MATLAB 中实现: n a x N n .^1 :0=-= 1. 单位采样 长度为N 的单位采样序列u(n)可以通过下面的MATLAB 命令获得:

u=[1 )1,1(-N zeros ]; 延迟M 个采样点的长度为N 的单位采样序列ud(n)(M

MATLABAPI详解

MATLAB、API详解 【例12.1.4-1】有一个绘圆的M脚本文件circle.m如下。希望获得一个MEX绘圆程序。(1)原始的绘圆脚本文件 [circle.m] clf;r=2;t=0:pi/100:2*pi;x=r*exp(i*t); plot(x,'r*');axis('square') (2)对这脚本文件直接编译将因错误而失败 mcc -x circle ??? Error: File "circle" is a Script M-file and cannot be compiled with the current Compiler. Error in ==> H:\MATLAB53\toolbox\compiler\mcc.dll (3)把脚本文件改写成函数文件。 [circle_f.m]: function circle_f(r) clf;t=0:pi/100:2*pi;x=r*exp(i*t); plot(x,'r*');axis('square') (4)再对circle_f.m进行编译,将顺利通过。 mcc -x circle_f %mcc是编译指令,详见12.4节。 (5)运行生成的MEX文件circle_f.dll circle_f(0.5) %调用circle_f绘制一半径为0.5的圆 which circle_f %查询所调用的circle_f的路径全称。

图 12.2.1-1 【Select MATLAB Componets】对话窗的选项局部图 图 12.2.2.1-1 为产生MEX文件所产生的配置屏1

图 12.2.2.1-2 为产生MEX文件所产生的配置屏2 12.1.1.1配置正确性的验证 (1)mex应用程序的验证 cd d:\mywork %把用户目录指定为当前目录 mex my_yprime.c %由my_yprime.c文件生成my_yprime.dll文件my_yprime(1,1:4) %运行my_yprime.dll文件 which my_yprime %获得my_yprime.dll文件的位置信息 ans = 2.0000 8.9685 4.0000 -1.0947 d:\mywork\my_yprime.dll (2)在MATLAB命令窗中验证mcc应用程序 mcc -x my_yprime_m%<1> my_yprime_m(1,1:4) which my_yprime_m ans = 2.0000 8.9685 4.0000 -1.0947 d:\mywork\my_yprime_m.dll (3)在 DOS提示符后验证mex、mcc应用程序

常用信号的MATLAB表示

5 常用信号的MATLAB表示5.1单位冲激函数、单位冲激序列 示例7: t = -5:0.01:5; y = (t==0); subplot(121); plot(t, y, 'r'); n = -5:5; x = (n==0); subplot(122); stem(n, x); 图5 运行结果如图5所示。

程序说明: (1)由n = -5:5得到一个1×11数组n;而在x = (n==0)中,n==0是一个向量运算,即向量n中的每一个元素与0比较是否相等,其比较结果0或1放在x中。这样得到的向量x也是1×11数组,且正好就是单位冲激序列。 (2)在MATLAB中,任何向量x的下标是从1开始的,不能取零或负值,而x(n)中的时间变量n则不此受限制。因此向量x的下标与时间变量n是两个概念,如本例中向量x(n)的下标是从1到11,而时间变量n是从-5到5。所以必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。在信号的表示和运算中,这一点请务必注意;只有当序列x(n)的时间变量正好是从1开始时,才能省去时间变量n,因为此时向量的下标与时间变量相同。 (3)单位冲激函数的实现方法实际上与单位冲激序列是完全相同的,都是用序列表示。只不过表示连续时间信号的序列中两相邻元素所对应的时间间隔更小,如本例中t的间隔为0.01,而表示离散时间信号的序列中两相邻元素所对应的时间间隔一般为1。 由于单位冲激序列在信号与系统中经常使用,我们专门编制一个函数文件delta.m,在后面的实验部分直接调用该函数即可产生需要的波形。 % delta.m function [x, n] = delta(n1,n2,k) % 产生冲激序列δ(n-k),其中n1<=n<=n 2, n1<=k<=n2

实验1 常见离散信号的MATLAB产生和图形显示

实验1 常见离散信号的MATLAB 产生和图形显示 一、实验目的:加深对常用离散信号的理解 二、实验原理: 1.单位抽样序列:???=01)(n δ 00 ≠=n n 在MATLAB 中可以利用zeros()函数实现。 ; 1)1();,1(==x N zeros x 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n ?δ即:? ??=?01)(k n δ 0≠=n k n 2.单位阶越序列:???0 1 )(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。(1,)x ones N = 3.正弦序列:)/2sin()(?π+=Fs fn A n x 在MATLAB 中 ) /***2sin(*1 :0fai Fs n f pi A x N n +=?= 4.复正弦序列:n j e n x ?=)( 在MATLAB 中 ) **exp(1 :0n w j x N n =?= 5.指数序列:n a n x =)( 在MATLAB 中 n a x N n .^1:0=?= 三、实验内容: 1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。 2、讨论正弦序列、复指数序列的性质: (1)绘出信号()zn x n e =,当1126z j π=?+、1126z j π=+、112 z =、62πj z +=、6π j z =时 信号的实部和虚部图;当6 π j z =时信号的周期为多少?

(2)绘出信号() 1.5sin(2*0.1)x n n π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。 3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc 函数,并绘图。 四、实验要求: 1、预先阅读MATLAB 基础; 2、讨论复指数序列的性质。

常见连续信号的MATLAB表示

实验名称:常见连续信号的MATLAB 表示 报告人: 姓名班级学号 一、实验目的 1、熟悉常见连续时间信号的意义、特性及波形; 2、学会使用MATLAB 表示连续时间信号的方法; 3、学会使用MATLAB 绘制连续时间信号的波形。 二、实验内容及运行结果 1、运行以上5个例题的程序,保存运行结果。 2、已知信号()t f 的波形如下图所示,试用MATLAB 绘出满足下列要求的信号波形。 <1)()t f -; <2)()2-t f ; <3)()at f <其中a 的值分别为 21= a 和2=a ); <4)? ?? ??+12 1t f 。 第一题 例题1

程序如下: >> t1=-10:0.5:10。 >> f1=sin(t1>./t1。 >> figure(1> >> plot(t1,f1> >> xlabel('取样间隔p=0.5'>。 >> title('f(t>=Sa(t>=sin(t>/t'>。>> t2=-10:0.1:10。 >> f2=sin(t2>./t2。 >> figure(2> >> plot(t2,f2> >> xlabel('取样间隔p=0.1'>。 >> title('f(t>=Sa(t>=sin(t>/t'>。运行结果如下:

f(t)=Sa(t)=sin(t)/t 取样间隔p=0.5 f(t)=Sa(t)=sin(t)/t 取样间隔p=0.1例题2 程序如下: >> syms t >> f=sin(t>/t。 >> ezplot(f,[-10,10]>运行结果如下:

sin(t)/t t 例题3: 程序如下: >> t=-1:0.01:4。 >> t0=0。 >> ut=stepfun(t,t0>。>> plot(t,ut> >> axis([-1,4,-0.5,1.5]>运行结果如下:

基于matlab的直接序列扩频通信系统仿真

基于MATLAB的直接序列扩频通信系统仿真 1.实验原理:直接序列扩频(DSSS)是直接利用具有高码率的扩频码系列采用各种调 制方式在发端与扩展信号的频谱,而在收端,用相同的扩频码序去进行解扩,把扩展宽的扩频信号还原成原始的信息。它是一种数字调制方法,具体说,就是将信源与一定的PN码(伪噪声码)进行摸二加。例如说在发射端将"1"用11000100110,而将"0"用00110010110去代替,这个过程就实现了扩频,而在接收机处只要把收到的序列是11000100110就恢复成"1"是00110010110就恢复成"0",这就是解扩。这样信源速率就被提高了11倍,同时也使处理增益达到10DB以上,从而有效地提高了整机倍噪比。 1.1 直扩系统模型 直接序列扩频系统是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端用与发送端相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信号。对干扰信号而言,与伪随机码不相关,在接收端被扩展,使落入信号通频带的干扰信号功率大大降低,从而提高了相关的输出信噪比,达到了抗干扰的目的。直扩系统一般采用频率调制或相位调制的方式来进行数据调制,在码分多址通信中,其调制多采用BPSK、DPSK、QPSK、MPSK等方式,本实验中采取BPSK方式。 直扩系统的组成如图1所示,与信源输出的信号a(t)是码元持续时间为Ta的信息流,伪随机码产生器产生伪随机码c(t),每个伪随机码的码元宽度为Tc (Tc<

实验一--常见离散信号的MATLAB产生和图形显示

实验一 常见离散信号的MATLAB 产生和图形显示 授课课时:2学时 一、实验目的: (1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。 (2)掌握MATLAB 在时域内产生常用离散时间信号的方法。 (3)掌握离散信号的基本运算。 (4)掌握简单的绘图命令。 二、实验原理: (一)信号的表示和产生 ① 单位抽样序列 ? ??=01)(n δ 00 ≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-0 1)(k n δ ≠=n k n 参考程序: 例1-1:)2010(()(<<-=n n n x )δ clear all n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。 n=n1:n2;%生成离散信号的时间序列 x=[n==n0];%生成离散信号x(n) stem(n,x);%绘制脉冲杆图

xlabel(' n');ylabel('x(n)');%横坐标和纵坐标的标注说明。 title('Unit Sample Sequence');%图形上方标注图名 axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围 ② 单位阶跃序列 ???=0 1 )(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x ) clear all n1=-2;n2=20;n0=0; n=n1:n2;%生成离散信号的时间序列 x=[n>=n0];%生成离散信号x(n) stem(n,x,'filled'); xlabel('n');ylabel('x(n)'); title('Unit step Sequence'); axis([-2 20 0 1.2]); ③ 正弦序列 )sin()(?+=wn A n x 例1-3:一正弦信号的频率为1HZ ,振幅值幅度A 为1V ,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。 参考程序: clear f=1; A=1;nt=2;

第13章 MATLAB外部程序接口技术_习题答案

1 第13章 MATLAB 外部程序接口技术 习题13 一、选择题 1.要在Word 环境下调用MATLAB 的命令,需要调用Word 的( )模板。B A .Normal B .M-Book C .自由格式 D .空白文档 2.在Excel 环境下加载Spreadsheet Link 程序后,会在Excel 窗口的“开始”选项卡中增加一个( )命令组。D A .Excel B .Spreadsheet C .Link D .MATLAB 3.打开一个可读可写的文本文件,其打开方式为 。A A .rt+ B .r+ C .rwt D .a 4.以下选项中,用于定义指向MAT 文件指针的命令是( )。A A .MA TFile *p; B .MAT *p; C .File *p; D .FIL E *p; 5.关于MATLAB 引擎,下列说法中不正确的是( )。C A .利用MA TLA B 引擎,可以在 C 程序中调用MA TLAB 的函数。 B .通过MATLAB 引擎,可以提高开发应用程序的效率。 C .通过MA TLAB 引擎,可以在MA TLAB 中直接调用用C 语言编写的函数 D .包含MA TLAB 引擎函数的程序的执行效率减低。 二、填空题 1.在Word 与MATLAB 之间进行传递的内容称为 ,由M-Book 文档传向MATLAB 的命令称为 ,M-Book 文档中的MATLAB 命令的执行结果称为 。单元(Cell ),输入单元(Input Cell ),输出单元(Output Cell ) 2.Excel 和MA TLAB 的交互操作,通过 程序来实现。Spreadsheet Link 3.MA TLAB 文件操作的基本步骤是,先 文件,在对文件进行 ,最后 文件。打开,读写,关闭 4.对MAT 文件进行操作的C 程序中,一定要包含 头文件。mat.h 5.MEX 函数在头文件 中得到声明。mex.h 三、应用题 1.在MA TLAB 中创建一个100 × 200的随机矩阵,然后将数据导入到Excel 表格中,在Excel 中调用MATLAB 的差分函数按列进行差分运算。 2.已知)2ln(x y + =π,当x 取-3.0、-2.9、-2.8、…、2.8、2.9、3.0时,求各点的 函数值。要求: (1)将函数值输出到一个数据文件中。

用MATLAB实现常用的离散时间信号及其时域运算

用M A T L A B实现常用的离散时间信号及其时域 运算 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

实验四用M A T L A B实现常用的离散时间信号及其时域运算 —— 摘要:在MATLAB中,只能用向量来表示离散时间信号。与连续信号不同,离散时间信号无法用符号运算来表示。用适当的MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时间信号的。在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须有相同的维数。 一、实验目的:(1)学习MATLAB语言及其常用指令; (2)学习和掌握用MATLAB语言产生离散时间信号的编程方法; (3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运算。二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号; (2)用MATLAB语言实现离散时间信号的时域运算。 三、实验原理:(1)单位阶跃序列和单位样值序列。 离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的序列。单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非常典型的序列,分别记为u(n)和δ(n)。它们的定义分别如下: 1 n≥0 1 n≥0 u(n)= δ(n)= 0 n<0 0 n≠0 若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为:

在MATLAB环境下访问外部函数的共享库文件

在MA TLAB环境下访问外部函数的共享库文件,必须首先把该库文件加载到内存中。一旦加载成功,就能直接在MA TLAB中直接请求关于函数的任何信息。而当不再需要该库时,就应当及时把库文件从内存中卸载以节省内存开销。 加载库 语法:loadlibrary(…shrlib?,?hfile?) 其中shrlib为加载的动态链接库文件名(filename.dll),hfile为头文件名,它包含函数原型。例如,当加载包含MA TLAB中mx程序的libmx库时,可以使用下列语句。 hfile=[matlabroot?\extern\include\matrix.h?]; loadlibray(…libmx?, hfile) 卸载库 语法:unloadlibrary libmx 使用两个函数可以获取加载库的信息: libfunctions(…libname?) or libfunctions libname libfunctionsview(…libname?) or libfunctionsview libname 这两个函数的不同之处在于显示结果的方式不同,后者是以图形的方式显示在新的窗口中。而前者返回库libmx中有哪些可用的函数。请看示例: libfunctions libmx Methods for class lib.libmx: mxAddField mxGetFieldNumber mxIsLogicalScalarTrue mxArrayToString mxGetImagData mxIsNaN mxCalcSingleSubscript mxGetInf mxIsNumeric mxCalloc mxGetIr mxIsObject mxClearScalarDoubleFlag mxGetJc mxIsOpaque mxCreateCellArray mxGetLogicals mxIsScalarDoubleFlagSet 如果加上命令开头-full,则可以显示函数返回值的细节。 libfunctions libmx -full Methods for class lib.libmx: [mxClassID, MA TLAB array] mxGetClassID(MA TLAB array) [lib.pointer, MA TLAB array] mxGetData(MA TLAB array) [MA TLAB array, voidPtr] mxSetData(MA TLAB array, voidPtr) [lib.pointer, MA TLAB array] mxGetPr(MA TLAB array) [MA TLAB array, doublePtr] mxSetPr(MA TLAB array, doublePtr) uint8 mxIsFinite(double) uint8 mxIsInf(double) 值得注意的是,这两个函数返回值的类型均是MA TLAB的数据类型,虽然函数是利用C语言编写的。调用库函数 一旦库函数被加载到了内存空间,只要指定库名、函数名和变量就可以使用calllib函数调用库中的任何函数了。语法格式: calllib(…libname?,?funcname?,arg1,…,argn) 下列语句显示如何操作: hfile=['C:\MA TLAB7\extern\include\matrix.h'];

Matlab实现M序列的产生及其自相关序列学习资料

M a t l a b实现M序列的产生及其自相关序 列

电子信息工程专业课程设计任务书

1 需求分析 伪随机信号既有随机信号所具有的优良的相关性,又有随机信号所不具备的规律性. 因此,伪随机信号既易于从干扰信号中被识别和分离出来,又可以方便地产生和重复,其相关函数接近白噪声的相关函数, 有随机噪声的优点,又避免了随机噪声的缺点. 伪随机序列具有可确定性、可重复性,易于实现相关接受或匹配接受,故有很好的抗干扰性能. 因此伪随机序列在相关辩识、伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、误码测试、线形系统测量、数据加扰、信号同步等方面均有广泛的应用. m序列是伪随机序列中最重要的一种,是最长线性移位寄存器序列,m序列易于实现,具有优良的自相关特性,在直扩通信系统中用于扩展要传递的信号。可以通过移位寄存器,利用MATLAB编程产生m序列。 2 概要设计 m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的. 由n级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。 带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。 n级线性移位寄存器的如图1所示: 图1 n级线性移位寄存器

图中i C 表示反馈线的两种可能连接方式,i C =1表示连线接通,第n-i 级输出加入反馈中;i C =0表示连接线断开,第n-i 级输出未参加反馈。 因此,一般形式的线性反馈逻辑表达式为 112201 (mod 2)n n n n n i n i i a C a C a C a C a ---==⊕⊕⊕=∑L 将等式左面的n a 移至右面,并将00(1)n n a C a C ==代入上式,则上式可改写为 10 0n i n i C a -==∑ 定义一个与上式相对应的多项式 ()n i i i F x C x ==∑ 其中x 的幂次表示元素的相应位置。式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m 序列: (1) F(x)是不可约的,即不能再分解多项式; (2) F(x)可整除1p x +,这里21n p =-; (3) F(x)不能整除1q x +,这里q

几种简单连续信号的matlab实现

连续信号及其MATLAB实现(原创) 连续信号又称为模拟信号,其信号存在于整个时间范围内,包括单位冲激信号,单位阶跃信号,斜坡信号,实指数信号,正弦信号,指数调制正弦信号,等等。以下我们将这几种常见的连续信号用MATLAB实现。 1、单位冲激信号 【例1】t=1/A=1/50时,单位脉冲δ(t)的MATLAB实现程序如下: clear all t1=-0.5:0.001:1; K=3; n1=length(t1); u=zeros(1,n1); t2=-0.5:0.001:0; n2=length(t2); u(n2)=K; plot(t1,u) 2、任意函数 【例2】脉冲序列: f(n)=0.4δ(n-2)+0.8δ(n-1)+1.2δ(n)+1.5δ(n+1)+1.0δ(n+2)+0.7δ(n+3),其MATLAB实现程序如下: clear all t=-2:1:3; N=length(t); x=zeros(1,N); x(1)=0.4; x(2)=0.8; x(3)=1.2; x(4)=1.5; x(5)=1.0; x(6)=0.7; stem(t,x) axis([-2.2 3.2 0 1.7]) 3、单位阶跃函数

【例3】单位阶跃函数的MATLAB实现程序: clear all t=-0.5:0.001:1; t0=0; u=stepfun(t,t0); plot(t,u) axis([-0.6 1 -0.2 1.2]) 4、斜坡函数 【例4】斜坡函数:g(t)=3(t-1),其MATLAB实现程序如下: clear all t=0:0.001:3; B=3; t0=1; u=stepfun(t,t0); n=length(t); for i=1:n u(i)=B*u(i)*(t(i)-t0); end plot(t,u) axis([-0.2 3.1 -0.2 6.2]) 5、实指数函数 【例5】实指数函数:f(t)=3exp(0.5t),其实现程序: clear all t=0:0.001:3; B=3; A=3; a=0.5; u=A*exp(a*t); plot(t,u)

915200-MATLAB程序设计与应用-第13章 MATLAB外部程序接口技术__源程序

第13章MATLAB外部程序接口技术 例13-1计算当x=[0.0,0.1,0.2,…,1.0]时,f(x)=e x的值,并将结果写入文件demo1.txt。 程序如下: x=0:0.1:1; Y=[x;exp(x)]; fid=fopen('demo1.txt','w'); fprintf(fid,'%6.2f %12.8f\n',Y); fclose(fid); 例13-2 读出例13-1生成的文件demo1.txt中的数据。 程序如下: fid=fopen('demo1.txt','r'); while 1 line=fgetl(fid); if line<0 break end disp(line) end fclose(fid); 例13-3假定文件textdemo.txt中有以下格式的数据: Name English Chinese Mathmatics Wang 99 98 100 Li 98 89 70 Zhang 80 90 97 Zhao 77 65 87 此文件第一行为标题行,第2~5行的第1列为字符型,后3列为整型。从该文件中将前3个数据读入到grades的程序段如下: fid=fopen('textdemo.txt','r'); grades=textscan(fid,'%s %d %d %d',3,'headerlines',1); 例13-4 假设文件alphabet.txt的内容是按顺序排列的26个大写英文字母,读取前5个字母的ASCII和这5个字符。 程序如下: fid=fopen('alphabet.txt','r'); c=fread(fid,5); frewind(fid); d=fread(fid,5,'*char'); fclose(fid); 1

常见离散信号的Matlab产生和图形显示

实验1 常见离散信号的Matlab 产生和图形显示 一、实验目的 1、加深对常用离散信号的理解; 2、掌握matlab 中一些基本函数的建立方法。 二、matlab 使用说明 1)创建M 文件 File-→New-→M-file 2)运行 Debug->run 注:在试验过程中若有某些函数不懂,可以通过Help->search->输入要查询的函数名即可。 三、实验原理 1.单位抽样序列 ? ??=01)(n δ 00 ≠=n n 在MATLAB 中可以利用zeros()函数实现。 ; 1)1(); ,1(==x N zeros x %创建一个1行N 列的0矩阵,将第一个值重新赋值为1 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-0 1)(k n δ ≠=n k n 2.单位阶越序列 ? ??01 )(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。 );,1(N ones x = %一个长度为N 的零矩阵

3.正弦序列 )/2sin()(?π+=Fs fn A n x 在MATLAB 中 ) /***2sin(*1 :0fai Fs n f pi A x N n +=-= 4.复指数序列 n j e r n x ??=)( 在MATLAB 中 ) **exp(1 :0n w j r x N n ?=-= 5.指数序列 n a n x =)( 在MATLAB 中 n a x N n .^1 :0=-= 四、实验内容实现和图形生成 1、五种基本函数的生成 程序如下: (1)、单位抽样序列 % 单位抽样序列和延时的单位抽样序列 clf; % Clear current figure window n=0:10; x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)]; subplot(1,2,1); stem(n,x1);xlabel ('时间序列n');ylabel('振幅');title('单位抽样序列x1'); subplot(1,2,2); stem(n,x2); xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');

常见离散信号的Matlab产生和图形显示

实验一 实验名称:常见离散信号的Matlab 产生和图形显示 一、实验目的 1、加深对常用离散信号的理解; 2、掌握matlab 中一些基本函数的建立方法。 二、实验步骤(附源代码及仿真结果图) 1、使用状况 1)创建M 文件 File-→New-→M-file 2)运行 Debug->run 2、实验原理 1)单位抽样序列 ?? ?=01)(n δ 00≠=n n 在MATLAB 中可以利用zeros()函数实现。 ;1)1();,1(==x N zeros x %创建一个1行N 列的0矩阵,将第一个值重新赋值为1 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ?? ?=-01)(k n δ 0≠=n k n 2)单位阶越序列 ?? ?01)(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。 );,1(N ones x = %一个长度为N 的零矩阵 3)正弦序列 )/2sin()(?π+=Fs fn A n x

在MATLAB 中 )/***2sin(*1 :0fai Fs n f pi A x N n +=-= 4)复指数序列 n j e r n x ??=)( 在MATLAB 中 )**exp(1 :0n w j r x N n ?=-= 5)指数序列 n a n x =)( 在MATLAB 中 n a x N n .^1:0=-= 3、实验内容 (1)、单位抽样序列 (2)、单位阶越序列

(3)正弦函数 (4)、复指数序列 (5)指数序列

2、绘出信号zn e n x =)(,当6)12/1(πj z +-=、6 )12/1(πj z +=时、121=z 、 6 2π j z +=、6πj z =时的信号实部和虚部图; 程序如下:

使用MATLAB产生各种常见的连续信号

使用MATLAB生成各种常见的连续信号 %--------------------------------------指数衰减信号--------------------------------------% % 幅值为5,频率为20Hz,衰减系数为-10的指数衰减正弦信号. % 首先产生一个可调正弦信号,再想办法产生指数衰减信号,再信号乘, % 则得到指数衰减的正弦信号. %---------------------------------------------------------------------------------------% clear;clc; A = 5; % 正弦信号的幅值 Fs = 1000; % 采样频率 N = 1024; % 采样点数 dt = 1/Fs; % 时间间隔 t0 = 0:dt:(N-1)*dt; % 时间向量 xt1 = exp(-10*t0); % 指数信号 xt2 = 5*sin(2*pi*20*t0); %正弦信号 xt = xt1.*xt2; %正弦指数衰减信号 plot(t0,xt) % 绘图 axis tight % 使坐标轴与数据匹配显示 title('指数衰减信号 X = exp(-10*t).*5*sin(2*\pi*20*t)'); % 显示标题 xlabel('t/s','FontName','New Times Roman','FontSize',11); % x轴标注 ylabel('幅值/A','FontName','New Times Roman','FontSize',11); % y轴标注 %-------------------------------------矩形脉冲信号---------------------------------------% % 幅值为10,脉宽为1,时间范围0~6s的矩形脉冲信号. clear;clc; A = 10; % 脉冲信号的幅值 W = 1; % 脉冲信号脉宽 t = 0:0.001:6; % 时间向量 xt = 10*rectpuls(t,W); % 生成脉冲信号 plot(t,xt) % 绘图 axis([0 max(t) 0 A*1.1]) % 数据与坐标轴匹配显示 title('矩形脉冲信号','FontName','New Times Roman','FontSize',11); % 显示标题 xlabel('t/s','FontName','New Times Roman','FontSize',11); % x轴标注 ylabel('X(t)','FontName','New Times Roman','FontSize',11); % y轴标注 %----------------------------------------正弦信号----------------------------------------% % 幅值为5,频率为10Hz的正弦信号. clear;clc; A = 5; % 正弦信号幅值 Fs = 1000; % 采样频率 dt = 1/Fs; % 时间间隔 N = 1024; % 采样点数 t = 0:dt:(N-1)*dt; % 时间向量 xt = 5*sin(2*pi*10*t); % 生成函数

用matlab实现常用的连续时间信号及其时域运算

用MATLAB实现常用的连续时间信号及其时域运算 信息与通信工程学院通信133班卢承慧 一.引言 1.要求: 1.1用MATLAB语言产生连续时间信号 1.2对连续时间信号进行时域运算 2.任务: ①绘制用于产生以下信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。调试并运行这些程序,具体产生由指导教师制定的信号并绘制信号波形。 t ); a. f(t)=δ(t- t )。 b. f (t) = Au(t- ②已知信号波形如图7.6所示,使用MATLAB语言求出下列信号的表达式并绘制出各信号波形。 a.f(-t); b.f(t-2); c.f(1-2t)。 图7.6任务②中的f(t)

3.思考题 编制一通用程序用于产生信号 )()cos()(0t t u t Ae t f at -=-ω,要求 对于任意给定的参数都能实现所要求的信号。 二.基本原理 1.1连续时间信号 如果在所讨论的时间间隔内,除若干个不连续点之外,对于任意时间值都可以给出确定的函数值,此信号就称为连续信号。 从严格意义上来讲,MATLAB 不能处理连续时间信号。在MATLAB 中,使用连续时间信号在等时间间隔点的样值来近似表示连续时间信号的。当取样时间间隔足够小时,这些离散的样值就能较好的近似出连续时间信号。由于在MATLAB 中,矩阵的元素个数是有限的,因此MATLAB 无法表示无限序列。 MATLAB 的绘图命令有很多种,其中比较常用的绘制连续时间信号的绘图命令有“plot ”,“stairs ”,“ezplot ”等。“plot ”适用于绘制平滑的曲线,而“stairs ”适合于绘制具有阶跃形式的图形,“ezplot ”只能用于符号函数的绘图。 1.2单位阶跃信号 单位阶跃信号的波形图如图1所示,通常以符号u (t )表示 ? ??><=)0( 1)0( 0)(t t t u 在跳变点t=0处,函数未定义,或在t=0处规定函数值u (0)= 2 1 。 图1 用MATLAB 实现单位阶跃信号 %t1:起始时刻;t2:终止时刻;t0:跳变时刻

数字信号实验1 常用序列及序列运算的Matlab实现

西 南 石 油 大 学 实 验 报 告 课 程 数字信号处理 实验项目 常用序列及序列运算的Matlab 实现 成 绩 专业年级 通信09 学 号 0907050112 指导教师 苏赋 姓 名 朱云凤 同组人姓名 王延礼 实验日 期 2012-3-19 一、实验目的 1) 掌握各种常用的序列,理解其数学表达式和波形表示。 2) 掌握在计算机中生成及绘制数字信号波形的方法。 3) 掌握matlab 中如何进行卷积运算。 二、实验要求 编制程序产生单位冲激序列、单位阶跃序列、正弦序列、指数序列和实指数序列,并利用MATLAB 中的基本图形函数绘出其图形。 三、实验原理 (1) 序列的基本概念 离散时间信号在数学上可用时间序列{()}x n 来表示,其中()x n 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为n -∞<<∞的整数,n 取其它值()x n 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号()a x t 进行等间隔采样,采样间隔为T ,得到{()}a x nT 一个有序的数字序列就是离散时间信号,简称序列。 (2) 常见的离散时间信号 1)单位抽样序列,或称为离散时间冲激,单位冲激: 1 ()0n δ?=?? 00 n n =≠ 如果()n δ在时间轴上延迟了k 个单位,得到()n k δ-即: 1()0n k δ?-=?? 0n k n =≠ 2)单位阶跃序列 1()0u n ??? 00n n ≥< 在MATLAB 中可以利用ones( )函数实现。 (1,);x ones N =

3)正弦序列 )(cos )(0φω+=n A n x 这里,0,,A ω和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。002f ωπ=为频率。 4)实指数序列 ()n x n A α= (3) MATLAB 编程介绍 本实验中使用到一些MATLAB 的基本函数,其中包括对矩阵操作的函数ones( )、pi 、rand( )、randn( )、zeros( ),基本函数 cos( ), exp( ), imag( ), real( ),数据分析函数sum( ),二维图形处理函数axis 、grid 、legend 、plot 、stem 、title 、xlabel 、ylabel 及通用功能图形函数clf 、subplot 等。 1)单位阶跃序列 长度为N 的单位阶跃序列s(n)可以用下面的MATLAB 命令获得: [(1,)];s ones N = 延迟的单位阶跃序列可以使用类似于单位采样序列的方法获得。 2)正弦序列 长度为N 的正弦序列在MATLAB 中实现: 0:1*cos(2***/) n N x A pi f n Fs phase =-=+ 3)指数序列 长度为N 的指数序列在MATLAB 中实现: 0:1exp(**) n N x j n ω=-= 4)实指数序列 长度为N 的实指数序列在MATLAB 中实现: 0:1.^n N x a n =-= 四、实验内容 编制程序产生单位冲激序列、单位阶跃序列、正弦序列、指数序列和实指数序列,并利用MATLAB 中的基本图形函数绘出其图形。 用直接法计算下面两序列的线性卷积: g[n]={3, 4, -2, 0, 1, -4},h[n]={1, -3, 0, 4, -2, 3}

相关文档
最新文档