




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、合肥师范学院物电系08电子信息工程MATLAB论文装订线MATLAB论文题目:利用MATLAB实现循环卷积论文系别:物理与电子工程系 姓名:翟刘慧班级:08电子信息工程(2)班 学号:08082110782011年5月19日星期四利用MATLAB实现循环卷积摘 要 数字信号处理技术的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以通过计算机处理离散信号。离散傅立叶变换,在通信、语音处理、图像处理、雷达、医学影像等各个领域得到广泛应用,但这都是以卷积和相关运算、对连续信号和序列进行谱分析为基础的。卷积分为循环卷积、线性卷积等。本文分析了在什么情况下能用循环
2、卷积运算代替线性卷积运算并给出了相关程序代码,本文实现了在MATLAB中对任意的两序列进行循环卷积,序列可以通过键盘输入,最后显示结果和波形。关键词:卷积 循环卷积 傅立叶变换 MATLABABSTRACT The core digital signal processing algorithm is the Discrete Fourier Transform(DFT),is the DFT to the signal in the digital domain and frequency domain are realized discrete ,general-purpose compu
3、ter which can handle discrete signal .Discrete Fourier Transform ,in communications ,voice processing ,image processing ,radar ,medical imaging and other fields is widely used ,but this is by convolution and correlation operations on continuous signals and sequences based on spectral analysis .Volum
4、e integral for the circular convolution ,linear convolution .This paper analyzes under what circumstances can use cyclic convolution operation instead of linear convolution and the corresponding program codes in MATLAB to achieve this on two sequences of arbitrary input cyclic convolution ,the keybo
5、ard sequence can input the final results and waveform display.Keywords :convolution circular convolution Fourier transform MATLAB 目 录 一MATLAB软件简介3 1.1MATLAB简介3 1.2MATLAB特点3 二信号与系统4 2.1系统的描述与分类4 2.1.1连续时间系统和离散时间系统4 2.1.2线性系统和分线性系统4 2.2 信号的描述与分类5 2.2.1连续时间信号和离散时间信号5 2.2.2 周期信号与非周期信号5 2.2.3 能量信号与功率信号5
6、三利用MATLAB实现信号分析6 3.1连续信号的表示和运算6 3.2单位序列6 四卷积的概念与原理8 4.1 卷积原理8 4.2卷积运算8 4.3 循环卷积8 五利用MATLAB实现任意两序列的循环卷积10 5.1实现循环卷积的几种方法10 5.2 定义法10 5.3直接调用MATLAB内部函数11 5.4 快速卷积法12 5.5几种算法性能比较14 参考文献:1412引 言 信号与系统是电子信息工程专业的一门十分重要的专业基础课,而且对其他自然科学和工程领域的科研和人员也是十分重要的。数字信号处理技术是在信号与系统的基础上进一步发展起来的。对数字信号的处理需要 计算机或专用处理设备,如数字
7、信号处理器(DSP)或专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备无法比拟的。MATLAB是一个高性能的科学计算软件,广泛应用于数学计算、系统仿真、可视化、科学和工程绘图等,因此MATLAB已经成为国际上最流行的科学与工程计算的软件工具。现在的MATLAB已经不仅仅是“矩阵实验室”了,它已经成为一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言,它在国内外高校和研究部门正扮演着重要的角色。MATLAB语言是一种简单、高效、功能极强的高级语言,具有强大的矩阵运算解决方
8、法。可以预见,子啊科学运算、自动控制与科学绘图领域MATLAB语言将长期保持独一无二的地位。本系统设计就是利用MATLAB软件来完成数字信号的处理,因此本 系统设计是基于MATLAB软件实现任意两个序列的循环卷积。一 MATLAB软件简介1.1MATLAB简介 MATLAB 是由Matrix和Laboratory两个词的前三个字母组合而成的,是由Mathworks公司于1984年推出的一套高性能的数值计算和可视化数学软件。它是一种基于矩阵运算的交互式程序语言,专门对科学、工程计算及回吐的需求。最为重要的是,由于使用MATLAB进行编程运算与人进行科学计算的表达方式完全一致,所以不像其他高级语言
9、(如c等)那样难于掌握,用MATLAB编写程序犹如在演算纸上排列出公式与求解问题,因此它又被称为演算纸式科学算法语言。1.2MATLAB特点 MATLAB是一种高性能的、用于工程计算的编程软件,它把科学计算、结果的可视化和编程都集中在一个使用非常方便的环境中。一般来说,MATLAB系统包括下面五个主要部分:(1)编程语言:它是以矩阵和数组为基本单位的编程语言;(3)图形处理:包括绘制二维、三维图形和创建图形用户接口;(4)数学库函数:包含了大量的数学函数,也包括复杂的功能;(5)应用程序接口:提供接口程序,可使MATLAB与其他语言程序进行交互。MATLAB典型的应用包括以下几个方面:(1)数
10、学和计算算术发展模型;(2)建模和动态仿真;(3)数据分析、开发和可视化;(4)科学和工程图学。二 信号与系统2.1系统的描述与分类 什么是系统?广义地说,系统是由若干相互作用和相互依赖的事物组合而成的具有特定功能的整体。例如,通信系统、自动控制系统、计算机网络系统、电力系统、水利灌溉系统等。通常将施加于系统的作用称为系统的输入激励,而将要求系统完成的功能成为系统的输出响应。 2.1.1连续时间系统和离散时间系统输入和输出均为连续时间信号的系统称为连续时间系统。输入和输出均为离散时间信号的系统称为离散时间系统。模拟通信系统是连续时间系统,而数字计算机就是离散时间系统。连续时间系统的数学模型是微
11、分方程,而离散时间系统则用差分方程来描述。2.1.2线性系统和非线性系统 线性系统是指具有线性特性的系统。所谓线性特性是指齐次性与叠加性。若系统输入增加K倍,输出也增加K倍,这就是齐次性。若有几个输入同时作用于系统,而系统的总输出等于每一个输入单独作用引起的输出之和,这就是叠加性。系统同时具有齐次性和叠加性便呈线性特性。一个系统的输出不仅与输入有关,还与系统的初始状态有关。设具有初始状态的系统加入激励时的总响应为y(t);仅有激励而初始状态为零的响应为yzs(t),称为零状态响应;仅有初始状态而激励为零的响应为yzi(t),称为零输入响应。若将系统的初始状态看成系统的另一种输入激励,则对于线性
12、系统,根据系统的线性特性,其输出总响应必然是每个输入单独作用时相应输出的叠加。因此,一般线性系统必须具有:A.分解性即y(t)yzs(t)yzi(t);B.零输入线性当系统有多个初始状态时,零输入响应对每个初始状态呈线性;C.零状态线性当系统有多个输入时,零状态响应对每个输入呈线性。凡不具备上述特性的系统则称为非线性系统。2.2 信号的描述与分类2.2.1连续时间信号和离散时间信号 按照函数时间取值的连续性划分:确定信号可分为连续时间信号和离散时间信号,简称连续信号和离散信号。所谓连续时间信号,是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干不连续的点以外,信号都是有确定的值与
13、之对应的。连续信号是指在所讨论的时间内,对任意时刻除若干不连续点以外,信号都是有确定的值与之对应的。连续信号是指在所讨论的时间内,对任意时刻值除若干个不连续点外都有定义的信号,通常用f(t)表示。离散信号是指只在某些不连续时刻有定义,而在其他时刻没有定义的信号。通常用f(tk)只在t、k=0,1,2,3,等离散时刻才给出函数值。2.2.2 周期信号与非周期信号 周期信号和非周期信号:按信号的周期性划分,确定信号又可以分为周期信号和非周期信号。周期信号是指一个每隔一定时间T,周而复始且无始无终的信号,它们的表达式可写为f(t)=f(t+nT);n=0,1,2,满足此关系的最小T值成为信号的非周期
14、信号在时间上不具有周而复始的特性。非周期信号也可以看做一个周期T趋于无穷大的周期信号。2.2.3 能量信号与功率信号 能量信号与功率信号:信号按时间函数的可积性划分,可以分为能量信号,功率信号和非功非能信号。信号看作是随时间变化的电压或电流,信号t(t)在1欧姆的电阻上的瞬时功率为,在时间区间所消耗的总能量定义为:信号f(t)可以是一个既非功率信号,又非能量信号,如单位斜坡信号就是一个例子。但一个信号不可能同时既是功率信号,又是能量信号。三 利用MATLAB实现信号分析3.1连续信号的表示和运算 一般说来周期信号都是功率信号,非周期信号或者能量信号,或者功率信号,或者既非能量信号又非功率信号。
15、属于能量信号的非周期信号称为脉冲信号,它在有限时间范围内有一定数值。严格地说,MATLAB并不能处理连续的信号。在MATLAB中,信号都是用连续信号的在相同的时间间隔点采样值来近似地表信号。在MATLAB中连续信号可用向量或符号运算的功能来表示。在MATLAB中,用一个向量f即可以表示一个有限长度的序列。但是,这样的向量并没有包含其对应的时间序号信息。所以,要完整的表示离散信号需要用两个向量。用MATLAB表示离散序列并将其可视化时,要注意以下几点:1、 与连续时间信号不同,离散时间信号无法用符号来表示。2、 由于在MATLAB中,矩阵的元素个数是有限的。因此,MATLAB无法表示无限序列。3
16、、 在绘制离散信号波形时,要使用专门的绘制离散数据的stem命令,而不是plot命令。3.2单位序列单位序列定义为:,下面是MATLAB绘制单位序列的子程序,其中为在时间上的位移量,则左移,则右移,、为时间序列的起始时间序列,调用该函数就可以绘出单位序列及其位移序列的波形图。function dwxl(k1,k2,k0)k=k1:k2;n=length(k);f=zeros(1,n);f(1,-k0-k1+1)=1;stem(k,f,'filled');axis(k1,k2,0,1.5);title('单位序列')以dwxl.M文件名保存。调用dwxl(-5,5
17、,0);可得结果如下图1所示 通过以上序列的求解方法可以容易的写出求解单边指数序列的MATLAB程序。程序如下:k=0:10;f=exp(-0.5*k);stem(k,f);axis(0,10,0,1);title('单边指数序列')·四 卷积的概念与原理4.1 卷积原理信号的卷积是针对时域信号处理的一种分析方法。信号的卷积一般用于求取信号通过某系统后的响应。在信号与系统中,我们通常求取某系统的单位冲激响应,所求得的h(n)可作为系统的时域表征。任一系统响应可用卷积的方法求得:y(n)=x(n)*h(n)4.2卷积运算设两个序列为x(n)和h(n),则x(n)和h(n
18、)的卷积和定义为:y(n)=x(m)h(n-m)=x(n)*h(n)其中,把卷积和用*来表示。卷积和的运算在图形上可以分为四步:反折、移位、相乘、相加。反折:先将变量坐标m上作出x(m)和h(m)以m=0的垂直轴为对称轴反折成h(-m).移位:将h(-m)移位n,即得h(n-m).当n为整数时,右移n位。当n为负整数时,右移n位。相乘:再将h(n-m)和x(m)的相同m值的对应点相乘。相加:把以上所有点的乘积叠加起来,即得y(n)值。对于两个时限信号,按照上述的五个步骤,做卷积积分运算时,关键是正确确定不同情况下的积分限。只要正确地确定了积分限都能得到正确定积分结果。在MATLAB的内部有函数
19、conv可以很容易地完成两个信号卷积积分运算。其语法为:yn=conv(x,h)。其中x和h分别是两个卷积运算的信号,yn为卷积结果。在MATLAB窗口中输入以下内容:>>x=2 0 7 10;>>h=5 -1 3 13;>>yn=conv(x,h)在屏幕上显示结果如下:yn= 10 -2 41 69 11 121 130有时候,做卷积运算的两个序列,可能有一个序列或者两个序列都非常长,甚至是无限长,MATLAB处理这样的序列时,总是把它看作是一个有限长序列,具体长度是由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝对可积条件的信号
20、。因此,对信号采取这种取部分处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度。4.3 循环卷积循环卷积也称圆周卷积。线性卷积是求离散系统响应的主要方法之一。循环卷积的计算速度要远远快于线性卷积,如果选择循环卷积的长度,则可以用循环卷积代替线性卷积。方法如下:(1)定义循环卷积的长度:选择;(2)将两个序列的长度都补足为C;将长为N1的序列x(n)延长到C,补C-N1个零;将长为N2的序列h(n)延长到C,补C-N2个零;(3)反转x(n),周期延拓为序列x(n),取主周期;(4)循环移位:与线性卷积不同,循环卷积运算中采用的是循环移位,有限长序列x(n)的循环移
21、位定义为:其含义如下:表示x(n)的周期延拓序列x(n)的移位:是一个长度为N的有限序列。(5)将序列x与h进行循环移位生成的矩阵H的转置矩阵相乘,即完成x(m)和h(n-m)所有对应项相乘之后相加,完成循环卷积。五 利用MATLAB实现任意两序列的循环卷积时域的圆周卷积在频域上相当于两序列的DFT相乘,而DFT又有多种快速算法,因此与线性卷积相比,计算速度可以大大提高。5.1实现循环卷积的几种方法本系统设计了三种方式来实现任意两个序列的循环卷积,分别是定义法、直接调用MATLAB内部函数法、快速卷积法。5.2 定义法根据循环卷积的定义及运算步骤:反折、移位、相乘、相加,用MATLAB语言编写
22、出程序代码如下。%循环卷积实现原理:y(n)=sum(x1(m)*x2(n-m) mod N)clear;close all; x1=input('请输入序列x1=');x2=input('请输入序列x2=');xn1=length(x1);xxn1=0:xn1-1;subplot(3,1,1);stem(xxn1,x1,'.');title('序列x1'); xn2=length(x2);xxn2=0:xn2-1;subplot(3,1,2);stem(xxn2,x2,'.');title('序列x2
23、39;); if(length(x1)>N)error('N输入错误:N的长度必须大于输入x1的长度');endif(length(x2)>N)error('N输入错误:N的长度必须大于输入x2的长度');endx1=x1,zeros(1,N-length(x1);x2=x2,zeros(1,N-length(x2);m=0:N-1;x=zeros(N,N);for n=0:N-1 x(:,n+1)=x2(mod(n-m),N)+1);end;yn=x1*x;subplot(3,1,3);stem(m,yn,'r','.
24、9;);title('序列x1和序列x2的循环卷积结果');定义法程序的 如下:将以上程序保存为juanji.m文件,在MATLAB中输入序列x1=2 3 0 -5 6,序图3 定义法实现的任意两序列循环卷积结果5.3直接调用MATLAB内部函数用MATLAB 语言编写出的程序代码如下。clear;close all;x1=input('请输入序列x1=');x2=input('请输入序列x2=');N=input('请输入循环卷积的长度N=');y=conv(x1,x2);%x1与x2线性卷积subplot(2,1,1);%画图
25、的位置在2行2列这个矩阵的第1行1列处n=0:length(y)-1;stem(n,y,'.');%画图title('序列x1与序列x2的线性卷积结果');%标题xlabel('n');ylabel('y(n)');%x、y轴 x11=fft(x1,N);%对x1傅里叶变换x12=fft(x2,N);%对x2傅里叶变换y11=x11.*x12;%乘y1=ifft(y11,N);%逆傅里叶变换subplot(2,1,2);n=0:length(y1)-1;stem(n,y1,'.');title('循环卷积结
26、果');xlabel('n');ylabel('y1(n)'); 将以上程序保存为hanshu.m文件,在MATLAB中输入序列x1=6 15 -6 3 5 7 0 1,序列x2=7 1 2 9 4 3 20 6,输入循环卷积的长度N=25得到结果如图4所示。5.4 快速卷积法先将输入的两个序列x1和 x2周期延拓到C点,其中,N1为x1的长度,N2为x2的长度;C取值为2的整数幂,以便使用-2FFT算法。根据信号在时域与频域关系,可以用FFT计算线性卷积。方法如下:(1)定义长度:选择。(2)求两个要卷积序列的N点频谱函数:求X(k)=FFTx(n)求H(k)=FFTh(n)(3)将两个频谱函数相乘求Y(k)=H(k)X(k)(4)对乘积进行IFFT变换 求y(n)=IFFT(Y(k)快速卷积结构图如下:X1(k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年CPMM考前应对技巧全解试题及答案
- HZHY-AI200-B载板技术规格说明书
- 2024年国际物流的政策环境分析试题及答案
- 植物的水分吸收机制试题及答案
- 企业疫情防控培训课件
- 2024年采购管理师重要概念试题及答案
- 浙教版 2021-2022学年度八年级数学上册模拟测试卷
- 伤寒防控课件
- 2025天津现代职业技术学院辅导员考试题库
- 2025山东财经大学燕山学院辅导员考试题库
- 第八章施工期环境保护方案及措施
- 中药奶茶介绍
- 储罐自力式氮封阀设计规范
- (六枝)电厂贮灰场工程施工组织设计
- 消除艾梅乙工作专班制度汇编手册修订版艾滋病梅毒乙肝
- 2022-年安徽省普通高校分类考试招生和对口招生文化素质测试语文试题
- 2024-2030年中国阳澄湖大闸蟹行业市场发展监测及投资前景展望报告
- GB/T 9799-2024金属及其他无机覆盖层钢铁上经过处理的锌电镀层
- 临床医学科研设计的基本原则和设计要点
- 墓地征用补偿协议
- 班组长的领导方式与技巧
评论
0/150
提交评论