结果:
实验3.1 代码:
clear;clc;clf; n=[-20:20];
x=stepseq(-5,-20,20)-stepseq(6,-20,20); w1=-2*pi;w2=2*pi;w_step=pi/400; w=w1:w_step:w2; ww=w/pi;
xw=spec(x,n,w); %?????w?????
subplot(2,2,1);plot(ww,abs(xw));axis([-2,2,0,max(abs(xw))]);grid on; xlabel('w');title('Abs(X)');
subplot(2,2,2);plot(ww,angle(xw));axis([-1.2,1.2,-1.2*pi,1.2*pi]); grid on;
xlabel('w');title('Phase(X)'); subplot(2,2,3);plot(ww,real(xw));
axis([-2,2,min(real(xw)),max(real(xw))]);grid on; xlabel('w');title('Real(X)'); subplot(2,2,4);plot(ww,imag(xw));
axis([-2,2,min(imag(xw)),max(imag(xw))]);grid on; xlabel('w');title('Imag(X)');
结果:
实验3.2 代码:
n=0:100; x=cos(pi*n/2);
py=exp(j*pi*n/4); y=py.*x;
w = -pi : pi/800 : pi; ww=w/pi; xw=spec(x,n,w); yw=spec(y,n,w);
subplot(2,2,1);plot(ww,abs(xw));title('Magnitude of X');grid; ylabel('|X|');xlabel('Normalized Freq.(|D rad/s)'); axis([ min(ww) , max(ww) , 0, max(abs(xw)) ]);
subplot(2,2,2);plot(ww,angle(xw));title('Angle of X');grid; ylabel('Angle(X)');xlabel('Normalized Freq.(|D rad/s)'); axis([ min(ww) , max(ww) , -pi, pi ]);
subplot(2,2,3);plot(ww,abs(yw));title('Magnitude of Y');grid; ylabel('|Y|');xlabel('Normalized Freq.(|D rad/s)'); axis([ min(ww) , max(ww) , 0, max(abs(yw)) ]);
subplot(2,2,4);plot(ww,angle(yw));title('Angle of Y');grid; ylabel('Angle(Y)');xlabel('Normalized Freq.(|D rad/s)'); axis([ min(ww) , max(ww) , -pi, pi ]);
结果:
实验3.3 代码:
n=-5:10;x=sin(pi*n/2);
w1=-pi;w2=pi;w_step=pi/800;w=w1:w_step:w2; X=spec(x,n,w);
[xe,xo,m]=evenodd2(x,n); clf;
XE=spec(xe,m,w);XO=spec(xo,m,w); XR=real(X);XI=imag(X);
subplot(3,2,1);plot(w/pi,XR,'r');grid;axis([-1,1,min(XR),max(XR)]); xlabel('Normalized Freq.(\\pi rad/sample)');ylabel('Re[X]'); title('Real part of X');
subplot(3,2,2);plot(w/pi,XI,'r');grid;axis([-1,1,min(XI),max(XI)]); xlabel('Normalized Freq.(\\pi
rad/sample)');ylabel('Im(X)');title('Imaginary part of X'); subplot(3,2,3);plot(w/pi,real(XE),'r');grid; axis([-1,1,min(real(XE)),max(real(XE))]); xlabel('Normalized Freq.(\\pi rad/sample)');
ylabel('XE or Re(XE)');title('DFT of even part-real'); subplot(3,2,4);plot(w/pi,imag(XE),'r');grid; axis([-1,1,min(imag(XE)),max(imag(XE))]); xlabel('Normalized Freq.(\\pi rad/sample)');
ylabel('Im(XE)');title('DFT of even part-Imaginary'); subplot(3,2,5);plot(w/pi,real(XO),'r');grid; axis([-1,1,min(real(XO)),max(real(XO))]);
xlabel('Normalized Freq.(\\pi rad/sample)');ylabel('Re(XO)'); title('DFT of oddd part-Real'); subplot(3,2,6);
plot(w/pi,imag(XO),'r');grid;
axis([-1,1,min(imag(XO)),max(imag(XO))]); xlabel('Normalized Freq.(\\pi rad/sample)');
ylabel('XO/j or Im(XO)');title('DFT of odd part-Imaginary');
结果:
子函数: 1.stepseq.m
function [x,n]=stepseq(n0,n1,n2) n=n1:n2; x=(n>=n0);
函数的功能是产生阶跃函数,其中n1和n2是函数的横坐标边界,n0是跳变点。
2.evenodd.m
function [xe,xo]=evenodd(x) xe=(x+fliplr(x))/2; xo=(x-fliplr(x))/2;
函数的功能是产生序列的奇偶分量,其中xe是偶分量,xo是奇分量。
3.conv_m
function [y,ny]=conv_m(x,nx,h,nh) y=conv(x,h); n1=min(nx)+min(nh); n2=max(nx)+max(nh); ny=n1:n2;
函数实现的功能是做序列的卷积,并且定义卷积的范围(范围是做卷积的序列的范围之和)。
4.delta.m
function y=delta(x) y=(x==0);
函数的功能是产生冲激函数。
5.spec.m
function xw=spec(x,n,w) xw=zeros(1,length(w)); n1=min(n);n2=max(n); for k=n1:n2
xw=xw+x(k-n1+1)*exp(-j*k*w); end
函数的功能是计算频谱。
六、思考题 1、lab2.1.
则y[n]=x[n-no],即y[n]是x[n]右移no个单位后的结果。 2、 y[n]
位与右移三个单位并取负数相加后的结果。
七、讨论与心得
我觉得自己对于matlab的学习还不是很深入,使用不算熟练。虽然学习MATLAB的时间虽然很短,但却让我了解到了它的强大和它的功能。MATLAB不仅有强大的运算功能,它还有强大的绘图功能,我对它的了解也仅仅就是一点点,或许说还没有入门。比如说它含有丰富的内建函数,例如数学函数中的三角函数、复函数、多项式函数、数据分析函数的求平均值、最大最小值、排序等。在课程的学习中我逐步了解了这一软件的独特之处和便利之处,相信这个软件在以后还会提供更大的帮助。
是x[n]左移3个单