信号与系统——MATLAB验
基本实
《信号与系统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:10
x=3-exp(-t); plot(t,x) ylabel('f(t)'); xlabel('t'); title('(1)');
(2)t=0:0.001:10
x=5*exp(-t)+3*exp(-2*t); plot(t,x) ylabel('f(t)'); xlabel('t'); title('(2)');
(3)t=0:0.001:3 x=exp(-t).*sin(2*pi*t); plot(t,x) ylabel('f(t)'); xlabel('t'); title('(3)');
(4)t=0:0.001:3 x=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) xlabel('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)*b x =
1.0000 2.0000 3.0000
2. a=[1 1 1;1 -2 1;1 2 3]; b=[2 -1 -1]'; x=inv(a)*b
x =
3.0000 1.0000 -2.0000
3. a=[1 1 0;0 1 1;1 0 1]; b=[27 33 30]'; x=inv(a)*b x = 12 15 18
实验二、信号的运算
二、编写实现下列离散信号运算函数的程序,并画出波形。 1. k=0:100 x=sin(k); stem(x) xlabel('k'); ylabel('f(k)'); title('2');
2. k=0:100 x=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:100 k(i)=i-50; if k(i)<0 f(i)=(-1).^k(i);
else f(i)=(-1).^k(i)+0.5.^k(i); end end stem(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.0625 2. 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:70 w(i)=(i-35)/10; for k=1:12
dtft(i)=dtft(i)+x(k)*exp(-j*(k-1)*w(i)); end end
subplot(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('相频特性');
幅频特性4035301DTFTDTFT相频特性4322520151050-40-1-2-3-4-4-20w24-20w24
2. clc; clear all;
for i=1:120 if i==10 x(i)=1; elseif i==20 x(i)=2; elseif i==30 x(i)=3; elseif i==40 x(i)=4; elseif i==50 x(i)=5; elseif i==60 x(i)=6; elseif i==70 x(i)=6; elseif i==80 x(i)=5; elseif i==90 x(i)=4; elseif i==100 x(i)=3; elseif i==110
x(i)=2; elseif i==120 x(i)=1; else x(i)=0; end end
% x=[1,2,3,4,5,6,6,5,4,3,2,1]; %dtft=zeros(150); for i=1:120 w(i)=(i-40)/10; end G=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('相频特性');
幅频特性40353012520151050-4-2-3-4-4432相频特性DFTDFT-20w240-1-20w24
3.
%DTFT
clc; clear all;
x=[1,2,3,4,5,6,6,5,4,3,2,1]; dtft=zeros(70); for i=1:70 w(i)=(i-35)/10; for k=1:12
dtft(i)=dtft(i)+x(k)*exp(-j*(k-1)*w(i)); end end
figure;plot(w,abs(dtft),'b');xlabel('w');ylabel('D
TFT 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==30 x(i)=3; elseif i==40 x(i)=4; elseif i==50 x(i)=5; elseif i==60 x(i)=6; elseif i==70 x(i)=6; elseif i==80
x(i)=5; elseif i==90 x(i)=4; elseif i==100 x(i)=3; elseif i==110 x(i)=2; elseif i==120 x(i)=1; else x(i)=0; end end
for i=1:120 w(i)=(i-40)/10; end G=fft(x); hold on;
plot(w(1:80),abs(G(1:80)),'r');xlabel('w');ylabel('DTFT or DFT');title('幅频特性');
幅频特性403530DTFT or DFT2520151050-4-3-2-10w1234
三、分别用数值计算法和DFT法,计算下列信号的频谱,并画出其幅度频谱和相位频谱。 1.数值计算
%fun111.m
function y=fun111(t) [M,N]=size(t); for i=1:N
if((t(i)>-pi)&&(t(i)<0)) y(i)=pi+t(i);
elseif ((t(i)>0)&&(t(i) %new111.m clear all clc for i=1:1000 w(i)=(i-1)/25; F= @(t) fun111(t).*exp(-j*w(i).*t); G(i)=quad(F,0,1); end subplot(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('数值计算相位频谱'); 数值计算幅度频谱30数值计算相位频谱2.5-0.52-11.5GFi-1.51-20.5001020w3040-2.501020w3040 DFT法 %fun1.m function y=fun1(x) if((-pi for i=1:1000 g(i)=fun1(2/1000*i-1); w(i)=(i-1)*0.2*pi; end for i=1001:10000 g(i)=0; w(i)=(i-1)*0.2*pi; end G=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相位频谱'); DFT幅度频谱30DFT相位频谱2.5-0.5-12-1.51.5GFi-21-2.50.5-3001020w3040-3.501020w3040 2.数值计算 %fun222.m function y=fun222(t) [M,N]=size(t); for i=1:N if (t(i)<1) && (t(i)>-1) y(i)=cos(pi*(t(i))/2); else y(i)=0; end end %new222.m clear all clc for i=1:1000 w(i)=(i-1)/25; F= @(t) fun222(t).*exp(-j*w(i).*t); G(i)=quad(F,0,1); end subplot(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('数值计算相位频谱'); 数值计算幅度频谱0.70-0.20.6-0.40.5-0.6-0.8-1-1.2-1.4-1.60.1-1.8001020w3040-20Fi数值计算相位频谱0.4G0.30.21020w3040 DFT法 %fun2.m function y=fun2(x) if x<1 && x>-1 y=cos(pi*x/2); else y=0; end %new2.m for i=1:1000 g(i)=fun2(2/1000*i-1); w(i)=(i-1)*0.2*pi; end for i=1001:10000 g(i)=0; w(i)=(i-1)*0.2*pi; end G=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('相位频谱'); DFT幅度频谱0.70.60.50.4G0.30.20.10010203040w3.数值计算 %fun333.m function y=fun333(t) [M,N]=size(t); for i=1:N if (t(i)<0) && (t(i)>-1) y(i)=1; elseif t(i)>0 && t(i)<1 y(i)=-1; else y(i)=0; DFT相位频谱3210iF-1-2-3-4010203040w end end end %new333.m clear all clc for i=1:1000 w(i)=(i-1)/25; F= @(t) fun333(t).*exp(-j*w(i).*t); G(i)=quad(F,0,5); end subplot(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('数值计算相位频谱'); 数值计算幅度频谱10.930.80.70.60.50.40.30.20.50.1001020w304000GFi数值计算相位频谱3.52.521.511020w3040 DFT法 %fun3.m function y=fun3(x) if x<0 && x>-1 y=1; elseif x>0 && x<1 y=-1; else y=0 end %new.m for i=1:1000 g(i)=fun3(2/1000*i-1); w(i)=(i-1)*0.2*pi; end for i=1001:10000 g(i)=0; w(i)=(i-1)*0.2*pi; end G=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相位频谱'); DFT幅度频谱0.80.70.60.5G0.40.30.20.10010203040wDFT相位频谱3210-1-2-3-4010203040wFi 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务