唐山学院课程设计
令来实现的,这些函数有些可以通过MATLAB的图形用户界面直接使用,而大多数函数是通过MATLAB的指令窗口,由用户直接键入相应的函数或命令来调用。
在MATLAB指令历史窗(commond history)中主要记录了在MATLAB窗中输入的所有指令,还可以被再次执行。它们不仅能够复制到MATLAB的指令窗口,还可以通过这些指令的记录直接创建M文件。
图3-3 MATLAB的指令历史窗
MATLAB中工作空间(workspace)是运行MATLAB的函数或指令所生成的所有变量和MATLAB常量构成的空间。工作空间和指令窗的区别是,指令窗是一个实体,他是用户输入函数和程序的一个窗体,大多数变量都是通过这个窗体产生的,保留了指令窗运行的所有变量。工作空间窗就是显示目前保存在内存中的MATLAB的数学结构、字节数、变量名,以及类型的窗口。
图3-4 MATLAB的工作空间窗口
可以在指令窗中执行pathtool,或者在MATLAB桌面、指令窗的菜单中选择File|Path打开路径设置对话框,即当前路径(current directory)窗。其主要作用是帮助用户组织管理当前路径下的M文件,并且通过该工具,能够运行、编辑相应的文件,加载MATLAB数据文件等,这些操作都可以通过对应的右键快捷
5
唐山学院课程设计
菜单完成。
图3-5 当前路径窗
M文件编辑/调制窗是一个及编辑和调试两种功能于一体的工作环境。如果一个程序稍复杂一些,则需要采用文件方式,把程序写成一个由多条语句构成的文件,就需要用到文本编辑器。在MATLAB文本编辑器窗口中建立的文件默认为.m文件。
图3-6 MATLAB的M文件窗口
以上为MATLAB功能简介方便对此软件的了解,下属程序就是采MATLAB进行运算,以实现想要的结果。
3.2 MATLAB中FFT算法实现程序
3.2.1 原图程序及分析
实现读取原始图像并且显示出来的程序段如下: [filename,pathname]=uigetfile({'*.jpg;*.tif;*.bmp;*.gif' },' File Selector');
image=imread(strcat(pathname,filename)); scrsz=get(0,'ScreenSize');
6
唐山学院课程设计
figure('position',[0 0 scrsz(3)-1 scrsz(4)]); set(gcf,'Name','快速傅里叶变换'); subplot(2,4,1); imshow(image); title('原始图像');
MATLAB处理结果如下:
图3-7 原始图像
上图是通过选择图片,并将图片显示出来的原始图像。
3.2.2 灰度图程序及分析
实现原始图像变成灰度图像并且显示出来的程序段如下: if ndims(image)==3 image=rgb2gray(image); end
scrsz=get(0,'ScreenSize');
%figure('position',[0 0 scrsz(3)-1 scrsz(4)]); set(gcf,'Name','快速傅里叶变换'); subplot(2,4,2); imshow(image); title('灰度图像');
MATLAB处理结果如下:
7
唐山学院课程设计
图3-8 灰度图像
上图是通过原始图像经过灰度处理变成的灰度图像。
3.2.3 自建的FFT程序及分析
自编的FFT算法程序如下: function array=transform_fft2(array) array=double(array); [r1 c1]=size(array); for j=1:r1
array(j,:)=transform_fft(array(j,:)); end for j=1:c1
array(:,j)=transform_fft((array(:,j))); end
利用自编的FFT算法实现对灰度图像处理的程序段如下: array=transform_fft2(array); Ft=fftshift(array); S1=log(1+abs(Ft)); subplot(2,4,3); imshow(S1,[]);
title('自建FFT2函数结果'); MATLAB处理结果如下:
8
唐山学院课程设计
图3-9 自建FFT结果
上图是利用自编FFT算法实现对图像的FFT变换处理结果。
3.2.4 自建的IFFT程序及分析
自编的FFT算法程序段如下: function array=transform_ifft2(array) array=conj(array); [r1,c1]=size(array); for i=1:r1
array(i,:)=transform_fft(array(i,:)); end for i=1:c1
array(:,i)=transform_fft(array(:,i)); end
array=array/(r1*c1);
利用自编的IFFT算法实现对灰度图像处理的程序段如下: array=transform_ifft2(array); array=abs(array); array=array(1:r,1:c); subplot(2,4,4); imshow(array,[]); title('自建IFFT2结果'); MATLAB处理结果如下:
9
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数字信号处理课设基于MATLAB的FFT算法的设计(2)在线全文阅读。
相关推荐: