




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
燕山大学课 程 设 计 说 明 书题目: 利用循环卷积实现快速卷积运算 学院(系):07级电气工程学院 年级专业: 工业自动化仪表 学 号: 学生姓名: 指导教师: 教师职称: 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位: 学 号学生姓名专业(班级)工业自动化仪表设计题目利用循环卷积实现快速卷积运算设计技术参数以四点和256点为例进行循环卷积和线性卷积运算设计要求 利用matlab分别设计循环卷积和线性卷积程序,比较算法的计算速度;利用fft-ifft实现快速循环卷积卷积,并利用其实现现行卷积,计算系统输出。工作量工作计划1-2天:查资料。3-5天:进行设计编写程序。6-9天:运行、调试完成说明书。10天:答辩。参考资料1.信号处理原理及应用 机械工业出版社 谢平 林洪彬 王娜 2.数字信号处理基础及matlab实现 中国林业出版社 周辉 董正宏3. 指导教师签字 谢平 林洪彬基层教学单位主任签字谢平说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2010 年 7 月 4 日 燕山大学课程设计评审意见表指导教师评语:成绩: 指导教师: 2010 年 7 月 16 日答辩小组评语: 成绩: 评阅人: 2010 年 7 月 16 日课程设计总成绩:答辩小组成员签字: 2010 年 7 月16 日 燕 山 大 学 课 程 设 计 说 明 书摘 要信号处理技术已经几乎涉及到所有工程技术领域。信号处理的目的就是对被观测到的信号进行分析,变换,综合,估计和识别等,使之容易为人们所使用。数字信号处理可以用硬件和软件两种方法来实现。目前,数字信号处理的技术已日趋成熟,其应用领域几乎涵盖了所有领域。在信号处理技术中,无论时域还是频域都离不开卷积运算和傅立叶运算,本文主要介绍了利用循环卷积实现快速卷积运算的方法,并利用matlab分别设计循环卷积和线性卷积程序,比较算法的计算速度,此外,由于快速傅里叶变换(fft)算法可以使运算工作量大大减少,运算速度大大的提高,我们利用fft-ifft实现快速循环卷积卷积,并利用其实现线性卷积,来计算系统输出。目 录序 言 摘要 1第一章 概 述 3第二章 设计思想及系统功能 3一 设计思想3二 系统功能3第三章 离散时间信号卷积的实现 4一 线性卷积41 定义及计算步骤42 性质及作用5二 循环卷积6三 利用fft计算循环卷积7四 利用fft计算线性卷积7第四章 连续时间信号卷积的实现 8第五章 程序源代码及结果分析8一 四点循环卷积及线性卷积程序代码81 四点循环卷积的程序源代码82 用fft计算四点循环卷积的程序源代码93 四点线性卷积的程序源代码 104 用fft计算四点线性卷积的程序源代码11二 256点循环卷积及线性卷积程序代码121256点循环卷积的程序源代码122 用fft计算256点循环卷积的程序源代码133256点线性卷积的程序源代码144 用fft计算256点线性卷积的程序源代码15三 小节16第六章 总结 16第七章 参考文献17第一章 概述在数字信号处理(dsp)系统中,无论在时域或频域都离不开卷积运算和快速傅里叶(fft)运算。其中,离散卷积在数字信号处理中是很重要的一种运算,因为离散时间系统的输出响应等于输入激励与系统单位冲激响应的离散卷积,所以离散卷积运算被广泛应用。然而,在离散时间信号处理过程中,线性卷积的运量大,运算速度慢,而时域圆周卷积在频域上等于两序列的dft(离散傅里叶变换)相乘,由dft可采用快速算法,计算速度要大大优于线性积。目前,快速卷积运算的研究方向大致有三个:一是应用多项式留数定理,将两个很长数列的卷积转化成求若干较短数列的卷积;第二是先将一维卷积多项式转化成多维多项式的乘积,再以一种有效的方式来计算此多维多项式乘积;最后是应用fft的快速卷积运算。本文主要介绍了利用循环卷积实现快速卷积运算的方法,并利用matlab分别设计循环卷积和线性卷积程序,比较算法的计算速度,此外,由于快速傅里叶变换(fft)算法可以使运算工作量大大减少,运算速度大大的提高。我们利用fft-ifft实现快速循环卷积,并利用其实现线性卷积,计算系统输出。第二章 设计思想及系统功能一 设计思想1 描述线性非时不变连续时间系统的数学模型是线性常系数微分方程。为了确定一个线性非时不变系统在给定下的完全响应y(t),就要对该系统列写微分方程表示式,并求出满足初始条件的解。 2 系统的全响应可分为零输入响应与零状态响应。零输入响应是激励为零时仅由系统初始状态所产生的响应,用rzi(t)表示;零状态响应是系统初始状态为零仅由激励所引起的响应,用rzs(t)表示。于是,可以把激励信号与初始状态两种不同因素引起的响应区分开来分别进行计算,然后再叠加,即 r(t)= rzi(t) + rzs(t)3 卷积不仅作为一种数学运算方式,它还反映了求解系统响应的物理过程。4 卷积的图解法 a、 自变量t换成 ;b、反褶;c、平移;d、相乘; e、积分。5 卷积的性质:a、交换律; b、分配律;c、结合律;d、时移;e、卷积的微分与积分;f、与的卷积二 系统功能利用循环卷积实现快速卷积运算的方法,并利用matlab分别设计循环卷积和线性卷积程序,比较算法的计算速度,此外,由于快速傅里叶变换(fft)算法可以使运算工作量大大减少,运算速度大大的提高。我们利用fft-ifft实现快速循环卷积,并利用其实现线性卷积,计算系统输出。第三章 离散时间信号卷积的实现在科学技术飞速发展的今天,现代通信技术正在蓬勃发展,如何快速、准确、方便、易行地进行远距离信息传递,这是我们人类追求的目标。要实现这一目标必须进行离散信号卷积的计算。一 线性卷积1 定义及计算步骤设系统输入x(n)=,系统输出y(n)的初始状态为零,定义这种条件下系统输出称为系统的单位取样响应,用h(n)表示,换句话说,单位取样响应即是系统对于的零状态响应。用公式表示为 设系统的输入用表示,按照式(3.2.3)表示成单位采样序列移位加权和为 那么系统输出为根据线性系统的叠加性质又根据时不变性质式中的符号“*”代表卷积运算,由式可见,这类卷积运算中有翻转、位移、相乘和相加,因此称这类卷积为线性卷积,简称卷积。式表示线性时不变系统的输出等与输入序列和该系统的单位取样响应的卷积。只要知道系统的单位取样响应,由公式可知,对于任意输入x(n)都可以求出系统的输出。计算离散信号卷积时,最常见的方法是图解法,通过对信号h(n)的翻转、平移、乘积、取和等步骤完成计算。下面介绍图解法计算线性卷积的具体步骤:首先应该将x(n)和h(n)中的变量n用变量m 替换,得到x(m)和h(m)。依据离散信号卷积运算过程(包括翻转,平移,乘积及取和),然后根据信号h(m)的图形作其翻转信号h(-m)的图形和平移信号h(n-m)的图形,当n0时,序列右移;当n=maxn1,n2,则 一般称此式所表示的运算为x1(n)和x2(n)的循环卷积,还可记为 线性卷积是求离散系统响应的主要方法之一,许多重要应用都建立在这一理论基础上,如卷积滤波等。循环卷积,又称圆周卷积,它的计算速度要远远快于线性卷积,如果选择圆周卷积的长度ln1+n2-1,则可以用圆周卷积取代线性卷积。方法如下:(1)定义圆周卷积的长度:选择l=n1+n2-1。(2)将两个序列的长度都补足为l:将长为n1的序列x(n)延长到l,补ln1个零,将长为n2的序列h(n))延长到l,补ln2个零。(3)反转x(n),周期延拓为序列,取主周期。(4)循环移位:与线性卷积不同,圆周卷积运算中采用的是循环移位,有限长序列x(n)的循环移位定义为: 其含义如下:表示x(n)的周期延拓序列的移位:表示对移位的周期序列取主值序列,所以,f(n)仍然是一个长度为n的有限长序列。(5)将序列z与h进行循环移位生成的矩阵h的转置矩阵相乘,即完成将z(m)和h(nm)所有对应项相乘之后相加,完成圆周卷积。三 利用fft计算循环卷积由dft的循环卷积定理可知,若 则由时域循环定理有由此可见,循环卷积既可以在时域直接计算,也可以转换到频域计算。当n很大时,在频域的计算速度要比时域快得多,因而常用fft计算循环卷积。四 利用fft计算线性卷积fft计算线性卷积的方法如下:(1)定义长度:选择n=n1+n2-1。(2)求两个要卷积序列的n点频谱函数:求x(k)=fftx(n) 求h(k)=ffth(n)(3)将两个频谱函数相乘:求y(k)=h(k)x(k)(4)对乘积进行n点快速傅里叶反变换(ifft):求y(n)=iffty(k)可见,只要进行二次fft,一次ifft就可完成线性卷积计算。在x(n),h(n)两序列长度比较接近或相等的情况,当运算的序列长度n32时,上述计算线性卷积的方法比直接计算线性卷积有明显的优越性,长度值越大优势越明显。其流程图如下:ifftfftfft第四章 连续时间信号卷积的实现计算机高度发展的今天, 将malab 软件用于“信号与系统”课程, 是该课程未来发展的一种必然趋势, 两个离散时间信号相卷积, 可直接利用ma tlab m 文件中的conv 函数; 两个连续时间信号相卷积若采用数值解, 首先要对连续时间信号采样得到离散信号f 1 和f 2, 再用conv (f 1, f 2) 进行卷积运算得到离散时刻上的卷积结果, 最后将这些离散时刻上的结果相连(插值) 来近似连续函数的卷积结果。其具体步骤如下:1 将两个连续时间信号f1(t)与f2(t)以时间间隔进行抽样,得到离散序列和;2 构造与和相对应的时间向量k1和k2;3 调用conv( )函数计算卷积积分f(t)的近似向量4 构造对应的时间向量k.此处不做详细分析。第五章 程序源代码及结果分析一 四点循环卷积及线性卷积程序代码1 四点循环卷积的程序源代码x1=1,2,3,4;x2=5,6,7,8;subplot(2,2,1);stem(x1);title(序列x1);subplot(2,2,2);stem(x2);title(序列x2);t0 = clock;n=max(length(x1),length(x2);x1=x1 zeros(1,n-length(x1); %若长度不够补零x2=x2 zeros(1,n-length(x2); %若长度不够补零m=0:1:n-1;x2=x2(mod(-m,n)+1);h=zeros(n,n);for n=1:1:n h(n,:)=cirshift(x2,n-1,n); endy=x1*h;c=etime(clock,t0)subplot(2,2,3);stem(y);title(循环卷积结果序列y); 为此定义一个位移函数cirshiftd.m如下:function y=cirshift(x,m,n)x=x zeros(1,n-length(x);n=0:1:n-1;n=mod(n-m,n);y=x(n+1);运行时间及结果图像如下:c = 0.01002 用fft计算四点循环卷积的程序源代码x1=1,2,3,4;x2=5,6,7,8;subplot(3,2,1);stem(x1);title(序列x1);subplot(3,2,2);stem(x2);title(序列x2);t0 = clock;n=max(length(x1),length(x2);x1=fft(x1,n);x2=fft(x2,n); subplot(3,2,3);stem(x1);title(序列x1);subplot(3,2,4);stem(x2);title(序列x2);y=x1.*x2;y=ifft(y);c=etime(clock,t0)subplot(3,2,5);stem(y);title(快速循环卷积结果序列y);运行时间及结果图像如下:c=0.08003 四点线性卷积的程序源代码a=1,2,3,4;b=5,6,7,8;subplot(2,2,1);stem(a);title(序列a);subplot(2,2,2);stem(b);title(序列b);t0 = clock;lx=length(a)+length(b)-1; %线性卷积长度l1=length(a)-1;l2=length(b)-1;a=zeros(1,l2) a zeros(1,l2); %a序列前后补零b=fliplr(b); %反转bb=b,zeros(1,l1+l2); %b序列后面补零 与a长度相等for i=1:lx %计算z(i) z(i)=a(1)*b(1); for k=2:length(b) z(i)=z(i)+a(k)*b(k); end t=b(length(b); %保存b序列最后一个数 for j=length(b):-1:2 %b序列依次向后移位 b(j)=b(j-1); end b(1)=t;end c=etime(clock,t0)subplot(2,2,3);stem(z);title(线性卷积结果序列z);运行时间及结果图像如下:c = 0.02004 用fft计算四点线性卷积的程序源代码x1=1,2,3,4;x2=5,6,7,8;subplot(3,2,1);stem(x1);title(序列x1);subplot(3,2,2);stem(x1);title(序列x2);t0 = clock;l=length(x1)+length(x2)-1;x1=fft(x1,l);x2=fft(x2,l);subplot(3,2,3);stem(x1);title(序列x1);subplot(3,2,4);stem(x2);title(序列x2);y=x1.*x2;y=ifft(y,l);c=etime(clock,t0)subplot(3,2,5);stem(y);title(快速线性卷积结果序列y);运行时间及结果图像如下:c = 0.1200二 256点循环卷积及线性卷积程序代码1256点循环卷积的程序源代码clear;x1=randn(1,256); x2= randn(1,256);subplot(2,2,1);stem(x1);title(序列x1);subplot(2,2,2);stem(x2);title(序列x2);t0 = clock;n=max(length(x1),length(x2);x1=x1 zeros(1,n-length(x1); %若长度不够补零x2=x2 zeros(1,n-length(x2); %若长度不够补零m=0:1:n-1;x2=x2(mod(-m,n)+1);h=zeros(n,n);for n=1:1:n h(n,:)=cirshift(x2,n-1,n); endy=x1*h;c=etime(clock,t0)subplot(2,2,3);stem(y);title(循环卷积结果序列y);运行时间及结果图像如下:c = 0.04002 用fft计算256点循环卷积的程序源代码x1=randn(1,256); x2= randn(1,256);subplot(3,2,1);stem(x1);title(序列x1);subplot(3,2,2);stem(x2);title(序列x2);t0 = clock;n=max(length(x1),length(x2);x1=fft(x1,n);x2=fft(x2,n); subplot(3,2,3);stem(x1);title(序列x1);subplot(3,2,4);stem(x2);title(序列x2);y=x1.*x2;y=ifft(y);c=etime(clock,t0)subplot(3,2,5);stem(y);title(快速循环卷积结果序列y);运行时间及结果图像如下:c =0.06003256点线性卷积的程序源代码clear;a=randn(1,256); b= randn(1,256);subplot(2,2,1);stem(a);title(序列a);subplot(2,2,2);stem(b);title(序列b);t0 = clock;lx=length(a)+length(b)-1; %线性卷积长度l1=length(a)-1;l2=length(b)-1;a=zeros(1,l2) a zeros(1,l2); %a序列前后补零b=fliplr(b); %反转bb=b,zeros(1,l1+l2); %b序列后面补零 与a长度相等for i=1:lx %计算z(i) z(i)=a(1)*b(1); for k=2:length(b) z(i)=z(i)+a(k)*b(k); end t=b(length(b); %保存b序列最后一个数 for j=length(b):-1:2 %b序列依次向后移位 b(j)=b(j-1); end b(1)=t;end c=etime(clock,t0)subplot(2,2,3);stem(z);title(线性卷积结果序列z);运行时间及结果图像如下:c =1.26004 用fft计算256点线性卷积的程序源代码clear;x1=randn(1,256); x2= randn(1,256);subplot(3,2,1);stem(x1);title(序列x1);subplot(3,2,2);stem(x1);title(序列x2);t0 = clock;l=length(x1)+length(x2)-1;x1=fft(x1,l);x2=fft(x2,l);subplot(3,2,3);stem(x1);title(序列x1);subplot(3,2,4);stem(x2);title(序列x2);y=x1.*x2;y=ifft(y,l);c=etime(clock,t0)subplot(3,2,5);stem(y);title(快速线性卷积结果序列y);运行时间及结果图像如下:c =0.1600三 小节表 卷积变化所需时间循环卷积快速循环卷积线性卷积快速线性卷积四点c = 0.0200c=0.0100c = 0.1200c = 0.0800256点c = 0.0400c =0.0600c =1.2600c =0.1600 由上面表格可知,在点数相对较少时,快速傅里叶变换并没有体现出其优越性,没
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聘用ktv员工合同范本
- 污水委托处理协议合同书
- 游泳健身培训合同协议书
- 物业与万达合作协议合同
- 食品事故赔偿协议书范本
- 电厂采购密封件合同范本
- 结石科合作协议合同范本
- 村道维修承包合同协议书
- 离职协议代签协议书范本
- 物业的车位买卖合同协议
- 医共体人事编制管理办法
- 小儿肛周脓肿护理
- 医院法律法规培训内容
- 山东畜牧兽医单招考试题及答案
- 玉米杂交种子质量控制与高效制种技术的应用探索
- 2025年 北京海淀区招聘社区工作者考试笔试试卷附答案
- 商户安全生产培训课件
- 【扶臂式挡土墙迎水坡和背水坡堤防整体抗滑稳定计算案例1200字】
- 四川省广元市2024-2025学年第二学期八年级期末考试数学试卷(无答案)
- 死亡病例讨论制度落实与质控优化
- 痛经的中医护理
评论
0/150
提交评论