信号与系统及MATLAB实现
信号与系统matlab实验报告

信号与系统MATLAB实验报告实验目的本实验旨在通过MATLAB软件进行信号与系统的相关实验,探究信号与系统的特性与应用。
实验步骤1. 准备工作在正式进行实验之前,我们需要做一些准备工作。
首先,确保已经安装好MATLAB软件,并且熟悉基本的操作方法。
其次,准备好实验所需的信号与系统数据,可以是已知的标准信号,也可以是自己采集的实际信号。
2. 信号的生成与显示使用MATLAB编写代码,生成不同类型的信号。
例如,可以生成正弦信号、方波信号、三角波信号等。
通过绘制信号波形图,观察不同信号的特点和变化。
t = 0:0.1:10; % 时间范围f = 1; % 信号频率s = sin(2*pi*f*t); % 正弦信号plot(t, s); % 绘制信号波形图3. 系统的建模与分析根据实验需求,建立相应的系统模型。
可以是线性时不变系统,也可以是非线性时变系统。
通过MATLAB进行模型的建立和分析,包括系统的时域特性、频域特性、稳定性等。
sys = tf([1, 2], [1, 3, 2]); % 系统传递函数模型step(sys); % 绘制系统的阶跃响应图4. 信号与系统的运算对于给定的信号和系统,进行信号与系统的运算。
例如,进行信号的卷积运算、系统的响应计算等。
通过MATLAB实现运算,并分析结果的意义与应用。
x = [1, 2, 3]; % 输入信号h = [4, 5, 6]; % 系统响应y = conv(x, h); % 信号的卷积运算plot(y); % 绘制卷积结果的波形图5. 实验结果分析根据实验数据和分析结果,对实验进行结果总结与分析。
可以从信号的特性、系统的特性、运算结果等方面进行综合性的讨论和分析。
实验总结通过本次实验,我们学习了如何在MATLAB中进行信号与系统的实验。
通过生成信号、建立系统模型、进行运算分析等步骤,我们深入理解了信号与系统的基本原理和应用方法。
通过实验数据和结果分析,我们对信号与系统有了更深刻的认识,并掌握了MATLAB在信号与系统实验中的应用技巧。
实验七连续信号与系统复频域分析的MATLAB实现1

