变换;
提示:思路与上题相同。通过X1(z)和X2(z)找出序列x1(n)和x2(n),直接求x1(n)和x2(n)的卷积,即是求X1(z)·X2(z)的逆z变换。注意序列x1(n)和x2(n)的n的取值范围。 n1=-1:1; n2=-2:1;
x1=[1,2,3]; x2=[2,4,3,5];
y=conv(x1,x2); n=n1(1)+n2(1):n1(3)+n2(4); stem(n,y);
2520151050-3-2.5-2-1.5-1-0.500.511.52
3.离散时间线性时不变系统的时域实现:已知因果LSI系统的差分方程为:
y(n)?0.81y(n?2)?x(n)?x(n?2),写出系统传递函数H(z)及其收敛域,编程实现以下内容:
① 系统冲激响应h(n),并绘图; ② 系统的单位阶跃响应g(n),并绘图; ③ 系统函数的幅频响应H(ejw),并绘出幅频和相频特性。
提示:①冲激响应可用impz(b,a,n)函数,可查看Matlab Help了解它的相关用法。impz函数:数字滤波器的冲激响应,用来求系统的冲激响应h(n)。b是差分方程中输入的系数,a是差分方程中输出的系数。注意缺项的系数前要添加系数0。这个函数本身就有画图功能。如果n是一个整形变量,impz计算的是在这些整数点位置上的冲激响应,且从0开始。②单位阶跃响应可用stepz(b,a,n)函数,可查看Matlab Help了解它的相关用法。与impz用法相似。③幅频响应可用freqz(b,a,w),其中w=[0:1:500]*pi/500和freqz(b,a,n)分别求, 可查看Matlab Help了解它的相关用法。 ①:b=[1 0 -1]; a=[1 0 -0.81]; impz(b,a,100);
Impulse Response1.210.8 Amplitude0.60.40.20-0.20102030405060n (samples)708090
②:b=[1 0 -1]; a=[1 0 -0.81]; stepz(b,a,100);
Step Response10.90.80.7 Amplitude0.60.50.40.30.20.100102030405060n (samples)708090
③:a=[1,0,-0.81]; b=[1,0,-1]; freqz(b,a,50,'whole');
1Magnitude (dB)0-1-200.20.40.60.811.21.41.6Normalized Frequency (?? rad/sample)1.8240Phase (degrees)200-20-4000.20.40.60.811.21.41.6Normalized Frequency (?? rad/sample)1.82
a=[1,0,-0.81]; b=[1,0,-1]; freqz(b,a,[0:1:500]*pi/500);
100Magnitude (dB)0-100-200-30000.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)0.91100Phase (degrees)500-50-10000.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)0.91
四.思考题
1. 画图语句后加grid,起什么作用?(10分)
2. 画图时,不加axis语句,为什么也可以画出图形?此时横纵轴坐标怎样?(10分) 3. freqz(b,a,w)中,w=[0:1:500]*pi/500,若改为:
freqz(b,a,n),n=[0:1:50],会出现什么情况?为什么?(10分) 4. 根据实验结果,写出系统函数的表达式H(z),并写出收敛域。(10分) 5. 系统稳定性和因果性的判决条件?程序实现的主要思路?(10分)
实验四 离散时间傅立叶变换DFT(离散时间信号的频域分析)
五、 实验目的
4. 深刻理解有限长序列的离散傅立叶变换的概念、计算及意义; 5. 掌握从离散傅立叶级数到离散傅立叶变换的过程; 6. 掌握离散傅立叶变换的性质,熟悉信号的频域转换。 六、 实验原理
一个信号的时域转换可以通过傅立叶变换(DFT)来完成。有限长序列的DFT是其Z 变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。为了更好地理解DFT的概念,我们先了解周期序列及其离散傅立叶级数
(DFS)表示。 七、 实验内容
1. 若x(n)?cos(n?)是一个N=12的有限长序列,利用MATLAB计算它的DFT并画出图形。
6提示:在计算机上实现信号的频谱分析及其他方面的处理工作时,对信号的要求是:在时域和频域都应该是离散的,且都应是有限长的,只有DFS(离散周期序列的傅立叶级数)在时域和频域都是离散的。所以,DFT实际上来是自于DFS的,只不过仅在时域、频域各取一个周期而已。本题要求自己编写一个dft(xn,N)函数,其中xn代表序列,N代表有限长序列的点数。dft(xn,N)函数的算法采用序列求DFT变换的基本公式,即: 2?nkX(k)?x(n)exp(?jnk)?x(n)WN,其中,k?0,1,?,N?1。由于X(k)为复数,所以画Nn?0n?0?N?1?N?1图时,应画X(k)的幅度特性abs()和相位特性angle()。 clc
N=12; n=0:N-1; k=0:N-1;
x=cos(n*pi/6); w=exp(-j*2*pi/N);
A=n'*k; X=x*w.^A; X1=abs(X); X2=angle(X); subplot(121);stem(n,X1);grid on; subplot(122);stem(n,X2);grid on;
74321403-12-2-3-46510051015051015
nx(n)?(0.9),0?n?20 2. 对于实序列
① 分解成偶部xe(n)和奇部xo(n);
② 验证实序列的性质:DFT[xe(n)]?Re[X(k)] DFT[xo(n)]?jIm[X(k)] 提示:任意一个实序列都可以表示成偶对称序列与奇对称序列之和,即:x(n)?xe(n)?xo(n)。令xe(n)?[x(n)?x((N?n))N],,这xo(n)?[x(n)?x((N?n))N]样分别求DFT[xe(n)]和DFT[xo(n)],再求DFT[x(n)],将得到的X(k)取其Re[X(k)]和jIm[X(k)],与上述结果相比较,验证实序列的上述性质。本题要求自己编写一个circevod(x)函数,它的功能是将一个实序列分解成xe(n)与xo(n)之和,并求出xe(n)与xo(n)。其中需要有判断语句,判断这个序列是否是实序列;x((N?n))N的求法可参考mod(-n,N)函数。 1212clear all;
n=0:19; N=length(n); m=mod(-n,N)+1;
x1=0.9.^n; x2=x1(m); xe=1/2*(x1+x2); xo=1/2*(x1-x2); subplot(321);stem(n,xe);title('x1(n)的偶部'); subplot(322);stem(n,xo);title('x1(n)的奇部'); Xe=dft(xe,N); Xo=dft(xo,N);
X=dft(x1,N); ReX=real(X); ImX=imag(X); subplot(323);stem(n,Xe);title('xe(n)的DFT'); subplot(324);stem(n,ReX);title('X的实部'); subplot(325);stem(n,imag(Xo));title('xo的DFT'); subplot(326);stem(n,ImX);title('X的虚部');
x1(n)的偶部10.50105050-50.50-0.5105050-5x1(n)的奇部0510xe(n)的DFT15200510X的实部15200510xo的DFT15200510X的虚部15200510152005101520
离散傅里叶变换的应用