《信号与系统MATLAB实践》第一次上机作业实验一、熟悉MATLAB基本操作三、基本序列运算1.数组的加减乘除和乘方运算A=[1 2 3];B=[4 5 6];C=A+B;D=A-B;E=A.*B;F=A./B;G=A.^B;subplot(2,4,1);stem(A)subplot(2,4,2);stem(B)subplot(2,4,3);stem(C)subplot(2,4,4);stem(D)subplot(2,4,5);stem(E)subplot(2,4,6);stem(F)subplot(2,4,7);stem(G)2.绘制函数波形(1)t=0:0.001:10x=3-exp(-t);plot(t,x)ylabel('f(t)');xlabel('t');title('(1)');(2)t=0:0.001:10x=5*exp(-t)+3*exp(-2*t);plot(t,x)ylabel('f(t)');xlabel('t');title('(2)');(3)t=0:0.001:3x=exp(-t).*sin(2*pi*t); plot(t,x)ylabel('f(t)');xlabel('t');title('(3)');(4)t=0:0.001:3x=sin(3*t)./(3*t);plot(t,x) ylabel('f(t)'); xlabel('t'); title('(4)');(5)k=1:1:6 x=(-2).^(-k); stem(k) xlabel('k'); ylabel('f(k)'); title('(5)');(6)k=0:1:4 x=exp(k); stem(k) xlabel('k'); ylabel('f(k)'); title('(6)');(7)k=1:1:99 x=k;stem(k)ylabel('f(k)');title('(7)');四、利用MATLAB求解线性方程组。
1. a=[2 3 1;1 1 1;3 -1 -1];b=[11 6 -2]';x=inv(a)*bx =1.00002.00003.00002. a=[1 1 1;1 -2 1;1 2 3];b=[2 -1 -1]';x=inv(a)*bx =3.00001.0000-2.00003. a=[1 1 0;0 1 1;1 0 1];b=[27 33 30]';x=inv(a)*bx =1518实验二、信号的运算二、编写实现下列离散信号运算函数的程序,并画出波形。
1. k=0:100x=sin(k);stem(x)xlabel('k');ylabel('f(k)');title('2');2. k=0:100x=sin(k)+sin(pi*k);stem(x)xlabel('k');ylabel('f(k)');title('2');3. k=3:103 x=k.*sin(k); stem(x) xlabel('k'); ylabel('f(k)'); title('3');4. function f=fun(k)for i=1:100k(i)=i-50;if k(i)<0f(i)=(-1).^k(i);else f(i)=(-1).^k(i)+0.5.^k(i);endendstem(k,f)xlabel('k');ylabel('f(k)');title('4');七、编写一个计算两个离散序列的卷积和的程序,并用其计算下列卷积的和。
1. f1=[1 1 1 1];f2=[1 0.5 0.25 0.125 0.0625];conv(f1,f2)ans =1.0000 1.5000 1.7500 1.8750 0.9375 0.4375 0.1875 0.06252. f1=[1 1 1 1];f2=[3 2 1];conv(f1,f2)ans =3 5 6 6 3 1实验三、信号的谱分析二、1. clc; clear all;x=[1,2,3,4,5,6,6,5,4,3,2,1]; dtft=zeros(70); for i=1:70w(i)=(i-35)/10; for k=1:12dtft(i)=dtft(i)+x(k)*exp(-j*(k-1)*w(i)); end endsubplot(1,2,1);plot(w,abs(dtft));xlabel('w');ylabel('DTFT');title('幅频特性'); subplot(1,2,2);plot(w,angle(dtft));xlabel('w');ylabel('DTFT');title('相频特性');-4-2024051015202530354045wD T F T幅频特性-4-2024-4-3-2-101234wD T F T相频特性2. clc; clear all; for i=1:120 if i==10 x(i)=1; elseif i==20x(i)=2;elseif i==30x(i)=3;elseif i==40x(i)=4;elseif i==50x(i)=5;elseif i==60x(i)=6;elseif i==70x(i)=6;elseif i==80x(i)=5;elseif i==90x(i)=4;elseif i==100x(i)=3;elseif i==110x(i)=2;elseif i==120x(i)=1;else x(i)=0;endend% x=[1,2,3,4,5,6,6,5,4,3,2,1];%dtft=zeros(150);for i=1:120w(i)=(i-40)/10;endG=fft(x);subplot(1,2,1);plot(w(1:80),abs(G(1:80)));xlabel('w');ylabel('DFT');title('幅频特性'); subplot(1,2,2);plot(w(1:80),angle(G(1:80)));xlabel('w');ylabel('DFT');title('相频特性');-4-20240510********354045wD F T幅频特性-4-2024-4-3-2-101234wD F T相频特性3. %DTFTclc;clear all;x=[1,2,3,4,5,6,6,5,4,3,2,1]; dtft=zeros(70); for i=1:70w(i)=(i-35)/10; for k=1:12dtft(i)=dtft(i)+x(k)*exp(-j*(k-1)*w(i)); end endfigure;plot(w,abs(dtft),'b');xlabel('w');ylabel('DTFT or DFT');title('幅频特性'); hold on%DFT clc;clear all; for i=1:120 if i==10 x(i)=1; elseif i==20 x(i)=2; elseif i==30x(i)=3;elseif i==40x(i)=4;elseif i==50x(i)=5;elseif i==60x(i)=6;elseif i==70x(i)=6;elseif i==80x(i)=5;elseif i==90x(i)=4;elseif i==100x(i)=3;elseif i==110x(i)=2;elseif i==120x(i)=1;else x(i)=0;endendfor i=1:120w(i)=(i-40)/10;endG=fft(x);hold on;plot(w(1:80),abs(G(1:80)),'r');xlabel('w');ylabel('DTFT or DFT');title('幅频特性');-4-3-2-101234051015202530354045wD T F T o r D F T幅频特性三、分别用数值计算法和DFT 法,计算下列信号的频谱,并画出其幅度频谱和相位频谱。
1.数值计算 %fun111.mfunction y=fun111(t) [M,N]=size(t); for i=1:Nif((t(i)>-pi)&&(t(i)<0)) y(i)=pi+t(i);elseif ((t(i)>0)&&(t(i)<pi)) y(i)=pi-t(i); elsey(i)=0 end end%new111.m clear all clcfor i=1:1000w(i)=(i-1)/25;F= @(t) fun111(t).*exp(-j*w(i).*t);G(i)=quad(F,0,1); endsubplot(1,2,1);plot(w,abs(G));xlabel('w');ylabel('G');title('数值计算幅度频谱'); subplot(1,2,2);plot(w,angle(G));xlabel('w');ylabel('Fi');title('数值计算相位频谱');0102030400.511.522.53wG数值计算幅度频谱010203040-2.5-2-1.5-1-0.5wF i数值计算相位频谱DFT 法 %fun1.mfunction y=fun1(x) if((-pi<x) && (x<0)) y=pi+x;elseif ((0<x) && (x<pi)) y=pi-x; elsey=0 end%new.m clear all clcfor i=1:1000g(i)=fun1(2/1000*i-1); w(i)=(i-1)*0.2*pi;for i=1001:10000 g(i)=0;w(i)=(i-1)*0.2*pi; endG=fft(g)/1000; subplot(1,2,1);plot(w(1:50),abs(G(1:50)));xlabel('w');ylabel('G');title('DFT 幅度频谱'); subplot(1,2,2);plot(w(1:50),angle(G(1:50)))xlabel('w');ylabel('Fi');title('DFT 相位频谱');0102030400.511.522.53wGDFT 幅度频谱010203040-3.5-3-2.5-2-1.5-1-0.5wF iDFT 相位频谱2.数值计算 %fun222.mfunction y=fun222(t) [M,N]=size(t); for i=1:Nif (t(i)<1) && (t(i)>-1) y(i)=cos(pi*(t(i))/2); elsey(i)=0; end%new222.m clear all clcfor i=1:1000w(i)=(i-1)/25;F= @(t) fun222(t).*exp(-j*w(i).*t); G(i)=quad(F,0,1); endsubplot(1,2,1);plot(w,abs(G));xlabel('w');ylabel('G');title('数值计算幅度频谱'); subplot(1,2,2);plot(w,angle(G));xlabel('w');ylabel('Fi');title('数值计算相位频谱');1020304000.10.20.30.40.50.60.7wG数值计算幅度频谱10203040-2-1.8-1.6-1.4-1.2-1-0.8-0.6-0.4-0.20wF i数值计算相位频谱DFT 法 %fun2.mfunction y=fun2(x) if x<1 && x>-1 y=cos(pi*x/2); elsey=0; end%new2.m for i=1:1000g(i)=fun2(2/1000*i-1); w(i)=(i-1)*0.2*pi; endfor i=1001:10000 g(i)=0;w(i)=(i-1)*0.2*pi; endG=fft(g)/1000; subplot(1,2,1);plot(w(1:50),abs(G(1:50)));xlabel('w');ylabel('G');title('幅度频谱'); subplot(1,2,2);plot(w(1:50),angle(G(1:50)))xlabel('w');ylabel('Fi');title('相位频谱');0102030400.10.20.30.40.50.60.7wGDFT 幅度频谱010203040-4-3-2-1123wF iDFT 相位频谱3.数值计算 %fun333.mfunction y=fun333(t) [M,N]=size(t); for i=1:Nif (t(i)<0) && (t(i)>-1) y(i)=1;elseif t(i)>0 && t(i)<1 y(i)=-1; elsey(i)=0; end end end%new333.m clear all clcfor i=1:1000w(i)=(i-1)/25;F= @(t) fun333(t).*exp(-j*w(i).*t); G(i)=quad(F,0,5); endsubplot(1,2,1);plot(w,abs(G));xlabel('w');ylabel('G');title('数值计算幅度频谱'); subplot(1,2,2);plot(w,angle(G));xlabel('w');ylabel('Fi');title('数值计算相位频谱');1020304000.10.20.30.40.50.60.70.80.91wG数值计算幅度频谱1020304000.511.522.533.5wF i数值计算相位频谱DFT法%fun3.mfunction y=fun3(x)if x<0 && x>-1y=1;elseif x>0 && x<1y=-1;elsey=0end%new.mfor i=1:1000g(i)=fun3(2/1000*i-1);w(i)=(i-1)*0.2*pi;endfor i=1001:10000g(i)=0;w(i)=(i-1)*0.2*pi;endG=fft(g)/1000;subplot(1,2,1);plot(w(1:50),abs(G(1:50)));xlabel('w');ylabel('G');title('DFT幅度频谱'); subplot(1,2,2);plot(w(1:50),angle(G(1:50)))xlabel('w');ylabel('Fi');title('DFT相位频谱');01020304000.10.20.30.40.50.60.70.8w G DFT 幅度频谱010203040-4-3-2-10123w F i DFT 相位频谱。