用matlab计算序列卷积和并绘图

合集下载

实验三 MATLAB计算结果可视化和卷积操作

实验三  MATLAB计算结果可视化和卷积操作

实验三MATLAB计算结果可视化和卷积操作(一)实验目的1)掌握二维平面图形的绘制方法,能够使用这些方法进行常用的数据可视化处理。

2)掌握卷积运算。

(二)实验设备计算机,Matlab软件(三)实验要求本实验属于设计实验,请先根据(四)实验内容的(a)【matlab相关介绍及演示进行仿真】,并完成(b)【实验操作】。

请在页眉处填写班级、学号、姓名,并将实验报告命名为“实验三_学号_姓名”,并通过FTP上传至指定文件夹。

(四)实验内容(a)matlab相关介绍及演示MA TLAB在数据可视化方面的表现能力很强。

它的图形处理能力不仅功能强大,而且充分考虑了不同层次用户的不同需求,系统具有两个层次的绘图指令:一个层次是直接对图形句柄进行操作的底层绘图指令;另一层次是在底层指令基础上建立的高层绘图指令。

常用的MA TLAB绘图语句有figure、plot、subplot、stem等,图形修饰语具有title、axis、text 等。

(1)figure语句figure有两种用法。

当只有一句figure命令时,程序会创建一个新的图形窗口,并返回一个整数型的窗口编号。

当采用figure(n)时,表示将第n个图形窗口作为当前的图形窗口,将其显示在所有窗口的最前面。

如果该图形窗口不存在,则新建一个窗口,并赋以编号n。

(2)plot语句线形绘图函数。

用法为plot(x,y,’s’)。

参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表2-1所示。

表2-1 plot命令的参数及其含义(3)subplot语句subplot(m,n,i)是分割显示图形窗口命令,它把一个图形窗口分为m行n列共m×n个小窗口,并指定第i个小窗口为当前窗口。

(4)二维统计分析图在MA TLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:bar(x,y,选项)stairs(x,y,选项)stem(x,y,选项)fill(x1,y1,选项1,x2,y2,选项2,…)例2-1 分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。

卷积和相关的matlab实现

卷积和相关的matlab实现

两个序列的卷积:c(n)=a(n)*b(n)即k c(n)=a(k)b(n-k)∑如果a 和b 的脚标范围为:12[,]a a 与12[,]b b ,则c 的脚标范围为1122[,]a b a b ++,但是由于matlab 的索引是从1开始的,这里假设a 和b 都是从n=1开始。

知道最后的范围即可:function c = convolution(a,b)M= length(a); %a 序列的长度N=length(b); %b 序列的长度c=zeros(1,N+M-1); %用来存放卷积的结果for n = 2:(M+N) %卷积之后的索引本应该的范围tmp_max=min(n-1,M); %根据求和表达式,由1=<k<=M 且 1=<n-k<=N tmp_min=max(n-N,1); %确定最终求和变量k 的取值for k =tmp_min:1:tmp_max;c(n-1) = c(n-1) +a(k)*b(n-k);%求和,同时由于c 从1开始索引,%将n 的范围2:M+N%对应到c 的1:M+N-1中去endend调用matlab 自带卷积函数conv 验证:>> x = 1:9;>> y=2:8;>> conv(x,y)ans =2 7 16 30 50 77 112 147 182 197 200 190 166 127 72>> convolution(x,y)ans =2 7 16 30 50 77 112 147 182 197 200 190 166 127 72两个序列的相关:()((),())c n cor a n b n =即()()*()k c n a n k b k =+∑同样,如果a 和b 的脚标范围为:12[,]a a 与12[,]b b ,则c 的脚标范围为1221[,]a b a b -+,但是由于matlab 的索引是从1开始的,这里假设a 和b 都是从n=1开始。

实验一:离散时间序列卷积和MATLAB实现

实验一:离散时间序列卷积和MATLAB实现

实验一:离散时间序列卷积和MATLAB 实现(一)实验目的1、掌握离散卷积计算方法;2、学会线性常系数差分方程的迭代解法;3、学会针对具体系统设计程序;(二)实验内容1、用MATLAB 画出如下表达式的脉冲序列()8.0() 3.4(1) 1.8(2) 5.6(3) 2.9(4)0.7(5)f n n n n n n n δδδδδδ=+-+-+-+-+-例如:x(1)=8.0; n=0:5;fn=[8.0 3.4 1.8 5.6 2.9 0.7]; stem(n,fn); xlabel('n'); ylabel('fn');nf n2、 计算卷积用MATLAB 计算序列{1 2 3 3 2 1 1}和序列{-1 2 0 1}的离散卷积。

首先用手工计算,然后用MATLAB 函数conv(x,y)编程验证。

MATLAB 部分参考程序如下: a=[1 2 3 3 2 1 1]; c=conv(a,b); M=length(c)-1; stem(n,c);xlabel('n'); ylabel('幅度');subplot(3,1,1); a=[1 2 3 3 2 1 1]; stem(a); subplot(3,1,2)b=[-1 2 0 1]; stem(b); subplot(3,1,3); c=conv(a,b); M=length(c)-1;stem(c);xlabel('n'); ylabel('幅度');3、参考教材P14页,使用通用卷积convu 函数,计算如下卷积已知h(n)=R 5(n+2),x(n)=3R 4(n-3),计算y(n)=x(n)*h(n)编程实现并在一幅图内分别画出h(n),x(n),y(n),标好横坐标与纵坐标。

