77范文网 - 专业文章范例文档资料分享平台

实验部分:matlab在数字信号处理中的应用

来源:网络收集 时间:2018-12-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Matlab在数字信号处理中的应用(基础)

一、数据类型:

1、整数:Matlab支持8位,16位,32位和64位的有符号和无符号整数数据类型。 如:x=int8(50); %指定x的数据类型为int8. x=50

2、浮点数:matlab的默认数据类型是双精度类型(double),为了节省存蓄空间,matlab也支持单精度数据类型的数组。 Realmin(‘single’) Ans=

1.1755e-038 Realmax(‘double’) Ans=

2.2251e-308

3、复数:matlab中虚数单位由i或者j表示。 Z=6+7j

另一种创建复数的方法可以通过complex()函数,complex()函数的调用格式: C=complex(a,b),返回结果c为复数,实部是a,虚部是b。 二、数组的创建

1、一维数组的创建:创建一维行向量,只需要把所有数组元素用空格或者逗号分隔,并用方括号吧所有数组元素括起来即可。如用分号,即为列向量。

创建等差的一维数组:格式 Var=start-val:step:stop-val。如果步长是1,可以省略。 2、二维数组的创建;在创建二维数组时,用逗号或者空格区分同一行的不同元素,用分号或者软回车区分不同的行。 三、函数流程控制 1、顺序结构。

2、判断语句(if---else if---else----end). 3、循环语句(for----end) 四、作图

1、二维图:plot(x,y,linespec),linespec参数,用于对图像外观属性的控制,包括线条的形状,颜色和点的形状,颜色。 stem(x,y);绘制脉冲杆图图形。 Stairs(x,y);绘制阶梯图图形。

2、图像子窗口:subplot(m,n,p),将图像分为m╳n个子区域,在第p个区域中绘制图像。 3、坐标轴:axis(xmin,xmax,ymin,ymax).指定当前图像中x轴和y轴的范围。

4、图形注释:1)标题:title(‘图形名字’)。2)坐标轴名:xlabel(‘x轴的名称’),ylabel(‘y轴的名称’)。特殊符号的输入: \\alpha的输入,则自动转变成,а

实验一、几种典型离散时间序列

Matlab中处理的数组,将下标放在变量后面的小括号内,且约定从1开始递增。例如:x=[5,4,3,2,1,0],表示x(1)=5, x(2)=4, x(3)=3, x(4)=2, x(5)=1, x(6)=0。要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如:

n=[-3:5];

x=[1,-1,3,2,0,-2,-1,2,1];这表示一个含有9个点的矢量,n为一组时间矢量,对应x有:x(-3)=1, x(-2)=-1.。。。。。。

连续信号作图使用plot()函数,绘制线性图。离散信号作图使用stem()函数,绘制脉冲杆图。

一些常用的函数:

abs():求绝对值(幅值)。调用格式:y=abs(x)。 length():取某一变量的长度(采样点数)。调用格式:N=length(n),取n的点数,赋值给N。

real():取一个复数的实部,调用格式:x=real(h);取复数h的实部,赋值给变量x。 imag():取复数的虚部,调用格式:x=imag(h);取复数h的实部,赋值给变量y x=sawtooth(t);类似于sin(t),产生周期为2pi,幅值从-1到+1的锯齿波。x=sowtooth(t,width);产生三角波,其中width(0

x=square(t);产生类似于sin(t),周期为2pi,幅值我1的方波,x=square(t,duty),产生指定周期的矩形波,其中duty用于指定脉冲宽度与整个周期的比例。

rand(n,m);产生一组具有n行m列的随机信号。 1、 单位冲激序列:

1)利用零序列:x=zeros(1,N),生成一个1╳N维的零向量。

2)利用逻辑关系表达式产生单位冲激序列:x=[(n-n0)==0];只在n=n0的地方产生1. 例:MATLAB程序如下:%采样逻辑关系求脉冲序列。 n1=-5;n2=5;n0=0; n=n1:n2; x=[n==n0]; %作图部分

stem(n,x,’filled’);

axis([n1,n2,0,1.1*max(x)]); title(‘单位脉冲序列’);

xlabel(‘时间(n)’);ylabel(‘幅度x(n)’);

%采样零序列求脉冲序列。 n1=-5;n2=5; k=0; n=n1:n2;

nt=length(n); %求采样点n的个数(长度)。 nk=abs(k-n1)+1; x=zeros(1,nt); x(nk)=1;

%作图同上。 2、单位阶跃序列:

1)利用1序列:x=ones(1,N),产生一个1╳N维的全1向量。

2)利用逻辑关系表达式产生单位阶跃序列:x=[(n-n0)>=0]。 Matlab程序: n=0:49;

x=ones(1,50); close all; stem(n,x);

title(‘单位阶跃信号序列’);

3、单位矩形序列: 1)x=ones(1,N),

2)利用逻辑关系表达式产生:x=[((n-n0>=0)&(n-nf<=0))]。 matlab程序: N=10;

n=0:49;

x=sign(sign(N-1-n)+1);

