实验二优选资料连续时间信号卷积运算的MATLAB实现
- 格式:docx
- 大小:11.65 KB
- 文档页数:2
连续时间信号的卷积运算的MATILAB实现薛皓20091453例1:已知两连续时间信号如图9-3所示,试用matlab求f(t)=f1(t)*f2(t),并绘出f(t)的时域波形图。
图1-1 连续时间信号波形图示例实现上述过程的matlab命令如下:p=0.5;k1=0:p:2;f1=0.5*k1;k2=k1;f2=f1;[f,k]=sconv(f1,f2,k1,k2,p)上述命令绘制的波形图也在图9-3中示出。
图9-3中给出了抽样时间间隔p=0.5时的处理效果。
而图9-4给出了抽样时间间隔p=0.01时的处理效果。
图1-2 例1的连续时间信号波形图习题1:已知f1(t)=1(2t 1≤≤),f2(t)=1(3t 2≤≤),用matlab 实现其卷积并绘制出卷积曲线。
解:程序代码如下:>> p=0.01;k1=1:p:2;f1=ones(size(k1)).*(k1>1);k2=2:p:3;f2=ones(size(k2)).*(k2>2);f=conv(f1,f2);f=f*p;k0=k1(1)+k2(1);k3=k1(length(k1))+k2(length(k2));subplot(2,2,1)plot(k1,f1)title('f1(t)')xlabel('t')ylabel('f1(t)')subplot(2,2,2)plot(k2,f2)title('f2(t)')xlabel('t')ylabel('f2(t)')subplot(2,2,3)plot(k,f);h=get(gca,'position');h(3)=2.5*h(3); 0set(gca,'position',h)title('f(t)=f1(t)*f2(t)')xlabel('t')ylabel('f(t)')绘制图形如图2-1所示。
实验报告学院:机电班级:姓名:学号:实验名称:连续时间信号卷积运算的MATLAB实现1.实验目的:掌握卷积的概念及计算方法2.熟悉通过调用conv()函数求解连续时间信号卷积的数值分析法实验环境:MATLAB 6.5.1软件实验要求:1、已知信号f1(t)=t/2*[ε(t)- ε(t-2)], f2(t)= [ε(t)- ε(t-1)],通过调用conv()函数编程实现卷积计算y(t)= f1(t)* f2(t),画出波形。
2、已知信号f(t)=e-t *ε(t), h(t)= t2 *e-2t *ε(t),y(t)=f(t)* h(t)(1)用符号分析法编程实现计算y(t)的理论解;(2)过调用conv()函数编程实现卷积计算y(t)的数值解并画图实验程序及结果:第一题:M文件(1) function f=uCT(t)f=(t>=0);主程序:k1=0:p:2;k2=0:p:1;f1=k1/2.*[uCT(k1)-uCT(k1-2)]; f2=uCT(k2)-uCT(k2-1);y=conv(f1,f2)*p;k0=k1(1)+k2(1);k3=length(f1)+length(f2)-2; k=k0:p:k3*p+k0;subplot(311)plot(k1,f1);xlabel('t')ylabel('f1(t)')axis([-0.5 2.5 -0.5 1.5])grid onsubplot(312);plot(k2,f2)grid onaxis([-0.5 2.5 -0.5 1.5]) xlabel('t')ylabel('f2(t)')subplot(313)axis([-0.5 4 -0.5 1.5])grid onxlabel('t')ylabel('f1(t)*f2(t)')实验结果:第二题:M文件function f=uCT(t)f=(t>=0);主程序:syms tao>> t=sym('t','positive');>> f=exp(-t);>> h=t^2*exp(-2*t);>> fh_tao=subs(f,t,tao)*subs(h,t,t-tao); >> yt=int(fh_tao,0,t)yt =-(-2*exp(t)+t^2+2*t+2)/exp(t)^2p=0.01;k1=0:p:3;k2=0:p:12;f=exp(-k1).*uCT(k1);h=(k2).^2.*exp(-2.*k2).*uCT(k2);y=conv(f,h)*p;k0=k1(1)+k2(1);k3=length(f)+length(h)-2;k=k0:p:k3*p+k0;subplot(221)plot(k1,f);xlabel('t')ylabel('f(t)')grid onaxis([-0.5 3.5 -0.5 1.5])subplot(222)plot(k2,h);xlabel('t')ylabel('h(t)')grid onaxis([-0.5 11 -0.05 0.2])subplot(223)plot(k,y);grid onxlabel('t')ylabel('f(t)*h(t)数值')axis([-0.5 15 -0.01 0.1])subplot(224)yt =-(-2.*exp(k)+k.^2+2.*k+2)./exp(k).^2; plot(k,yt);grid onxlabel('t')ylabel('f(t)*h(t)理论') axis([-0.5 15 -0.01 0.1]) 实验结果:。
实验一连续时间信号在Matlab 中的运算一、实验目的1、学会运用Matlab 进行连续时间信号的时移、反褶和尺度变换。
2、学会运用Matlab 进行连续时间信号相加、相乘、微分、积分和卷积运算。
3、观察并熟悉这些信号的波形和特性。
二、实验原理1、连续时间信号的表示连续信号的表示方法有两种:符号推理法和数值法。
从严格意义上讲,Matlab 数值计算的方法不能处理连续时间信号。
然而,可利用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能被Matlab 处理,并且能较好地近似表示连续信号。
2、信号的时移、反褶和尺度变换信号的平移、反转和尺度变换是针对自变量时间而言的,其数学表达式和波形变换中存在着一定的变化规律。
从数学表达式上来看,信号的上述所有计算都是自变量的替换过程。
所以在使用Matlab 进行连续时间信号的运算时,只需要进行相应的变量代换即可完成相关工作。
3、连续时间信号的微分和积分连续时间信号的微分运算,可使用diff 命令函数来完成,其语句格式为:diff(function, ‘variable ',n) 。
其中,function 表示需要进行求导运算的函数,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导阶数,默认值为一阶导数。
连续时间信号积分运算可以使用int 命令函数来完成,其语句格式为:int(function, ‘variable ',a, b) 。
其中,function 表示被积函数,或者被赋值的符号表达式;variable为积分变量;a为积分下限,b为积分上限,a和b默认时则求不定积分。
4、信号的相加和相乘运算信号的相加和相乘是信号在同一时刻取值的相加和相乘。
因此Matlab 对于时间信号的相加和相乘都是基于向量的点运算。
5、连续信号的卷积运算卷积积分是信号与系统时域分析的重要方法之一。
定义为:f (t) f1(t) f2 (t) -f1( )f2(t )dMatlab 进行卷积计算可通过符号运算方法和数值计算方法实现。
matlab连续函数卷积
在matlab中,我们可以使用conv函数实现两个连续函数的卷积运算。
卷积运算是一种数学运算,用于描述两个函数之间的相互影响。
在信号处理、图像处理和控制系统等领域,卷积运算都有广泛的应用。
使用matlab进行连续函数卷积的步骤如下:
1.定义两个连续函数f和g,并将它们存储为向量形式。
2.使用conv函数进行卷积运算,将f和g作为输入参数传递给该函数。
3.将卷积结果存储为一个新的向量。
4.使用plot函数将原始函数和卷积结果进行可视化比较,以便更好地理解两者之间的关系。
需要注意的是,在进行卷积运算时,我们需要对函数进行截断处理,以避免出现无限长的结果。
此外,还需要根据具体情况选择合适的截断长度和采样间隔,以确保计算结果的准确性和稳定性。
- 1 -。
物理与电子信息学院学生实验报告t=0:0.01:10; subplot(2,3,4) plot(t,f1f2*0.01) axis([0,5,0,2])subplot(2,3,5) plot(t,f1f3*0.01) axis([0,5,0,2])subplot(2,3,6) plot(t,f2f3*0.01) axis([0,5,0,2])实验项目连续信号卷积所属课程信号与系统 成绩评定专业 级 班 实验地点 实验楼502实验日期 20 年 月 日 指导教师 学生姓名同 组 人一、实验目的:掌握使用 MATLAB 实现信号的卷积运算、卷积的可视化。
二、实验原理:卷积积分运算实际上可利用信号的分段求和来实现。
利用 MATLAB 计算连续信号的卷积,是通过离散序列的卷积和的近似实现的,将连续信号 f1(t) 、 f2(t) 以相等的时间间隔进行取样,得到离散序列 f1(k1Δ ) 、 f2(k2Δ ) 。
在 MATLAB 中,函数 conv() 、函数 deconv() 可用来求两个离散序列的卷积和与反卷积, conv() 函数的调用格式为: f=conv(f1,f2) 、 deconv() 函数的调用格式为: [f,k]=deconv(f1,f2,k1,k2) 。
要注意的是 k 如何确定。
三、实验内容 t=0:0.01:5;f1=(t/2).*(t>=0&t<2); subplot(2,3,1) plot(t,f1)axis([0,5,0,2])f2=(t>1&t<3); subplot(2,3,2) plot(t,f2)axis([0,5,0,2])f3=(t>=0&t<2); subplot(2,3,3) plot(t,f3)axis([0,5,0,2])f1f2=conv(f1,f2); f1f3=conv(f1,f3); f2f3=conv(f2,f3);四、实验总结(实验中所遇问题的原因分析及解决措施;本实验未解决的问题;对实验的改进;个人的收获等)。
信号的时域表示【实验目的】利用MATLAB 实现信号的时域表示利用MATLAB 实现图形表示【实验内容(步骤)】软件仿真实验在此部分只需写出代码及相应的注释。
例题实验:clear;%清除工作空间的变量clf;%清除图形clc;%清除命令窗口中的命令t0=-1;%给t0赋值1,作为横轴的最小值tf=5;%给tf赋值5,作为横轴的最大值dt=0.05;%作为冒号表达式的步长t1=0;t=t0:dt:tf; %建立向量Len_t = length(t);%把向量t的长度赋值给Len_tn1 = floor((t1-t0)/dt);%选出t=0在向量t中对应的元素序号x1 = zeros(1,Len_t);%建立一个与t等长的一维零矩阵x1(n1) = 1/dt;%选出t=0在向量t中对应的元素subplot(2,2,1),stairs(t,x1),grid on%把图形窗口分割成2*2的四个部分,第一个部分用stairs函数画出单位冲击函数axis([-1,5,0,22])%控制坐标轴,横轴在-1到5之间,纵轴在0到22之间title('1.冲击信号');%给第一个图形命名% x2 = [zeros(1,n1-1),ones(1,Len_t-n1+1)];% x2 = (t>0);% x2 = 1/2*(sign(t-0)+1);%利用符号函数实现单位阶跃函数x2 = stepfun(t,t1);%建立一个向量x2,当t<t1时,元素都为0,当t>=t1时,元素都为1subplot(2,2,3),stairs(t,x2),grid on%在图形窗口的第三个部分画出单位阶跃函数axis([-1,5,0,1.1]) %设置显示的坐标轴的最大最小值title('2.单位阶跃信号'); %给第二个图形命名alpha = -0.5;%为x3中的alpha赋值omega = 10;%为x3中的omega赋值x3 = exp((alpha+j*omega)*t);%产生了一个复指数信号subplot(2,2,2),plot(t,real(x3)),grid on%在图形窗口的第二部分画出复指数信号的实部title('3.复指数跃信号(实部)'); %命名subplot(2,2,4),plot(t,imag(x3)),grid on%在图形窗口中的第四部分画出复指数信号的虚部title('4.复指数跃信号(虚部)'); %命名【实验结果及分析】图像截图:10HZ和16HZ的周期方波实验:实验步骤:t = linspace(-10,10,100); 产生一百个元素y = (square(t) + 1)./2; y的函数subplot(211); 分割成两块,进入第一块界面plot(t./(2*pi*10),y,'r-');grid on 产生10HZ 的方波axis([0,0.3,-1.2,1.2]);xlabel('t'),ylabel('y1'),title('10Hz');subplot(212); 进入第二块界面plot(t./(2*pi*16),y,'c-');grid on 产生16HZ 的方波axis([0,0.3,-1.2,1.2]);xlabel('t'),ylabel('y2'),title('16Hz');图像截图:连续信号的卷积实验实验步骤:clear %清除Workspace中的变量clc %清除Command Window中的命令uls=ones(1,10); %建立一个1*10的矩阵Length_u = length(uls); %把向量uls的长度赋给Length_uhls = exp(-0.1*(1:15)); %建立一个长度为15的向量hlsLength_h = length(hls); %把向量hls的长度赋给Length_hlmax = max(Length_u,Length_h); %把向量u的长度与向量h的长度中的最大值赋给lmax%if end 语句确定了nh与nu的值,用于下面的向量u与向量h中,保证两者长度相等if Length_u>Length_hnu=0; nh = Length_u - Length_h;elseif Length_u<Length_hnh=0; nu = Length_h - Length_u;elsenu=0; nh=0;end%nh=0 nu=5dt = 0.5;lt = lmax;%把向量u的长度与向量h的长度中的最大值赋给ltu = [zeros(1,lt),uls,zeros(1,nu),zeros(1,lt)];% 建立一个长度为45的向量,uls的值在中间,易于卷积t1 = (-lt+1:2*lt)*dt;%建立了一个长度为45,步长为0.5的向量,从-7到15h = [zeros(1,2*lt),hls,zeros(1,nh)];% 建立一个长度为45的向量,hls的值在末尾一段hf = fliplr(h);%将h进行反褶运算y = zeros(1,3*lt);%建立一个1*45的零矩阵for k = 0:2*lt%设置循环31次p = [zeros(1,k),hf(1:end-k)];%p是长度为45的向量,由向量hf平移k个单位而来y1 = u.*p*dt;%卷积中的相乘yk = sum(y1);%卷积中的积分(求和)y(k+lt+1) = yk;%给y中的元素赋值subplot(4,1,1);stairs(t1,u)%分割图形窗口为4*1,在第一部分画出要进行卷积的函数uaxis([-lt*dt,2*lt*dt,min(u),max(u)]),hold on%设置坐标轴的最值,并让图形等待ylabel('u(t)')%给y轴命名subplot(4,1,2);stairs(t1,p)%在图形窗口的第二部分画出要进行卷积的函数h(k-t)axis([-lt*dt,2*lt*dt,min(p),max(p)])%控制坐标轴的最值ylabel('h(k-t)')%给y轴命名subplot(4,1,3);stairs(t1,y1)%在图形窗口的第三部分画出u(t)*h(k-t)的阶梯状图形axis([-lt*dt,2*lt*dt,min(y1),max(y1)+eps])%控制坐标轴的最值ylabel('s=u*h(k-t)')%给y轴命名subplot(4,1,4);stem(k*dt,yk)%在图形窗口的第四部分画出卷积结果的点状图 axis([-lt*dt,2*lt*dt,floor(min(y)+eps),ceil(max(y+eps))])%控制坐标轴的最值hold on,ylabel('y(k)=sum(s)*dt')%给y轴命名pause(1),%每次循环暂停一秒,方便看清各个图形的变化End图像截图:矩形脉冲信号与锯齿波信号的卷积实验步骤:>> cleardt=0.001; 时间间隔t=0:dt;1; 变化范围f1=(t>0&t<1); 矩形脉冲subplot(311); 分割版面plot(t,f1);grid onxlabel('t'),ylabel('f1'),title('矩形脉冲');axis([-0.3,1.7,0,1.2]);f2=(t>0&t<1).*t; 锯齿波subplot(312);plot(t,f2);grid onxlabel('t'),ylabel('f2'),title('锯齿波');axis([-0.3,1.7,0,1.2]);f3=conv(f1,f2);f3=f3*dt; 实现卷积功能n=length(f1)+length(f2)-2;x=0:dt:n*dt;subplot(313);plot(x,f3);grid onxlabel('x'),ylabel('f3'),title('卷积');axis([-0.3,1.7,0,1.2]);图像截图:。
实验项目名称:运用MATLAB进行连续时间信号卷积运算(所属课程:信号与系统)院系:电子信息与电气工程专业班级:电气工程及其自动化姓名:安永军学号:201002040062实验日期:2012年4月12 号实验地点:A-07-408合作者:张德扬指导老师:李静本实验项目成绩: 教师签字: 日期:一:实验目的1,掌握连续时间信号的基本运算的实现方法。
2,熟悉连续LTI 系统在典型激励信号下的响应及其特征。
3、掌握连续LTI 系统单位冲激响应的求解方法。
4、重点掌握用卷积法计算连续时间系统的零状态响应。
5、熟悉MATLAB 相关函数的调用格式及作用。
6、会用MATLAB 对系统进行时域分析。
二、实验原理1、信号的运算包括:信号的基本运算,包括加、减、乘、除等;信号的时域变换,包括信号的平移、翻转、尺度变换等;两个信号的卷积运算等。
2、连续时间线性时不变系统(LTI )可以用如下的线性常系数差分方程来描述:()(1)()(1)110110()()()()()()()()n n m m n m n n r t r t r t r t e t e t e t e t a a a a b b b b ----++++=++++''其中,n m ≥,系统的初始条件为(0)r -,(0)r -',(0)r -'', (1)(0)n r--。
系统的响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由历史输入(初始状态)所产生的响应(零输入响应)。
对于低阶系统,一般可以通过解析的方法得到响应。
但对于高阶系统,手工计算就比较困难,这时MATLAB 强大的计算功能就能比较容易地确定系统的各种响应,如冲激响应、阶跃响应、零输入响应、零状态响应、全响应等。
1)直接求解法在MATLAB 中,要求以系数相量的形式输入系统的微分方程。
因此,在使用前必须对系统的微分方程进行变换,得到其传递函数。
实验二 连续时间信号在MATLAB 中的运算2.1实验目的1.学会运用MATLAB 进行连续信号时移、反折和尺度变换;2.学会运用MATLAB 进行连续信号微分、积分运算;3.学会运用MATLAB 进行连续信号相加、相乘运算;4.学会运用MATLAB 进行连续信号的奇偶分解。
2.2实验原理及实例分析1 信号的时移、反折和尺度变换信号f(t)的时移就是将信号数学表达式中的自变量t 用t ±t 0替换,其中t 0为正实数。
信号f(t)的反折就是将表达式中的自变量t 用-t 替换。
信号f(t)的尺度变换就是将表达式中的自变量t 用at 替换,其中a 为正实数。
2 连续时间信号的微分及积分运算微分 diff(function ,’variable ’,n)函数 变量 阶数积分 int(function ,’variable ’,a,b)函数 变量 下、上限3 信号的相加与相乘运算信号的相加与相乘是指在同一时刻信号取值的相加与相乘。
因此,MATLAB 对于时间信号的相加与相乘都是基于向量的点运算。
故只需将信号表达式进行相加与相乘即可。
4 信号的奇偶分解从波形角度看,求信号的偶分量和奇分量时,首先是将信号进行反折,得到f(-t),然后与原信号f(t)进行相加减,再除以2,即可分别得到偶分量f e (t)和奇分量f o (t)。
2.3 编程练习1.试用MA TLAB 命令绘出下列信号的波形图。
(1))9sin()10sin()(211t e t e t x t t ππ--+=t=0:0.0001:3;x=exp(-t).*sin((10*pi)*t)+exp(-(1/2)*t).*sin(9*pi*t);plot(t,x) axis([-1,2,-2,2])(2) )10cos()(sin )(2t t c t x π=x=sinc(t).*cos(10*pi*t);t=-2:0.01:3;plot(t,x); axis([-2,4,-1,2])2. 已知连续信号f(t)的时域波形如图2-1所示,试用MA TLAB 命令绘出f(t)及其时域变换信号f(-t)、 f(t-1.5)、 f(t+1.5) 、f(0.5t)和 -f(t)的波形。
实验二连续时间信号卷积运算的M A T L A B实现
一.实验目的
(1)理解掌握卷积的概念及物理意义。
(2)理解单位冲激响应的概念及物理意义。
二.实验原理
三.实验参考程序
用MATLAB实现连续信号f1(t)和f2(t)卷积。
首先利用MATLAB实现连续信号卷积的通用函数sconv():
function[f,k]=sconv(f1,f2,k1,k2,p);
f=conv(f1,f2);
f=f*p;
k0=k1(1)+k2(1);
k3=length(f1)+length(f2)-2;
k=k0:p:k3*p;
subplot(2,2,1);
plot(k1,f1);
title('f1(t)');
xlabel('t');
ylabel('f1(t)');
subplot(2,2,2);
plot(k2,f2);
title('f2(t)');
xlabel('t');
ylabel('f2(t)');
subplot(2,2,3);
plot(k,f);
h=get(gca,'position');
h(3)=*h(3);
set(gca,'position',h);
title('f(t)=f1(t)*f2(t)');
xlabel('t');
ylabel('f(t)');
例2-1 已知两连续时间信号,试用MATLAB求f(t)=f1(t)*f2(t),并绘出f(t)的时域波形图。
实现上述过程的MATLAB命令如下:
p=;
k1=0:p:2;
f1=*k1;
k2=k1;
f2=f1;
[f,k]=sconv(f1,f2,k1,k2,p);
运行程序结果图:
而当p=时连续时间信号的波形图为
对比上面两幅图可见,当抽样时间p 足够小时,函数sconv()的计算结果就是连续时间卷积
)(*)()(21t f t f t f =的较好的数值近似。
四.实验要求
在课本卷积部分课后习题中任选两题,完成信号的卷积运算,绘出波形。
已知两连续时间信号如图所示,使用MATLAB 求()()()12f t f t f t =*,并绘出()f t 的时域波形图。
五.实验心得
通过本次实验我学会使用MATLAB 软件,并用软件实现了的连续时间信号的卷积运算,且进一步理解了卷积的概念和物理意义,对我以后学习卷积知识有了很大的帮助。