subplot(3,1,1); h=ones(1,5);nh=-2;2; stem(h);xlabel('n'); ylabel('幅度'); subplot(3,1,2);x=3*ones(1,4);nx=3:6; stem(x);xlabel('n'); ylabel('幅度'); subplot(3,1,3); [y,ny]=convu(h,nh,x,nx); stem(y);xlabel('n'); ylabel('幅度');4、编写教材P31第15题的MATLAB 程序。

离散序列卷积和(用matlab实现)

离散序列卷积和(用matlab实现)

数字信号处理实验报告实验一 离散时间序列卷积和MATLAB 实现(一)实验目的:学会用MATLAB 对信号与系统分析的方法,理解离散序列卷积和的计算对进行离散信号与系统分析的重要性。

(二)实验原理:1、离散时间序列f1(k)和f2(k)的卷积和定义:f(k)=f1(k)*f2(k)=∑∞-∞=-•i i k f i f )(2)(12、在离散信号与系统分析中有两个与卷积和相关的重要结论:a 、f(k)=∑∞-∞=-•i i k i f )()(δ=f(k)* δ(k)即离散序列可分解为一系列幅度由f(k)决定的单位序列δ(k)及其平移序列之积。

b 、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状态响应为y(k),则有:y(k)=∑∞-∞=-•i i k h i f )()(3、上机:conv.m 用来实现两个离散序列的线性卷积。

其调用格式是:y=conv(x,h)若x 的长度为N ,h 的长度为M ,则y 的长度L=N+M-1。

(三)实验内容1、题一:令x(n)= {}5,4,3,2,1,h(n)={}246326,,,,,,y(n)=x(n)*h(n),求y(n)。

要求用subplot 和stem 画出x(n),h(n),y(n)与n 的离散序列图形。

源程序: N=5; M=6;L=N+M-1; x=[1,2,3,4,5]; h=[6,2,3,6,4,2]; y=conv(x,h); nx=0:N-1; nh=0:M-1; ny=0:L-1;subplot(131); stem(nx,x,'*k'); xlabel('n'); ylabel('x(n)'); grid on ;subplot(132); stem(nh,h,'*k'); xlabel('n'); ylabel('h(n)'); grid on ;subplot(133); stem(ny,y,'*k'); xlabel('n'); ylabel('y(n)'); grid on ;实验结果:24nx (n)5nh (n )510ny (n )分析实验结果:根据实验结果分析可知,实验所得的数值跟x (n )与y (n )所卷积的结果相同。

matlab实验二 离散信号的卷积和

matlab实验二 离散信号的卷积和

(数字信号处理)实验报告实验名称 实验二 离散信号的卷积和 实验时间 年 月 日专业班级 学 号 姓 名成 绩 教师评语: 一、 实验目的1、掌握两个离散信号卷积和的计算方法和编程技术。

2、进一步熟悉用MATLAB 描绘二维图像的方法。

二、 实验原理与计算方法两个离散序列x(n)与y(n)的卷积和f(n)定义为∑∞-∞=-=*=m m n y m x n y n x n f )()()()()(由于通常信号处理中所碰到的都是有始信号或有限时间信号,因此在实际计算卷积和时,求和是在有限范围内进行的。

计算过程中上下限的选取和所得结果的分布区间取决于参与卷积的两个序列,下面将分别进行讨论: 1、两个从n = 0开始的序列)()()(n u n x n x =和)()()(n u n y n y =的卷积和∑∑=∞-∞=-=--=nm m n u m n y m x m n u m n y m u m x n f 0)()]()([)()()()()( (1)上式右边因子u(n)表示卷积和的结果也是一个从n = 0开始的序列。

2、从n = n1开始的序列)()()(1n n u n x n x -=和从n = n2开始的序列)()()(2n n u n y n y -=的卷积和,其中n1和n2为任意整数。

∑∑-=∞-∞=---=----=21)()]()([)()()()()(2121n n n m m n n n u m n y m x n m n u m n y n m u m x n f (2)上式右边因子u(n-n1-n2)表示卷积和是一个从n = n1+n2开始的序列。

3、从n = n1开始的长度为N1的加窗序列)()()(1n w n x n x N =和从n = n2开始的长度为N2的加窗序列)()()(2n w n y n y N =的卷积和,其中⎩⎨⎧-+≤≤=otherwise 0 1 1 )(1111N n n n n w N⎩⎨⎧-+≤≤=o t h e r w i s e 0 11 )(2222N n n n n w N则∑∞-∞=--=m N N m n w m n y m wm x n f )()()()()(21(3)所得卷积和也是一个加窗序列,从n = n1+ n2开始,长度为N1+ N2-1。

离散序列卷积和(用matlab实现)

离散序列卷积和(用matlab实现)

离散序列卷积和(用matlab实现)MATLAB(一)实验目的:学会用MATLAB对信号与系统分析的方法,理解离散序列卷积和的计算对进行离散信号与系统分析的重要性。

(二)实验原理:1、离散时间序列f1(k)和f2(k)的卷积和定义:,f1(i),f2(k,i) f(k)=f1(k)*f2(k)= ,i,,,2、在离散信号与系统分析中有两个与卷积和相关的重要结论:,f(i),,(k,i) a、f(k)= =f(k)* δ(k)即离散序列可分解为一系列,i,,,幅度由f(k)决定的单位序列δ(k)及其平移序列之积。

b、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状,f(i),h(k,i)态响应为y(k),则有:y(k)= ,i,,,3、上机:conv.m用来实现两个离散序列的线性卷积。

其调用格式是:y=conv(x,h)若x的长度为N,h的长度为M,则y的长度L=N+M-1。

(三)实验内容,,,,1,2,3,4,56,2,3,6,4,21、题一:令x(n)= ,h(n)=,y(n)=x(n)*h(n),求y(n)。

要求用subplot和stem画出x(n),h(n),y(n)与n的离散序列图形。

源程序:N=5;M=6;L=N+M-1;x=[1,2,3,4,5];h=[6,2,3,6,4,2];y=conv(x,h);nx=0:N-1;nh=0:M-1;ny=0:L-1;subplot(131); stem(nx,x,'*k'); xlabel('n'); ylabel('x(n)'); grid on ;subplot(132); stem(nh,h,'*k'); xlabel('n'); ylabel('h(n)'); grid on ;subplot(133); stem(ny,y,'*k'); xlabel('n'); ylabel('y(n)'); grid on ;实验结果:56704.56054503.543402.53x(n)h(n)y(n)30221.52011100.5000024050510nnn分析实验结果:根据实验结果分析可知,实验所得的数值跟x(n)与y(n)所卷积的结果相同。

用MATLAB实现序列的圆周卷积

用MATLAB实现序列的圆周卷积

数字信号处理实验报告
实验项目名称:用MATLAB实现序列的圆周卷积
实验日期:2012-11-28 实验成绩:
实验评定标准:
一、实验目的
通过本实验,掌握一些基本而且重要的离散时间信号,熟悉基本离散时间信号的MATLAB实现方法。

二、实验器材
PC机,MATLAB软件。

三、实验内容
利用MATLAB计算序列x(n)=cos(n*pi/7)的DFT;
求y(n)=x((n+9))16R(n)16的DFT,并画出图形。

四、实验结果
实验一代码:
clear all; close all;
clc;
N=32;n=0:N-1;
xn=cos(pi*n/7);
k=0:N-1;
WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk; Xk=xn*WNnk; figure(1)
stem(n,xn) figure(2)
stem(k,abs(Xk))
实验一结果: 实验二代码:
clc;
N=16;
n=0:N-1;m=5; xn=8*exp(n); yn=xn(mod((n+m),N)+1); k=0:N-1;
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^nk; Xk=xn*WNnk; Yk=yn*WNnk; figure(1)
stem(n,xn) figure(2) stem(k,abs(Xk)); figure(3)
stem(n,yn) figure(4)
stem(k,abs(Yk));
五、实验结果分析
7
7
7
7。

数字信号处理实验报告-离散时间序列卷积和MATLAB实现

数字信号处理实验报告-离散时间序列卷积和MATLAB实现

数字信号处理 实验报告实验一:离散时间序列卷积和MATLAB 实现一、实验目的通过本实验学会用MATLAB 对信号与系统进行分析,实现离散序列卷积和的计算。

二、实验仪器:(1)微机(2)MATLAB 编程工具 三:实验内容题一:已知序列f1(k)=⎩⎨⎧≤≤其它0201k f2(k)=⎪⎪⎩⎪⎪⎨⎧===其它332211k k k调用conv()函数求上述两序列的卷积和题二:编写计算两离散序列卷积和f(k)=f1(k)*f2(k)的实用函数dconv().要求该程序在计算出卷积和f(k)的同时,还绘出序列f1(k),f2(k)和f(k)的时域波形图。

function[f,k]=dconv(f1,f2,k1,k2)%f1(k),f2(k)及f(k)的对应序号向量分别为k1,k2和k 。

题三:试用MATLAB 计算如下所示序列f1(k)与f2(k)的卷积和f(k),绘出它们的时域波形,并说明序列f1(k)与f2(k)的时域宽度与序列f(k)的时域宽度的关系。

f1(k)=⎪⎪⎩⎪⎪⎨⎧==-=其它110211k k kf2(k)=⎩⎨⎧≤≤-其它221k提示:可用上述dconv()的函数来解决。

题四:已知某LTI 离散系统,其单位响应h(k)=e(k)-e(k-4),求该系统在激励为f(k)=e(k)-e(k-3)时的零状态响应,并绘出其时域波形图。

四、实验原理、方法和手段1、离散时间序列f1(k)和f2(k)的卷积和定义:f(k)=f1(k)*f2(k)=∑∞-∞=-•iikfif)(2)(12、在离散信号与系统分析中有两个与卷积和相关的重要结论:a、f(k)= ∑∞-∞=-•iikif)()(δ=f(k)* δ(k)即离散序列可分解为一系列幅度由f(k)决定的单位序列δ(k)及其平移序列之积。

b、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状态响应为y(k),则有:y(k)= ∑∞-∞=-•iikhif)()(五、matlab程序实现卷积和计算:1、题一(conv.m)clc;k1=3;k2=3;k=k1+k2-1;f1=[1,1,1];f2=[0,1,2,3];f=conv(f1,f2);nf=0:k;stem(nf,f,'*r'); xlabel('n'); ylabel('f(n)'); grid on ;2、题二 (dconv.m)function[f,k]=dconv(f1,f2,k1,k2);f=conv(f1,f2);k(1)=k1(1)+k2(1);k(length(f))=k1(length(f1))+k2(length(f2));k=k(1):k(length(f));subplot(1,3,1); stem(k1,f1,'*r'); xlabel('k1'); ylabel('f1(k1)'); grid on ;subplot(1,3,2); stem(k2,f2,'*r'); xlabel('k2'); ylabel('f2(k2)'); grid on ;subplot(1,3,3); stem(k,f,'*r'); xlabel('k'); ylabel('f(k)'); grid on ;3、题三(san.m)clc;f1=[1,2,1];f2=[1,1,1,1,1];k1=-1:1;k2=-2:2;dconv(f1,f2,k1,k2);4、题四 (si.m) clc;f1=[1,1,1,1];f2=[1,1,1];k1=0:3;k2=0:2;dconv(f1,f2,k1,k2);六、实验心得:(1)通过这次实验,让我知道序列的卷积和可以用matlab编程实现,并且实现的方法比较简单,而且matlab本身有丰富的函数库,画图、求卷积和时只要调用相应的函数即可。

实验三 信号卷积的MATLAB实现

实验三 信号卷积的MATLAB实现

实验三信号卷积的MATLAB实现一、实验名称:信号卷积的MATLAB实现二、实验目的:1.增加学生对卷积的认识2.了解MATLAB这个软件的一些基础知识3.利用MATLAB计算信号卷积4.验证卷积的一些性质三、实验原理:用MATLAB实现卷积我们先必须从信号下手,先把信号用MATLAB语句描述出来,然后再将这些信号带入到我们写好的求卷积的函数当中来计算卷积。

在本章中我们将信号分为连续信号和离散序列两种来实现卷积并验证卷积的一些性质。

MATLAB强大的图形处理功能及符号运算功能,为我们实现信号的可视化提供了强有力的工具。

在MATLAB中通常有两种方法来表示信号,一种是用向量来表示信号,另一种则是用符号运算的方法来表示信号。

用适当的MATLAB 语句表示出信号后,我们就可以利用MATLAB的绘图命令绘制出直观的信号波形。

连续时间信号,是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干不连续点以外,信号都有确定的值与之对应的信号。

从严格意义上来讲,MATLAB并不能处理连续信号,在MATLAB中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。

在MATLAB中连续信号可用向量或符号运算功能来表示。

1.向量表示法对于连续时间信号f(t),我们可以用两个行向量f和t来表示,其中向量t是行如t=t1:p:t2的MATLAB命令定义的时间范围向量,t1为信号起始时间,t2为中止时间,p为时间间隔。

向量f为连续信号f(t)在向量t所定义的时间点上的样值。

例如对于连续信号f(t)=sin(t),我们可以用如下两个向量来表示:t=-10:1.5:10;f=sin(t)用上述向量对连续信号表示后,就可以用plot命令来绘出该信号的时域波形。

Plot命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的图形就成了光滑的曲线。

命令如下:plot(t,f)title(‘f(t)=sint’)xlabel(‘t’)axis([-10,10,-1.1,1.1])绘制的信号波形如图3.1所示,当把时间间隔p取得更小(如0.01)时,就可得到sint较好的近似波形,如图3.2所示。

离散序列卷积和(用matlab实现)

离散序列卷积和(用matlab实现)

数字信号处理实验报告实验一 离散时间序列卷积和MATLAB 实现(一)实验目的:学会用MATLAB 对信号与系统分析的方法,理解离散序列卷积和的计算对进行离散信号与系统分析的重要性。

(二)实验原理:1、离散时间序列f1(k)和f2(k)的卷积和定义:f(k)=f1(k)*f2(k)=∑∞-∞=-•i i k f i f )(2)(12、在离散信号与系统分析中有两个与卷积和相关的重要结论:a 、f(k)=∑∞-∞=-•i i k i f )()(δ=f(k)* δ(k)即离散序列可分解为一系列幅度由f(k)决定的单位序列δ(k)及其平移序列之积。

b 、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状态响应为y(k),则有:y(k)=∑∞-∞=-•i i k h i f )()(3、上机:conv.m 用来实现两个离散序列的线性卷积。

其调用格式是:y=conv(x,h)若x 的长度为N ,h 的长度为M ,则y 的长度L=N+M-1。

(三)实验内容1、题一:令x(n)= {}5,4,3,2,1,h(n)={}246326,,,,,,y(n)=x(n)*h(n),求y(n)。

要求用subplot 和stem 画出x(n),h(n),y(n)与n 的离散序列图形。

源程序: N=5; M=6;L=N+M-1; x=[1,2,3,4,5]; h=[6,2,3,6,4,2]; y=conv(x,h); nx=0:N-1; nh=0:M-1; ny=0:L-1;subplot(131); stem(nx,x,'*k'); xlabel('n'); ylabel('x(n)'); grid on ;subplot(132); stem(nh,h,'*k'); xlabel('n'); ylabel('h(n)'); grid on ;subplot(133); stem(ny,y,'*k'); xlabel('n'); ylabel('y(n)'); grid on ;实验结果:24nx (n)5nh (n )510ny (n )分析实验结果:根据实验结果分析可知,实验所得的数值跟x (n )与y (n )所卷积的结果相同。

离散序列卷积和(用matlab实现)

离散序列卷积和(用matlab实现)

数字信号处理实验报告实验一 离散时间序列卷积和MATLAB 实现(一)实验目的:学会用MATLAB 对信号与系统分析的方法,理解离散序列卷积和的计算对进行离散信号与系统分析的重要性。

(二)实验原理:1、离散时间序列f1(k)和f2(k)的卷积和定义:f(k)=f1(k)*f2(k)=∑∞-∞=-•i i k f i f )(2)(12、在离散信号与系统分析中有两个与卷积和相关的重要结论:a 、f(k)=∑∞-∞=-•i i k i f )()(δ=f(k)* δ(k)即离散序列可分解为一系列幅度由f(k)决定的单位序列δ(k)及其平移序列之积。

b 、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状态响应为y(k),则有:y(k)=∑∞-∞=-•i i k h i f )()(3、上机:conv.m 用来实现两个离散序列的线性卷积。

其调用格式是:y=conv(x,h)若x 的长度为N ,h 的长度为M ,则y 的长度L=N+M-1。

(三)实验内容1、题一:令x(n)= {}5,4,3,2,1,h(n)={}246326,,,,,,y(n)=x(n)*h(n),求y(n)。

要求用subplot 和stem 画出x(n),h(n),y(n)与n 的离散序列图形。

源程序: N=5; M=6;L=N+M-1; x=[1,2,3,4,5]; h=[6,2,3,6,4,2]; y=conv(x,h); nx=0:N-1; nh=0:M-1; ny=0:L-1;subplot(131); stem(nx,x,'*k'); xlabel('n'); ylabel('x(n)'); grid on ;subplot(132); stem(nh,h,'*k'); xlabel('n'); ylabel('h(n)'); grid on ;subplot(133); stem(ny,y,'*k'); xlabel('n'); ylabel('y(n)'); grid on ;实验结果:24nx (n )5nh (n )510ny (n )分析实验结果:根据实验结果分析可知,实验所得的数值跟x (n )与y (n )所卷积的结果相同。

用MATLAB实现信号的时域卷积

用MATLAB实现信号的时域卷积

用MATLAB 实现信号的时域卷积摘要:利用抽样方法绘制连续信号和离散信号.编制函数计算连续时间信号,离散时间信号的卷积.关键字:MATLAB ;离散卷积;连续卷积实验原理:卷积运算在信号与系统分析中具有非常重要的意义,是信号与系统分析的基本方法之一.线性是不变系统的零状态响应就可以通过求解驶入激励信号与系统单位冲击响应的卷积运算获得.在连续时间系统中,卷积运算成为卷积积分,表示为在离散时间系统中,卷积运算称为卷积和,表示为:实验任务与实现方法:⑴ 编制计算离散时间序列卷积核的M 函数()dconv ,该函数课计算两离散序列()n x 1和()n x 2的卷积和()()()n x n x n x 21*=.程序计算出卷积和()n x 的同时,还绘制出序列()n x 1、()n x 2和()n x 的时域波形图,并返回()n x 的非零样值点的对应向量.任务〔1〕程序:function dconv<x1,x2,y1,y2>%任意两序列卷积x1=input<'请输入x1='>;x2=input<'请输入x2='>;y1=input<'请输入y1='>;y2=input<'请输入y2='>;subplot<131>,stem<x1,y1>,gridon ,title<'y1'>,axis<[<min<x1>-1>,<max<x1>+1>,<min<y1>-1>,<max<y1>+1>]>subplot<132>,stem<x2,y2>,gridon ,title<'y2'>,axis<[<min<x2>-1>,<max<x2>+1>,<min<y2>-1>,<max<y2>+1>]>%_____________________________________________xmin1=min<x1>;xmax1=max<x1>;xmin2=min<x2>;xmax2=max<x2>;t=<xmax2+xmax1>-<xmin2+xmin1>+1;xx=0:<t-1>;ft=conv<y1,y2>subplot<133>,stem<xx,ft>,grid on ,title<'*'>axis<[<min<xx>+0.5>,<max<xx>+0.5>,<min<ft>-0.5>,<max<ft>+0.5>]>⑵ 调用()dconv 来完成下面两离散序列的卷积和运算,并绘制图形:任务〔2〕程序:function f=ddconv<m1,m2>%-----------------------------%离散序列1t1=m1-5;t2=m1+5;t=t1:t2; %横坐标n=length<t>;tt=t1:m1; %起始到跳变n1=length<tt>;f1=[zeros<1,n1-1>,ones<1,n-n1+1>];%subplot<141>,stem<t,f1>,grid on,title<'阶跃函数序列 u<n-m1> '>,axis<[t1 t2 -0.2 1.5]>%-------------------------------%离散序列2p1=m1-5;p2=m1+5;p=p1:p2; %横坐标z=length<p>;pp=p1:m2; %起始到跳变z1=length<pp>;f2=[zeros<1,z1-1>,ones<1,z-z1+1>];%subplot<142>,stem<p,f2>,grid on,title<'离散阶跃序列 u<n-m2> '>,axis<[p1 p2 -0.2 1.5]>%------------------------------------%两离散序列相减k=min<min<t>,min<p>>:max<max<t>,max<p>>; %共同横坐标s1=zeros<1,length<k>>;s2=s1;s1<find<<k>=min<t>>&<k<=max<t>>==1>>=f1;s2<find<<k>=min<p>>&<k<=max<p>>==1>>=f2;f=s1-s2;subplot<131>,stem<k,f>,grid on,title<'x<n>=u<n>-u<n-4>'>axis<[<min<min<t>,min<p>>-1>,<max<max<t>,max<p>>+1>,<min<f>-0.5>,<max <f>+0.5>]>subplot<132>,stem<k,f>,grid on,title<'h<n>=u<n>-u<n-4>'>axis<[<min<min<t>,min<p>>-1>,<max<max<t>,max<p>>+1>,<min<f>-0.5>,<max <f>+0.5>]>%----------------------------xmin1=min<k>;xmax1=max<k>;xmin2=min<k>;xmax2=max<k>;t=<xmax2+xmax1>-<xmin2+xmin1>+1;xx=0:<t-1>;ft=conv<f,f>subplot<133>,stem<xx,ft>,grid on,title<'h<n>*x<n>'>axis<[<min<xx>+0.5>,<max<xx>+0.5>,<min<ft>-0.5>,<max<ft>+0.5>]>⑶编制计算连续时间信号卷积积分的M函数()sconv,该函数在计算出两信号()t f1和()t f 2的卷积积分()t f的数值近似的同时,还绘制出()t f1、()tf2和()t f的时域波形图. 实现方法:与第〔4〕任务用同一个程序.⑷调用函数()sconv来完成下面两连续时间信号的卷积积分运算,并绘制图形:()()121--⎪⎭⎫⎝⎛+=tutut e,()()()[]221--=tututth任务〔3、4〕程序:function sconv<>%u<t>m1=0;t1=m1-10;t2=m1+10;t=t1:0.01:t2;n=length<t>;tt=t1:0.01:m1;n1=length<tt>;f1=[zeros<1,n1-1>,ones<1,n-n1+1>];%subplot<131>,plot<t,f1>,grid on,title<'ÀëÉ¢½×Ô¾ÐòÁÐ u<t> '>,axis<[t1 t2 -0.2 1.5]>%u<t+1/2>tx1=t-1/2;fx1=f1;%subplot<241>,stairs<tx1,fx1>,grid on,title<' u<t+1/2> '>,axis<[t1 t2 -0.2 1.5]>%u<t-1>tx2=t+1;fx2=f1;%subplot<242>,stairs<tx2,fx2>,grid on,title<' u<t-1> '>,axis<[t1 t2 -0.2 1.5]>k=min<min<tx1>,min<tx2>>:0.01:max<max<tx1>,max<tx2>>;s1=zeros<1,length<k>>;s2=s1;s1<find<<k>=min<tx1>>&<k<=max<tx1>>==1>>=fx1;s2<find<<k>=min<tx2>>&<k<=max<tx2>>==1>>=fx2;e=s1-s2;subplot<131>,stairs<k,e>,grid on,title<'e<t>=u<t+1/2>-u<t-1>'>axis<[<min<min<tx1>,min<tx2>>+5>,<max<max<tx1>,max<tx2>>-5>,<min<e>-0 .5>,<max<e>+0.5>]>tx3=t;fx3=f1;%subplot<243>,stairs<tx3,fx3>,grid on,title<' u<t> '>,axis<[t1 t2 -0.2 1.5]>tx4=t+2;fx4=f1;%subplot<244>,stairs<tx4,fx4>,grid on,title<' u<t-2> '>,axis<[t1 t2 -0.2 1.5]>k1=min<min<tx3>,min<tx4>>:0.01:max<max<tx3>,max<tx4>>;s3=zeros<1,length<k1>>;s4=s1;s3<find<<k1>=min<tx3>>&<k1<=max<tx3>>==1>>=fx3;s4<find<<k1>=min<tx4>>&<k1<=max<tx4>>==1>>=fx4;h=s3-s4;%subplot<236>,stairs<k1,h>,grid on,title<' u<t>-u<t-2>'>%axis<[<min<min<tx3>,min<tx4>>+5>,<max<max<tx3>,max<tx4>>-5>,<min<h>-0.5>,<max<h>+0.5>]>h<t>=1/2*t*[u<t>-u<t-2>]kk1=length<k1>;ont=0:0.01:kk1;ks=min<min<k1>,min<ont>>:0.01:max<max<k1>,max<ont>>;s5=zeros<1,length<ks>>;s6=s5;s5<find<<ks>=min<ont>>&<ks<=max<ont>>==1>>=ont;s6<find<<ks>=min<k1>>&<ks<=max<k1>>==1>>=h;ffu=1/2*<s5.*s6>;subplot<132>,stairs<ks,ffu>,grid on,title<'1/2*t*[u<t>-u<t-2>]'>axis<[-5,5,<min<ffu>-0.5>,<max<ffu>+0.5>]>xmin1=min<k>;xmax1=max<k>;xmin2=min<ks>;xmax2=max<ks>;ttx=<xmax2+xmax1>-<xmin2+xmin1>+0.01;xx=0:0.01:<ttx-0.01>;ft=conv<e,ffu>;subplot<133>,stairs<xx,ft>,grid on,title<'h<n>*x<n>'>axis<[15,55,<min<ft>-0.5>,<max<ft>+0.5>]>实验总结:通过本次实验学会了用MATLAB实现线性系统的时域分析.能自己完成的东西一定要自己独立完成,这样收获的东西才是自己的.。

MATLAB求卷积的原理及应用

MATLAB求卷积的原理及应用

MATLAB求卷积的原理及应用1. 卷积的基本概念卷积是信号处理中常用的一种数学运算,它用于描述两个信号之间的相互影响关系。

在MATLAB中,可以使用内置函数conv来进行卷积运算。

卷积的原理是通过将两个信号进行乘积运算,并将乘积结果按时间偏移进行累加,得到在不同时间点上的输出信号。

数学上,卷积可以表示为以下公式:y(n) = ∑(x(k)*h(n-k))其中,x和h是两个输入信号,k是一个累加变量,n是输出信号的时间变量。

2. MATLAB中的卷积函数MATLAB提供了conv函数来进行卷积运算。

该函数的语法如下:y = conv(x, h)其中,x和h分别表示要进行卷积运算的两个信号,y表示卷积的结果。

x与h 可以是向量、矩阵或多维数组。

3. 卷积的应用场景卷积在信号处理中有广泛的应用,下面列举了一些常见的应用场景。

3.1 信号滤波卷积可以用于信号滤波,通过将信号与一个滤波器的冲激响应进行卷积运算,可以实现对信号的滤波操作。

滤波器可以用于去除噪声、平滑信号等。

3.2 时域信号处理卷积可以用于时域信号处理,如信号的平移、放大缩小等操作。

通过将信号与一个单位脉冲序列进行卷积运算,可以实现对信号的平移操作。

3.3 系统响应分析卷积可以用于分析线性时不变系统的响应。

通过将输入信号与系统的冲激响应进行卷积运算,可以得到系统的输出响应。

3.4 图像处理卷积在图像处理中也有广泛的应用。

例如,可以使用卷积运算实现图像的边缘检测、模糊处理等操作。

在MATLAB中,可以使用conv2函数进行二维卷积运算。

4. 示例代码下面是一个使用MATLAB进行卷积运算的示例代码:x = [1, 2, 3, 2, 1]; % 定义输入信号xh = [1, -1, 1]; % 定义滤波器冲激响应hy = conv(x, h); % 进行卷积运算disp(y); % 输出卷积结果运行以上代码,可以得到卷积的结果。

5. 总结本文介绍了MATLAB中求卷积的原理和应用。

matlab画卷积 教程

matlab画卷积 教程
个实用一点的 函数dconv( ),该函数实现的功能为: 可以在计算出卷积f (k)的同时,还可以绘出 序列f1(k)、f2(k)及f (k)在时域内的波形图。 并返回f (k)的非零样值点的对应向量




function [f,k]=dconv(f1,f2,k1,k2) %the function of compute f=f1*f2 %f: 卷积序列f(k)对应的非零样值向量 %k: 序列f(k)的对因序号向量 %f1: 序列f1(k)非零样值向量 %f2: 序列f2(k)非零样值向量 %k1: 序列f1(k)的对应序号向量 %k2: 序列f2(k)的对应序号向量

需要注意的是,调用conv( )函数计算序列卷 积时,该函数将向量f1和f2以外的序列样值 均视为零,因此,当序列f1(k)或f2(k)为无限 长序列时调用conv( )函数就可能出现误差。 如果碰到无限长序列时候,我们必须将其 截断才能求带入到conv( )函数中。此时,函 数将把截断区域外的区间视为零,故conv( ) 计算出的卷积只有部分是真实的
%在子图1绘f1(t)时域
%在子图2绘f2(t)时域



subplot(2,2,3) plot(k,f) %画卷积f(t)的时域波形 title('f(t)=f1(t)*f2(t)') xlabel('t') ylabel('f(t)')





给定下面两个连续信号,我们调用sconv( ) 函数来求两连续信号的卷积。 f1(t)=2[U(t)-U(t-4)] f2(t)=U(t)-U(t-2) MATLAB命令如下: p=0.01; k1=0:p:4; f1=2*ones(1,length(k1)) k2=0:p:2; f2=ones(1,length(k2)) %f1,f2 两个信号的向量表示 [f,k]=sconv(f1,f2,k1,k2,p) %子函数调用

卷积运算matlab

卷积运算matlab

卷积运算matlab一、什么是卷积运算在数字信号处理和图像处理领域,卷积运算是一种常用的数学运算方法,它可以通过两个函数产生一个新的函数。

在信号处理中,卷积运算常用于信号滤波、图像边缘检测等领域。

而在图像处理中,卷积运算可以实现图像的模糊、锐化和特征提取等功能。

二、卷积运算的原理卷积运算的原理可以用以下公式表示:$$(f*g)(t)=\in t_{-\i nf ty}^{\in ft y}f(\t au)g(t-\ta u)d\ta u$$其中,$f(t)$和$g(t)$表示两个函数,$*$表示卷积运算符,$(f*g)(t)$表示卷积运算的结果。

在离散情况下,卷积运算可以用以下公式表示:$$(f*g)[n]=\su m_{m=-\i nf ty}^{\in fty}f[m]g[n-m]$$其中,$f[n]$和$g[n]$表示两个离散序列,$[n]$表示序列的下标,$*$表示卷积运算符,$[m]$表示离散序列的下标。

三、在MATL AB中进行卷积运算M A TL AB中提供了方便快捷的函数用于进行卷积运算。

具体步骤如下:1.准备输入序列首先,我们需要准备两个输入序列,分别表示$f[n]$和$g[n]$。

f=[1,2,3,4,5];g=[1,1,1];2.执行卷积运算接下来,使用MA TL AB的`c on v`函数执行卷积运算。

r e su lt=c on v(f,g);3.查看结果最后,我们可以通过打印`r es ul t`来查看卷积运算的结果。

d i sp(r es ul t);四、实际应用案例卷积运算在实际应用中具有广泛的应用性。

下面以图像处理中的边缘检测为例说明卷积运算的应用。

1.准备图像首先,我们需要准备一张待处理的图像。

i m ag e=im re ad('ima g e.jp g');2.定义边缘检测算子接下来,我们需要定义一个边缘检测算子,例如S ob el算子。

s o be l=[1,0,-1;2,0,-2;1,0,-1];3.执行卷积运算然后,使用M AT LA B的`co nv2`函数执行卷积运算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(一)实验目的:学会用MATLAB对信号与系统分析的方法,理解离散序列卷积和的计算对进行离散信号与系统分析的重要性。

(二)实验原理:
1、离散时间序列f1(k)和f2(k)的卷积和定义:
f(k)=f1(k)*f2(k)=∑∞
-∞
=
-•
i
i
k
f
i
f)
(
2
)
(
1
2、在离散信号与系统分析中有两个与卷积和相关的重要结论:
a、f(k)= ∑∞
-∞
=
-•
i
i
k
i
f)
(
)
(δ=f(k)* δ(k)即离散序列可分解为一系列
幅度由f(k)决定的单位序列δ(k)及其平移序列之积。

b、对线性时不变系统,设其输入序列为f(k),单位响应为h(k),其零状
态响应为y(k),则有:y(k)= ∑∞
-∞
=
-•
i
i
k
h
i
f)
(
)
(
3、上机:conv.m用来实现两个离散序列的线性卷积。

其调用格式是:y=conv(x,h)
若x的长度为N,h的长度为M,则y的长度L=N+M-1。

(三)实验内容
1、题一:令x(n)= {}5,4,3,2,1,h(n)={}246326,



,,y(n)=x(n)*h(n),求y(n)。

要求用subplot和stem画出x(n),h(n),y(n)与n的离散序列图形。

源程序:
N=5;
M=6;
L=N+M-1;
x=[1,2,3,4,5];
h=[6,2,3,6,4,2];
y=conv(x,h);
nx=0:N-1;
nh=0:M-1;
ny=0:L-1;
subplot(131); stem(nx,x,'*k'); xlabel('n');
ylabel('x(n)'); grid on ;
subplot(132); stem(nh,h,'*k'); xlabel('n');
ylabel('h(n)'); grid on ;
subplot(133); stem(ny,y,'*k'); xlabel('n');
ylabel('y(n)'); grid on ;
实验结果:
n
x (n
)
n
h (n
)
n
y (n )
分析实验结果:
根据实验结果分析可知,实验所得的数值跟x (n )与y (n )所卷积的结果相同。

2、题二:已知序列
f1(k)=⎩⎨⎧≤≤其它0201k f2(k)=⎪⎪⎩⎪
⎪⎨
⎧===其它
33
2211k k k
调用conv()函数求上述两序列的卷积和 源程序: clc; k1=3; k2=3;
k=k1+k2-1; f1=[1,1,1]; f2=[0,1,2,3]; f=conv(f1,f2); nf1=0:k1-1; nf2=0:k2; nf=0:k;
subplot(131); stem(nf1,f1,'*r'); xlabel('n'); ylabel('f1(n)'); grid on ;
subplot(132); stem(nf2,f2,'*b'); xlabel('n');
subplot(133); stem(nf,f,'*g'); xlabel('n'); ylabel('f(n)'); grid on ;
实验结果:
12
n
f 1(n )
n
f 2(n )
n
f (n )
分析实验结果:
根据实验结果分析可知,实验所得的数值跟f1(n )与f2(n )所卷积的结果相同。

3、题三:编写计算两离散序列卷积和f(k)=f1(k)*f2(k)的实用函数dconv().要求该程序在计算出卷积和f(k)的同时,还绘出序列f1(k),f2(k)和f(k)的时域波形图。

function[f,k]=dconv(f1,f2,k1,k2)
%f1(k),f2(k)及f(k)的对应序号向量分别为k1,k2和k 。

源程序:
function [f,k]=dconv(f1,f2,k1,k2); f=conv(f1,f2); k(1)=k1(1)+k2(1);
k(length(f))=k1(length(f1))+k2(length(f2)); k=k(1):k(length(f));
subplot(131); stem(k1,f1,'*r'); xlabel('k1'); ylabel('f1(k1)'); grid on ;
subplot(132); stem(k2,f2,'*b'); xlabel('k2');
subplot(133); stem(k,f,'*g'); xlabel('k'); ylabel('f(k)'); grid on ;
该程序编写了一个可以在计算出卷积和f(k)的同时,还绘出序列f1(k),f2(k)和f(k)的时域波形图的函数。

4、题四:试用MATLAB 计算如下所示序列f1(k)与f2(k)的卷积和f(k),绘出它们的时域波形,并说明序列f1(k)与f2(k)的时域宽度与序列f(k)的时域宽度的关系。

提示:可用上述dconv()的函数来解决。

f1(k)=⎪⎪⎩⎪
⎪⎨⎧==-=其它0
110211
k k k
f2(k)=⎩⎨
⎧≤≤-其它
221k
源程序: clc;
f1=[1,2,1]; f2=[1,1,1,1,1];
k1=-1:length(f1)+k1(1)-1; k2=-2:length(f2)+k2(1)-1; dconv(f1,f2,k1,k2); 实验结果:
k1
f 1(k 1)
k2
f 2(k 2
)
00.51
1.52
2.5
3
3.54k
f (k )
分析实验结果:
根据实验结果分析可知,实验所得的数值跟f1(n )与f2(n )所卷积的结果相同。

直接调用已经编好的函数,得到卷积结果及图形。

5、题五:已知某LTI 离散系统,其单位响应h(k)=e(k)-e(k-4),求该系统在激励为f(k)=e(k)-e(k-3)时的零状态响应,并绘出其时域波形图。

提示:可用dconv()的函数来解决。

源程序: clc;
f1=[1,1,1,1]; f2=[1,1,1];
k1=0:length(f1)+k1(1)-1; k2=0:length(f2)+k2(1)-1; dconv(f1,f2,k1,k2);
实验结果:
k1
f 1(k 1)
k2
f 2(k 2
)
k
f (k )
分析实验结果:
根据实验结果分析可知,实验所得的数值跟f1(n )与f2(n )所卷积的结果相同。

直接调用已经编好的函数,得到卷积结果及图形。

系统的零状态响应就是激励信号与该系统的单位响应的卷积。

(四)心得体会:通过Matlab 的仿真,形象地得出了离散序列相卷积的结果,而对卷积函数conv (x ,y )的使用可以编写函数,然后方便地调用函数得到一些特有的功能。

相关文档
最新文档