实验部分matlab在数字信号处理中的应用解析.docx
- 文档编号:9682541
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:51
- 大小:195.17KB
实验部分matlab在数字信号处理中的应用解析.docx
《实验部分matlab在数字信号处理中的应用解析.docx》由会员分享,可在线阅读,更多相关《实验部分matlab在数字信号处理中的应用解析.docx(51页珍藏版)》请在冰点文库上搜索。
实验部分实验部分matlab在数字信号处理中的应用解析在数字信号处理中的应用解析Matlab在数字信号处理中的应用(基础)一、数据类型:
1、整数:
Matlab支持8位,16位,32位和64位的有符号和无符号整数数据类型。
如:
x=int8(50);%指定x的数据类型为int8.x=502、浮点数:
matlab的默认数据类型是双精度类型(double),为了节省存蓄空间,matlab也支持单精度数据类型的数组。
Realmin(single)Ans=1.1755e-038Realmax(double)Ans=2.2251e-3083、复数:
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-elseif-else-end).3、循环语句(for-end)四、作图1、二维图:
plot(x,y,linespec),linespec参数,用于对图像外观属性的控制,包括线条的形状,颜色和点的形状,颜色。
stem(x,y);绘制脉冲杆图图形。
Stairs(x,y);绘制阶梯图图形。
2、图像子窗口:
subplot(m,n,p),将图像分为mn个子区域,在第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的实部,赋值给变量yx=sawtooth(t);类似于sin(t),产生周期为2pi,幅值从-1到+1的锯齿波。
x=sowtooth(t,width);产生三角波,其中width(0width=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:
49;x=sign(sign(N-1-n)+1);closeall;%关闭所有打开的图形窗口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)=an;例:
编写产生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(实指数原信号(a1));subplot(2,2,2),stem(na1,x1,filled);%作离散图形。
title(实指数序列(a1));subplot(2,2,4),stem(na2,x2,filled);%作离散图形。
title(实指数序列(a1);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(t1)MATLAB程序如下:
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%的周期方波信号。
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)(-4n6)x2(n)=u(n-4)(-5n=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=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)在-2n10区间的序列波形?
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);4、离散序列卷积:
MATLAB提供一个conv函数功能:
进行两个序列间的卷积运算。
调用格式:
y=conv(x,h),用于求取两个有限长度序列x和h的卷积,y的长度等于x和h的长度之和减1。
注意:
conv函数默认两个信号的时间序列从n=0开始的。
例:
已知两个信号序列;(0n20)(0n=0;%单位阶跃信号gn=filter(b,a,x2,xi);subplot(1,2,2),stem(n,gn,k);title(系统的单位阶跃响应);ylabel(g(n);xlabel(n);axis(0,N-1,-1.1*min(gn),1.1*max(gn);注:
1、hold()控制当前图形是否刷新的双向切换开关。
holdon使当前轴及图形保持而不被刷新,准备接受此后将绘制的新曲线。
holdoff使当前轴及图形不再具备刷新的性质。
3、pause()暂停执行文件,等待用户按任意键继续,pause(n)在继续执行之前,暂停n秒。
实验四:
离散LSI系统的时域响应对于离散LSI系统的响应,MATLAB为我们提供了多种求解方法:
(1)用conv子函数进行卷积积分,求任意输入的系统零状态响应。
(2)用dlsim子函数求任意输入的系统零状态响应。
(3)用filter和filtic子函数求任意输入的系统完全响应。
1、dlsim子函数功能:
求解离散系统的响应。
调用格式:
y=dlsim(b,a,x),求输入信号为x时系统的响应。
其中,b和a分别表示系统函数H(z)中,由对应的分子项和分母项系数构成的数组,而且分母系数要归一化处理。
例:
(书本P96页15题)已知一个用以下差分方程表示的线性移不变因果系统为:
当激励时,求系统的响应。
2、用filter和filtic子函数求LSI系统对任意输入的响应Filter子函数功能:
对数字系统的输入信号进行滤波处理。
调用格式:
y=filtet(b,a,x),对于由b和a决定的数字系统(b和a分别表示系统函数H(z)中,由对应的分子项和分母项系数构成的数组,而且分母系数要归一化处理。
)当输入信号为x时,对x中的数据进行滤波,结果存于y中,长度取max(na,nb).y,zf=filter(b,a,x);除得到结果矢量y外,还得到x的最终状态矢量zf。
y=filter(b,a,x,zi);可在zi中指定x的初始状态。
Filtic子函数功能:
为filter子函数选择初始条件。
调用格式:
zi=filtic(b,a,y,x);求给定输入x和y时的初始状态。
zi=filtic(b,a,y);求x=0,给定输入y时的初始状态。
其中,x和y分别是表示过去的输入和输出。
例:
已知一个因果系统的差分方程为:
6y(n)-2y(n-4)=x(n)-3x(n-2)+3x(n-4)-x(n-6)满足初始条件y(-1)=0,x(-1)=0,求系统的单位冲激响应和单位阶跃响应,时间轴上N取32点作图。
例:
已知一个IIR数字低通滤波器的系统函数为:
=输入一个矩形信号序列x=square(n/5)(-2n=0+r
(2).*(n+1).*p
(2).n.*n-1=0;subplot(1,2,2),stem(n,h);title(用部分分式法求反变换h(n);%用冲击响应法求h(n)h1=impz(b,a,N);subplot(1,2,2),stem(n,h1);title(用impz()求反变换h(n);例:
已知一个离散系统的系统函数,输入序列求系统在变换域的响应Y(z)及时间域的响应y(n).MATLAB程序:
symsz;X=z./(z-1);H=z.2./(z.2-1.5*z+0.5);Y=X.*H;y=iztrans(Y);实验六:
离散系统的描述模型及其转换系统传递函数(tf)模型系统零极点增益(zpk)模型极点留数(rpk)模型二次分式(sos)模型1、tf2zp功能:
将系统的传递函数(tf)模型转换为系统函数的零极点增益(zpk)模型调用格式:
z,p,k=tf2zp(num,den);输入系统传递函数模型中分子(num)、分母(den);多项式的系数向量,求系统函数的零极点增益模型中的零点向量z,极点向量p和增益系数k.其中z,p,k.为列量。
2、zp2tf功能:
将系统函数的零极点增益(zpk)模型转换为系统的传递函数(tf)模型调用格式:
num,den=zp2tf(z,p,k);输入系统函数的零极点增益模型中的零点向量z,极点向量p和增益系数k.其中z,p,k.为列量。
求系统传递函数模型中分子(num)、分母(den),多项式的系数向量,。
3、tf2sos功能:
将系统的传递函数(tf)模型转换为系统函数的二次分式(sos)模型调用格式:
sos,g=tf2sos(num,den);输入系统传递函数模型中分子(num)、分母(den);多项式的系数向量,求系统函数的二次分式模型的系数矩阵sos,增益系数g.4、sos2tf功能:
将系统函数的二次分式(sos)模型转换系统的传递函数(tf)模型调用格式:
num,den=sos2tf(sos,g);输入系统函数的二次分式模型的系数矩阵sos,增益系数g(默认值为1),求系统传递函数模型中分子(num)、分母(den),多项式的系数向量。
5、sos2zp功能:
将系统函数的二次分式(sos)模型转换系统函数的零极点增益(zpk)模型调用格式:
z,p,k=sos2zp(sos,g);输入系统函数的二次分式模型的系数矩阵sos,增益系数g(默认值为1),求系统函数的零极点增益模型中的零点向量z,极点向量p和增益系数k.其中z,p,k.为列量。
6、zp2sos功能:
将系统函数的零极点增益(zpk)模型转换为系统函数的二次分式(sos)模型调用格式:
sos,g=zp2sos(z,p,k);输入系统函数的零极点增益模型中的零点向量z,极点向量p和增益系数k.其中z,p,k.为列量。
,求系统函数的二次分式模型的系数矩阵sos,增益系数g.7、residuez子函数功能:
有理多项式的部分分式展开。
调用格式:
rpc=residuez(b,a);把b(z)/a(z)展开成部分分式的形式。
b,a=residuez(rpc);根据部分分式的rpc数组,返回有理多项式。
其中:
b,a为按降幂排列的多项式的分子和分母的系数组;r为余数数组;p为极点数组;c为无穷限多项式系数数组。
例:
已知离散时间系统的传递函数H(z)=10z-1/(1-3z-1+2z-2)求系统的零点向量z,极点向量p和增益系数k,并列出系统函数的零-极点增益模型。
MATLAB程序:
num=0,10,0;den=1,-3,2;z,p,k=tf2zp(num,den);根据结果,零-极点增益模型的系统函数为:
H(z)=10(z/(z-2)(z/(z-1).实验七:
离散系统的零极点分析1、zplane功能:
显示离散系统的零极点分布图调用格式:
zplane(z,p);绘制由列向量z确定的零点,列向量p确定的极点构成的零极点分布图。
zplane(b,a);绘制由行向量b和a构成的系统函数确定的零极点分布图。
hz,hp,ht=zplane(z,p);执行后可得到3个句柄向量,hz为零点线句柄,hp为极点线句柄,ht为坐标轴,单位圆及文本对象的句柄。
2、roots功能:
求多项式的根调用格式:
r=roots(a);由多项式的分子或分母系数向量求根向量。
其中,多项式的分子或分母系数按降幂排列,得到的跟向量为列向量。
例(p65):
已知系统的零极点增益模型分别为:
,求这些系统的零极点分布图以及系统的冲激响应,判断系统的稳定性。
结论:
当极点处于单位圆内,系统的冲激响应曲线随着频率的增大而收敛;当极点处于单位圆上,系统的冲激响应曲线为等幅震荡;当极点处于单位圆外,系统的冲激响应曲线随着频率的增大而发散。
实验八:
离散系统的频率响应一、离散系统频率响应的基本概念已知稳定系统传递函数的零极点增益(zpk)模型为:
则系统的频率响应函数为:
其中,系统的幅度响应特性为:
系统的相位频响特性为:
说明:
系统函数与频率响应有着紧密的联系,适当地控制系统函数的极点、零点的分布,就可以改变离散系统的频率响应特性。
二、离散系统的频率响应子函数freqz()功能:
用于求离散时间系统的频率响应函数。
调用格式:
1)H,w=freqz(b,a,n)。
可以得到数字滤波器的n点复频响应值,这n个点均匀地分布之0,上,并将这n个频率抽样点的频率记录在w中,对应的幅度值记录在H中,n缺省时取512点。
2)hf=freqz(b,a,n,Fs);用于对在0,Fs/2上等间隔采样n点,采样点频率及相应频响值分别记录在f和h中,由用户指定Fs(以Hz为单位)的值。
3)h=freqz(b,a,w);用于对在0,上进行采样,采样频率点由矢量w指定。
4)h=freqz(b,a,f,Fs);用于对在0,Fs上采样,采样频率点由矢量f指定。
2、angle()功能:
求相角。
调用格式:
p=angle(H);用于求取复矢量或复矩阵H的相角(以弧度为单位),相角介于和之间。
3、grid功能:
在指定的图形坐标上绘制分格线。
调用格式:
grid紧跟在要绘制分格线的绘图指令后面。
例如:
plot(t,y);gridGridon绘制分格线。
Gridoff不绘制分格线。
4、hold功能:
在当前轴或图形上多次重叠绘制多条曲线(x轴要一致)。
调用格式:
hold使当前图形具备刷新性质的双向开关。
Holdon使当前轴或图形保持而不被刷新,准备接受此后将绘制的新曲线。
Holdoff使当前轴或图形不再具备不被刷新的性质。
5、text功能:
在图形上标注文字说明。
调用格式:
text(xt,yt,string);在图面上(xt,yt)坐标处书写文字说明,其中文字说明字符串必须使用单引号标注。
三、举例1、已知离散时间系统的系统函数求系统在频率范围内,归一化的绝对幅度频率响应,相对幅度频率响应,相位频率响应和零极点分部图。
解:
MATLAB程序如下:
b=0.2,0.1,0.3,0.1,0.2;a=1,-1.1,1.5,-0.7,0.3;n=(0:
500)*pi/500;%在0,的范围内取501个采样点H,w=freqz(b,a,n);%求系统的频率响应subplot(2,2,1),plot(n/pi,abs(H);grid%作系统的绝对幅度频响图axis(0,max(n/pi),1.1*min(abs(H),1.1*max(abs(H);ylabel(幅度);title(幅频响应(V));subplot(2,2,2),plot(n/pi,angle(H);grid%作系统的相位频响图axis(0,max(n/pi),1.1*min(angle(H),1.1*max(angle(H);ylabel(相位);xlabel(以pi为单位的频率);title(相频响应);db=20*log10(abs(H);subplot(2,2,3),plot(n/pi,abs(H);grid%作系统的相对幅度频响图title(幅频响应(db));subplot(2,2,4),zplane(b,a);grid%作零极点分布图title(零极点分布);四、系统零极点的位置对系统频率响应的影响系统的零极点的位置对系统响应有着非常明显的影响。
观察系统极点位置对幅频响应的影响。
已知一阶离散系统的传递函数为,假设系统的零点在原点,极点分别取0.2,0.5,0.8。
比较它们的幅频响应曲线,从中了解系统极点的位置对幅频响应有何影响。
实验八、时域抽样与信号的重建对连续信号进行采样:
已知一个连续时间信号f(t)=sin(2pif0t)+1/3sin(6pif0t),f0=1Hz,取最高有限带宽频率fm=5f0,分别显示原连续时间信号和Fs2f0,Fs=2f0,Fsws时,为高通滤波器,当wp,ws为二元向量时,为带通或带阻滤波器,此时Wn也为二元向量。
2、cheb1ord功能:
确定切比雪夫I型滤波器的阶数和通带截止频率调用格式:
n,wn=cheblord(wp,ws,Rp,As);计算切比雪夫I型数字滤波器的阶数和通带截止频率。
其中,其值为1时表示0.5Fs,Rp为通带最大衰减指标,As为阻带最小衰减指标。
n,wn=cheblord(wp,ws,Rp,As,s);计算切比雪夫I型模拟滤波器的阶数和通带截止频率。
wp,ws,可以是实际的频率值或角频率值,Wn将取相同的量纲。
Rp为通带最大衰减指标,As为阻带最小衰减指标。
Wpws时,为高通滤波器,当wp,ws为二元向量时,为带通或带阻滤波器,此时Wn也为二元向量。
3、cheb2ord功能:
确定切比雪夫II型滤波器的阶数和阻带截止频率调用格式:
n,wn=cheb2ord(wp,ws,Rp,As);计算切比雪夫II型数字滤波器的阶数和通带截止频率。
其中,其值为1时表示0.5Fs,Rp为通带最大衰减指标,As为阻带最小衰减指标。
n,wn=cheb2ord(wp,ws,Rp,As,s);计算切比雪夫II型模拟滤波器的阶数和通带截止频率。
wp,ws,可以是实际的频率值或角频率值,Wn将取相同的量纲。
Rp为通带最大衰减指标,As为阻带最小衰减指标。
Wpws时,为高通滤波器,当wp,ws为二元向量时,为带通或带阻滤波器,此时Wn也为二元向量。
4、ellipord功能:
确定椭圆滤波器的阶数和通带截止频率调用格式:
n,wn=ellipord(wp,ws,Rp,As);计算椭圆数字滤波器的阶数和通带截止频率。
其中,其值为1时表示0.5Fs,Rp为通带最大衰减指标,As为阻带最小衰减指标。
n,wn=ellipord(wp,ws,Rp,As,s);计算椭圆模拟滤波器的阶数和通带截止频率。
wp,ws,可以是实际的频率值或角频率值,Wn将取相同的量纲。
Rp为通带最大衰减指标,As为阻带最小衰减指标。
Wpws时,为高通滤波器,当wp,ws为二元向量时,为带通或带阻滤波器,此时Wn也为二元向量。
5、buttap功能:
确定巴特沃思(Butterworth)模拟低通滤波器原型调用格式:
z,p,k=buttap(n);设计巴特沃思模拟低通滤波器原型,其传递函数为:
此时z为控阵,巴特沃思滤波器由通带内最平坦,总体上单调的幅度特性来表征。
6、cheb1ap功能:
切比雪夫I型模拟低通滤波器原型调用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 部分 matlab 数字信号 处理 中的 应用 解析