通过sym函数来定义。 如果信号的z域表示式X(z)是有理函数,进行z反变换的另一个方法是对X(z)进行 部分分式展开,然后求各简单分式的z反变换。设X(z)的有理分式表示为 X()= b。+bz1+b222+…+bn2m_B(z) (4-3) 1+az+az-2+...+a=-m A(z) MATLAB信号处理工具箱提供了一个对X(z)进行部分分式展开的函数residuez,其语句格 式为 [R,P,K]=residuez(B,A) 其中,B,A分别表示X(z)的分子与分母多项式的系数向量;R为部分分式的系数向量;P 为极点向量:K为多项式的系数。若X(z)为有理真分式,则K为零。 (四)离散时间傅里叶变换(DTFT) 1.序列x[n]的离散 时间傅里叶变换定义为: X(e)=xnle-m 月=-0 X(e°)是变量o的连续函数。 X(eo)并可写为实部和虚部相加的形式:X(eo)=X,e(e)+jXm(eo) X(eo)也可以表示为:X(eo)X(e)川eo)。其中,f(o)=arg{X(eo)}。 |X()川称为幅度函数,(o)称为相位函数,又分别称为幅度谱和相位谱,都是o的 实函数。 2.X(eo)的离散时间傅里叶逆变换为: Xda 3.由于X()是连续函数,而在MATLAB中数据只能以向量的形式存在,所以 X(°)只能在一个给定L个离散频率点的离散频率集合中计算,需要尽可能大地选取L的 值以表示连续函数X(eo) 6
6 通过 sym 函数来定义。 如果信号的 z 域表示式 X (z) 是有理函数,进行 z 反变换的另一个方法是对 X (z) 进行 部分分式展开,然后求各简单分式的 z 反变换。设 X (z) 的有理分式表示为 ( ) ( ) 1 ( ) 2 2 1 1 2 2 1 0 1 A z B z a z a z a z b b z b z b z X z n n m m = + + + + + + + + = − − − − − − (4-3) MATLAB 信号处理工具箱提供了一个对 X (z) 进行部分分式展开的函数 residuez,其语句格 式为 [R,P,K]=residuez(B,A) 其中,B,A 分别表示 X(z)的分子与分母多项式的系数向量;R 为部分分式的系数向量;P 为极点向量;K 为多项式的系数。若 X(z)为有理真分式,则 K 为零。 (四) 离散时间傅里叶变换(DTFT) 1.序列 x[n]的离散 时间傅里叶变换定义为: =− − = n j j n X e x n e ( ) [ ] ( ) j X e 是变量 的连续函数。 ( ) j X e 并可写为实部和虚部相加的形式: ( ) ( ) ( ) j im j re j X e = X e + jX e ( ) j X e 也可以表示为: ( ) ( ) | ( ) | j j j X e = X e e 。其中, ( ) arg{ ( )} j = X e 。 | ( )| j X e 称为幅度函数, () 称为相位函数,又分别称为幅度谱和相位谱,都是 的 实函数。 2. ( ) j X e 的离散时间傅里叶逆变换为: x n X e e d j j n − = ( ) 2 1 [ ] 3.由于 ( ) j X e 是连续函数,而在 MATLAB 中数据只能以向量的形式存在,所以 ( ) j X e 只能在一个给定 L 个离散频率点的离散频率集合中计算,需要尽可能大地选取 L 的 值以表示连续函数 ( ) j X e
三、实验内容 (一)线性时不变系统的冲激响应的计算 设系统为y(n)-0.5y(n-1)+0.75y(n-2)=2.5x(n)+2.5x(n-1)+2x(n-2),计算上述系统的 冲激响应。 参考程序如下: N=40: num=[2.52.52]: den=[1-0.50.75]: y=impz (num,den,N) %画出冲激响应 stem(y); xlabel('时间序号n');ylabel('振幅): title(冲激响应);grid; (二)时域采样 对连续正弦时间信号x(t)=cos(2πft)进行采样,其中f=13。 t=0:0.0005:1: f=13: xa=cos(2*pi*f*t) subplot(2,1,1) plot (t,xa);grid xlabel('时间,msec'):ylabel('振幅): title(连续时间信号'): axis([01-1.21.2]) subplot(2,1,2); T=0.1: n=0:T:1: xs=c0s(2*pi*f知): k=0:length(n)-1; stem(k,xs);grid
7 三、实验内容 (一)线性时不变系统的冲激响应的计算 设系统为 y(n)-0.5y(n-1)+0.75y(n-2)=2.5x(n)+2.5x(n-1)+2x(n-2),计算上述系统的 冲激响应。 参考程序如下: N=40; num=[2.5 2.5 2]; den=[1 -0.5 0.75]; y=impz(num,den,N); %画出冲激响应 stem(y); xlabel('时间序号 n'); ylabel('振幅'); title('冲激响应'); grid; (二)时域采样 对连续正弦时间信号 x(t)=cos(2πft)进行采样,其中 f=13。 t=0:0.0005:1; f=13; xa=cos(2*pi*f*t); subplot(2,1,1) plot(t,xa);grid xlabel('时间,msec'); ylabel('振幅'); title('连续时间信号'); axis([0 1 -1.2 1.2]) subplot(2,1,2); T=0.1; n=0:T:1; xs=cos(2*pi*f*n); k=0:length(n)-1; stem(k,xs);grid
xlabel('时间序号n');ylabel('振幅); title(C离散时间信号'): axis(01 ength(n)-1-1.21.2]) (三)z变换和z反变换 1.用ztrans函数求函数x(n)=a”cos(m)u(n)的z变换。 MATLAB参考程序如下: x=sym('a n*cos(pi*n)); Zl=ztrans(x); Z=simplify(Z1); 2用as函数求函数X)=三2:-E+12的2反变换。 (z-10(z-2)3 MATLAB参考程序如下: Z=ym(z*(2*z2-11*z+12)/(z-1)/(z-2)3), x=iztrans(Z); simplify(x) 3.用MATLAB命令对函数X(z)= 18 18+3z-42-2-23 进行部分分式展开,并求出 其z反变换。 MATLAB参考程序如下: B=18]: A=[183,-4,-1]: [R,P.K]=residuez(B,A) (四)序列的离散时间傅里叶变换(DTFT) 求序列x(n)=(-0.8)",-10≤n≤10的离散时间傅里叶变换,并画出它的实部、虚部、幅 度和相位。 n=-10:10: x=(-0.8).^n k=-200:200: w=(pi/100)*k; X=x*(exp(-jpi/100).^(n'k):
8 xlabel('时间序号 n'); ylabel('振幅'); title('离散时间信号'); axis([0 length(n)-1 -1.2 1.2]) (三)z 变换和 z 反变换 1.用 ztrans 函数求函数 x(n) a cos( n)u(n) n = 的 z 变换。 MATLAB 参考程序如下: x=sym('a^n*cos(pi*n)'); Z1=ztrans(x); Z=simplify(Z1); 2.用 iztrans 函数求函数 3 2 ( 1)( 2) (2 11 12) ( ) − − − + = z z z z z X z 的 z 反变换。 MATLAB 参考程序如下: Z=sym('z*(2*z^2-11*z+12)/(z-1)/(z-2)^3'); x=iztrans(Z); simplify(x) 3.用 MATLAB 命令对函数 1 2 3 18 3 4 18 ( ) − − − + − − = z z z X z 进行部分分式展开,并求出 其 z 反变换。 MATLAB 参考程序如下: B=[18]; A=[18,3,-4,-1]; [R,P,K]=residuez(B,A) (四)序列的离散时间傅里叶变换(DTFT) 求序列 x(n)=(-0.8)n, −10 n 10 的离散时间傅里叶变换,并画出它的实部、虚部、幅 度和相位。 n=-10:10; x=(-0.8).^n; k=-200:200; w=(pi/100)*k; X=x*(exp(-j*pi/100)).^(n'*k);