2.38(4).x(n)=e(-0.2j0.4)n,-10≤n≤10在给定的区间上产生信号,使用stem()函数画图,
分别画出幅度、相位、实部和虚部.
n=-10:0.5:10;
m=-0.2+j*0.4;
x=exp(m*n);
subplot(2,2,1);stem(n,real(x));grid on;
title('Real part');xlabel('n');ylabel('Amplitude');
subplot(2,2,2);stem(n,imag(x));grid on;
title('Imaginary part');xlabel('n');ylabel('Amplitude');
subplot(2,2,3);stem(n,abs(x));grid on;
title('Absolute part');xlabel('n');ylabel('y');
subplot(2,2,4);stem(n,(180/pi)*angle(x));grid on;
title('Angle part');xlabel('n');ylabel('y');
2.40.已知x(n)={1,2,3,4,5},0≤n≤4 h(n)={1,-2,1,3},0≤n≤3
nx=[0:4];x=[1,2,3,4,5];
nh=[0:3];h=[1,-2,1,3];
[y,ny]=conv_m(x,nx,h,nh)%ny为y在横坐标轴上的位置取值
%扩展x(n)和y(n)的长度
n=length(ny);x1=zeros(1,n);h1=zeros(1,n);
x1(find((ny>=min(nx))&(ny<=max(nx))==1))=x;
h1(find((ny>=min(nh))&(ny<=max(nh))==1))=h;
subplot(3,1,1);stem(ny,x1);xlabel('n');ylabel('x(n)');axis([0 7 -3 6]);
subplot(3,1,2);stem(ny,h1);xlabel('n');ylabel('h(n)');
subplot(3,1,3);stem(ny,y);xlabel('n');ylabel('y(n)');
function [y,ny]=conv_m(x,nx,h,nh)
ny0=nx(1)+nh(1);
nyf=nx(end)+nh(end);
y=conv(x,h);
ny=[ny0:nyf];
end
2.42.已知某线性移不变系统由下列差分方程描述:y(n)-y(n-1)+0.9y(n-2) =x(n);
(1)计算并画出在-20≤n≤100内的冲激响应h(n);
(2)计算并画出在-20≤n≤100内的单位阶跃响应;
(3) 判断系统是否稳定。
本题使用impseq()、stepseq()和filter()函数求解。
n=[-20:100];
b=[1];a=[1,-1,0.9];
x=impseq(0,-20,100);
h=filter(b,a,x);
subplot(2,1,1);stem(n,h);title('冲激响应');
xlabel('n');ylabel('h(n)');
x=stepseq(0,-20,100);
s=filter(b,a,x);
subplot(2,1,2);stem(n,s);title('阶跃响应');
xlabel('n');ylabel('s(n)');
z=roots(a);magz=abs(z);
function[x,n]=impseq(np,ns,nf)
if((np error('参数必须满足ns<=np<=nf') end n=ns:nf; x=[(n-np)==0]; function[x,n]=stepseq(np,ns,nf) if((np error('参数必须满足ns<=np<=nf') end n=ns:nf; x=[(n-np)>=0]; -j0.3πnjwe2.45(3)x(n)=,0≤n≤7,计算下列序列的傅里叶变换(DTFT)X(e),并画出其幅度 和相位函数,使用plot()函数画图。 figure() n=0:7; x1=exp(-j*0.3*pi*n); w=[-600:1:600]*4*pi/600; x=x1*exp(-j*(n'*w)); subplot(2,1,1);plot(w,abs(x));grid on; axis([-15,15,-1,10]),xlabel('w');title('幅度'); subplot(2,1,2);plot(w,angle(x));grid on; axis([-15,15,-5,5]),xlabel('w');title('相位'); 第二次上机 3.22x(n)={1,1,1,1},0≤n≤3,计算(DTFT)X(exp(jw)),并画出幅度相位。 x=[1,1,1,1];n=0:3; k=-200:200;w=(pi/100)*k; X=x*(exp(-j*pi/100)).^(n'*k); magX=abs(X);angX=angle(X)*180/pi; figure() subplot(2,1,1);plot(w/pi,magX); axis([-1 1 0 5]);grid; title('DTFT的幅度');xlabel('以\\pi为单位的频率');ylabel('幅度'); subplot(2,1,2);plot(w/pi,angX); axis([-2 2 -200 200]);grid; title('DTFT的相位');xlabel('以\\pi为单位的频率');ylabel('相位'); N=4;k=0:3; X=dft(x,N); magX=abs(X);phaX=angle(X)*180/pi; figure() subplot(2,1,1);stem(k,magX); title('DFT的幅度');xlabel('k'); subplot(2,1,2);stem(k,phaX); title('DFT的相位');xlabel('k'); 2.23x(n)={1,1,1,1,0,0,0,0},0≤n≤7,求8点DFT,幅度相位,与上题对比。 x=[1,1,1,1,0,0,0,0]; N=8;k=0:7; X=dft(x,N); magX=abs(X);phaX=angle(X)*180/pi; figure() subplot(2,1,1);stem(k,magX); title('DFT的幅度');xlabel('k'); subplot(2,1,2);stem(k,phaX); title('DFT的相位');xlabel('k'); function[Xk]=dft(xn,N) n=[0:1:N-1]; k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk; Xk=xn*WNnk; end 3.24x(n)=10(0.8)^n,0≤n≤10,画出yn)=x((-n))11的图形。 n=[0:10];x=10*(0.8).^n;N=11; y=cirshift(fliplr(x),0,N); y=[y,y,y];k=[0:32]; figure() subplot(2,1,1);stem(n,x); title('序列x(n)');xlabel('n');ylabel('x(n)'); subplot(2,1,2);stem(k,y); axis([0 32 0 11]);grid; title('x(n)的循环移位');xlabel('n');ylabel('y(n)'); function[y]=cirshift(x,m,N) if length(x)>N error('N必须大于等于x(n)的长度') end x=[x zeros(1,N-length(x))]; n=0:N-1; n=mod(n-m,N); y=x(n+1); 3.26x1(n)={1,2,2},x(n)={1,2,3,4}.计算5点卷积和8点卷积。画图。 %5点循环卷积 x1=[1,2,2];x2=[1,2,3,4];N=5; n1=0:2;n2=0:3;n3=0:4; y1=circonvt(x1,x2,N); figure() subplot(3,1,1);stem(n1,x1),title('x1'); subplot(3,1,2);stem(n2,x2),title('x2'); subplot(3,1,3);stem(n3,y1),title('y1'); %8点循环卷积 x1=[1,2,2];x2=[1,2,3,4];N=8; n1=0:2;n2=0:3;n3=0:7; y2=circonvt(x1,x2,N); figure() subplot(3,1,1);stem(n1,x1),title('x1'); subplot(3,1,2);stem(n2,x2),title('x2'); subplot(3,1,3);stem(n3,y2),title('y2'); 第三次上机 习题: 求两个信号的卷积 要求: 1. 使用conv 指令求卷积,使用plot 指令绘制曲线。 2. 绘制出以下两个函数曲线以及两者卷积后的结果。绘制结果尽量置于图中间,线条不要和图外框相交或重合。 2,0t1t,0t2f1(t)f2t0,else0,else t1=-3:0.0001:4; t2=-3:0.0001:5; f1=2*(t1>=0&t1<=1); f2=t2.*(t2>=0&t2<=2); t=-6:0.0001:9; figure() y=conv(f1,f2)*0.0001; subplot(3,1,1);plot(t1,f1);title('f1');xlabel('t1');axis([-3 4 -2 4]); subplot(3,1,2);plot(t2,f2);title('f2');xlabel('t2');axis([-3 5 -2 4]); subplot(3,1,3);plot(t,y);title('y');xlabel('t');axis([-6 9 -2 5]); 因篇幅问题不能全部显示,请点此查看更多更全内容