当前位置:首页 > 数字信号处理上机实验答案DSP(第三版,第十章)
第十章上机实验
X16(k)?X(ej?)???216k , k?0,1,2,?15
再分别对X32(k)和X16(k)进行32点和16点IFFT,得到x32(n)和x16(n):
x32(n)?IFFTX[32k(3)2] ?n , ?0, 1,2,,31,15 x16(n)?IFFTX[16k(1)6] ?n , ?0, 1,2,分别画出X(ej?)、X32(k)和X16(k)的幅度谱,并绘图显示x(n)、x32(n)和x16(n)的波形,进行对比和分析,验证总结频域采样理论。
提示:频域采样用以下方法容易变程序实现。
① 直接调用MATLAB函数fft计算X32(k)?FFT[x(n)]32就得到X(e)在[0,2?]的32点频率域采样
② 抽取X32(k)的偶数点即可得到X(e)在[0,2?]的16点频率域采样X16(k),即
j?j?X16(k)?X32(2k) , k?0,1,2,?,15。
3 当然也可以按照频域采样理论,先将信号x(n)以16为周期进行周期延拓,取其主值○
区(16点),再对其进行16点DFT(FFT),得到的就是X(ej?)在[0,2?]的16点频率域采样
X16(k)。
4.思考题:
如果序列x(n)的长度为M,希望得到其频谱X(e)在[0,2?]上的N点等间隔采样,当N a) 运行程序打印要求显示的图形,。 b) 分析比较实验结果,简述由实验得到的主要结论 c) 简要回答思考题 d) 附上程序清单和有关曲线。 j?10.2.2 实验程序清单 1 时域采样理论的验证程序清单 % 时域采样理论验证程序exp2a.m Tp=64/1000; %观察时间Tp=64微秒 %产生M长采样序列x(n) % Fs=1000;T=1/Fs; Fs=1000;T=1/Fs; M=Tp*Fs;n=0:M-1; 9 第十章上机实验 A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*n*T).*sin(omega*n*T); Xk=T*fft(xnt,M); %M点FFT[xnt)] yn='xa(nT)';subplot(3,2,1); tstem(xnt,yn); %调用自编绘图函数tstem绘制序列图 box on;title('(a) Fs=1000Hz'); k=0:M-1;fk=k/Tp; subplot(3,2,2);plot(fk,abs(Xk));title('(a) T*FT[xa(nT)],Fs=1000Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))]) %================================================= % Fs=300Hz和 Fs=200Hz的程序与上面Fs=1000Hz完全相同。 2 频域采样理论的验证程序清单 %频域采样理论验证程序exp2b.m M=27;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,1024); 24点FFT[x(n)], 用于近似序列x(n)的TF X32k=fft(xn,32) ;2点FFT[x(n)] x32n=ifft(X32k); 2点IFFT[X32(k)]得到x32(n) X16k=X32k(1:2:N); %隔点抽取X32k得到X16(K) x16n=ifft(X16k,N/2); 点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:1023;wk=2*k/1024; % 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]) 10.2.3 实验程序运行结果 1 时域采样理论的验证程序运行结果exp2a.m如图10.3.2所示。由图可见,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。当采样频率为1000Hz时频谱混叠很小;当采样频率为300Hz时,在折叠频率150Hz附近频谱混叠很严重;当采样频率 10 第十章上机实验 为200Hz时,在折叠频率110Hz附近频谱混叠更很严重。 图10.2.2 2 时域采样理论的验证程序exp2b.m运行结果如图10.3.3所示。 11 第十章上机实验 图10.3.3 该图验证了频域采样理论和频域采样定理。对信号x(n)的频谱函数X(e jω )在[0,2π]上等间 隔采样N=16时, N点IDFT[XN(k)]得到的序列正是原序列x(n)以16为周期进行周期延拓后的主值区序列: xN(n)?IDFT[XN(k)]N?[?x(n?iN)]RN(n) i????由于N 10.2.4 简答思考题 先对原序列x(n)以N为周期进行周期延拓后取主值区序列, ?xN(n)?[?x(n?iN)]RN(n) i???再计算N点DFT则得到N点频域采样: XN(k)?DFT[xN(n)]N =X(ej?) ??2?kN , k?0,1,2,?,N?1 10.3 实验三:用FFT对信号作频谱分析 10.3.1 实验指导 1.实验目的 学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT。 2. 实验原理 用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2?/N,因此要求2?/N?D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 3.实验步骤及内容 12
共分享92篇相关文档