用MATLAB画零极点图.
- 格式:ppt
- 大小:491.00 KB
- 文档页数:17
1. 已知离散时间系统的差分方程为:2y(n) - y(n -1) - 3y(n -2)=2x(n) - x(n -1)x(n)=0.5n u(n) , y(-1)=1,y(-2)=3 , 试用filter 函数求系统的零输入响应、零状态响应和全响应.解:将差分方程Z 变换得:12112()[()(1)]3[()(1)(2)]2()[()(1)]Y z z Y z y z Y z z y y X z z X z x -----+--+-+-=-+- (1)依题意有:x(-1)=0,x(-2)=0,y(-1)=1,y(-2)=3 ,X(z)=1110.50.5z z z -=-- 将上式变形如下: 1211(23)()[(1)3(1)3(2)](2)()z z Y z y z y y z X z --------+-+-=- ………..(2) 1211(23)()(2)()[(1)3(1)3(2)]z z Y z z X z y z y y ------=-+-+-+-1211(23)()(2)()[103]z z Y z z X z z ------=-++ (3)易得系统函数为H(z)= 12122222323z z z z z z z -----=---- ① 零输入时零输入时,x(n)=0,差分方程右边为0,z 变换后应为121(23)()103z z Y z z -----=+112103()23z Y z z z ---+=-- =2210323z z z z +-- =71835152z z z z ++- 将Y(z)进行Z 反变换,得到其零输入响应为: y(n)= 7183[(1)()]()552n n u n -+ ② 零状态时零状态时,将y(-1)=0,y(-2)=0代入上面的式(2)中,得Y(z)= 112223z z z ------X(z)= 112223z z z ------1110.5z --=22223z z z --=233 5152 z z z z++-将其Z反变换,得到零状态响应为:y(n)=233 [(1)()]() 552n n u n -+③全响应与上面同理,y(-1)=1,y(-2)=3将上面式(3)变形得:Y(z)=2212323z zz z+--=92135152z zz z++-Z反变换得全响应为Y(n)=921[]()35152z zu n z z++-程序代码:%第二章Z变换第2.12题程序clear all;close all;num=[2 -1 0]; %系统函数分子的系数den=[2 -1 -3]; %系统函数分母的系数n=0:50;nl=length(n);%求零输入响应y01=[1 3]; %y的初始状态x01=[0 0]; %x 的初始状态x1=zeros(1,nl);zi1=filtic(num,den,y01,x01); %为filter函数准备初始值y1=filter(num,den,x1,zi1); %求零输入响应subplot(311);stem(n,y1,'r.');title('零输入响应');grid on;%求零状态响应y02=[0 0];x02=[0 0];x2=0.5.^n;zi2=filtic(num,den,y02,x02);y2=filter(num,den,x2,zi2);subplot(312);stem(n,y2,'r.');title('零状态响应');grid on;%求全响应y03=[1 3];x03=[0 0];x3=0.5.^n;zi3=filtic(num,den,y03,x03);y3=filter(num,den,x1,zi3);subplot(313);stem(n,y3,'r.');title('全响应');grid on;运行结果如下:2. 已知离散系统的系统函数分别为(1)2321()21z zH zz--=-(2)31()1zH zz+=-(3)2322()2241zH zz z z+=+-+(4)332()0.20.30.4zH zz z z=+++试用MATLAB实现下列分析过程:①求出系统的零极点位置;②绘出系统的零极点图,根据零极点图判断系统的稳定性;③绘出系统单位响应的时域波形,并分析系统稳定性与系统单位响应时域特性的关系。
函数1.step阶跃响应指令(连续函数)dstep 阶跃响应指令(离散函数)clearclcnum=[2 -3.4 1.5];den=[1 -1.6 0.8];dstep(num,den)grid ontitle('离散系统阶跃响应')xlabel('时间')clearclcnum=[2 -3.4 1.5];den=[1 -1.6 0.8]step(num,den)grid ontitle('离散系统阶跃响应') xlabel('时间')2. c2dm()函数连续系统的离散化在MATLAB软件中对连续系统的离散化是应用c2dm()函数实现的,c2dm()函数的一般格式为3. 函数initial(),dinitial()对于连续系统由初始状态所引起的响应,零输入响应,可由函数initial()来求得,其调用格式为[y,x,t]=initial(A,B,C,D,x0)[y,x,t]=initial(A,B,C,D,x0,t)其中x0为初始状态.同理,对于离散系统的零输入响应函数调用格式为:[y,x,t]=dinitial(A,B,C,D,x0)[y,x,t]=dinitial(A,B,C,D,x0,n)4. axisaxis一般用来设置axes的样式,包括坐标轴范围,可读比例等axis([xmin xmax ymin ymax])axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 坐标轴设置5.函数ss2zp()(与zplane()连用)MATLAB还提供了一个类似的函数ss2zp()。
该函数的功能是直接根据系统的状态方程描述求取系统的零点、极点和增益,不必先化成传递函数描述形式。
其基本调用格式与tf2zp()函数类似,只是多了一个输入量选择的参数:[Z,P,K]=ss2zp(A,B,C,D,iu)其中(A ,B ,C ,D)是系统的状态方程描述的系数矩阵, iu 表示对系统的第iu 个输入量求零点、极点和增益;Z 是求得的零点矩阵;P 是求得的极点矩阵,Z 的列数与输出量y 的个数一样多,行数视零点个数的多少而定;K 是求得的增益列向量,其维数等于输出量y 的个数。
《数字信号处理》(一) 实验目的使用ztrans,iztrans 函数分别求出离散时间信号的Z 变换和Z 反变换的结果,并用pretty 函数进行结果美化。
编写函数时养成良好的注释习惯,有利于对函数的理解。
复习MATLAB 的基本应用,如:help,可以帮助查询相关的函数的使用方法,巩固理论知识中的离散时间信号的传递函数与二次项式之间的转换,以及使用zplane 函数画出相关系统的零极点分布图,根据零极点的分布情况估计系统的滤波特性。
(二) 程序的运行与截图实验项目一Z 变换(1)求)(])31()21[()(n u n x nn += Z 变换clear all;close all;clc;syms nf=0.5^n+(1/3)^n; %定义离散信号F=ztrans(f) %z 变换pretty(F); 运算结果F(2)4)(n n x = Z 变换clear all ;close all ;clc;syms nf=n^4; %定义离散信号F=ztrans(f) %Z 变换 pretty(F)运算结果(3))sin()(b an n x += Z 变换clear all;close all;clc;syms a b nf = sin(a*n+b) %定义离散信号F=ztrans(f) %Z 变换pretty(F)运算结果实验项目二Z 反变换(1)2)2(2)(-=z z z X Z 反变换 clear all;close all;clc;syms k zFz=2*z/(z-2)^2; %定义Z 反变换表达式fk=iztrans(Fz,k) %Z 反变换pretty(fk);运算结果(2)12)1()(2++-=z z z z z X Z 反变换 clear all;close all;clc;syms k zFz=z*(z-1)/(z^2+2*z+1); %定义Z 反变换表达式fk=iztrans(Fz,k) %Z 反变换pretty(fk);运算结果f(3) 211cos 211)(---+-+=zz z z X ω Z 反变换 clear all;close all;clc;syms k z wFz=(1+z^(-1))/(1-2*z^-1*cos(w)+z^-2); %定义Z 反变换表达式 fk=iztrans(Fz,k) %Z 反变换pretty(fk);运算结果实验项目三各种模型之间的变换2)2)(1(10)(--=z z z z H =4851023-+-z z z z (1)clear all;close all;clc;b=[0 0 10 0];%分子的系数数组a=[1 -5 8 -4]; %分母的系数数组zplane(b,a)% 使用zplane 函数绘制如下系统的零极点分布图 运算结果(2)clear all ;close all ;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组[r,p,c]=residuez(b,a) %使用matlab 中的residuez 函数,将)(z H 分解成为多个简单有理分式之和运算结果r =-15.00005.000010.0000p =2.00002.00001.0000c =(3)clear all;close all;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组[z,p,k]=tf2zp(b,a) %使用tf2zp求出系统函数的零、极点和增益运算结果z =p =2.00002.00001.0000k =10(4)clear all;close all;clc;z=[1;-3];%零点,列向量p=[2; -4];%极点,列向量k=5; %增益[b,a] = zp2tf(z,p,k) %根据求出的零、极点和增益,然后自学使用zp2tf还原出分子和分母的系数运算结果(5)clear all ;close all ;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组[sos,g]=tf2sos(b,a) %使用tf2sos 将系统函数分解成一系列二阶子系统的级联形式运算结果sos =0 1.0000 0 1.0000 -2.0000 0 0 1.0000 0 1.0000 -3.0000 2.0000g =10(6)clear all ;close all ;clc;sos=[0 1.0000 0 1.0000 -2.0000 0; 0 1.0000 0 1.0000 -3.0000 2.0000];g=10;%增益[b,a]=sos2tf(sos,g) %根据求出的一系列二阶子系统,使用sos2tf 还原出)(z H 分子和分母的系数运算结果b =0 0 10 0a =1 -5 8 -4(7)clear all;close all;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组n=(0:500)*pi/500; %在pi范围内取501个采样点[h,w]=freqz(b,a,n);%求系统的频率响应subplot(2,1,1),plot(n/pi,abs(h));grid %作系统的幅度频响图axis([0,1,1.1*min(abs(h)),1.1*max(abs(h))]);ylabel(‘幅度’);subplot(2,1,2),plot(n/pi,angle(h));grid %作系统的相位频响图axis([0,1,1.1*min(angle(h)),1.1*max(angle(h))]);ylabel(‘相位’);xlabel(‘以pi为单位的频率’);运行结果2221)(232+++++=z z z z z z H (1)clear all ;close all ;clc;b=[0 1 1 1]; %分子的系数数组 a=[1 2 2 2]; %分母的系数数组 zplane(b,a)% 使用zplane 函数绘制如下系统的零极点分布图 运行结果(2)clear all ;close all ;clc;b=[0 1 1 1]; %分子的系数数组 a=[1 2 2 2]; %分母的系数数组[r,p,k]=residuez(b,a) %使用matlab 中的residuez 函数,将)(z H 分解成为多个简单有理分式之和 运行结果r =-0.4006 -0.0497 - 0.1609i -0.0497 + 0.1609ip =-1.5437-0.2282 + 1.1151i-0.2282 - 1.1151ik =0.5000(3)clear all;close all;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组[z,p,k]=tf2zp(b,a) %使用tf2zp求出系统函数的零、极点和增益运行结果z =-0.5000 + 0.8660i-0.5000 - 0.8660ip =-1.5437-0.2282 + 1.1151i-0.2282 - 1.1151ik =1(4)clear all ;close all ;clc;z=[-0.5000 + 0.8660i-0.5000 - 0.8660i ];p=[-1.5437-0.2282 + 1.1151i-0.2282 - 1.1151i ];k=1;[b,a]=zp2tf(z,p,k) %根据求出的零、极点和增益,使用zp2tf 还原出)(z H 分子和分母的系数运行结果b =0 1.0000 1.0000 1.0000a =1.00002.0001 2.0001 1.9999(5)clear all;close all;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组[sos,g]=tf2sos(b,a) %使用tf2sos将系统函数分解成一系列二阶子系统的级联形式运行结果sos =0 1.0000 0 1.0000 1.5437 01.0000 1.0000 1.0000 1.0000 0.4563 1.2956g =1(6)clear all;close all;clc;sos=[ 0 1.0000 0 1.0000 1.5437 0;1.0000 1.0000 1.0000 1.0000 0.4563 1.2956];g=1;[b,a]=sos2tf(sos,g) %根据求出的一系列二阶子系统,自学使用sos2tf还原出(zH分子和分母的系数)运行结果b =0 1 1 1a =1.00002.0000 2.0000 2.0000(7)clear all;close all;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组n=(0:500)*pi/500; %在pi范围内取501个采样点[h,w]=freqz(b,a,n);%求系统的频率响应subplot(2,1,1),plot(n/pi,abs(h));grid %作系统的幅度频响图axis([0,1,1.1*min(abs(h)),1.1*max(abs(h))]);ylabel('幅度');subplot(2,1,2),plot(n/pi,angle(h));grid %作系统的相位频响图axis([0,1,1.1*min(angle(h)),1.1*max(angle(h))]);ylabel('相位');xlabel('以pi为单位的频率');运行结果实验项目四根据零极点分布图估计系统的滤波特性。
零极点调整 matlab在Matlab中调整零极点的方法,可以通过使用控制系统工具箱(Control System Toolbox)中的函数来完成。
下面是一个简单的例子,展示如何创建一个传递函数,然后调整其零极点:matlab复制代码% 导入控制系统工具箱import control.matlab.*% 创建一个传递函数num = [1]; % 分子多项式系数den = [121]; % 分母多项式系数sys = tf(num, den); % 创建传递函数% 打印原始系统的零极点zp = tfreport(sys); % 打印零极点disp(zp.Zeros); % 显示零点disp(zp.Poles); % 显示极点% 调整系统的零极点new_zeros = [-2-3]; % 新的零点new_poles = [-4-5]; % 新的极点sys_new = tf(num, den, new_zeros, new_poles); % 创建新的传递函数% 打印调整后系统的零极点zp_new = tfreport(sys_new); % 打印新的零极点disp(zp_new.Zeros); % 显示新的零点disp(zp_new.Poles); % 显示新的极点在这个例子中,我们首先创建了一个传递函数sys,然后使用tfreport函数打印出其零极点。
然后,我们创建了一个新的传递函数sys_new,其零极点被调整为指定的值。
最后,我们再次使用tfreport函数打印出新的零极点。
注意:在调整零极点时,需要确保新的零极点是合理的,即它们不应该在复平面的无穷远处,也不应该在实数轴上。
sys在matlab中的用法一、sys的定义与作用介绍sys是matlab中用于表示线性时不变系统的数据类型,也是控制系统工具箱中常用的数据类型。
sys可以表示各种线性时不变系统,包括连续时间系统和离散时间系统。
sys在控制工程领域有着广泛的应用,可以用来描述各种物理系统、电子电路、机械结构等等。
在matlab中,我们可以使用sys进行建模、仿真和控制器设计等操作。
二、sys的创建方法1. 通过传递系数矩阵创建在matlab中,我们可以通过传递系数矩阵来创建一个sys对象。
例如:```matlabnum = [1, 2]; % 分子多项式系数den = [1, 3, 2]; % 分母多项式系数sys = tf(num, den); % 创建一个连续时间系统```这里创建了一个分子多项式为s+2,分母多项式为s^2+3s+2的连续时间系统。
2. 通过传递状态空间矩阵创建除了传递系数矩阵外,我们还可以通过传递状态空间矩阵来创建一个sys对象。
例如:```matlabA = [-1, -2; 0, -3]; % 系统矩阵AB = [1; 0]; % 输入矩阵BC = [0, 1]; % 输出矩阵CD = 0; % 直接通道增益Dsys = ss(A, B, C, D); % 创建一个连续时间系统```这里创建了一个状态空间矩阵为[-1,-2;0,-3],输入矩阵为[1;0],输出矩阵为[0,1],直接通道增益为0的连续时间系统。
3. 通过传递零极点信息创建除了传递系数矩阵和状态空间矩阵外,我们还可以通过传递零极点信息来创建一个sys对象。
例如:```matlabz = [-2, -3]; % 零点向量p = [-1, -4]; % 极点向量k = 2; % 系统增益sys = zpk(z, p, k); % 创建一个连续时间系统```这里创建了一个零点向量为[-2,-3],极点向量为[-1,-4],系统增益为2的连续时间系统。
信号与系统分析一、典型信号的matlab 表示表示连续信号,需定义自变量的范围和取样间隔,如t=0:0.01:3 1. 实指数信号 y=k*exp(a*t)2. 正弦信号 k*sin(w*t+phi) k*cos(w*t+phi)3. 复指数信号 y=k*exp((a+i*b)*t)实部real(y) 虚部imag(y) 模abs(y) 相角angle(y) 共轭conj(y) 4. 抽样信号 Sat=sinc(t/pi)5. 矩形脉冲信号 y=rectpuls(t,width)周期方波信号 y=square(2*pi*f*t,duty) %产生频率为fHZ ,占空比为duty%的方波 6. 三角脉冲信号非周期三角波y=tripuls(t,width,skew) %斜度 skew ,最大幅度出现在t=(width/2)*skew 周期三角波 y=sawtooth(t,width)7. 单位阶跃信号 function y=uCT(t) y=(t>=0)阶跃信号符号函数 Heaviside() y=sym(‘Heaviside(t)’) %调用时必须用sym 定义 冲激信号符号函数 Dirac()二、Matlab 的符号运算 1. 定义符号变量syms 变量名 syms xsym(‘变量名’) x=sym(‘x ’) sym(‘表达式’) sym(‘x+1’)2. 化简符号运算结果 simple 或simplify3. 绘制符号表达式图形 ezplot(y,[a,b])三、连续信号的运算微分和积分运算(用符号表达式来表示) 1. 微分运算Diff(function,’variable ’,n) % variable 为求导变量,n 为求导阶数 例:syms a x y y=sin(a*x^2); dy=diff(y ,’x ’) 2. 积分运算int(function, ’variable ’,a,b) %a 为积分下限,b 为积分上限 3. 信号的反折 fliplr(x) 4. 卷积计算1) 符号运算计算卷积(求解积分的方法) 例:)(*)()(t u e t u et y tTt --=syms T t taoxt1=exp(-t); xt2=exp(-t/T);xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);yt=int(xt_tao,tao,0,t); yt=simplify(yt);2) 数值计算法求卷积 conv( )y = dt*conv(e,h)例:求e(t) = u(t)-u(t-1)和h(t) = u(t)-u(t-1)的卷积 t0 = -2; t1 = 4; dt = 0.01; t = t0:dt:t1; e = u(t)-u(t-1); h = u(t)-u(t-1);y = dt*conv(e,h); % Compute the convolution of x(t) and h(t) subplot(221)plot(t,e), grid on, title('Signal e(t)'), axis([t0,t1,-0.2,1.2]) subplot(222)plot(t,h), grid on, title('Signal h(t)'), axis([t0,t1,-0.2,1.2]) subplot(212)t = 2*t0:dt:2*t1; % the time range to the convolution of e and h.plot(t,y), grid on, title('The convolution of x(t) and h(t)'), axis([2*t0,2*t1,-0.1,1.2]), xlabel('Time t sec')四、连续LTI 系统的时域分析1. 系统响应的符号求解 dsolve(‘eq1,eq2,…’,’cond1,cond2,…’); %eqi 表示微分方程,condi 表示初始条件 例:eq=’D3y+2*D2y+Dy=0’;cond=’y(0)=1,Dy(0)=1,D2y(0)=2’; yzi=dsolve(eq,cond); %零输入响应 simplify(yzi);eq1=’D3y+4*D2y+8*Dy=3*Dx+8*x ’; eq2=’x=Heaviside(t)’;cond=’y(-0.01)=0,Dy(-0.01)= 0,D2y(-0.01)=0’; yzs=dsolve(eq1,eq2,cond);simplify(yzs.y); %零状态响应2. 零状态响应的数值求解1)y=lsim(sys,f,t)%sys 表示系统模型,由sys=tf(b,a)生成的系统函数对象 %f 输入信号向量,t 时间抽样点向量例:)()sin()(),()()()('''t u t t f t f t y t y t y π210665==++ ts=0;te=5;dt=0.01; sys=tf([6],[1,5,6]); t=ts:dt:te;f=10*sin(2*pi*t).*UT(t);y=lsim(sys,f,t);plot(t,y),grid on;xlabel(‘time ’),ylabel(‘y(t)’); title(‘零状态响应’); 2)y=conv(f,impul)3. 连续系统冲激响应 y=impulse(sys,t) %sys 表示系统模型4. 连续系统阶跃响应 y=step(sys,t)五、信号的频域分析 1.傅立叶变换 1)符号运算求法 fourier( )和ifourier( )例:)()(t u e t f t 2-=的傅立叶变换ft=sym(‘exp(-2*t)*Heaviside(t)’); fw=fourier(ft)ezplot(abs(fw)); %或者fw_conj=conj(fw);Gw=sqrt(fw*fw_conj); phase=atan(image(fw)/real(fw));%或者angle(fw) ezplot(phase)211Ω+=Ω)(j F 的傅立叶反变换syms tfw=sym(‘1/(1+w^2’); ft=ifourier(fw,t) 2)数值计算求法[][][]Nk k N en f k F k TN M n j TM TN k ≤≤∆=∆∆=-⨯-∆--⨯-⨯02111111,)()()()()()(πωω例:求)(t G 82的傅立叶变换 1)数值计算dt=0.01; t=-4:dt:4;ft=(t+4)/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*uCT(t-4); N=2000; k=-N:N;W=pi*k/(N*dt);F=dt*ft*exp(-j*t'*W); F=abs(F); plot(W,F),grid on; axis([-pi pi -1 9]);title('amplitude spectrum'); 2)符号计算ft=sym('(t+4)/2*Heaviside(t+4)-t*Heaviside(t)+(t-4)/2*Heaviside(t-4)'); Fw=simplify(fourier(ft));ezplot(abs(Fw),[-pi pi]);grid on;2. 系统的频率特性1) [H,w] = freqs(b,a):连续系统频率响应的函数2) 波特图:采用对数坐标的幅频特性和相频特性曲线,可显示频响间的微小差异 bode(sys)例:求11+=s s H )(的频率特性w=0:0.01:8*pi; b=[1]; a=[1 1]; H=freqs(b,a,w); subplot(211); plot(w,abs(H)); subplot(212); plot(w,angle(H)); figure(2); sys=tf(b,a); bode(sys);3. 连续时间LTI 系统的频域分析 例:551+Ω=Ω--=j j H t u t u t x )(),()()(,求系统的响应。
实验一 常见离散信号的MATLAB 产生和图形显示实验目的:加深对常用离散信号的理解; 实验原理:1.单位抽样序列⎩⎨⎧=01)(n δ≠=n n 在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n kn2.单位阶跃序列⎩⎨⎧01)(n u00<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =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 中)**ex p(1:0n w j x N n =-=5.指数序列n a n x =)(在MATLAB 中na x N n .^1:0=-=实验内容:编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
实验要求:讨论复指数序列的性质。
实验过程: 1. 单位冲击序列:>> n=0:10;>> x1=[1 zeros(1,10)];>> x2=[zeros(1,8) 1 zeros(1,8)]; >> subplot(1,2,1); >> stem(n,x1);>> xlabel ('时间序列n'); >> ylabel('幅度');>> title('单位冲激序列δ(n )'); >> subplot(1,2,2); >> stem(x2);>> xlabel('时间序列n'); >> ylabel('幅度');>> title('延时了8个单位的冲激序列δ(n-8)'); >>>> n=0:10;>> u=[ones(1,11)];>> stem(n,u);>> xlabel ('时间序列n');>> ylabel('信号幅度');>> title('单位阶跃序列u(n)');>>3.正弦序列:>> n=1:30;>> x=2*sin(pi*n/6+pi/4);>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('正弦函数序列x=2*sin(pi*n/6+pi/4)'); >>>> n=1:30;>> x=5*exp(j*3*n);>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('复指数序列x=5*exp(j*3*n)');>>5.指数序列:>> n=1:30;>> x=1.8.^n;>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('指数序列x=1.8.^n');>>复指数序列的周期性讨论:为了研究复指数序列的周期性质,我们分别作了正弦函数x1=1.5sin(0.3πn)和x2=sin(0.6n); 的幅度特性图像。
《数字信号处理》(一) 实验目的使用ztrans,iztrans 函数分别求出离散时间信号的Z 变换和Z 反变换的结果,并用pretty 函数进行结果美化。
编写函数时养成良好的注释习惯,有利于对函数的理解。
复习MATLAB 的基本应用,如:help,可以帮助查询相关的函数的使用方法,巩固理论知识中的离散时间信号的传递函数与二次项式之间的转换,以及使用zplane 函数画出相关系统的零极点分布图,根据零极点的分布情况估计系统的滤波特性。
(二) 程序的运行与截图实验项目一Z 变换(1)求)(])31()21[()(n u n x nn += Z 变换clear all;close all;clc;syms nf=0.5^n+(1/3)^n; %定义离散信号F=ztrans(f) %z 变换pretty(F); 运算结果F(2)4)(n n x = Z 变换clear all ;close all ;clc;syms nf=n^4; %定义离散信号F=ztrans(f) %Z 变换pretty(F)运算结果(3))sin()(b an n x += Z 变换clear all;close all;clc;syms a b nf = sin(a*n+b) %定义离散信号F=ztrans(f) %Z 变换pretty(F)运算结果实验项目二Z 反变换(1)2)2(2)(-=z z z X Z 反变换 clear all;close all;clc;syms k zFz=2*z/(z-2)^2; %定义Z 反变换表达式fk=iztrans(Fz,k) %Z 反变换pretty(fk);运算结果(2)12)1()(2++-=z z z z z X Z 反变换 clear all;close all;clc;syms k zFz=z*(z-1)/(z^2+2*z+1); %定义Z 反变换表达式fk=iztrans(Fz,k) %Z 反变换pretty(fk);运算结果f(3) 211cos 211)(---+-+=zz z z X ω Z 反变换 clear all;close all;clc;syms k z wFz=(1+z^(-1))/(1-2*z^-1*cos(w)+z^-2); %定义Z 反变换表达式fk=iztrans(Fz,k) %Z 反变换pretty(fk);运算结果实验项目三各种模型之间的变换2)2)(1(10)(--=z z z z H =4851023-+-z z z z (1)clear all;close all;clc;b=[0 0 10 0];%分子的系数数组a=[1 -5 8 -4]; %分母的系数数组zplane(b,a)% 使用zplane 函数绘制如下系统的零极点分布图运算结果(2)clear all ;close all ;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组[r,p,c]=residuez(b,a) %使用matlab 中的residuez 函数,将)(z H 分解成为多个简单有理分式之和运算结果r =-15.00005.000010.0000p =2.00002.00001.0000c =(3)clear all;close all;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组[z,p,k]=tf2zp(b,a) %使用tf2zp求出系统函数的零、极点和增益运算结果z =p =2.00002.00001.0000k =10(4)clear all;close all;clc;z=[1;-3];%零点,列向量p=[2; -4];%极点,列向量k=5; %增益[b,a] = zp2tf(z,p,k) %根据求出的零、极点和增益,然后自学使用zp2tf还原出分子和分母的系数运算结果(5)clear all;close all;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组[sos,g]=tf2sos(b,a) %使用tf2sos将系统函数分解成一系列二阶子系统的级联形式运算结果sos =0 1.0000 0 1.0000 -2.0000 00 1.0000 0 1.0000 -3.0000 2.0000g =10(6)clear all;close all;clc;sos=[0 1.0000 0 1.0000 -2.0000 0;0 1.0000 0 1.0000 -3.0000 2.0000];g=10;%增益[b,a]=sos2tf(sos,g) %根据求出的一系列二阶子系统,使用sos2tf还原出H分子和分母的系数)(z运算结果b =0 0 10 0a =1 -5 8 -4(7)clear all;close all;clc;b=[0 0 10 0]; %分子的系数数组a=[1 -5 8 -4]; %分母的系数数组n=(0:500)*pi/500; %在pi范围内取501个采样点[h,w]=freqz(b,a,n);%求系统的频率响应subplot(2,1,1),plot(n/pi,abs(h));grid %作系统的幅度频响图axis([0,1,1.1*min(abs(h)),1.1*max(abs(h))]);ylabel(‘幅度’);subplot(2,1,2),plot(n/pi,angle(h));grid %作系统的相位频响图axis([0,1,1.1*min(angle(h)),1.1*max(angle(h))]);ylabel(‘相位’);xlabel(‘以pi为单位的频率’);运行结果2221)(232+++++=z z z z z z H (1)clear all ;close all ;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组zplane(b,a)% 使用zplane 函数绘制如下系统的零极点分布图运行结果(2)clear all ;close all ;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组[r,p,k]=residuez(b,a) %使用matlab 中的residuez 函数,将)(z H 分解成为多个简单有理分式之和运行结果r =-0.4006-0.0497 - 0.1609i-0.0497 + 0.1609ip =-1.5437-0.2282 + 1.1151i-0.2282 - 1.1151ik =0.5000(3)clear all;close all;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组[z,p,k]=tf2zp(b,a) %使用tf2zp求出系统函数的零、极点和增益运行结果z =-0.5000 + 0.8660i-0.5000 - 0.8660ip =-1.5437-0.2282 + 1.1151i-0.2282 - 1.1151ik =1(4)clear all;close all;clc;z=[-0.5000 + 0.8660i-0.5000 - 0.8660i];p=[-1.5437-0.2282 + 1.1151i-0.2282 - 1.1151i ];k=1;[b,a]=zp2tf(z,p,k) %根据求出的零、极点和增益,使用zp2tf 还原出)(z H 分子和分母的系数运行结果b =0 1.0000 1.0000 1.0000a =1.00002.0001 2.0001 1.9999(5)clear all ;close all ;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组[sos,g]=tf2sos(b,a) %使用tf2sos 将系统函数分解成一系列二阶子系统的级联形式运行结果sos =0 1.0000 0 1.0000 1.5437 01.0000 1.0000 1.0000 1.0000 0.4563 1.2956g =1(6)clear all ;close all ;clc;sos=[ 0 1.0000 0 1.0000 1.5437 0;1.0000 1.0000 1.0000 1.0000 0.4563 1.2956];g=1;[b,a]=sos2tf(sos,g) %根据求出的一系列二阶子系统,自学使用sos2tf 还原出)(z H 分子和分母的系数运行结果b =0 1 1 1a =1.00002.0000 2.0000 2.0000(7)clear all;close all;clc;b=[0 1 1 1]; %分子的系数数组a=[1 2 2 2]; %分母的系数数组n=(0:500)*pi/500; %在pi范围内取501个采样点[h,w]=freqz(b,a,n);%求系统的频率响应subplot(2,1,1),plot(n/pi,abs(h));grid %作系统的幅度频响图axis([0,1,1.1*min(abs(h)),1.1*max(abs(h))]);ylabel('幅度');subplot(2,1,2),plot(n/pi,angle(h));grid %作系统的相位频响图axis([0,1,1.1*min(angle(h)),1.1*max(angle(h))]);ylabel('相位');xlabel('以pi为单位的频率');运行结果实验项目四根据零极点分布图估计系统的滤波特性。