实验七 连续信号与系统复频域分析的MATLAB 实现一、实验目的1. 掌握连续时间信号拉普拉斯变换的MATLAB 实现方法;2. 掌握连续系统复频域分析的MATLAB 实现方法。
二、实验原理1. 连续时间信号的拉普拉斯变换连续时间信号的拉普拉斯正变换和逆变换分别为:⎰∞∞--=dt e t f s F st )()(⎰∞+∞-=j j stds e s F j t f σσπ)(21)(Matlab 的符号数学工具箱(Symbolic Math Toolbox )提供了能直接求解拉普拉斯变换和逆变换的符号运算函数laplace()和ilaplace ()。
下面举例说明两函数的调用方法。
(1)拉普拉斯变换例1.求以下函数的拉普拉斯变换。
)()()2()()()1(221t te t f t e t f t t εε--==解:输入如下M 文件:syms tf1=sym('exp(-2*t)*Heaviside(t)'); F1=laplace(f1) %求f1(t)的拉普拉斯变换 f2=sym('t*exp(-t)*Heaviside(t)'); F2=laplace(f2) 运行后,可得如下结果:F1 = 1/(s+2) F2 = 1/(s+1)^2 (2)拉普拉斯逆变换例2.若系统的系统函数为1]Re[,231)(2->++=s s s s H 。
求冲激响应)(t h 。
解:输入如下M 文件:H=sym('1/(s^2+3*s+2)');h=ilaplace(H) %求拉普拉斯逆变换运行后,可得如下结果:h=exp(-t)-exp(-2*t) 2. 连续系统的复频域分析 若描述系统的微分方程为∑∑===Mj j j Ni i i t f b t ya 0)(0)()()(则系统函数为)()()()()(00s A s B sa sb s F s Y s H Ni ii Mj jj===∑∑== 其中,∑∑====Mj j j Ni i i s b s B s a s A 0)(,)(。
信号与系统MATLAB实验报告

实验报告实验课程:信号与系统—Matlab综合实验学生姓名:学号:专业班级:2012年5月20日基本编程与simulink仿真实验1—1编写函数(function)∑=m n k n 1并调用地址求和∑∑∑===++10011-8015012n n n n n n 。
实验程序:Function sum=qiuhe(m,k)Sum=0For i=1:m Sum=sum+i^k End实验结果;qiuhe(50,2)+qiuhe(80,1)+qiuhe(100,-1)ans=4.6170e+004。
1-2试利用两种方式求解微分方程响应(1)用simulink对下列微分方程进行系统仿真并得到输出波形。
(2)编程求解(转移函数tf)利用plot函数画图,比较simulink图和plot图。
)()(4)(6)(5)(d 22t e t e d d t r t r d d t r d tt t +=++在e(t)分别取u(t)、S(t)和sin(20пt)时的情况!试验过程(1)(2)a=[1,5,6]; b=[4,1]; sys=tf(b,a); t=[0:0.1:10]; step(sys)连续时间系统的时域分析3-1、已知某系统的微分方程:)()()()()(d 2t e t e d t r t r d t r tt t +=++分别用两种方法计算其冲激响应和阶跃响应,对比理论结果进行验证。
实验程序:a=[1,1,1];b=[1,1];sys=tf(b,a);t=[0:0.01:10];figure;subplot(2,2,1);step(sys);subplot(2,2,2);x_step=zeros(size(t));x_step(t>0)=1;x_step(t==0)=1/2;lsim(sys,x_step,t);subplot(2,2,3);impulse(sys,t);title('Impulse Response');xlabel('Time(sec)');ylabel('Amplitude');subplot(2,2,4);x_delta=zeros(size(t));x_delta(t==0)=100;[y1,t]=lsim(sys,x_delta,t);y2=y1;plot(t,y2);title('Impulse Response');xlabel('Time(sec)');ylabel('Amplitude');运行结果如下:3-2;请编写一个自定义函数[F,tF}=intl(f,tf,a)实现数值积分,其中f和tf分别用列矢量表示待积函数的抽样值和抽样时间,a表示积分的起始时间,F和tF分别表示积分结果的抽样值和抽样时间。
信号与线性系统分析(基于MATLAB的方法与实现)第九章

已知周期半波余弦信号与周期全波余弦信号的波形如图所示,用MATLAB编程求出它的傅立叶系数,绘出其直流、一次、二次、三次、四次及五次谐波叠加后的波形图,并将其与原周期信号的时域波形进行比较,观察周期信号的分解与合成过程。
% dm09101% 观察周期方波信号的分解与合成% m:傅里叶级数展开的项数display('Please input the value of m (傅里叶级数展开的项数)'); % 在命令窗口显示提示信息m = input('m = '); % 键盘输入傅里叶级数展开的项数t = -2*pi:0、01:2*pi; % 时域波形的时间范围-2π~2π,采样间隔0、01n = round(length(t)/4); % 根据周期方波信号的周期,计算1/2周期的数据点数f = cos(t)、*(t<(-3*pi/2))+cos(t)、*((t>(-pi/2))&(t<(pi/2)))+cos(t)、*(t>3*pi/2); %构造周期方波信号y = zeros(m+1,max(size(t)));y(m+1,:) = f';figure(1);plot(t/pi,y(m+1,:),'LineWidth',2); %绘制方波信号grid; %在图形中加入栅格axis([-2 2 -0、5 1、5]); %指定图形显示的横坐标范围与纵坐标范围title('周期信号'); %给显示的图形加上标题xlabel('单位pi','Fontsize', 8); %显示横坐标单位x = zeros(size(t));kk = '直流分量';pause;k=1;x = x+1/pi;y(1,:) = x; %计算各次谐波叠加与plot(t/pi,y(m+1,:),'LineWidth',2);hold on;plot(t/pi,y(1,:),'r','LineWidth',3); %绘制谐波叠加信号 hold off;grid;axis([-2 2 -0、5 1、5]);title(strcat(kk));xlabel('单位pi','Fontsize', 8);kk = strcat(kk,'与第',num2str(k));pause;k=k+1;x = x+0、5、*cos(t);y(2,:) = x; %计算各次谐波叠加与plot(t/pi,y(m+1,:),'LineWidth',2);hold on;plot(t/pi,y(2,:),'r','LineWidth',3); %绘制谐波叠加信号 hold off;grid;axis([-2 2 -0、5 1、5]);title(strcat(kk,'次谐波叠加'));xlabel('单位pi','Fontsize', 8);kk = strcat(kk,'、',num2str(k));pause;x = x+2/(3、*pi)、*cos(2、*t);y(3,:) = x; %计算各次谐波叠加与plot(t/pi,y(m+1,:),'LineWidth',2);hold on;plot(t/pi,y(3,:),'r','LineWidth',3); %绘制谐波叠加信号 hold off;grid;axis([-2 2 -0、5 1、5]);title(strcat(kk,'次谐波叠加'));xlabel('单位pi','Fontsize', 8);kk = strcat(kk,'、',num2str(k+2));pause;x = x-2/(15、*pi)、*cos(4、*t);y(4,:) = x; %计算各次谐波叠加与plot(t/pi,y(m+1,:),'LineWidth',2);hold on;plot(t/pi,y(4,:),'r','LineWidth',3); %绘制谐波叠加信号 hold off;grid;axis([-2 2 -0、5 1、5]);title(strcat(kk,'次谐波叠加'));xlabel('单位pi','Fontsize', 8);pause;plot(t/pi,y(1:m+1,:),'LineWidth',3);grid;axis([-2 2 -0、5 1、5]);title('各次谐波叠加波形');xlabel('单位pi','Fontsize', 8);% End-2-1.5-1-0.500.51 1.52-0.500.511.5周期信号单位pi-2-1.5-1-0.500.51 1.52-0.500.511.5直流分量单位pi-2-1.5-1-0.500.51 1.52-0.500.511.5直流分量和第1次谐波叠加单位pi-2-1.5-1-0.500.51 1.52-0.500.511.5直流分量和第1、2次谐波叠加单位pi-2-1.5-1-0.500.51 1.52-0.500.511.5直流分量和第1、2、4次谐波叠加单位pi-2-1.5-1-0.500.51 1.52-0.500.511.5各次谐波叠加波形单位pi% dm09201% 绘制周期信号的频谱特性 function CTFS_RP% 以周期矩形脉冲信号为例,计算其频谱特性% Nf:级数分解的谐波次数,由键盘输入% Nn:输出数据的准确位数% a0:直流项系数% an:第1,2,3,、、、次谐波余弦项展开系数% bn:第1,2,3,、、、次谐波正弦项展开系数% tao:周期矩形脉冲信号脉宽,由键盘输入% T:周期矩形脉冲信号周期,由键盘输入display('Please input the value of T, tao and Nf'); %命令窗口提示用户输入参数T = input('T = ');tao = input('tao = ');Nf = input('Nf = ');syms t n k x ; %定义符号变量Nn = 32; %输出数据的位数为32位an = zeros(Nf+1,1); %分配an系数数组bn = zeros(Nf+1,1); %分配bn系数数组x=(heaviside(t+tao/2)-heaviside(t-tao/2))*cos((pi/tao)*t); %构造一个周期的脉冲信号u(t+tao/2)-u(t-tao/2)A0 =2*int(x,t,-T/2,T/2)/T; %求出直流项a0As=2*int(x*cos(2*pi*n*t/T),t,-T/2,T/2)/T; %求出余弦项系数anBs=2*int(x*sin(2*pi*n*t/T),t,-T/2,T/2)/T; %求出正弦项系数bnan(1) = double(vpa(A0,Nn)); %获取参数组A0所对应的ASCII码数值数组for k=1:Nfan(k+1)=double(vpa(subs(As,n,k),Nn)); %获取参数组As所对应的ASCII码数值数组bn(k+1)=double(vpa(subs(Bs,n,k),Nn)); %获取参数组Bs所对应的ASCII码数值数组endcn = sqrt(an、*an+bn、*bn); %计算幅度谱t = -T*2:0、001:T*2;xx =(heaviside(t+tao/2)-heaviside(t-tao/2))、*cos((pi/tao)、*t);for kk=1:2xx=xx+(heaviside(t+tao/2+kk*T)-heaviside(t-tao/2+kk*T))、*cos((pi/tao)、*(t+kk*T))+(heaviside(t+tao/2-kk*T)-heaviside(t-tao/2-kk*T))、*cos((pi/tao)、*(t-kk*T)); %用pulstran函数生成矩形脉冲信号endsubplot(211); %将显示窗口分为3个子窗口,并指向第1个子窗口clear subplot;plot(t,xx); %绘制周期矩形脉冲信号axis([-T*2 T*2 0 1、1]); %指定坐标系范围%title('周期矩形脉冲信号','Fontsize',8); %标注标题s1 = strcat('周期矩形脉冲信号 T=',num2str(T),' Tao=',num2str(tao),'t');xlabel(s1,'Fontsize',8); %x轴标签subplot(212); %指向第2个子窗口k = 0:Nf;stem(k,cn); %绘制幅度谱hold on;plot(k,cn); %绘制幅度谱包络线xlabel('幅度谱 \omega','Fontsize',8);% EndPlease input the value of T, tao and Nf T = 2*pi tao = pi Nf = 30-10-55100.20.40.60.81周期矩形脉冲信号 T=6.2832 T ao=3.1416t幅度谱Please input the value of T, tao and Nf T = 2*pi tao = 2*pi Nf = 30-10-55100.20.40.60.81周期矩形脉冲信号 T=6.2832 T ao=6.2832t幅度谱 ωPlease input the value of T, tao and Nf T = 20*pi tao = pi Nf = 30-100-50501000.20.40.60.81周期矩形脉冲信号 T=62.8319 T ao=3.1416t幅度谱 ωPlease input the value of T, tao and Nf T = 20*pi tao = 4*pi Nf = 30-100-50501000.20.40.60.81周期矩形脉冲信号 T=62.8319 T ao=12.5664t幅度谱Please input the value of T, tao and Nf T = 200*pi tao = pi Nf = 30-1000-500050010000.51周期矩形脉冲信号 T=628.3185 T ao=3.1416t051015202530-3幅度谱。
课程设计--连续时间信号和系统时域分析及MATLAB实现

课程设计任务书题目:连续时间信号和系统时域分析及MATLAB实现课题内容:一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。
二、用MATLAB实现信号的时域运算三、用MATLAB实现信号的时域变换(参数变化,分析波形变化)1、反转,2、使移(超时,延时),3、展缩,4、倒相,5、综合变化四、用MATLAB实现信号简单的时域分解1、信号的交直流分解,2、信号的奇偶分解五、用MATLAB实现连续时间系统的卷积积分的仿真波形给出几个典型例子,对每个例子,要求画出对应波形。
六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。
给出几个典型例子,四种调用格式。
七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。
给出几个典型例子,要求可以改变激励的参数,分析波形的变化。
时间安排:学习MATLAB语言的概况第1天学习MATLAB语言的基本知识第2、3天学习MATLAB语言的应用环境,调试命令,绘图能力第4、5天课程设计第6-9天答辩第10天指导教师签名:年月日目录摘要 (Ⅰ)1.绪论 (1)2.对课题内容的分析 (2)2.1连续时间信号概述 (2)2.2采样定理 (2)2.3总体思路 (2)3.设计内容 (2)3.1用MATLAB实现常用连续时间信号的时域波形 (2)3.1.1单位阶跃信号和单位冲击信号 (2)3.1.2正弦信号 (4)3.1.3指数信号 (5)3.1.4实指数信号和虚指数信号 (6)3.2用MATLAB实现信号的时域运算 (7)3.2.1相加 (7)3.2.2相乘 (8)3.2.3数乘 (9)3.2.4微分 (10)3.2.5积分 (12)3.3用MATLAB实现信号的时域变换 (13)3.4用MATLAB实现信号简单的时域分解 (15)3.4.1 交直流分解 (15)3.4.2 奇偶分解 (16)3.5用MATLAB实现连续时间系统的卷积积分的仿真波形 (18)3.6用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形 (19)3.7利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形 (20)4.心得体会 (22)5.参考文献 (23)摘要本文介绍了基于MATLAB的连续时间信号与系统时域分析。
信号与系统matlab实验习题3 绘制典型信号及其频谱图

绘制典型信号及其频谱图答案在下面四个常用信号及其傅里叶变换式如表1所示。
(1)绘制单边指数信号及其频谱图的MATLAB程序如下:close all;E=1;a=1;t=0:0.01:4;w=-30:0.01:30;f=E*exp(-a*t);F=1./(a+j*w);plot(t,f);xlabel('t');ylabel('f(t)');figure;plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|');figure;max_logF=max(abs(F));plot(w,20*log10(abs(F)/max_logF));xlabel('\omega');ylabel('|F(\omega)| indB');figure;plot(w,angle(F));xlabel('\omega');ylabel('\phi(\omega)');请更改参数,调试此程序,绘制单边指数信号的波形图和频谱图。
观察参数a 对信号波形及其频谱的影响。
注:题目中阴影部分是幅频特性的对数表示形式,单位是(dB),请查阅相关资料,了解这种表示方法的意义及其典型数值对应的线性增益大小。
(2)绘制矩形脉冲信号、升余弦脉冲信号和三角脉冲信号的波形图和频谱图,观察并对比各信号的频带宽度和旁瓣的大小。
(3)更改参数,调试程序,绘制单边指数信号的波形图和频谱图。
观察参数a对信号波形及其频谱的影响。
答案附上程序代码:close all;E=1;a=1;t=0:0.01:4;w=-30:0.01:30;f=E*exp(-a*t);F=1./(a+j*w);plot(t,f);xlabel('t');ylabel('f(t)');figure;plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|';E=1,a=1,波形图 频谱图更改参数E=2,a=1;更改参数a ,对信号波形及其频谱的影响。
信号与系统-MATLAB综合实验课程设计

信号与系统-MATLAB综合实验课程设计一、课程设计的目的和意义在信号与系统学习中,MATLAB是非常重要的工具。
本课程设计主要目的是让学生通过实验,掌握使用MATLAB进行信号与系统分析和处理的方法和技巧。
同时,课程设计还能够加深学生对信号与系统理论知识的理解和掌握,提高其综合运用能力。
二、课程设计的内容和要求1. 实验一:信号的生成和绘制本实验主要包括以下内容:•生成几种基本信号(如正弦信号、方波信号、三角波信号等)。
•通过MATLAB绘制生成的信号,并加上合适的标注。
要求学生能够掌握信号的生成方法和MATLAB的绘图函数的使用。
2. 实验二:信号的运算与变换本实验主要包括以下内容:•对已有信号进行运算(如加、减、乘、除等)。
•对信号进行卷积、相关等线性变换操作。
•对信号进行傅里叶变换,并绘制幅度谱、相位谱等图形。
要求学生能够掌握信号的运算、变换方法和MATLAB的相应函数的使用。
3. 实验三:系统的分析和建立本实验主要包括以下内容:•对系统进行零极点分析,并绘制零极点图。
•对已有系统进行时域和频域分析(如阶跃响应、冲击响应、幅频响应等)。
要求学生能够掌握系统的分析方法和MATLAB的相应函数的使用。
4. 实验四:信号的滤波和降噪本实验主要包括以下内容:•对信号进行数字滤波(如低通滤波、高通滤波、带通滤波、带阻滤波等)。
•对信号进行去噪处理(如中值滤波、小波变换去噪等)。
要求学生能够掌握信号滤波、降噪方法和MATLAB的相应函数的使用。
三、课程设计的实施流程1.分组。
依据班级人数以及教学设备的数量,安排学生分为若干个小组,每个小组3-4人。
2.模拟分配实验。
询问小组成员们的意见,模拟分配每个小组所要完成的课程设计任务。
3.实验操作。
每个小组根据分配到的实验课程设计,使用MATLAB进行模拟操作。
4.结果展示。
每个小组进行结果展示,介绍自己的设计思路,并展示实验结果。
其他小组成员以及教师进行现场互相交流和讨论。
信号与系统MATLAB实验

《信号与系统及MATLAB实现》实验指导书前言长期以来,《信号与系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MATLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。
MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB 再多了解一些。
MATLAB究竟有那些特点呢?1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来;2.完备的图形处理功能,实现计算结果和编程的可视化;3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握;4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具;MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。
正是基于这些背景,我们编写了这本《信号与系统及MATLAB实现》指导书,内容包括信号的MA TLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。
通过这些练习,同学们在学习《信号与系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。
另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信号与系统及MATLAB实现》实验指导书前言长期以来,《信号与系统》课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是由于本课程数学公式推导较多,概念抽象,常需画各种波形,作题时难免花费很多时间,现在,我们给同学们介绍一种国际上公认的优秀科技应用软件MATLAB,借助它我们可以在电脑上轻松地完成许多习题的演算和波形的绘制。
MATLAB的功能非常强大,我们此处仅用到它的一部分,在后续课程中我们还会用到它,在未来地科学研究和工程设计中有可能继续用它,所以有兴趣的同学,可以对MATLAB 再多了解一些。
MATLAB究竟有那些特点呢?1.高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来;2.完备的图形处理功能,实现计算结果和编程的可视化;3.友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握;4.功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具;MATLAB的这些特点,深受大家欢迎,由于个人电脑地普及,目前许多学校已将它做为本科生必须掌握的一种软件。
正是基于这些背景,我们编写了这本《信号与系统及MATLAB实现》指导书,内容包括信号的MA TLAB表示、基本运算、系统的时域分析、频域分析、S域分析、状态变量分析等。
通过这些练习,同学们在学习《信号与系统》的同时,掌握MATLAB的基本应用,学会应用MATLAB的数值计算和符号计算功能,摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,加深对信号与系统的基本原理、方法及应用的理解,为学习后续课程打好基础。
另外同学们在进行实验时,最好事先预习一些MATLAB的有关知识,以便更好地完成实验,同时实验中也可利用MATLAB的help命令了解具体语句以及指令的使用方法。
实验一 基本信号在MATLAB 中的表示和运算一、实验目的1. 学会用MA TLAB 表示常用连续信号的方法;2. 学会用MA TLAB 进行信号基本运算的方法;二、实验原理1. 连续信号的MATLAB 表示MATLAB 提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。
表示连续时间信号有两种方法,一是数值法,二是符号法。
数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB 的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。
例1-1指数信号 指数信号在MATLAB 中用exp 函数表示。
如atAe t f =)(,调用格式为 ft=A*exp(a*t) 程序是A=1; a=-0.4;t=0:0.01:10; %定义时间点ft=A*exp(a*t); %计算这些点的函数值plot(t,ft); %画图命令,用直线段连接函数值表示曲线grid on; %在图上画方格例1-2 正弦信号 正弦信号在MATLAB 中用 sin 函数表示。
调用格式为 ft=A*sin(w*t+phi)A=1; w=2*pi; phi=pi/6;t=0:0.01:8; %定义时间点ft=A*sin(w*t+phi); %计算这些点的函数值plot(t,ft); %画图命令grid on; %在图上画方格例1-3 抽样信号 抽样信号Sa(t)=sin(t)/t 在MA TLAB 中用 sinc 函数表示。
定义为 )/(sin )(πt c t Sa =t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);grid on;axis([-10,10,-0.5,1.2]); %定义画图范围,横轴,纵轴title('抽样信号') %定义图的标题名字例1-4 三角信号 三角信号在MATLAB 中用 tripuls 函数表示。
调用格式为ft=tripuls(t,width,skew),产生幅度为1,宽度为width,且以0为中心左右各展开width/2大小,斜度为skew的三角波。
width的默认值是1,skew的取值范围是-1~+1之间。
一般最大幅度1出现在t=(width/2)*skew的横坐标位置。
t=-3:0.01:3;ft=tripuls(t,4,0.5);plot(t,ft); grid on;axis([-3,3,-0.5,1.5]);例1-5虚指数信号调用格式是f=exp((j*w)*t)t=0:0.01:15;w=pi/4;X=exp(j*w*t);Xr=real(X); %取实部Xi=imag(X); %取虚部Xa=abs(X); %取模Xn=angle(X); %取相位subplot(2,2,1),plot(t,Xr),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('实部');subplot(2,2,3),plot(t,Xi),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('虚部');subplot(2,2,2), plot(t,Xa),axis([0,15,0,max(Xa)+1]),title('模');subplot(2,2,4),plot(t,Xn),axis([0,15,-(max(Xn)+1),max(Xn)+1]),title('相角');%subplot(m,n,i) 命令是建立m行n列画图窗口,并指定画图位置i例1-6复指数信号调用格式是f=exp((a+j*b)*t)t=0:0.01:3;a=-1;b=10;f=exp((a+j*b)*t);subplot(2,2,1),plot(t,real(f)),title('实部')subplot(2,2,3),plot(t,imag(f)),title('虚部')subplot(2,2,2),plot(t,abs(f)),title('模')subplot(2,2,4),plot(t,angle(f)),title('相角')例1-7 矩形脉冲信号矩形脉冲信号可用rectpuls函数产生,调用格式为y=rectpuls(t,width),幅度是1,宽度是width,以t=0为对称中心。
t=-2:0.01:2;width=1;ft=2*rectpuls(t,width);plot(t,ft)grid on;例1-8 单位阶跃信号单位阶跃信号u(t)用“t>=0”产生,调用格式为ft=(t>=0) t=-1:0.01:5;ft=(t>=0);plot(t,ft); grid on;axis([-1,5,-0.5,1.5]);例1-9 正弦信号符号算法syms t %定义符号变量ty=sin(pi/4*t) %符号函数表达式ezplot(y,[-16,16]) %符号函数画图命令或者f=sym('sin(pi/4*t)') %定义符号函数表达式ezplot(f,[-16,16])例1-10单位阶跃信号MA TTLAB符号数学函数Heaviside表示阶跃信号,但要画图需在工作目录创建Heaviside的M文件function f=Heaviside(t)f=(t>0);保存,文件名是Heaviside ,调用该函数即可画图,例t=-1:0.01:3;f=heaviside(t);plot(t,f)axis([-1,3,-0.2,1.2])或者y=sym('Heaviside(t)');ezplot(y,[-1,5]);grid on2.信号基本运算的MATLAB实现信号基本运算是乘法、加法、尺度、反转、平移、微分、积分,实现方法有数值法和符号法例1-11 以f(t)为三角信号为例,求f(2t) , f(2-2t)t=-3:0.001:3;ft=tripuls(t,4,0.5);subplot(3,1,1);plot(t,ft); grid on;title ('f(t)');ft1= tripuls(2*t,4,0.5);subplot(3,1,2);plot(t,ft1); grid on;title ('f(2t)');ft2= tripuls(2-2*t,4,0.5);subplot(3,1,3);plot(t,ft2); grid on;title ('f(2-2t)');例1-12 已知f1(t)=sinwt , f2(t)=sin8wt , w=2pi , 求f1(t)+f2(t)和f1(t)f2(t) 的波形图w=2*pi;t=0:0.01:3;f1=sin(w*t);f2=sin(8*w*t);subplot(211)plot(t,f1+1,':',t,f1-1,':',t,f1+f2)grid on,title('f1(t)+f2(t))')subplot(212)plot(t,f1,':',t,-f1,':',t,f1.*f2)grid on,title('f1(t)*f2(t)')符号算法也可实现上述运算,以信号的微积分运算为例说明符号算法应用微分的调用格式为 diff(function,’variable’,n)积分的调用格式为 int(function,’variable’,a,b)式中function 表示要微分或积分的函数,variable 表示运算变量,n 表示求导阶数,默认值是求一阶导数,a 是积分下限,b 是积分上限,a b 默认是求不定积分。
例1-13 求一阶导数的例题,已知)sin(21ax y =,x x x y ln sin 2=clearsyms a x y1 y2 %定义符号变量a , x ,y1, y2y1=sin(a*x^2); %符号函数y1y2=x*sin(x)*log(x); %符号函数y2dy1=diff(y1,’x’) %无分号直接显示结果dy2=diff(y2) %无分号直接显示结果例1-14 求积分的例题,dx x ax x )2(5+-⎰,⎰+102)1(dx x xe xclearsyms a x y3 y4y3=x^5-a*x^2+sqrt(x)/2;y4=(x*exp(x))/(1+x)^2;iy3=int(y3,'x')iy4=int(y4,0,1)三、上机实验内容1. 验证实验原理中程序2. 画出信号波形(1))()2()(2t u et f t --= (2))]2()()[cos 1()(--+=t u t u t t f π 3.信号)()2()(2t u e t f t --=,求)2(t f 、)2(t f -波形实验二 离散信号与系统的时域分析一、实验目的1.学会用MA TLAB 表示常用离散信号的方法;2.学会用MA TLAB 实现离散信号卷积的方法;3. 学会用MA TLAB 求解离散系统的单位响应;4. 学会用MA TLAB 求解离散系统的零状态响应;二、实验原理1.离散信号的MA TLAB 表示表示离散时间信号f(k)需要两个行向量,一个是表示序号k=[ ],一个是表示相应函数值f=[ ],画图命令是stem 。