当序列的长度为N时,定义DFT为:
(2-7>
其中
,它的反变换定义为:
(2-8>
令
,则有:
(2-9>
可以得到,
,
是Z平面单位圆上幅角为
的点,就是将单位圆进行N等分以后第K个点。
所以,X(K>是Z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。
时域采样在满足Nyquist定理时,就不会发生频谱混叠。
DFT是对序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。
如同理论课教材所讨论的,在运用DFT进行频谱分析的时候可能有三种误差,即:
<1)混叠现象
从中可以看出,序列的频谱时采样信号频谱的周期延拓,周期是
,因此当采样速率不满足定理Nyquist,经过采样就会发生频谱混叠。
这导致采样后的信号序列频谱不能真实的反映原信号的频谱。
所以,在利用DFT分析连续信号频谱的时候,必须注意这一问题。
避免混叠现象的唯一方法是保证采样的速率足够高,使频谱交叠的现象不出现。
这告诉我们,在确定信号的采样频率之前,需要对频谱的性质有所了解。
在一般的情况下,为了保证高于折叠频率的分量不会出现,在采样之前,先用低通模拟滤波器对信号进行滤波。
<2)泄漏现象
实际中的信号序列往往很长,甚至是无限长。
为了方便,我们往往用截短的序列来近似它们。
这样可以使用较短的DFT来对信号进行频谱分析。
这种截短等价于给原信号序列乘以一个矩形窗函数。
值得一提的是,泄漏是不能和混叠完全分离开的,由于泄漏导致频谱的扩展,从而造成混叠。
为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减到最小。
<3)栅栏效应
由于DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数。
这样就产生了栅栏效应,从某种角度看,用DFT来观看频谱就好像通过一个栅栏来观看一幅景象,只能在离散点上看到真是的频谱。
这样的话就会有一些频谱的峰点或谷点被“栅栏”挡住,不能被我们观察到。
减小栅栏效应的一个方法是在源序列的末端补一些零值,从而变动DFT的点数。
这种方法的实质是改变了真是频谱采样的点数和位置,相当于搬动了“栅栏”的位置,从而使得原来被挡住的一些频谱的峰点或谷点显露出来。
注意,这时候每根谱线所对应的频和原来的已经不相同了。
从上面的分析过程可以看出,DFT可以用于信号的频谱分析,但必须注意可能产生的误差,在应用过程中要尽可能减小和消除这些误差的影响。
四、实验步骤
1.编写程序。
2.调试程序。
3.写出程序运行结果。
五.思考题
1.实验原理要点。
2.分析所得到的结果图形。
信号﹑系统及系统响应
一、实验目的
1.熟悉连续周期、非周期信号的频域分析方法及MATLAB编程实现方法。
2.掌握离散周期、非周期信号的频域分析方法及MATLAB编程实现方法。
二、实验内容
1.试用MATLAB计算如图所示周期矩形波序列的DFS系数。
2.试画出
时,
幅度频谱。
三、实验预备知识
1.离散周期信号傅立叶级数DFS分析
若设定DFS和1DFS的求和范围为0到N-1,
(1>
(2>
则MATLAB提供的函数F=fft(f>,可用来计算<1)式定义的N个DFS系数。
说明:
信号的周期N由上式中序列f长度确定。
返回的序列F给出的是
时的DFS系数。
类似地,可用MATLAB提供的函数f=ifft(F>由DFS系数F(m>按<2)式计算出时域信号f[k]。
2.离散非周期信号的傅里叶变换
当序列的DTFT可写成
的有理多项式时,MATLABSignalProcessingToolbox中的fregz函数可用来计算DTFT的值。
另外MATLAB提供的abs,angle,real,imad等基本函数可用来计算DTFT的幅度,相位,实部,虚部。
设DTFT的有理多项式为:
则freqz的调用形式为:
h=freqz(b,a,w> (2>
说明:
<1)b和a分别为<1)式中分子多项式和分母多项式函数的向量。
<2)W为抽样的频率点
<3)在以<2)式形式调用freqz函数时,W中至少要有2个频率点。
<4)返回的值h就是DTFT在抽样点W上的值,H的值一般是复数。
注:
一般来说
是实变量
的复值函数,可用实部和虚部将其表示为:
=
+
,其中
和
分别是
的实部和虚部;也可用幅度和相位将
表示为:
=|
|
,其中|
|和
分别为序列
幅度谱和相位谱。
四、实验步骤
1.编写程序。
2.调试程序。
3.写出程序运行结果。
五、思考题
1.总结周期连续、离散信号的傅里叶级数分析方法。
2.总结非周期连续、离散信号的傅里叶变换分析方法。
数字图像的基本认识
一、实验目的
1.熟悉不同类型图像的文件结构,掌握图像文件的读写过程。
2.掌握对图像的各种统计指标的计算方法。
二、实验原理
1.图像的基本类型
在计算机中,按照颜色和灰度的多少可以将图像分为二值图像、灰度图像和真彩色RGB图像。
2.离散卷积
对于离散序列,其卷积可用与连续函数相类似的方法求得。
因此对于两个长度分别为m和n的序列和,其卷积公式为:
上式给出一个长度为的输出序列。
在数字图像上进行的离散卷积与连续卷积几乎具有对应的性质,都可用连续卷积来描述。
3.灰度直方图
灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数,其横坐标是灰度级,纵坐标是该灰度出现的频率<像素的个数)。
值得注意的是,直方图只反映该图像中不同灰度值出现的频率,而未反映某一灰度值像素所在的位置;不同的图像可能有相同的直方图;一幅图像各子区的直方图之和就等于该图全图的直方图。
预备知识:
读取图像:
F=imread(’e:
\图片.jpg’>
显示图像:
imshow(f>
返回指定点的坐标和颜色值:
[crp]=impixel(f>
RGB彩色图像转换为灰度图像:
rgb2gray(x>
灰度图像转换为二值图像:
im2bw(x>
图像滤波<图像与模板卷积):
imfilter(x1,w,'replicate'>,或用P填充边界
获得图像直方图:
imhist三、实验题目
1.编制一个程序,读取位图并显示在屏幕上,将图像数据化并显示结果,学会如何返回指定点的像素坐标。
2.编制一个程序,将RGB彩色图像转换为灰度图像,将灰度图像转换为二值图像。
3.编制一个程序,实现二维离散卷积,用于对图像滤波。
4.编制一个程序,对任意图像统计灰度值,并在屏幕上绘出直方图。
四、实验步骤
1.编写程序。
2.调试程序。
3.写出程序运行结果。
五、实验要求
1.提交题目1、2、3、4的源程序清单。
2.提交题目4的原始图像和直方图结果。
数字图像处理中的基本运算
一、实验目的
1.理解点运算、代数运算、几何运算的概念。
2.掌握灰度变换、几何变换的基本方法。
二、实验原理
1.点运算
在图像处理中,点运算是简单却很重要的一类技术,它们能让用户改变图像数据占据的灰度范围。
对于一幅输入图像,经过点运算将产生一幅输出图像,输出图像中每个像素的灰度值仅由相应输入像素的值决定。
因此,点运算不可能改变图像内的空间关系,点运算有时又被称为对比度增强或灰度变换,是图像数字化软件和图像显示软件的重要组成部分。
点运算的应用很广泛,可用于对比度增强、光度学标定、显示标定和裁剪等。
2.代数运算
代数运算是指对两幅输入图像进行点对点的加、减、乘、除计算而得到输出图像的运算。
四种图像处理代数运算的数学表达式如下:
其中和为输入图像,而为输出图像。
3.几何运算
几何运算可改变图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动。
一个几何运算需要两个独立的算法。
首先,需要一个算法来定义空间变换本身,用它来描述每个像素如何从其初始位置移动到终止位置,即每个像素的运动;同时,还需要一个算法用于灰度级的插值。
这是由于,在一般情况下,输入图像的位置坐标为整数,而输出图像的位置坐标为非整数,反过来也是如此。
控制点法是通过测定若干特定坐标点的位移量来确定坐标变换方程的系数的方法。
若已知输入图像与输出图像上对应点对<即控制点对)的位移量,则可利用这些已知控制点对求解坐标变换方程中的系数,从而得到确定的坐标变换关系。
预备知识:
调节对比度:
g=imadjust(f,[0.30.5],[0.10.7]>
图像旋转:
g=imrotate(f,angle,'bilinear','crop'>
图像的裁剪:
rect=[abcd]。
%【a,b】为起始点,c为宽度,d为高度
x1=imcrop(x,rect>。
三、实验题目
1.编制一个程序,对图像进行灰度变换,以增强其对比度。
2.编制一个程序,对图像进行旋转,要求适应任意角度。
3.编制一个程序,对图像进行裁剪。
四、实验步骤
1.编写程序。
2.调试程序。
3.写出程序运行结果。
五、实验要求
提交各个题目的源程序及图像处理结果