没有合适的资源?快使用搜索试试~ 我知道了~
基于matlab的图像分析...pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
37 浏览量
2022-06-11
23:35:47
上传
评论
收藏 1.26MB PDF 举报
基于matlab的图像分析...pdf基于matlab的图像分析...pdf基于matlab的图像分析...pdf基于matlab的图像分析...pdf基于matlab的图像分析...pdf基于matlab的图像分析...pdf基于matlab的图像分析...pdf基于matlab的图像分析...pdf基于matlab的图像分析...pdf
资源推荐
资源详情
资源评论


















目 录
1 引言............................................................................................................................ 1
2 基于 MATLAB 的 FFT 算法实现 ............................................................................2
2.1 系统总体流程图............................................................................................... 2
2.2 FFT 运算规律及编程思想............................................................................... 2
2.2.1 图像信号的采集..................................................................................... 2
2.2.2 DIT-FFT 算法的基本原理 .....................................................................3
2.2.3 FFT 算法的运算规律及编程思想......................................................... 5
3 Matlab 程序实现 ........................................................................................................7
3.1 程序运行结果................................................................................................... 7
3.2 对比结果分析................................................................................................... 8
4 系统人机对话界面.................................................................................................... 9
4.1 GUI 简介 .......................................................................................................... 9
4.2 界面设计.......................................................................................................... 9
4.3 运行调试........................................................................................................ 10
5 Matlab 软件简介 ...................................................................................................... 11
6 心得体会.................................................................................................................. 12
参考文献...................................................................................................................... 13
附录Ⅰ.......................................................................................................................... 14
附录Ⅱ.......................................................................................................................... 18

课程设计说明书
1 引言
MATLAB 是矩阵实验室(Matrix Laboratory)的简称,是美国 MathWorks
公司出品的商数学软件,用于算法开发、数据可视化、数据分析以及数值计算的
高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两大部分。
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、
测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单
独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领
域内特定类型的问题。它以矩阵运算为基础,把计算、可视化、程序设计融合在
一个简单易用的交互式工作环境中,是一款数据分析和处理功能都非常强大的工
程适用软件。它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵
运算能力处理数据,如数据滤波、傅立叶变换、时域和频域分析、声音回放以及
各种图的呈现等,它的信号处理与分析工具箱位语音信号分析提供了十分丰富的
功能函数,利用这些功能函数可以快捷而又方便的完成语音信号的处理和分析以
及信号的可视化。数字信号处理是 MATLAB 重要应用的领域之一。
对于有限长序列 x(n),若要求其 N 点的傅里叶变换(DFT)需要经过
N
次复
数乘法运算和 N*(N-1)次复数加法运算。随着 N 的增加,运算量将急剧增加,而
在实际问题中,N 往往是较大的,如当 N=1024 时,完成复数乘法和复数加法的
次数分别为百万以上,无论是用通用计算机还是用 DSP 芯片,都需要消耗大量
的时间和机器内存,不能满足实时的要求。因此, DFT 的这种运算只能进行理
论上的计算,不适合对实时处理要求高的场合。因此,研究作为 DSP 的快速算
法的 FFT 是相当必要的,快速傅里叶变换(FFT)是为提高 DFT 运算速度而采
用的一种算法,快速算法的种类很多,而且目前仍在改进和提高,它是根据离散
傅里叶变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
基于本学期所学的 DIT-FFT 的运算规律和编程思想以及 Matlab 的学习和使用,
本课设要求在 Matlab 环境下编写基 2 DIT-FFT 算法实现对离散信号的快速傅里
叶变换,再与 Matlab 软件自带的 FFT 函数实现对离散信号的傅里叶变换进行比
较,如果得到的频谱相同,那么我们编写的程序就是正确的。本次课程设计是实
现对选定图片进行 FFT 计算、还原(IFFT 计算),并与系统 FFT 函数做对比,
进行分析。如果有能力可以选做系统人机对话界面。用 GUI 界面完成人机交互
方便使用的。本课程设计主要是对数字信号的分析。
1
2

课程设计说明书
2 基于 MATLAB 的 FFT 算法实现
2.1 系统总体流程图
本设计要求找到一张明暗对比较大的图片;在 Matlab 环境下编写基 FFT 算
法;利用自己编写的算法对已选择的图片信号进行计算,并显示出计算的结果,
将计算的结果与 Matlab 数字信号处理工具箱中自带的 fft 函数进行对比研究,验
证自编算法的正确性。系统的总体设计流程图如图 2-1 所示:
验证自编 FFT 算法和 IFFT 算法的正确性
图 2-1 系统的总体设计流程图
将显示的结果进行对比
用
系
统
自
带
的
F
F
T
计
算
并
显
示
用
系
统
自
带
的
I
F
F
T
计
算
并
显
用
自
编
的
F
F
T
计
算
并
显
示
用
自
编
的
I
F
F
T
计
算
并
显
示
对图像进行灰度处理
图像信号的采集和读入
2.2 FFT 运算规律及编程思想
2.2.1 图像信号的采集
图像信号最好采用明暗对比比较大的灰度图像进行分析,这样实验结果对比
比较明显。
在 Matlab 中用语句:
[filename, pathname]=uigetfile({'*.jpg;*.tif;*.bmp;*.gif' },'File Selector');
2

