1
1- 离散时间信号产生。编写程序产生下列基本脉冲
1)单位脉冲序列:起点ns,终点ne,在n0处有一单位脉冲(nsn0ne)。
2)单位阶跃序列:起点ns,终点ne,在n0前为0,在n0处及以后为1nsn0ne)。
3)实数指数序列:
4)正弦序列:
程序如下:
ns=0;ne=15;n0=5;
n1=ns:ne;x1=[(n1-n0)==0];            %单位脉冲序列
n2=ns:ne;x2=[(n2-n0)>=0];            %单位阶跃序列
n3=ns:ne;x3=(0.9).^n3;                %实数指数序列
n4=ns:ne;x4=sin(n4);                  %正弦序列
subplot(2,2,1),stem(n1,x1);
title('单位脉冲序列')
subplot(2,2,2),stem(n2,x2);
title('单位阶跃序列')
subplot(2,2,3),stem(n3,x3);
title('实数指数序列')
subplot(2,2,4),stem(n4,x4); 
title('正弦序列')
运行结果如图1-所示。  
1- 基本脉冲序列
例1- 动态演示信号序列卷积和的过程
程序如下:
clear
len_x1=20;
len_x2=20;
nx1=0:len_x1-1;                                %建立x1的时间向量
x1=0.6.^nx1;                                    %建立x1序列
%len_x1=length(nx1);                          %x1时间向量的长度
nx2=0:len_x2-1;                                %x2的时间向量
%len_x2=length(nx2);                          %x2的时间向量的长度
x2=ones(1,len_x2);                            %建立x2序列
lmax=max(len_x2,len_x1);                        %求最长的序列
if len_x2>len_x1 nx2=0;nx1=len_x2-len_x1;      %x2x1长,对x1nx10
  elseif len_x2<len_x1 nx1=0; nx2=len_x1-len_x2; %x1x2长,对x2nx20
        else nx2=0;len_x1=0;                  %x1x2同长,不补0
end                                            %长者为补0长度的基础
lt=lmax;                        %先将x2补得与x1同长,再将两边补最大长度的0
u=[zeros(1,lt),x2,zeros(1,nx2),zeros(1,lt)];
t1=(-lt+1:2*lt);                %先将x1补得与x2同长,再将左边补2倍最大长度的0
x1=[zeros(1,2*lt),x1,zeros(1,nx1)];  %x1左右反折
hx1=fliplr(x1);
N=length(hx1);
y=zeros(1,3*lt);                    %y存储单元初始化
for k=0:2*lt                        %动态演示绘图
    p=[zeros(1,k),hx1(1:N-k)];      %使hx1向右循环移位
    y1=u.*p;                        %使输入和翻转移位的脉冲过渡函数逐项相乘
    yk=sum(y1);                      %相加
    y(k+lt+1)=yk;                    %将结果放入数组y
    subplot(4,1,1);stem(t1,u);
    subplot(4,1,2);stem(t1,p);
    subplot(4,1,3);stem(t1,y1);
    subplot(4,1,4);stem(k,yk);        %通过图形表示每一次卷积的结果
    axis([-10,50,0,5]);hold on        %在图形窗口上保留每一次运行的图形结果
    pause(0.5);                      %停滞0.5
end
2
2- 求以下序列的变换:
程序如下:
syms a z n w                        %把字符a z n w定义为基本的符号对象
x1=a^n;X1=ztrans(x1)                %x1z变换
x2=n-1; X2=ztrans(x2)
x3=(n*(n-1))/3;X3=ztrans(x3)
x4=exp(j*w*n);X4=ztrans(x4)
运行结果如下:
X1 =z/a/(z/a-1)
X2 =z/(z-1)^2-z/(z-1)
X3 =1/3*z*(z+1)/(z-1)^3-1/3*z/(z-1)^2
X4 =z/exp(i*w)/(z/exp(i*w)-1)
2-求下列函数的的反变换:
程序如下:
syms n z a                            %a n z定义为基本的符号对象
X1=z/(z-1); x1=iztrans(X1)              %X1z的反变换
X2=z/(1-z)^3; x2=iztrans(X2)
X3=z/(z-a)^2; x3=iztrans(X3)
运行结果如下:
x1 =1
x2 =1/2*n-1/2*n^2
x3 =a^n*n/a
2-已知,试用部分分式法求的反变换,并画
程序如下:
b=[1,0,0];   
a=[1,-3,2];
[r p c]=residuez(b,a);                    %b(z)/a(z)展开成部分分式
N=15;
n=0:N-1;
x=r(1)*p(1).^n+r(2)*p(2).^n;
stem(n,x);                           
title('x(n)');
在命令窗口中将显示:
r =
    2
  -1
p =
    2
    1
c =
    0
所以多项式分解后表示为:
运行结果如下:
2- 部分分式法求
2- 研究右半平面的实数极点对系统响应的影响。已知系统的零-极点模型分别为:
求这些系统的零极点分布图以及系统的冲激响应,判断系统的稳定性。
程序如下:
z1=[0]';p1=[0.5]';k=1;      %输入零极点增益模型零点向量z、极点向量p和增益系数k
[b1,a1]=zp2tf(z1,p1,k);      %求系数传递函数(tf)模型中分子、分母多项式的系数向量
matlab傅里叶变换的幅度谱和相位谱
subplot(3,2,1),zplane(z1,p1);  %由零点和极点向量绘制零极点分布图
ylabel('极点在单位圆内');
subplot(3,2,2),impz(b1,a1,15);  %绘制数字系统的冲激响应,取样点数为15
z2=[0]';p2=[1]';
[b2,a2]=zp2tf(z2,p2,k);
subplot(3,2,3),zplane(z2,p2);
ylabel('极点在单位圆上');
subplot(3,2,4),impz(b2,a2,15);
z3=[0]';p3=[2]';
[b3,a3]=zp2tf(z3,p3,k);
subplot(3,2,5),zplane(z3,p3);
ylabel('极点在单位圆外');
subplot(3,2,6),impz(b3,a3,15);
运行结果如下:
2- 右半平面极点对系统响应影响图
由MATLAB结果图可见,这3个系统的极点均为实数且处于z平面的右半平面。当极点处于单位圆内,系统的冲激响应曲线随着频率的增大而衰减;当极点处于单位圆上时,系统的冲击响应曲线为等幅振荡;当极点处于单位圆外时,系统的冲击响应曲线随着频率的增大而发散。
3
3-已知两个周期序列分别为,动态演示它们的周期卷积和
程序如下:
clear
n=0:5;                      %建立时间向量序列n
xn1=[0,2,1,1,0,0];              %建立xn1的序列主值
xn2=[0,1,1,0,0,0];              %建立xn2的序列主值
N=length(xn1);
nx=(-N:3*N-1);
hxn2=xn2(mod(nx,N)+1);        %将xn2序列周期严拓
u=[zeros(1,N),xn2,zeros(1,2*N)];  %按xn2周期严拓后的长度重建主值信号
xn12=fliplr(xn1);              %将xn1做左右反折
hxn1=xn12(mod(nx,N)+1);      %将xn1反折后的序列周期严拓
N1=length(hxn1);
y=zeros(1,4*N);                %将y存储单元初始化
for k=0:N-1                    %动态演示开始
    p=[zeros(1,k+1),hxn1(1:N1-k-1)];        %使hxn1向右循环移位
    y1=u.*p;                            %使输入和翻转移位的脉冲过渡函数相乘

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。