close all; %关闭所有打开的图形窗口 stem(n,x);

注:sign(x), 符号函数,当x大于0时值为1,当x等于0时值为0,当x小于0时值为-1.

4、正弦序列:

x=a*sin(omega*n+thwlta); x=a*sin(2*pi*f0/Fs*n+thelta);

例:频率为1.振幅为1的正弦信号,在窗口中显示2个周期的信号波形,并对该信号的一个周期进行32点采样。获得离散信号。做出连续信号和离散信号的图形。

MATLAB程序如下:

f=1; Um-1; nt=2; %频率,振幅,周期的个数。 N=32; T=1/f; %采样点数, 周期 dt=T/N; %采样时间间隔 n=0:nt*N-1; tn=n*dt;

x=Um*sin(2*f*pi*tn); %作图部分

subplot(2,1,1), plot(tn, x);

axis([0, nt*T, 1.1*min(x), 1.1*max(x)]); ylabel(‘连续正弦信号x(t)’); subplot(2,1,2), stem(tn, x);

axis([0, nt*T, 1.1*min(x), 1.1*max(x)]); ylabel(‘离散正弦序列x(n)’);

5、实指数序列 x(n)=a^n;

例:编写产生a=1/2和a=2的实指数连续信号和离散信号序列的程序。 MATLAB程序如下:

n1=-10; n2=10; a1=1/2; a2=2; na1=-10:0; na2=0:10; x1=a1.^na1; x2=a2.^na2; %作图部分

subplot(2,2,1), plot(na1,x1); %作连续图形 title(‘实指数原信号(a<1)’);

subplot(2,2,2), stem(na1,x1,’filled’); %作离散图形。 title(‘实指数序列(a<1)’);

subplot(2,2,3), plot(na2,x2); %作连续图形 title(‘实指数原信号(a>1)’);

subplot(2,2,4), stem(na2,x2,’filled’); %作离散图形。 title(‘实指数序列(a>1)’);

6、复指数序列:

x=exp((sigma+jomega)*n); 7、矩形波序列:

y=rectpuls(t,width).该函数产生一个幅度为1宽度为width,且以t=0为对称轴的矩形

脉冲信号,width的默认值为1.

y=square(t,DUTY),产生一个周期为2*pi,幅值为+1(-1)的周期性方波信号。其中

DUTY表示信号的占空比。默认值为0.5. 例:矩形脉冲信号的波形图: 2 (0<=t<=1) f(t)=

0 (t<1,t>1) MATLAB程序如下:

t=-0.5:0.01:3; t0=0.5;width=1;

ft=2*rectpuls(t-t0,width); plot(t,ft); grid on;

axis([-0.5,3,0.2,2.2]); title(‘矩形脉冲信号’);

例:产生一个频率为10HZ,占空比为30%的周期方波信号。 MATLAB程序如下:

t=0:0.001:3;

y=square(2*pi*10*t,30); plot(t,y);

aixs(0,0.3,-1.2,1.2); title(‘周期方波信号’);

实验二、序列的基本运算

1、序列的加法和乘法

x=x1+x2; x=x1.*x2

例:已知x1(n)=u(n+2) (-4=0]; n2=-5:8;n02=4; x2=[[(n2-n02)>=0];

%用0值来扩展它们的序列号,变成相同的起点和终点,原来的值不变。 n=min([n1,n2]):max([n1,n2]); N=length(n);

y1=zeros(1,N); y2=zeros(1,N);

y1(find((n>=min(n1))&(n<=max(n1))))=x1; y2(find((n>=min(n2))&(n<=max(n2))))=x2; x=y1+y2;

subplot(3,1,1),stem(n,y1);

axis([min(n),max(n),1.1*min(x),1.1*max(x)]); subplot(3,1,2),stem(n,y2);

axis([min(n),max(n),1.1*min(x),1.1*max(x)]); subplot(3,1,3),stem(n, x);

axis([min(n),max(n),1.1*min(x),1.1*max(x)]); 注:序列的乘法与上程序相同。 2、 序列的翻转:

翻转运算用fliplr()函数实现,设序列x(n),样值向量x和位置向量nx表示,则翻转之后的序列y(n)的样值向量y和位置向量ny表示,则 y=fliplr(x); ny=-fliplr(nx); 3、 序列的移位

设序列x(n),样值向量x和位置向量nx表示,移位n0之后的序列y(n)的样值向量y和位置向量ny表示,则 y=x;

ny=nx+n0;

例:已知一正弦信号:x(n)=2sin(2pi*n/10)求其移位信号x(n-2)在-2

MATLAB程序如下: n=-2:10; n0=2;

x=2*sin(2*pi*n/10); %建立原信号x(n) x1=2*sin(2*pi*(n-n0)/10); %建立x(n-2)信号 subplot(2,1,1), stem(n,x,’filled’); ylabel(‘x(n)’);

subplot(2,1,2), stem(n,x1,’filled’);

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验部分:matlab在数字信号处理中的应用在线全文阅读。

实验部分:matlab在数字信号处理中的应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/380542.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: