序列的卷积和快速卷积运算的编程实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.MATLAB简介
MATLAB软件由美国Math Works公司于1984年推出,经过不断的发展和完善,如今己成为覆盖多个学科的国际公认的最优秀的数值计算仿真软件。MATLAB具备强大的数值计算能力,多复杂的计算问题只需短短几行代码就可在MATLAB中实现。作为一个跨平台的软件,MATLAB已推出Unix、Windows、Linux 和Mac等十多种操作系统下的版本,大大便了在不同操作系统平台下的研究工作。
MATLAB软件具有很强的开放性和适应性。在保持核不变的情况下,MATLAB 可以针对不同的应用学科推出相应的工具箱(toolbox),目前己经推出了图象处理工具箱、信号处理工具箱、小波工具箱、神经网络工具箱以及通信工具箱等多个学科的专用工具箱,极大地便了不同学科的研究工作。国已有越来越多的科研和技术人员认识到MATLAB的强大作用,并在不同的领域使用MATLAB来快速实现科研构想和提高工作效率。
MATLAB提供了20类图像处理函数,涵盖了图像处理的包括近期研究成果在的几乎所有的技术法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按其功能可分为:图像显示;图像文件I/O;图像算术运算;几变换;图像登记;像素值与统计;图像分析;图像增强;线性滤波;线性二元滤波设计;图像去模糊;图像变换;邻域与块处理;灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换。
MATLAB的应用领域十分广阔,典型的应用举例如下:
(1)数据分析
(2)数值与符号计算;
(3)工程与科学绘图;
4)控制系统设计;
(5)航天工业;
(6)汽车工业;
(7)生物医学工程;
8)语音处理;
(9)图像与数字信号处理;
(10)财务、金融分析;
(11)建模、仿真及样机开发;
(12)新算法研究开发;
13)图形用户界面设计
MATLAB 的应用围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域特定类型的问题。
它的主要特点是:
(1)Matlab可以用来解线性程组、进行矩阵变换与运算、数据插值运算等,能使用户从繁杂的数学运算分析中解脱出来。
(2)Matlab中有多高级的绘图函数,包括二维、三维、专用图形函数、图形句柄、用户图形界面工具等,利用这些函数可以轻松地完成各种图形的绘制和编辑工作,实现计算结果和编程的可视化。
(3)友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和掌握。
(4)功能丰富的应用工具箱(如信号处理工具箱,通信工具箱,控制系统工具箱等)为用户提供了大量便实用的处理工具。
Matlab的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前,国很多理工院校已经或者正在把该软件作为学生必须掌握的一种软件。
2.项目设计目的及技术要求
序列的卷积和快速卷积运算的编程实现,具体包括:直接卷积及运用、快速卷积法及实现、二者的比较分析等。
1.已知线性非移变系统的h(n)=[6,2,3,6,4,2],输入为x(n)=[1,2,3,4,5];
(1)用人工计算系统输出y(n);
(2)编写程序输出y(n),并作图。
2. 用函数conv和FFT计算长为1000序列的卷积,比较其计算时间。
3. 用快速卷积法计算
()0.9()
n
M
x n R n
=
和
()()
N
h n R n
=
两个序列的
卷积;并测试直接卷积和快速卷积的时间。
3.基本原理
3.1基本概念
在数字信号处理(DSP)系统中,无论在时域或频域都离不开卷积运算和快速傅里叶(FFT)运算。Matlab 具有强大的矩阵运算能力,便实用的绘图功能和语言的高度集成性,在DSP 开发中,使用Matlab 可以快速对系统进行仿真运算。
设输入信号为x(t),其频谱函数为X(j Ω),该信号通过滤波器h(t)后,其输出信号y(t)的频谱函数Y(j Ω)是频谱函数x(j Ω)与滤波器的频谱函数H(j Ω)的乘积,即:
)()()(ΩΩ=Ωj H j X j Y
而在时域,输出信号y(t)实际是输入信号x(t)与滤波器h(t)的卷积。就是说频谱函数的乘积相当于时间函数的卷积,反之亦然。即:
τττd t h x t h t x t y ⎰∞∞--==)()()(*)()(
由于DSP 主要依靠计算机完成,而计算机无论在时域或频域只能处理有限长的离散信号,因此上述关系可表示为:
)()()(ωωωH X Y =
)(*)()()()(n h n x m n h m x n y m =-=
∑∞
-∞= 式中:n 表示离散时间;数字频率ω=ΩT ;f 为输入信号频率;f,T 为抽样频率和期。
3.2原理分析
可以使用线性卷积、圆卷积实现离散卷积,也可以根据时域信号函数与频谱函数的关系,使用快速傅里叶变换(FFT ,IFFT)实现离散卷积。
3.2.1 离散傅里叶变换(DFT )和快速傅里叶变换(FFT )
离散傅里叶变换,是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在形式上,变换两端(时
域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作经过期延拓成为期信号在做变换。在实际应用常采用快速傅里叶变换(FFT)高效计算DFT。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。
3.2.2 序列的卷积和快速卷积运算
卷积是数字信号处理中最常见的,也是最重要的运算之一。利用卷积可以实现相关计算和FIR滤波等等,正因为卷积如此重要,所以半个世纪以来,学者们提出了多种不同卷积实现结构,这些结构各有优点,针对不同应用可以灵活选择,而其中快速卷积无疑是重要的卷积法之一。顾名思义,快速卷积重点在一个“快”,如果对卷积速度要求较高,快速卷积无疑是理想的工具。当然,为了提高速度,就要牺牲面积和功耗。
3.2.3 快速傅里叶变换和快速卷积
在此,我们是利用快速傅里叶变换实现快速卷积运算。同时在进行Matlab 编程时也是利用快速傅里叶变换来得到快速卷积的结果。