数字信号处理实验吴镇扬版matlab程序.docx
- 文档编号:29643553
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:40
- 大小:619.89KB
数字信号处理实验吴镇扬版matlab程序.docx
《数字信号处理实验吴镇扬版matlab程序.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验吴镇扬版matlab程序.docx(40页珍藏版)》请在冰豆网上搜索。
数字信号处理实验吴镇扬版matlab程序
(1)数组的加、减、乘、除和乘方运算。
输入A=[1234],B=[3456],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。
clearall;
a=[1234];
b=[3456];
c=a+b;
d=a-b;
e=a.*b;
f=a./b;
g=a.^b;
n=1:
4;
subplot(4,2,1);stem(n,a);
xlabel('n');xlim([05]);ylabel('A');
subplot(4,2,2);stem(n,b);
xlabel('n');xlim([05]);ylabel('B');
subplot(4,2,3);stem(n,c);
xlabel('n');xlim([05]);ylabel('C');
subplot(4,2,4);stem(n,d);
xlabel('n');xlim([05]);ylabel('D');
subplot(4,2,5);stem(n,e);
xlabel('n');xlim([05]);ylabel('E');
subplot(4,2,6);stem(n,f);
xlabel('n');xlim([05]);ylabel('F');
subplot(4,2,7);stem(n,g);
xlabel('n');xlim([05]);ylabel('G');
(2)用MATLAB实现下列序列:
a)x(n)=0.8n0≤n≤15
b)x(n)=e(0.2+3j)n0≤n≤15
c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15
d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。
e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。
clearall;
N=0:
15;
xa=0.8.^N;
figure;subplot(2,1,1);stem(N,xa);xlabel('n');xlim([016]);ylabel('xa');
xb=exp((0.2+3*j)*N);
subplot(2,1,2);stem(N,xb);
xlabel('n');xlim([016]);ylabel('xb');figure;
xc=3*cos(0.125*pi*N+0.2*pi)+2*sin(0.25*pi*N+0.1*pi);
subplot(3,1,1);stem(N,xc);xlabel('n');xlim([016]);ylabel('xc');
k=0:
3;m=0;
fori=1:
4
forj=1:
16
m=m+1;
n(m)=N(j)+16*k(i);
x16(m)=3*cos(0.125*pi*n(m)+0.2*pi)+2*sin(0.25*pi*n(m)+0.1*pi);
end
end
subplot(3,1,2);stem(n,x16);xlabel('n');ylabel('x16');
forj=1:
10
x10(j)=x16(j);
end
fori=1:
3
form=1:
10
x10(i*10+m)=x10(m);
end
end
n=1:
40;
subplot(3,1,3);stem(n,x10);xlabel('n');ylabel('x10');
(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本:
a)x1(n)=2x(n+2)-x(n-1)-2x(n)
b)
clearall
n=1:
4;
T=4;
x=[1-135];
x(5:
8)=x(1:
4);
subplot(2,1,1);stem(1:
8,x);grid;
fori=1:
4
ifi-1<0
x1(i)=2*x(i+2)-x(i-1)-2*x(i);
else
x1(i)=2*x(i+2)-x(i-1+T)-2*x(i);
end
end
x1(5:
8)=x1(1:
4);
subplot(2,1,2);stem(1:
8,x1);grid;
(4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注:
a)x(t)=sin(2πt)0≤t≤10s
b)x(t)=cos(100πt)sin(πt)0≤t≤4s
ta=0:
0.05:
10;
xa=sin(2*pi*ta);
subplot(2,1,1);plot(ta,xa);
xlabel('t');ylabel('幅度');
tb=0:
0.01:
4;
xb=cos(100*pi*tb).*sin(pi*tb);
subplot(2,1,2);plot(tb,xb);
xlabel('t');ylabel('幅度');
(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1 n0=5;ns=1;nf=10;%ns为起点;nf为终点;在=n=n0处生成单位阶跃序列 n=[ns: nf]; x=[(n-n0)>=0]; stem(n,x); (6)给一定因果系统 求出并绘制H(z)的幅频响应与相频响应。 clearall; b=[1,sqrt (2),1]; a=[1,-0.67,0.9]; [h,w]=freqz(b,a); am=20*log10(abs(h)); subplot(2,1,1);plot(w,am); ph=angle(h); subplot(2,1,2);plot(w,ph); (7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。 clearall; a=[8-2-123]; b=[23-1-3]; c=conv(a,b);%计算卷积 M=length(c)-1; n=0: 1: M; stem(n,c); xlabel('n');ylabel('幅度'); (8)求以下差分方程所描述系统的单位脉冲响应h(n),0≤n≤50 y(n)+0.1y(n-1)-0.06y(n-2)=x(n)-2x(n-1) clearall; N=50; a=[1-2]; b=[10.1-0.06]; x=[1zeros(1,N-1)]; k=0: 1: N-1; y=filter(a,b,x); stem(k,y); xlabel('n');ylabel('幅度'); (1)、观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现? 记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 解: 程序见附录程序一: 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’) 分析: 由高斯序列表达式知n=p为期对称轴; 当p取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱; 当q值固定不变,p变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值, p=14时的泄漏现象最为明显,混叠可能也随之出现; (2)、观察衰减正弦序列xb(n)的时域和幅频特性,a=0.1,f=0.0625,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使f分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象? 说明产生现象的原因。 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'); 分析: 当f=f1=0.0625时,谱峰位置出现正确,存在在混叠现象,时域采样为一周期,不满足采样定理。 当f=0.4375和0.5625时,时域图像关于Y轴对称,频域完全相同。 这是因为频域图是取绝对值的结果,所以完全相同。 另外由于时域采样为6个半周期,满足采样定理,无混叠;但由于截取长度不是周期整数倍,出现泄漏。 (3)、观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT分析信号序列xc(n)和xd(n)的幅频特性,观察两者的序列形状和频谱曲线有什么异同? 绘出两序列及其幅频特性曲线。 在xc(n)和xd(n)末尾补零,用N=16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化? 两情况的FFT频谱还有相同之处吗? 这些变化说明了什么? 三角波序列: 反三角波序列: clearall; n=[0: 3];k=[1: 8]; %定义三角波序列 Xc(n+1)=n;Xc(n+5)=4-n; %定义反三角波序列 Xd(n+1)=4-n;Xd(n+5)=n; %%%%%%%%%%%三角波特性%%%%%%%%%%%%% subplot(2,2,1);plot(k-1,Xc); xlabel('n');ylabel('时域特性');text(1,3,'三角波'); subplot(2,2,2);plot(k-1,abs(fft(Xc))); xlabel('k');ylabel('幅频特性');text(4,10,'三角波'); %%%%%%%%%%%反三角波特性%%%%%%%%%% subplot(2,2,3);plot(k-1,Xd); xlabel('n');ylabel('时域特性');text(3,3,'反三角波'); subplot(2,2,4);plot(k-1,abs(fft(Xd))); xlabel('k');ylabel('幅频特性');text(4,10,'反三角波'); %末尾补0,计算32点FFT Xc(9: 32)=0;Xd(9: 32)=0;k=1: 32;figure; %%%%%%%%%%%三角波特性%%%%%%%%%%%%% subplot(2,2,1);plot(k-1,Xc); xlabel('n');ylabel('时域特性');text(1,3,'三角波'); subplot(2,2,2);plot(k-1,abs(fft(Xc))); xlabel('k');ylabel('幅频特性');text(4,10,'三角波'); %%%%%%%%%%%fan三角波特性%%%%%%%%%% subplot(2,2,3);plot(k-1,Xd); xlabel('n');ylabel('时域特性');text(3,3,'反三角波'); subplot(2,2,4);plot(k-1,abs(fft(Xd))); xlabel('k');ylabel('幅频特性');text(4,10,'反三角波'); N=8时域和幅度频谱图: 分析: 由图知,三角波序列和反三角波序列的时域图像成镜像关系,但频域图像完全一样,只是因为幅频图是对x(k)的值取绝对值。 N=32时域和幅度频谱图: 分析: 由实验所得的图形知,N=32点时 和 的幅频特性都更加密集,更多离散点的幅值显示,“栅栏效应”减小,分辨率提高,而对于 来说变化更加明显。 在原序列的末端填补零值,变动了DFT的点数,人为的改变了对真实频谱采样的点数和位置,相当于搬动了“尖桩栅栏”的位置,从而使得频谱的峰点和谷点暴露出来。 N=32时, 和 的频谱差别较大,但总体趋势仍然都是中间最小,两侧呈对称。 (4)、一个连续信号含两个频率分量,经采样得 x(n)=sin2π*0.125n+cos2π*(0.125+Δf)nn=0,1……,N-1 已知N=16,Δf分别为1/16和1/64,观察其频谱;当N=128时,Δf不变,其结果有何不同,为什么? clearall; %%%%%%%N=16%%%%%%%%%%%% N=16;detf=1/16;n=[0: N-1]; x1(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n); detf=1/64;x2(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n); %%%%%%%N=16,detf=1/16%%%%%%%%%%%% subplot(2,2,1);stem(n,x1);hold;plot(n,x1); xlabel('n');ylabel('时域特性');text(6,1,'N=16,detf=1/16'); subplot(2,2,2);stem(n,abs(fft(x1))); xlabel('n');ylabel('幅值特性');text(6,4,'N=16,detf=1/16'); %%%%%%%N=16,detf=1/64%%%%%%%%%%%% subplot(2,2,3);stem(n,x2); xlabel('n');ylabel('时域特性');text(6,1,'N=16,detf=1/64'); subplot(2,2,4);stem(n,abs(fft(x2))); xlabel('n');ylabel('幅值特性');text(6,4,'N=16,detf=1/64'); %%%%%%%N=128%%%%%%%%%%%% N=128;detf=1/16;n=[0: N-1]; x3(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n); detf=1/64; x4(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n); %%%%%%%N=128,detf=1/16%%%%%%%%%%%% figure;subplot(2,2,1);stem(n,x3); xlabel('n');ylabel('时域特性');axis([0128-22]);text(6,1.5,'N=128,detf=1/16'); subplot(2,2,2);stem(n,abs(fft(x3))); xlabel('n');ylabel('幅值特性');axis([0128-1070]);text(40,60,'N=128,detf=1/16'); %%%%%%%N=128,detf=1/64%%%%%%%%%%%% subplot(2,2,3);stem(n,x3); xlabel('n');ylabel('时域特性');axis([0128-22]);text(6,1.5,'N=128,detf=1/16'); subplot(2,2,4);stem(n,abs(fft(x4))); xlabel('n');ylabel('幅值特性');axis([0128-1070]);text(40,60,'N=128,detf=1/16'); (5)、用FFT分别实现xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点圆周卷积和线性卷积。 clearall; N=16; n=0: N-1; p=8;q=2; Xa(n+1)=exp(-(n-p).^2./q); a=0.1;f=0.0625; Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n); %16点循环卷积 Fa=fft(Xa);Fb=fft(Xb); Fx=Fa.*Fb; X51=ifft(Fx); stem(n,X51); %16点线性卷积 Xa(N+1: 2*N-1)=0; Xb(N+1: 2*N-1)=0; Fa=fft(Xa);Fb=fft(Xb); Fc=Fa.*Fb; X52=ifft(Fc); figure;stem(1: 2*N-1,X52); (7)用FFT分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点循环相关和线性相关,问一共有多少种结果,他们之间有何异同点。 clearall; N=16; n=0: N-1; p=8;q=2; Xa(n+1)=exp(-(n-p).^2./q); a=0.1;f=0.0625; Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n); N=length(Xa); %16点循环相关 Fa=fft(Xa,2*N);Fb=fft(Xb,2*N); Fx=conj(Fa).*Fb; X71=real(ifft(Fx)); X71=[X71(N+2: 2*N)X71(1: N)]; n=(-N+1): (N-1);stem(n,X71); %16点线性相关 Xa(N+1: 2*N-1)=0; Xb(N+1: 2*N-1)=0; Fa=fft(Xa);Fb=fft(Xb); Fc=conj(Fa).*Fb; X72=real(ifft(Fc)); figure;stem(1: 2*N-1,X72); (8)用FFT分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的自相关函数。 clearall; N=16; n=0: N-1; p=8;q=2; Xa(n+1)=exp(-(n-p).^2./q); a=0.1;f=0.0625; Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n);%自然对数的底: e=: 2.71828182845904523536 N=length(Xa); %Xa(n)16点自相关 Fa=fft(Xa,2*N);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 吴镇扬版 matlab 程序