数字信号处理实验吴镇扬答案2.docx
《数字信号处理实验吴镇扬答案2.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验吴镇扬答案2.docx(20页珍藏版)》请在冰点文库上搜索。
数字信号处理实验吴镇扬答案2
(1)观察高斯序列的时域和幅频特性,固定信号
中参数p=8,改变q的值,使q分别等于2、4、8,观察他们的时域和幅频特性,了解当q取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p分别等于8、13、14,观察参数p变化对信号序列的时域和幅频特性的影响,注意p等于多少时会发生明显的泄漏现象,混叠是否也随之出现?
记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
解:
程序见附录程序一:
P=8,q变化时:
分析:
由高斯序列表达式知n=p为期对称轴;
当p取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱;
当q值固定不变,p变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值,
p=14时的泄漏现象最为明显,混叠可能也随之出现;
(2)观察衰减正弦序列的时域和幅频特性,a=0.1,f=0.0625,检查谱峰出现的位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使f分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和谱峰出现的位置,有无混叠和泄漏现象?
说明产生现象的原因。
解:
程序见附录程序二:
分析:
当f=f1=0.0625时,谱峰位置出现正确,存在在混叠现象,时域采样为一周期,不满足采样定理。
当f=0.4375和0.5625时,时域图像关于Y轴对称,频域完全相同。
这是因为频域图是取绝对值的结果,所以完全相同。
另外由于时域采样为6个半周期,满足采样定理,无混叠;但由于截取长度不是周期整数倍,出现泄漏。
(3)观察三角波和反三角波序列的时域和幅频特性,用N=8点的FFT分析信号序列
和
的幅频特性,观察两者的序列形状和频谱曲线有什么异同?
绘出两序列及其幅频特性曲线。
在
和
末尾补零,用N=32点的FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?
两种情况下的FFT频谱还有相同之处吗?
这些变化说明了什么?
三角波序列:
反三角波序列:
解:
程序见附录程序三:
N=8时域和幅度频谱图:
分析:
由图知,三角波序列和反三角波序列的时域图像成镜像关系,但频域图像完全一样,只是因为幅频图是对x(k)的值取绝对值。
N=32时域和幅度频谱图:
分析:
由实验所得的图形知,N=32点时
和
的幅频特性都更加密集,更多离散点的幅值显示,“栅栏效应”减小,分辨率提高,而对于
来说变化更加明显。
在原序列的末端填补零值,变动了DFT的点数,人为的改变了对真实频谱采样的点数和位置,相当于搬动了“尖桩栅栏”的位置,从而使得频谱的峰点和谷点暴露出来。
N=32时,
和
的频谱差别较大,但总体趋势仍然都是中间最小,两侧呈对称。
(4)一个连续信号含两个频率分量,经采样得
已知N=16,
分别为1/16和1/64,观察其频谱;当N=128时,
不变,其结果有何不同,为什么?
解:
程序见附录程序四:
分析:
由图可以看出N=16时,当
由1/16减小为1/64时,频谱图出现失真,可能是
的改变引起周期变化导致混叠。
当N增加至128时,频谱更加密集,分辨率明显提高,混叠现象消失。
(5)用FFT卷积分别计算
(p=8,q=2)和
(a=0.1,f=0.0625)的16点循环卷积和线性卷积。
解:
程序如下:
n1=0:
1:
15;
x=exp(-(n1-8).^2./2);
y=exp(-0.1*n1).*sin(2*pi*0.0625*n1);
N=length(x);
n=0:
N-1;
n2=0:
1:
30;
X=fft(x);
Y=fft(y);
x32=[xzeros(1,16)];
y32=[yzeros(1,16)];
X32=fft(x32);
Y32=fft(y32);
z16=ifft(X.*Y);
z32=ifft(X32.*Y32);
subplot(2,2,1);
plot(n,z16,'-o');
xlabel('n');ylabel('z(n)');
title('循环卷积的结果');
subplot(2,2,2);
plot(n2,z32(1:
2*N-1),'-o');
xlabel('n');ylabel('z(n)');
title('线性卷积的结果');
rm16=real(ifft(conj(X).*Y));
rm32_0=real(ifft(conj(X32).*Y32));
rm32=[rm32_0(N+2:
2*N)rm32_0(1:
N)];
m=n;
subplot(2,2,3);
plot(m,rm16,'-o');
xlabel('m');ylabel('rm');
title('循环相关的结果');
m=-(N-1):
N-1;
subplot(2,2,4);
plot(m,rm32,'-o');
xlabel('m');ylabel('rm');
title('线性相关的结果');
附录:
程序一:
n=0:
1:
15;
%p=8不变,q变化(2,4,8);
p=8;q=2;%p=8;q=2;
xa1=exp(-((n-p).^2)/q);
subplot(5,2,1);
plot(n,xa1,'-*');
xlabel('t/T');
ylabel('xa(n)');
title('p=8q=2')
xk1=abs(fft(xa1));
subplot(5,2,2);
stem(n,xk1)
xlabel('k');
ylabel('Xa(k)');
title('p=8q=2')
p=8;q=4;%p=8;q=4;
xa1=exp(-((n-p).^2)/q);
subplot(5,2,3);
plot(n,xa1,'-*');
xlabel('t/T');
ylabel('xa(n)');
title('p=8q=4')
xk1=abs(fft(xa1));
subplot(5,2,4);
stem(n,xk1)
xlabel('k');
ylabel('Xa(k)');
title('p=8q=4')
p=8;q=8;%p=8;q=8;
xa1=exp(-((n-p).^2)/q);
subplot(5,2,5);
plot(n,xa1,'-*');
xlabel('t/T');
ylabel('xa(n)');
xk1=abs(fft(xa1));
title('p=8q=8')
subplot(5,2,6);
stem(n,xk1)
xlabel('k');
ylabel('Xa(k)');
title('p=8q=8')
%q=8不变,p变化(8,13,14);
p=8;q=8;%p=8;q=8;
xa1=exp(-((n-p).^2)/q);
subplot(5,2,5);
plot(n,xa1,'-*');
xlabel('t/T');
ylabel('xa(n)');
xk1=abs(fft(xa1));
title('p=8q=8')
subplot(5,2,6);
stem(n,xk1)
xlabel('k');
ylabel('Xa(k)');
title('p=8q=8')
p=13;q=8;%p=13;q=8;
xa1=exp(-((n-p).^2)/q);
subplot(5,2,7);
plot(n,xa1,'-*');
xlabel('t/T');
ylabel('xa(n)');
xk1=abs(fft(xa1));
title('p=13q=8')
subplot(5,2,8);
stem(n,xk1)
xlabel('k');
ylabel('Xa(k)');
title('p=13q=8')
p=14;q=8;%p=14;q=8;
xa1=exp(-((n-p).^2)/q);
subplot(5,2,9);
plot(n,xa1,'-*');
xlabel('t/T');
ylabel('xa(n)');
title('p=14q=8')
xk1=abs(fft(xa1));
subplot(5,2,10);
stem(n,xk1)
xlabel('k');
ylabel('Xa(k)');
title('p=14q=8’)
程序二:
n1=0:
1:
15;
xb1=exp(-0.1*n1).*sin(2*pi*0.0625*n1);
subplot(3,2,1);
plot(n1,xb1,'-*');
xlabel('n');
ylabel('x(n)');
title('f=0.0625');
xk1=abs(fft(xb1));
subplot(3,2,2);
stem(n1,xk1)
xlabel('k');
ylabel('X(k)');
title('f=0.0625');
n2=0:
1:
15;
xb2=exp(-0.1*n2).*sin(2*pi*0.4375*n2);
subplot(3,2,3);
plot(n2,xb2,'-*');
xlabel('n');
ylabel('x(n)');
title('f=0.4375');
xk2=abs(fft(xb2));
subplot(3,2,4);
stem(n2,xk2)
xlabel('k');
ylabel('X(k)');
title('f=0.4375');
n3=0:
1:
15;
xb3=exp(-0.1*n3).*sin(2*pi*0.5625*n3);
subplot(3,2,5);
plot(n3,xb3,'-*');
xlabel('n');
ylabel('x(n)');
title('f=0.5625');
xk3=abs(fft(xb3));
subplot(3,2,6);
stem(n3,xk3)
xlabel('k');
ylabel('X(k)');
title('f=0.5625');
程序三:
%N=8程序:
n1=0:
1:
7;
xc1=[01234321];
subplot(2,2,1);
plot(n1,xc1,'-*');
xlabel('n');
ylabel('xc(n)');
title('时域特性');
xk1=abs(fft(xc1));
subplot(2,2,2);
stem(n1,xk1)
xlabel('k');
ylabel('Xc(k)');
title('频域特性');
n2=0:
1:
7;
xd1=[43210123];
subplot(2,2,3);
plot(n2,xd1,'-*');
xlabel('n');
ylabel('xd(n)');
title('时域特性');
xk2=fft(xd1);
subplot(2,2,4);
stem(n2,xk2)
xlabel('k');
ylabel('Xd(k)');
title('频域特性');
%N=32程序:
n1=0:
1:
31;
xc1=[01234321zeros(1,24)];
subplot(2,2,1);
plot(n1,xc1,'-*');
xlabel('n');
ylabel('xc(n)');
title('时域特性');
xk1=abs(fft(xc1));
subplot(2,2,2);
stem(n1,xk1)
xlabel('k');
ylabel('Xc(k)');
title('频域特性');
n2=0:
1:
31;
xd1=[43210123zeros(1,24)];
subplot(2,2,3);
plot(n2,xd1,'-*');
xlabel('n');
ylabel('xd(n)');
title('时域特性');
xk2=fft(xd1);
subplot(2,2,4);
stem(n2,xk2)
xlabel('k');
ylabel('Xd(k)');
title('频域特性');
程序四:
n1=0:
1:
15;
x1=sin(2*pi*0.125*n1)+cos(2*pi*(0.125+1/16)*n1);
x2=sin(2*pi*0.125*n1)+cos(2*pi*(0.125+1/64)*n1);
xk1=abs(fft(x1));
subplot(2,2,1);
stem(n1,xk1)
xlabel('k');
ylabel('X(k)');
title('N=16,df=1/16频谱图');
xk2=abs(fft(x2));
subplot(2,2,2);
stem(n1,xk2)
xlabel('k');
ylabel('X(k)');
title('N=16,df=1/64频谱图');
n2=0:
1:
127;
x3=sin(2*pi*0.125*n2)+cos(2*pi*(0.125+1/16)*n2);
x4=sin(2*pi*0.125*n2)+cos(2*pi*(0.125+1/64)*n2);
xk3=abs(fft(x3));
subplot(2,2,3);
stem(n2,xk3)
xlabel('k');
ylabel('X(k)');
title('N=128,df=1/16频谱图');
xk4=abs(fft(x4));
subplot(2,2,4);
stem(n2,xk4)
xlabel('k');
ylabel('X(k)');
title('N=128,df=1/64频谱图');
程序五:
解:
程序如下:
n1=0:
1:
15;
x=exp(-(n1-8).^2./2);
y=exp(-0.1*n1).*sin(2*pi*0.0625*n1);
N=length(x);
n=0:
N-1;
n2=0:
1:
30;
X=fft(x);
Y=fft(y);
x32=[xzeros(1,16)];
y32=[yzeros(1,16)];
X32=fft(x32);
Y32=fft(y32);
z16=ifft(X.*Y);
z32=ifft(X32.*Y32);
subplot(2,2,1);
plot(n,z16,'-o');
xlabel('n');ylabel('z(n)');
title('循环卷积的结果');
subplot(2,2,2);
plot(n2,z32(1:
2*N-1),'-o');
xlabel('n');ylabel('z(n)');
title('线性卷积的结果');
rm16=real(ifft(conj(X).*Y));
rm32_0=real(ifft(conj(X32).*Y32));
rm32=[rm32_0(N+2:
2*N)rm32_0(1:
N)];
m=n;
subplot(2,2,3);
plot(m,rm16,'-o');
xlabel('m');ylabel('rm');
title('循环相关的结果');
m=-(N-1):
N-1;
subplot(2,2,4);
plot(m,rm32,'-o');
xlabel('m');ylabel('rm');
title('线性相关的结果');