工学实验部分matlab在数字信号处理中的应用文档格式.docx
- 文档编号:13276331
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:47
- 大小:210.85KB
工学实验部分matlab在数字信号处理中的应用文档格式.docx
《工学实验部分matlab在数字信号处理中的应用文档格式.docx》由会员分享,可在线阅读,更多相关《工学实验部分matlab在数字信号处理中的应用文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
stop-val。
如果步长是1,可以省略。
2、二维数组的创建;
在创建二维数组时,用逗号或者空格区分同一行的不同元素,用分号或者软回车区分不同的行。
三、函数流程控制
1、顺序结构。
2、判断语句(if---elseif---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<
width<
1)为标量用于确定最大值的位置。
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;
k=0;
n=n1:
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);
closeall;
stem(n,x);
title(‘单位阶跃信号序列’);
3、单位矩形序列:
1)x=ones(1,N),
2)利用逻辑关系表达式产生:
x=[((n-n0>
=0)&
(n-nf<
=0))]。
matlab程序:
N=10;
n=0:
x=sign(sign(N-1-n)+1);
closeall;
%关闭所有打开的图形窗口
注:
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点采样。
获得离散信号。
做出连续信号和离散信号的图形。
f=1;
Um-1;
nt=2;
%频率,振幅,周期的个数。
N=32;
T=1/f;
%采样点数,周期
dt=T/N;
%采样时间间隔
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<
subplot(2,2,3),plot(na2,x2);
title(‘实指数原信号(a>
subplot(2,2,4),stem(na2,x2,’filled’);
title(‘实指数序列(a>
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)
t=-0.5:
0.01:
3;
t0=0.5;
width=1;
ft=2*rectpuls(t-t0,width);
plot(t,ft);
gridon;
axis([-0.5,3,0.2,2.2]);
title(‘矩形脉冲信号’);
产生一个频率为10HZ,占空比为30%的周期方波信号。
t=0:
0.001:
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<
n<
6)
x2(n)=u(n-4)(-5<
8)
求:
x(n)=x1(n)+x2(n)
n1=-4:
6;
n01=-2;
x1=[(n1-n01)>
=0];
n2=-5:
8;
n02=4;
x2=[[(n2-n02)>
%用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))&
=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);
subplot(3,1,3),stem(n,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<
10区间的序列波形?
n=-2:
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’);
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 实验 部分 matlab 数字信号 处理 中的 应用