数字信号处理实验报告 3
- 格式:doc
- 大小:126.00 KB
- 文档页数:8
数字信号处理实验报告
姓名:
班级:通信
学号:
实验名称:频域抽样定理验证
实验类型:验证试验
指导教师:
实习日期:2013.
频域采样定理验证实验
一. 实验目的:
1. 加深对离散序列频域抽样定理的理解
2.了解由频谱通过IFFT计算连续时间信号的方法
3.掌握用MATLAB语言进行频域抽样与恢复时程序的编写方法
4、用MATLAB语言将X(k)恢复为X(z)及X(ejw)。
二. 实验原理:
1、1、频域采样定理: 如果序列x(n)的长度为M,频域抽样点数为N,则只有当频域采样点数N≥M时,才有xN(n)=IDFT[X(k)]=x(n),即可由频域采样X(k)无失真的恢复原序列 x(n)。
2、用X(k)表示X(z)的内插公式:10111)(1)(NkkNNzWzkXNzX
内插函数: zWzkNNNz1k111)(
频域内插公式:10)2()()(NKjkNkXeX
频域内插函数:eNjNN)21()2sin()2sin(1)(
三. 实验任务与步骤:
实验一:长度为26的三角形序列x(n)如图(b)所示,编写MATLAB程序验证频域抽样定理。
实验二:已知一个时间序列的频谱为
X(ejw)=2+4e-jw+6e-j2w+4e-j3w+2e-j4w 分别取频域抽样点数N为3、5和10,用IPPT计算并求出其时间序列x(n),用图形显示各时间序列。由此讨论原时域信号不失真地由频域抽样恢复的条件。
实验三:由X32(k)恢复X(z)和X(ejw)。
四. 实验结论与分析:
实验一:
源程序:
M=26;N=32;n=0:M; %产生M长三角波序列x(n)
xa=0:floor(M/2);
xb= ceil(M/2)-1:-1:0; xn=[xa,xb];
Xk=fft(xn,512); %1024点FFT[x(n)], 用于近似序列x(n)的TF
X32k=fft(xn,32); %32点FFT[x(n)]
x32n=ifft(X32k); %32点IFFT[X32(k)]得到x32(n)
X16k=X32k(1:2:N); %隔点抽取X32k得到X16(K)
x16n=ifft(X16k,N/2); %16点IFFT[X16(k)]得到x16(n)
subplot(3,2,2);stem(n,xn,'.');box on
title('(b) 三角波序列x(n)');xlabel('n');
ylabel('x(n)');axis([0,32,0,20])
k=0:511;wk=2*k/512;
subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');
xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])
k=0:N/2-1;
subplot(3,2,3);stem(k,abs(X16k),'.');box on
title('(c) 16点频域');xlabel('k');
ylabel('|X_1_6(k)|');axis([0,8,0,200])
n1=0:N/2-1; subplot(3,2,4);stem(n1,x16n,'.');box on
title('(d) 16点IDFT[X_1_6(k)]');
xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])
k=0:N-1;
subplot(3,2,5);stem(k,abs(X32k),'.');box on
title('(e) 32点频域采样');xlabel('k');
ylabel('|X_3_2(k)|');axis([0,16,0,200])
n1=0:N-1;
subplot(3,2,6);stem(n1,x32n,'.');box on
title('(f) 32点IDFT[X_3_2(k)]');xlabel('n');
ylabel('x_3_2(n)');axis([0,32,0,20])
结果如下所示:
实验一分析:
序列x(n)的长度M=26,由图中可以看出,当采样点数N=16M时,无时域混叠失真,x32(n)=IDFT[X32(k)]32=x(n)。
实验二:
程序源: Ts=1;NO=[3,5,10];
for r=1:3;
N=NO(r);
D=2*pi/(Ts*N);
kn=floor(-(N-1)/2:-1/2);
kp=floor(0:(N-1)/2);
w=[kp,kn]*D;
X=2+4*exp(-j*w)+6*exp(-j*2*w)+4*exp(-j*3*w)+2*exp(-j*4*w);
n=0:N-1;
x=ifft(X,N)
subplot(1,3,r);stem(n*Ts,abs(x));
end
实验二分析:
从题中得出:时域序列x(n)=[2,4,6,4,2],该序列长度为M=5,分别取频域抽样点数为N=3、5、10,由图2显示的结果可知: (1)当N=5和N=10时,N≥M,能够不失真的恢复原信号x(n);
(2)当N=3时,N<M,时间序列有泄漏,形成了混叠,不能无失真的恢复原信号x(n)。出现这种混叠的原因是上一周期的后两点与本周期的前两点发生重叠。因此显示xN(n)=[6,6,6]。
实验三:
程序源:
M=26;N=32;n=0:M;
xa=0:M/2;
xb=ceil(M/2)-1:-1:0;
xn=[xa,xb]; %产生M长三角波序列x(n)
X32k=fft(xn,32); %32点FFT[x(n)]
k0=0:N-1; %绘制X32(k)
subplot(3,1,1);stem(k0,abs(X32k),'.');
box on;
xlabel('k');ylabel('|X_3_2(k)|');
title('(a)32点频域采样');
axis([0,16,0,200]);
%由X(k)恢复X(z)
Xz=X32k.*(1-z.^(-N))./(1-exp(2*pi*j*[0:N-1]/N)).*z.^(-1)/N
z=exp(j*2*pi*[0:N-1]/N);
subplot(3,1,2);stem(z,abs(Xz),'.');
box on;
xlabel('z');ylabel('|X(z)|');
title('(b)X_3_2k恢复X(z)');
w=0:0.001:2*pi; %由X(k)恢复X(ejw)
Xw=1/N.*X32k.*sin((w-2*pi/N.*[0:N]).*N/2)./sin((w-2*pi/N.*[0:N])
/2).*exp(-j*(w-2*pi/N.*[0:N]).*((N-1)/2)) w=0:0.001:2*pi;
subplot(3,1,3);plot(w,abs(Xw),'.');
box on;
xlabel('w/pi');ylabel('|X(e^j^\omega)|');
title('(c)X_3_2k恢复X(e^j^\omega))');
axis([0,1,0,200]);
运行结果如下:
图3 X(k)恢复X(z)和X(ejw)
Xz =1.0e-012 *
Columns 1 through 6
NaN + NaNi -0.0039 + 0.0129i -0.0010 - 0.0006i -0.0006 -
0.0002i 0.0003 + 0.0008i 0.0000 - 0.0000i
Columns 7 through 12
-0.0002 + 0.0002i 0.0000 - 0.0000i -0.0000 + 0.0000i 0.0000
- 0.0001i 0.0000 + 0.0000i 0.0002 - 0.0000i
Columns 13 through 18
-0.0000 - 0.0000i -0.0000 + 0.0000i -0.0000 - 0.0000i 0.0000
+ 0.0000i 0.0000 - 0.0001i -0.0000 - 0.0000i
Columns 19 through 24
0.0000 - 0.0000i -0.0001 + 0.0001i 0.0000 + 0.0000i 0.0000
+ 0.0000i 0.0000 + 0.0000i -0.0003 - 0.0001i
Columns 25 through 30
0.0001 + 0.0001i 0.0000 + 0.0000i -0.0002 - 0.0008i 0.0000
- 0.0000i -0.0006 + 0.0016i -0.0006 + 0.0002i
Columns 31 through 32
-0.0115 + 0.0077i 0.2072 - 0.0840i
实验三分析:
该程序的思路就是通过由频域采样X(k)表示的X(z)和X(ejw)的内插公式和内插函数进行由X(k)恢复X(z)和X(ejw)。
五. 思考题
(1)上述三个实验可以验证频域采样定理,即从频域抽样序列不失真地恢复离散时域信号的条件是离散时域信号必须是有限长且频域采样点数N要大于等于离散时域信号长度M,即N≥M。
(2)序列x(n)的N点DFT是x(n)的Z变换在单位圆上的N点等间隔采样,即
1-N,0,1,k )()(|2ezXkXkNjz
序列x(n)的N点DFT是x(n)的傅里叶变换X(ejw)在区间[0,2π]上的等间隔采样,即1-N,0,1,k )()(|ek2NjXkX