课程设计说明书
image=imread(strcat(pathname,filename));
用于读取图片的信号,Matlab 图像分析支持多种格式的图像信号,用上述语
句时,在 Matlab 中分析图像的时候可以系统自动检索所需分析的图片。
语句:image=rgb2gray(image);可以对图像进行灰度处理。
当我们要将图片显示出来的的时候只需要用语句:
imshow(image);
本次课程设计就是分析灰度图像。通过用两种不同的方法对灰度图像的 FFT
计算和 IFFT 计算,来得到我们想要的结果。
采集到图像信号之后,就可以对图像信号进行分析和计算了。
2.2.2 DIT-FFT 算法的基本原理
快速傅里叶变换(FFT)是为提高 DFT 运算速度而采用的一种算法。
对一个有限长度序列 x(n)的 N 点的 DFT 为:
nk
X
k
x
n
W
N
, k 0, 1, 2,..., N 1
n 0
N 1
1
x
n
N
X
k
W
k 0
N 1
nk
N
, n 0, 1, 2,..., N 1
所以,要求 N 点的 DFT,需要 N2 次的复数乘法运算,N*(N-1)次复数乘法运算
算。随着 N 的增加,运算量将急剧增加,而在实际问题中,N 往往是较大的,
如当 N=1024 时,完成复数乘法和复数加法的次数分别为百万以上,无论是用通
用计算机还是用 DSP 芯片,都需要消耗大量的时间,不能满足实时的要求,,不
适合于对实时处理要求高的场合。为了能实时处理 DFT,要想减少 DFT 的运算量
可以有两个途径:第一是降 N,N 的值减小了,运算量就减少了;第二是利用旋
转因子的周期性,对称性和可约性。利用这两个途径实现 DFT 的快速傅里叶变
换(FFT),FFT 算法基本上可分为按时间抽取的 FFT 算法(DIT-FFT)和按频率
抽取的 FFT 算法(DIF-FFT)。
旋转因子的性质:
(1)周期性
(2)共轭对称性
(3)可约性
kn (k N )n k (n N )
W
N
W
N
W
N
kn (k )n * k (n) *
W
N
[W
N
] [W
N
]
mkn
W
N
kn
W
mN
,
/m
W
N
kn
W
N
kn
/m
本次课设要求用用基 2 的按时间抽取的 FFT 算法(DIT-FFT)实现 FFT 功能,
设序列 x(n)的长度为 N,且 N 满足 N=2M,M 为正整数。若 N 不能满足上述关系,
可以将序列 x(n)补零实现。按时间抽取基 2-FFT 算法的基本思路是将 N 点序列
按时间下标的奇偶分为两个 N/2 点序列,计算这两个 N/2 点序列的 N/2 点 DFT,
计算量可减小约一半;每一个 N/2 点序列按照同样的划分原则,可以划分为两个
3

课程设计说明书
N/4 点序列,最后,将原序列划分为多个 2 点序列,将计算量大大降低。
按时间下标的奇偶将 N 点 x(n)分别抽取组成两个 N/2 点序列,分别记为 x1(n)
和 x2(n),将 x(n)的 DFT 转化为 x1(n)和 x2(n)的 DFT 的计算。
W
N
2 rk
x(2r) x
1
(r)
,
x(2r 1) x
2
(r)
nk
X
k
x
n
W
N
n0
N 2
N 1
r 0,1,
,
N
1
2
n0,2,4...
N
1
2
x
n
W
nk
N
n1,3,5...
N
1
2
x
n
W
N 1
nk
N
r 0,1
N
1
2
x
2r
W
x
r
W
1
2rk
N
r 0,1
N
1
2
x
2r 1
W
2
2r 1
k
N
2rk
N
r 0,1 r 0,1
x
r
W
2r 1
k
N
利用旋转因子的可约性,即:
e
2
j 2 rk
N
j
e
2
rk
N
2
rk
W
N
2
rk k rk
X k x r W W x r W
1 N N 2 N
r 0
2
r 0
k
X( W
N
X(k), 0 k N 1
1
k)
2
N
1
2
N
1
2
2
用蝶形运算可表示为如图 2-2 所示:
以此类推,还可以把 x1(n)和 x2(n)按 n 值得奇偶分为两个序列,这样就达到
了降 N 得目的,从而减少了运算量。FFT 对 DFT 的数学运算量改进:
直接采用 DFT 进行计算,运算量为 N2 次复数乘法和 N*(N-1)次复数乘法。
当采用 M 次 FFT 时,由 N=2M 求得 M=logN,运算流图有 M 级蝶形,每一
级都由 N/2 个蝶形运算构成,这样每一级蝶形运算都需要 N/2 次复数乘法和 N
次复数加法。 M 级运算共需要复数乘法次数为 C=N/2*M,复数加法次数为
C=N*M。
图 2-2 DIT-FFT 蝶形运算流图符号
4
剩余25页未读,继续阅读
资源评论


G11176593
- 粉丝: 4611
- 资源: 3万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
