数字信号处理实验吴镇扬版matlab程序.docx

上传人:b****5 文档编号:7428287 上传时间:2023-01-23 格式:DOCX 页数:34 大小:643.08KB
下载 相关 举报
数字信号处理实验吴镇扬版matlab程序.docx_第1页
第1页 / 共34页
数字信号处理实验吴镇扬版matlab程序.docx_第2页
第2页 / 共34页
数字信号处理实验吴镇扬版matlab程序.docx_第3页
第3页 / 共34页
数字信号处理实验吴镇扬版matlab程序.docx_第4页
第4页 / 共34页
数字信号处理实验吴镇扬版matlab程序.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

数字信号处理实验吴镇扬版matlab程序.docx

《数字信号处理实验吴镇扬版matlab程序.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验吴镇扬版matlab程序.docx(34页珍藏版)》请在冰豆网上搜索。

数字信号处理实验吴镇扬版matlab程序.docx

数字信号处理实验吴镇扬版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);Fb=fft(Xb,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1