您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页数字信号处理上机

数字信号处理上机

来源:筏尚旅游网


2.38(4).x(n)=e(-0.2j0.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((npnf)|(ns>nf))

error('参数必须满足ns<=np<=nf')

end

n=ns:nf;

x=[(n-np)==0];

function[x,n]=stepseq(np,ns,nf)

if((npnf)|(ns>nf))

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,0t1t,0t2f1(t)f2t0,else0,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]);

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务