您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页信号与系统——MATLAB基本实验

信号与系统——MATLAB基本实验

来源:化拓教育网


信号与系统——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)y(i)=pi-t(i); else y(i)=0 end end

%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((-pielseif ((0clear all clc

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

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