1、实验一 信号的产生、时域变换及卷积计算一、实验目的熟悉 MATLAB 画图指令及基本函数的调用、编写方法。掌握用 MATLAB 实现信号的基本运算方法。二、实验内容用 MATLAB 表示 。)(),(), 00nnu2三角波 f(t)如图所示,试利用 MATLAB 画出 f(2t)和 f(2-2t)的波形。已知该三角波在matlab 中表示为 tripuls(t,4,0.5) 。3. 用 MATLAB 计算序列-2 0 1 1 3和序列1 2 0 -1的离散卷积。三、实验预备知识stem 和 plot 函数的用法()用 stem 画短的离散时间序列()用 plot 画连续时间信号已采样的近似图
2、,或者画那些离散值个数难以控制增长的很长的离散时间信号。()与 stem 不同,plot 用直线将相邻的各元素连接起来,故当时间标号取得是够细的话,用直线所连接的结果是该原始连续时间信号图形的一个好的近似。几种典型信号的表示方法(1)单位脉冲序列k=-50:50;delta=zeros(1,50),1,zeros(1,50);stem(k,delta)(2)单位阶跃序列方法 1:k=-50:50;uk=zeros(1,50),ones(1,50);stem(k,uk)信号的尺度变换、翻转、平移信号的翻转运算在使用时需要注意,其它运算较简单。()在信号翻转 f(-t)和 f-k运算中,函数的自变
3、量乘以一个负号,在 MATLAB 中可以直接写出。()翻转运算在 MATLAB 中还可以利用 fliplr(f)函数实现,而翻转后信号的坐标则可以由-fliplr(k)。4.三角波的产生tripuls() 该函数产生连续的、非周期的、幅度为 1 的三角形脉冲信号,其调用格式如下:y=tripuls(t,w,s)其中,t 为时间向量,脉冲的时间中心为 t=0,w 为脉冲的宽度,s 表示三角波的倾斜度,当 s=0 时,产生对称的三角脉冲信号。5信号的卷积conv(a,b)四、实验步骤编写程序。调试程序。写出程序运行结果。五、思考题编写阶跃信号、冲激信号时应注意哪些问题。编程求任意两个数字序列的叠加
4、时应注意哪些问题。如何美化输出波形界面。实验二 抽样定理、调制定理一、实验目的: 1、加深理解抽样定理, 熟悉 Matlab 下 simulink 的使用方法2、掌握信号的幅度调制的方法,深刻理解信号调制的频谱变化。3、学会使用 MATLAB 实现信号的调制及解调。二、试验内容:1 用 Matlab 中 simulink 仿真模拟信号的抽样, 比较在不同抽样间隔下的信号变化 。2 对时域信号 f(t) ,如图所示,用 信号对其进行幅度调制(抑制载波)150*2cos(t幅度调制) ,利用 MATLABB 编程调制,绘出时域、频域图形。三、实验预备知识:1 抽样定理:一个频带限制在(0, f H
5、)赫内的时间连续信号 m(t) ,如果以 秒的间隔对它进行等间隔(均匀)抽样,则 m(t) 将被所得到的抽样值完全确定。抽样脉冲序列是一个周期性冲击序列, 对连续时间信号进行取样可获得离散时间信号,取样器可看作一 个乘法器,连续信号 f(t)和开关函数 s(t)在取样相乘后输出离散时间信号 fs(t)。如下图所示:如果令取样信号通过低通滤波器,该滤波器的截止频率等于原信 号频率的最高频率,那么取样信号中大于原信号最高频率的频率 成分被滤去,而仅存原信号频谱的频率成分,这样低通滤波器的 输出为得到恢复的原信号。如:当开关函数为周期性矩形脉冲, 且脉冲宽度为,则原信号与取样信号的频谱图如下:根据抽
6、样定理,只有在抽样频率 fs 大于等于二倍的原信号频率 fm 时,取样信号的频谱才不会发生。当抽样频率过低时将会发生 频谱重叠,如下图:这样将无法恢复原信号。结果讨论 :抽样定理是模拟信号数字化传输的理论基础 ,它告诉我们: 如果对某一带宽的有限时间连续信号 (模拟信号) 进行抽样 ,且在抽样率达到一定数值时 , 根据这些抽样值可以在接收端准确地恢复原信号 .也就是说 ,要传输模拟信号不一定传输模拟信号本身, 只需传输按抽样定理得到的抽样值就可以了。2 傅立叶变换: dtetfFtf j)()()对 ,傅立叶变换为:0cos)()(cos 000t则: 为对 f(t)的幅度调制:tfy0)(
7、)()(21)()(*)(21cos 00000 FFtf得出结论:已调信号的频谱是将基带信号频谱的搬移。四、实验步骤编写程序。调试程序。写出程序运行结果。五、思考题如何使用抽样定理?总结幅度调制的基本原理。实验三 离散系统分析一、实验目的熟悉离散时间系统的频域分析方法。掌握离散时间系统频域分析的 MATLAB 实现方法。二、实验内容三阶归一化的 Butterworth 低通滤波器的频率响应为 1)(2)()(3jwjjwjH试画出系统的幅度响应 和相位响应 。已知 RC 电路如图所示,系统的输入电压信号为 f(t),输出信号为电阻两端的电压 y(t)。当 RC=0.04,f(t)=cos5t
8、+cos100t,- t 。试求该系统的响应 y(t)。三、实验预备知识1. 利用 MATLAB 分析系统的频率特性,当系统的频率响应 H(jw)是 jw 的有理式时,有:)1()()()( 121 Majwaj NbbwABjHMNNMATLAB 信号处理工具箱提供的 freqs 函数可直接计算函数系统的频率响应。格式:H=freqs(b,a,w)说明:()b 是上式中分子多项式的系数;a 是上式中分母多项式的系数。()w 为需计算的 H(jw)的抽样点。 (数组 w 中最少需包含两个 w 的抽样点) 。2. 正余弦信号作用于 LTI 系统时,输出的零状态响应仍为同频率的信号,且为稳态响应。
9、输出信号的幅度由系统的幅度函数 H(w0)确定,输出信号的相位相对于输入信号偏移了。)(0故输出 y =|H( )| f( t+ + )0w0)(四、实验步骤编写程序。调试程序。写出程序运行结果。五、思考题总结连续时间系统的频响特性分析方法。总结离散时间系统的频响特性分析方法。实验四 信号系统及系统响应一、实验目的熟悉连续周期、非周期信号的频域分析方法及 MATLAB 编程实现方法。掌握离散周期、非周期信号的频域分析方法及 MATLAB 编程实现方法。二、实验内容试用 MATLAB 计算如图所示周期矩形波序列的 DFS 系数。2试画出 时, 幅度频谱。9.0jjeF1三、实验预备知识离散周期信
10、号傅立叶级数 DFS 分析若设定 DFS 和 1DFS 的求和范围为 0 到 N-1,(1)kfDFSm10NmkNWf(2)fIk10mkFNjeW2则 MATLAB 提供的函数 F=fft(f),可用来计算(1)式定义的 N 个 DFS 系数。说明:信号的周期 N 由上式中序列 f 长度确定。返回的序列 F 给出的是时的 DFS 系数。类似地,可用 MATLAB 提供的函数 f=ifft(F)由 DFS 系数10mF(m)按(2)式计算出时域信号 fk。2离散非周期信号的傅里叶变换当序列的 DTFT 可写成 的有理多项式时,MATLAB Signal Processing Toolbox
11、中je的 fregz 函数可用来计算 DTFT 的值。另外 MATLAB 提供的 abs,angle,real,imad 等基本函数可用来计算 DTFT 的幅度,相位,实部,虚部。设 DTFT 的有理多项式为: )1()()(10jNjMjj eaeabbeABF则 freqz 的调用形式为:h=freqz(b,a,w) (2)说明:()b 和 a 分别为(1)式中分子多项式和分母多项式函数的向量。 ,0Mb1N()W 为抽样的频率点()在以(2)式形式调用 freqz 函数时,W 中至少要有 2 个频率点。()返回的值 h 就是 DTFT 在抽样点 W 上的值,H 的值一般是复数。注: Kk
12、jj efkfDTFedFeIkf kjjj )(21)(一般来说 是实变量 的复值函数,可用实部和虚部将其表示为: =)(j )(jeF+ ,其中 和 分别是 的实部和虚部;也可用)(jReFjI )(jRe)(jI )(je幅度和相位将 表示为: =| | ,其中| |和 分别)(jejFj)(j j)(为序列 幅度谱和相位谱。kf四、实验步骤编写程序。调试程序。写出程序运行结果。五、思考题总结周期连续、离散信号的傅里叶级数分析方法。总结非周期连续、离散信号的傅里叶变换分析方法。实验五 应用 FFT 对信号进行频谱分析一实验目的1在理论学习的基础上,通过本次实验,加深对 FFT 的理解,熟
13、悉 FFT 算法及其程序的编写。2熟悉应用 FFT 对典型信号进行频谱分析的方法。3了解应用 FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。二实验内容用 FFT 对如下典型信号进行离散傅里叶变换,并观察其图形(1)高斯序列: elsnenxqpna015)(2)((2)衰减正旋序列:lefnb02i)((3)三角波序列elsnnxc074831)((4)反三角序列 elsxd3)(三、试验预备知识一个连续信号的频谱可以用它的傅立叶变换表示为dtetxjXjaa)()(2-1)如果对该信号进行理想采样,可以得到采样序列 )()nTxa(2-2)同样可以对该序列进行 Z
14、 变换,其中 T 为采样周期nnzxX)()(2-3)当 jez的时候,我们就得到了序列的傅立叶变换 nnjj exe)()(2-4)其中 为数字角频率,和模拟域频率的关系为 sfT/(2-5)式中的 sf是采样频率。上式说明数字角频率是模拟频率对采样速率 sf的归一化。同模拟域的情况相似,数字角频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系: )2(1)(TmjXeaj (2-6)即序列的频谱是采样信号频谱的周期延拓。从式(2-6)可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号的频谱。在各种信号序列中,有限长序
15、列在数字信号处理中占有很重要的地位。无限长的序列也往往可以用有限长序列来逼近。对于有限长的序列我们可以使用离散傅立叶变换(DFT) ,这一变换可以很好的反映序列的频域特性,并且容易利用快速算法在计算机上实现。当序列的长度为 N 时,定义 DFT 为: 10)()(NnnkWxkX(2-7)其中 NjeW2,它的反变换定义为: 10)()(Nknknx(2-8)令kNz,则有: 10)()(nnkNNWzxX(2-9)可以得到, kNz)(,kN是 Z 平面单位圆上幅角为kN2的点,就是将单位圆进行 N 等分以后第 K 个点。所以,X(K)是 Z 变换在单位圆上的等距采样,或者说是序列傅立叶变换
16、的等距采样。时域采样在满足 Nyquist 定理时,就不会发生频谱混叠。DFT 是对序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。如同理论课教材所讨论的,在运用 DFT 进行频谱分析的时候可能有三种误差,即:(1)混叠现象从中可以看出,序列的频谱时采样信号频谱的周期延拓,周期是 T2,因此当采样速率不满足定理 Nyquist,经过采样就会发生频谱混叠。这导致采样后的信号序列频谱不能真实的反映原信号的频谱。所以,在利用 DFT 分析连续信号频谱的时候,必须注意这一问题。避免混叠现象的唯一方法是保证采样的速率足够高,使频谱交叠的现象不出现。这告诉我们,在确定信号的采样频率之前,需要对频谱的
17、性质有所了解。在一般的情况下,为了保证高于折叠频率的分量不会出现,在采样之前,先用低通模拟滤波器对信号进行滤波。(2)泄漏现象实际中的信号序列往往很长,甚至是无限长。为了方便,我们往往用截短的序列来近似它们。这样可以使用较短的 DFT 来对信号进行频谱分析。这种截短等价于给原信号序列乘以一个矩形窗函数。值得一提的是,泄漏是不能和混叠完全分离开的,因为泄漏导致频谱的扩展,从而造成混叠。为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减到最小。(3)栅栏效应因为 DFT 是对单位圆上 Z 变换的均匀采样,所以它不可能将频谱视为一个连续函数。这样就产生了栅栏效应,从某种角度看, 用 DFT 来观
18、看频谱就好像通过一个栅栏来观看一幅景象,只能在离散点上看到真是的频谱。这样的话就会有一些频谱的峰点或谷点被“栅栏”挡住,不能被我们观察到。减小栅栏效应的一个方法是在源序列的末端补一些零值,从而变动 DFT 的点数。这种方法的实质是改变了真是频谱采样的点数和位置,相当于搬动了“栅栏”的位置,从而使得原来被挡住的一些频谱的峰点或谷点显露出来。注意,这时候每根谱线所对应的频和原来的已经不相同了。从上面的分析过程可以看出,DFT 可以用于信号的频谱分析,但必须注意可能产生的误差,在应用过程中要尽可能减小和消除这些误差的影响。FFT 并不是 DFT 不相同的另一种变换,而是为了减少 DFT 运算次数的一
19、种快速算法。它是对变换式进行一次次的分解,使其成为若干小店数 DFT 的组合,从而减小运算量。常用的 FFT 是以 2 为基数的,其长度为 MN2。它的运算效率高,程序比较简单,使用也十分的方便。当需要进行变换的序列的长度不是 2 的整数次方的时候,为了使用以 2 为基的 FFT,可以用末尾补零的方法,使其长度延长至 2 的整数次方。 IFFT 一般也可以通过FFT 程序来完成,比较式和,只要对取共轭,进行 FFT 运算,然后再去共轭,并乘以因子,就可以完成 IFFT。四思考题1实验中的信号序列 )(nxc和 d,在单位圆上的 Z 变化频谱 )(jceX和)(jdeX和会相同吗?如果不同,你能
20、说出哪一个低频分量更多一些吗?为什么?2对一个有限长序列进行离散傅立叶变换(DFT) ,等价于将该序列周期延拓后进行傅立叶级数展开(DFS)。因为 DFS 也只是取其中一个周期来运算,所以 FFT在一定条件下也可以用以分析周期信号序列。如果实正弦信号 )2sin(f, 1.0,用 16点的 FFT 来作 DFS 运算,得到的频谱是信号本身的真是谱吗?3观察高斯序列的时域和频域特性4观察衰减正旋序列的时域和幅频特性5观测三角波序列和反三角波序列的时域和幅频特性实验六 数字图像的基本认识一、 实验目的1. 熟悉不同类型图像的文件结构,掌握图像文件的读写过程。2. 掌握对图像的各种统计指标的计算方法
21、。二、 实验原理1. 图像的基本类型在计算机中,按照颜色和灰度的多少可以将图像分为二值图像、灰度图像和真彩色RGB 图像。2. 离散卷积对于离散序列,其卷积可用与连续函数相类似的方法求得。因此对于两个长度分别为m 和 n 的序列和,其卷积公式为:上式给出一个长度为的输出序列。在数字图像上进行的离散卷积与连续卷积几乎具有对应的性质,都可用连续卷积来描述。3. 灰度直方图灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数,其横坐标是灰度级,纵坐标是该灰度出现的频率(像素的个数) 。值得注意的是,直方图只反映该图像中不同灰度值出现的频率,而未反映某一灰度值像素所在的位置;不同的图像可能
22、有相同的直方图;一幅图像各子区的直方图之和就等于该图全图的直方图。预备知识:读取图像:F=imread(e:图片.jpg)显示图像:imshow(f)返回指定点的坐标和颜色值:c r p=impixel(f)RGB 彩色图像转换为灰度图像:rgb2gray(x)灰度图像转换为二值图像:im2bw(x)图像滤波(图像与模板卷积):imfilter(x1,w,replicate),或用 P 填充边界获得图像直方图:imhist(f)三、实验题目1. 编制一个程序,读取位图并显示在屏幕上,将图像数据化并显示结果,学会如何返回指定点的像素坐标。2. 编制一个程序,将 RGB 彩色图像转换为灰度图像,将
23、灰度图像转换为二值图像。3. 编制一个程序,实现二维离散卷积,用于对图像滤波。4. 编制一个程序,对任意图像统计灰度值,并在屏幕上绘出直方图。四、实验步骤编写程序。调试程序。写出程序运行结果。五、实验要求1. 提交题目 1、2 的源程序清单、程序流程图及代码各部分的详细说明。2. 提交题目 3 的原始图像和直方图结果。实验七 数字图像处理中的基本运算一、 实验目的1. 理解点运算、代数运算、几何运算的概念。2. 掌握灰度变换、几何变换的基本方法。二、 实验原理 1. 点运算在图像处理中,点运算是简单却很重要的一类技术,它们能让用户改变图像数据占据的灰度范围。对于一幅输入图像,经过点运算将产生一
24、幅输出图像,输出图像中每个像素的灰度值仅由相应输入像素的值决定。因此,点运算不可能改变图像内的空间关系,点运算有时又被称为对比度增强或灰度变换,是图像数字化软件和图像显示软件的重要组成部分。点运算的应用很广泛,可用于对比度增强、光度学标定、显示标定和裁剪等。2. 代数运算代数运算是指对两幅输入图像进行点对点的加、减、乘、除计算而得到输出图像的运算。四种图像处理代数运算的数学表达式如下:其中和为输入图像,而为输出图像。3. 几何运算几何运算可改变图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动。一个几何运算需要两个独立的算法。首先,需要一个算法来定义空间变换本身,用它来描
25、述每个像素如何从其初始位置移动到终止位置,即每个像素的运动;同时,还需要一个算法用于灰度级的插值。这是因为,在一般情况下,输入图像的位置坐标为整数,而输出图像的位置坐标为非整数,反过来也是如此。控制点法是通过测定若干特定坐标点的位移量来确定坐标变换方程的系数的方法。若已知输入图像与输出图像上对应点对(即控制点对)的位移量,则可利用这些已知控制点对求解坐标变换方程中的系数,从而得到确定的坐标变换关系。预备知识:调节对比度:g=imadjust(f,0.3 0.5,0.1 0.7)图像旋转:g=imrotate(f,angle,bilinear,crop)图像的裁剪:rect=a b c d; %
26、【a,b】为起始点,c 为宽度,d 为高度x1=imcrop(x,rect);三、 实验题目1. 编制一个程序,对图像进行灰度变换,以增强其对比度。2. 编制一个程序,对图像进行旋转,要求适应任意角度。3. 编制一个程序,对图像进行裁剪。四、实验步骤编写程序。调试程序。写出程序运行结果。五、实验要求提交各个题目的源程序及图像处理结果实验八 图像增强一、 实验目的1. 了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法。2. 熟练掌握直方图均衡化和直方图规定化的计算过程。3. 熟练掌握空域滤波中常用的平滑和锐化滤波器。4. 熟练掌握掩膜技术,并可以应用掩膜
27、技术对图像进行局部增强。二、 实验原理1. 直方图均衡化直方图均衡化处理是以累积分布函数为基础的直方图修改方法。直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一幅已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。相关的直方图均衡化的计算过程请查看教材。2. 均值滤波器和中值滤波器邻域平均法将一个像元及其邻域中的所有像元的平均值赋给输出图像中相应的像元,从而达到平滑的目的,又称为均值滤波。以 3*3 模板为例,将图 1(b)中的所有 赋予相ik同的值,求得 r 后将其值除以 9,再赋给相应的像元。4p324k32k501501r6786k78k(
28、a) (b) (c)图 1 空域模板滤波示意图邻域滤波法虽然可以平滑图像,但在消除噪声的同时,会使图像中的一些细节变得模糊。中值滤波则在消除噪声的同时还能保持图像中的细节部分,防止边缘模糊,与邻域平均法不同,中值滤波是一种非线性滤波,它将邻域内所有像元值从小到大排序,取中间值作为中心像元的输出值,以 3*3 模板为例,将图 1(a)中的 进行排序,将中间值0p8赋给 r。中值滤波与均值滤波不同,它不是通过对邻域内的所有像元求平均值来消除噪声的,而是让与周围像元灰度值的差比较大的像元改取近似于周围像元灰度值的值,从而达到消除噪声的目的。3. 锐化滤波器图像的平滑处理会使图像的边缘纹理信息受到损失
29、,图像变得比较模糊。锐化滤波则可以增强图像中物体的边缘轮廓并减弱图像的低频分量,使得除边缘以外的像元的灰度值趋向于零。常用的锐化滤波方法有梯度法和拉普拉斯算子法。(1)梯度法对于一幅图像 ,它的梯度可以表示为:),(yxf TyfxfG,),(和 分别表示在某个位置, 沿 x 方向和 y 方向的灰度变化率(一阶偏导数) ,xfy,y是一个矢量,它指向 的最大变化率方向。对于数字图像用微分运算不),(G)(f方便,故一般采用差分形式,常用的梯度差分法为罗伯特梯度算子,可以表示为: )1,(),1(),1,),( jifjifjijijifM图 4.6 给出了罗伯特算子的模板。(2)拉普拉斯算子拉
30、普拉斯算子法采用二阶偏导数,其定义为: 22yfxf对于离散数字图像,在某个像元(i,j)处的拉普拉斯算子可采用如下差分形式: ),(4),1(),()1,(),(),(2 jifjifjifjifjifjif 其相应的模板如图 2 所示。1 0 0 10 -1-1 0罗伯特算子0 -1 0 -1 -1 -1-1 4 -1 -1 8 -10 -1 0 -1 -1 -1拉普拉斯算子图 2 算子模板三、实验题目1. 编制一个对图像进行直方图均衡化处理的程序,增强的结果要能实时在屏幕上显示。2. 编制程序实现 mn 的均值滤波器和中值滤波器,注意边界像元的处理,设计一种简便的对图像边界像元进行处理的方法。3. 编制程序实现应用拉普拉斯算子进行图像锐化的功能。四、实验步骤编写程序。调试程序。写出程序运行结果。五、实验要求1. 提交题目源程序清单、程序流程图及代码各部分的详细说明。2. 提交题目的原始图像,及处理后的结果图像。