信号的产生、时域变换及卷积计算(信号和图像给学生)
实验一 信号的产生、时域变换及卷积计算
一、实验目的
1.熟悉MATLAB画图指令及基本函数的调用、编写方法。
2.掌握用MATLAB实现信号的基本运算方法。 二、实验内容
1.用MATLAB表示u(n),u(nn),(n),(nn)。
002.三角波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}的离散卷积。 三、实验预备知识
1.stem和plot函数的用法 (1)用stem画短的离散时间序列
(2)用plot画连续时间信号已采样的近似图,或者画那些离散值个数难以控制增长的很长的
离散时间信号。
(3)与stem不同,plot用直线将相邻的各元素连接起来,故当时间标号取得是够细的话,用直线所连接的结果是该原始连续时间信号图形的一个好的近似。
2.几种典型信号的表示方法 (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)
3.信号的尺度变换、翻转、平移
信号的翻转运算在使用时需要注意,其它运算较简单。
(1)在信号翻转f(-t)和f[-k]运算中,函数的自变量乘以一个负号,在MATLAB中可以直接写出。
(2)翻转运算在MATLAB中还可以利用
fliplr(f)函数实现,而翻转后信号的坐标则可以由-fliplr(k)。 4.三角波的产生
tripuls() – 该函数产生连续的、非周期的、幅度为1 的三角形脉冲信号,其调用格式如下:
y=tripuls(t,w,s)
其中,t 为时间向量,脉冲的时间中
心为t=0,w 为脉冲的宽度,s 表示三角波的倾斜度,当s=0 时,产生对称的三角脉冲信号。 5.信号的卷积 conv(a,b) 四、实验步骤 1. 编写程序。 2. 调试程序。
3. 写出程序运行结果。 五、思考题
1.编写阶跃信号、冲激信号时应注意哪些问题。 2.编程求任意两个数字序列的叠加时应注意哪些问题。
3.如何美化输出波形界面。
实验二 抽样定理、调制定理
一、实验目的:
1、加深理解抽样定理, 熟悉Matlab下simulink的使用方法
2、掌握信号的幅度调制的方法,深刻理解信号调制的频谱变化。
3、学会使用MATLAB实现信号的调制及解调。 二、试验内容:
1 用 Matlab中simulink 仿真模拟信号的抽样, 比较在不同抽样间隔下的信号变化 。 2. 对时域信号f(t),如图所示,用cos(2*150t) 信号对其进行幅度调制(抑制载波幅度调制),利
用MATLABB编程调制,绘出时域、频域图形。
三、实验预备知识:
1 抽样定理:一个频带限制在(0, f H)赫内的时间连续信号m(t) ,如果以
秒的间隔
对它进行等间隔(均匀)抽样,则m(t) 将被所得到的抽样值完全确定。抽样脉冲序列是一个周期性冲击序列, 对连续时间信号进行取样可获得离散时间信号,取样器可看作一 个乘法器,连续信号 f(t)和开关函数 s(t)在取样相乘后输出离散时间信号 fs(t)。如下图所示:
如果令取样信号通过低通滤波器,该滤
波器的截止频率等于原信 号频率的最高频率,那么取样信号中大于原信号最高频率的频率 成分被滤去,而仅存原信号频谱的频率成
分,这样低通滤波器的 输出为得到恢复的原信号。如:当开关函数为周期性矩形脉冲, 且脉冲宽度为,则原信号与取样信号的频谱图如下:
根据抽样定理,只有在抽样频率 fs 大于等于二倍的原信号频率 fm 时,取样信号的频谱才不会发生。当抽样频率过低时将会发生
频谱重叠,如下图:
这样将无法恢复原信号。
结果讨论 :抽样定理是模拟信号数字化传输的理论基础 ,它告诉我们: 如果对某一带宽的有限时间连续信号 (模拟信号) 进行抽样 ,且在抽样率达到一定数值时, 根据这些抽样值可以在接收端准确地恢复原信号 .也就是
说 ,要传输模拟信号不一定传输模拟信号本身, 只需传输按抽样定理得到的抽样值就可以了。
2 傅立叶变换:f(t)F()000f(t)ejtdt
对cost,傅立叶变换为:
cost[()()]
0则:y(t)f(t)cost为对f(t)的幅度调制:
0f(t)cos0t11F()*[(0)(0)][F(0)F(0)]22
得出结论:已调信号的频谱是将基带信号频谱的搬移。
四、实验步骤 4. 编写程序。 5. 调试程序。
6. 写出程序运行结果。 五、思考题
1.如何使用抽样定理? 2.总结幅度调制的基本原理。
实验三 离散系统分析
一、实验目的
1.熟悉离散时间系统的频域分析方法。
2.掌握离散时间系统频域分析的MATLAB实现方法。 二、实验内容
1.三阶归一化的Butterworth低通滤波器的频率响应为
H(jw)1(jw)32(jw)22(jw)1
试画出系统的幅度响应H(jw)和相位响应(w)。 2.已知RC电路如图所示,系统的输入电压信号为f(t),输出信号为电阻两端的电压y(t)。当RC=0.04,f(t)=cos5t+cos100t,- 1. 利用MATLAB分析系统的频率特性,当系统的频率响应H(jw)是jw的有理式时,有: b(1)(jw)Nb(2)(jw)N1b(N1)B(w)H(jw)A(w)a(1)(jw)Ma(2)(jw)M1a(M1) MATLAB信号处理工具箱提供的freqs函数可直接计算函数系统的频率响应。 格式:H=freqs(b,a,w) 说明: (1)b是上式中分子多项式的系数; a是上式中分母多项式的系数。 (2)w为需计算的H(jw)的抽样点。(数组w中最少需包含两个w的抽样点)。 2. 正余弦信号作用于LTI系统时,输出的零状态响应仍为同频率的信号,且为稳态响应。输出信号的幅度由系统的幅度函数H(w0)确定,输出信号的相位相对于输入信号偏移了(w)。 0故输出y =|H(w)| f(wt+(w)+) 000四、实验步骤 1.编写程序。 2.调试程序。 3.写出程序运行结果。 五、思考题 1.总结连续时间系统的频响特性分析方法。 2.总结离散时间系统的频响特性分析方法。 实验四 信号﹑系统及系统响应 一、实验目的 1. 熟悉连续周期、非周期信号的频域分析方法及MATLAB编程实现方法。 2. 掌握离散周期、非周期信号的频域分析方法及MATLAB编程实现方法。 二、实验内容 1.试用MATLAB计算如图所示周期矩形波序列的DFS系数。 2.试画出0.9时,Fe11e幅度频谱。 jj 三、实验预备知识 1.离散周期信号傅立叶级数DFS分析 若设定DFS和1DFS的求和范围为0到N-1, F[m]DFSf[k]kN10f[k]WNmk (1) 1F[k]IDFSf[m]NWNej2NmF[m]W0N1Nmk (2) 则MATLAB提供的函数F=fft(f),可用来计算(1)式定义的N个DFS系数。 说明:信号的周期N由上式中序列f长度确定。返回的序列F给出的是0mN1时的DFS系数。类似地,可用MATLAB提供的函数f=ifft(F)由DFS系数F(m)按(2)式计算出时域信号f[k]。 2.离散非周期信号的傅里叶变换 当序列的DTFT可写成e的有理多项式时, jMATLAB Signal Processing Toolbox中的 fregz函数可用来计算DTFT的值。另外MATLAB提供的abs,angle,real,imad等基本函数可用来计算DTFT的幅度,相位,实部,虚部。设DTFT的有理多项式为: B(ej)b0b1ejbMejF(e)jA(e)a0a1ejaNejj(1) 则freqz的调用形式为:h=freqz(b,a,w) (2) 说明: (1)b和a分别为(1)式中分子多项式 和分母多项式函数的向量。b[b,b,,b] 01Ma[a0,a1,,aN] (2)W为抽样的频率点 (3)在以(2)式形式调用freqz函数时,W中至少要有2个频率点。 (4)返回的值h就是DTFT在抽样点W上的值,H的值一般是复数。 注: F[e]DTFT{f[k]}jKf[k]ejjk f[k]IDTFT{F(ej)}12F(e2)ejkd一般来说F(ej)是实变量的复值函数,可用 实部和虚部将其表示为:F(e)=F(ejRj)+jF(eIj),其 )中F(eRj)和F(eIjj)分别是F(e)的实部和虚部;也可 j用幅度和相位将F(e)表示为:F(e)=|F(e)|(ejjjj(), 其中|F(e谱。 )|和()分别为序列f[k]幅度谱和相位 四、实验步骤 1.编写程序。 2.调试程序。 3.写出程序运行结果。 五、思考题 1.总结周期连续、离散信号的傅里叶级数分析方法。 2.总结非周期连续、离散信号的傅里叶变换分析方法。 实验五 应用FFT对信号进行频谱分析 一.实验目的 1.在理论学习的基础上,通过本次实验,加深对FFT的理解,熟悉FFT算法及其程序的编写。 2.熟悉应用FFT对典型信号进行频谱分析的方法。 3.了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。 二.实验内容 用FFT对如下典型信号进行离散傅里叶变换,并观察其图形 (1)高斯序列: (np)qxa(n)e020n15else (2)衰减正旋序列: ensin2fn0n15xb(n)0else (3)三角波序列 n10n3xc(n)8n4n70else4n0n3xd(n)n34n70else (4)反三角序列 三、试验预备知识 一个连续信号的频谱可以用它的傅立叶变换表示为 (2-1) 如果对该信号进行理想采样,可以得到采样序 Xa(j)jtxa(t)edt列 x(n)xa(nT) (2-2) 同样可以对该序列进行Z变换,其中T为采样周期 jX(Z)nx(n)zn (2-3) 当ze的时候,我们就得到了序列的傅立叶变换 X(e)jnx(n)ejn (2-4) 其中为数字角频率,和模拟域频率的关系为 T/fss (2-5) 式中的f是采样频率。上式说明数字角频率是 模拟频率对采样速率f的归一化。同模拟域的 s情况相似,数字角频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系: 12mX(e)Xa(j)TTj (2-6) 即序列的频谱是采样信号频谱的周期延拓。从式(2-6)可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号的频谱。 在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。无限长的序列也往往可以用有限长序列来逼近。对于有限长的序列我们可以使用离散傅立叶变换(DFT),这一变换可以很好的反映序列的频域特性,并且容易利用快速算法在计算机上实现。当序列的长度为N时,定义DFT为: nkX(k)x(n)WNn0N1 (2-7) 其中WNej2N,它的反变换定义为: nkN1x(n)NX(k)Wk0N1 (2-8) 令 zWkN,则有 kzWN: kNkX(z)zWNx(n)WNnkn0N1 (2-9) 可以得到,X(k)X(z)圆上幅角为 2kN,zW是Z平面单位 的点,就是将单位圆进行N等 分以后第K个点。所以,X(K)是Z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。时域采样在满足Nyquist定理时,就不会发生频谱混叠。 DFT是对序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。如同理论课教材所讨论的,在运用DFT进行频谱分析的时候可能有三种误差,即: (1)混叠现象 从中可以看出,序列的频谱时采样信号频谱的周期延拓,周期是 2T,因此当采样速率不满足 定理Nyquist,经过采样就会发生频谱混叠。这导致采样后的信号序列频谱不能真实的反映原信号的频谱。所以,在利用DFT分析连续信号频谱的时候,必须注意这一问题。避免混叠现象的唯一方法是保证采样的速率足够高,使频谱交 叠的现象不出现。这告诉我们,在确定信号的采样频率之前,需要对频谱的性质有所了解。在一般的情况下,为了保证高于折叠频率的分量不会出现,在采样之前,先用低通模拟滤波器对信号进行滤波。 (2)泄漏现象 实际中的信号序列往往很长,甚至是无限长。 为了方便,我们往往用截短的序列来近似它们。这样可以使用较短的DFT来对信号进行频谱分析。这种截短等价于给原信号序列乘以一个矩形窗函数。值得一提的是,泄漏是不能和混叠完全分离开的,因为泄漏导致频谱的扩展,从而造成混叠。为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减到最小。 (3)栅栏效应 因为DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数。这样就产生了栅栏效应,从某种角度看, 用DFT来观看频谱就好像通过一个栅栏来观看一幅景象,只能在离散点上看到真是的频谱。这样的话就会有一些频谱的峰点或谷点被“栅栏”挡住,不能被我们观察到。减小栅栏效应的一个方法是在源序 列的末端补一些零值,从而变动DFT的点数。这种方法的实质是改变了真是频谱采样的点数和位置,相当于搬动了“栅栏”的位置,从而使得原来被挡住的一些频谱的峰点或谷点显露出来。注意,这时候每根谱线所对应的频和原来的已经不相同了。 从上面的分析过程可以看出,DFT可以用于信号的频谱分析,但必须注意可能产生的误差,在应用过程中要尽可能减小和消除这些误差的影响。 FFT并不是DFT不相同的另一种变换,而是为了减少DFT运算次数的一种快速算法。它是对变换式进行一次次的分解,使其成为若干小店数DFT的组合,从而减小运算量。常用的FFT是以2为基数的,其长度为N2。它的运算 M效率高,程序比较简单,使用也十分的方便。当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。IFFT一般也可以通过FFT程序来完成,比较式和,只要对取共轭,进行FFT运算,然后再去共轭,并乘以因子,就可以完成IFFT。 四.思考题 1.实验中的信号序列x(n)和x(n),在单位圆上 cd的Z变化频谱为什么? Xc(ej)和 Xd(ej)和会相同吗?如果 不同,你能说出哪一个低频分量更多一些吗?2.对一个有限长序列进行离散傅立叶变换(DFT),等价于将该序列周期延拓后进行傅立叶级数展开(DFS)。因为DFS也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用以分析周期信号序列。如果实正弦信号 sin(2fn),f0.1,用16点的FFT来作DFS运算, 得到的频谱是信号本身的真是谱吗? 3.观察高斯序列的时域和频域特性 4.观察衰减正旋序列的时域和幅频特性 5.观测三角波序列和反三角波序列的时域和幅频特性 实验六 数字图像的基本认识 一、 实验目的 1. 熟悉不同类型图像的文件结构,掌握图像文件的读写过程。 2. 掌握对图像的各种统计指标的计算方法。 二、 实验原理 1. 图像的基本类型 在计算机中,按照颜色和灰度的多少可以将图像分为二值图像、灰度图像和真彩色RGB图像。 2. 离散卷积 对于离散序列,其卷积可用与连续函数相类似的方法求得。因此对于两个长度分别为m和n的序列和,其卷积公式为: 上式给出一个长度为的输出序列。在数字图像上进行的离散卷积与连续卷积几乎具有对应的性质,都可用连续卷积来描述。 3. 灰度直方图 灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数,其横坐标是灰度 级,纵坐标是该灰度出现的频率(像素的个数)。值得注意的是,直方图只反映该图像中不同灰度值出现的频率,而未反映某一灰度值像素所在的位置;不同的图像可能有相同的直方图;一幅图像各子区的直方图之和就等于该图全图的直方图。 预备知识: 读取图像: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彩色图像转换为灰度 图像,将灰度图像转换为二值图像。 3. 编制一个程序,实现二维离散卷积,用于对图像滤波。 4. 编制一个程序,对任意图像统计灰度值,并在屏幕上绘出直方图。 四、实验步骤 1.编写程序。 2.调试程序。 3.写出程序运行结果。 五、实验要求 1. 提交题目1、2的源程序清单、程序流程图及代码各部分的详细说明。 2. 提交题目3的原始图像和直方图结果。 实验七 数字图像处理中的基本运算 一、 实验目的 1. 理解点运算、代数运算、几何运算的概念。 2. 掌握灰度变换、几何变换的基本方法。 二、 实验原理 1. 点运算 在图像处理中,点运算是简单却很重要的一类技术,它们能让用户改变图像数据占据的灰度范围。对于一幅输入图像,经过点运算将产生一幅输出图像,输出图像中每个像素的灰度值仅由相应输入像素的值决定。因此,点运算不可能改变图像内的空间关系,点运算有时又被称为对比度增强或灰度变换,是图像数字化软件和图像显示软件的重要组成部分。点运算的应用很广泛,可用于对比度增强、光度学标定、显示标定和裁剪等。 2. 代数运算 代数运算是指对两幅输入图像进行点对点的加、减、乘、除计算而得到输出图像的运算。四种图像处理代数运算的数学表达式如下: 其中和为输入图像,而为输出图像。 3. 几何运算 几何运算可改变图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图 像内移动。 一个几何运算需要两个独立的算法。首先,需要一个算法来定义空间变换本身,用它来描述每个像素如何从其初始位置移动到终止位置,即每个像素的运动;同时,还需要一个算法用于灰度级的插值。这是因为,在一般情况下,输入图像的位置坐标为整数,而输出图像的位置坐标为非整数,反过来也是如此。 控制点法是通过测定若干特定坐标点的位移量来确定坐标变换方程的系数的方法。若已知输入图像与输出图像上对应点对(即控制点对)的位移量,则可利用这些已知控制点对求解坐标变换方程中的系数,从而得到确定的坐标变换关系。 预备知识: 调节对比度:g=imadjust(f,[0.3 0.5],[0.1 0.7]) 图 像 旋 转 : g=imrotate(f,angle,'bilinear','crop') 图像的裁剪:rect=[a b c d]; %【a,b】为起始点,c为宽度,d为高度 x1=imcrop(x,rect); 三、 实验题目 1. 编制一个程序,对图像进行灰度变换,以增强其对比度。 2. 编制一个程序,对图像进行旋转,要求适应任意角度。 3. 编制一个程序,对图像进行裁剪。 四、实验步骤 1.编写程序。 2.调试程序。 3.写出程序运行结果。 五、实验要求 提交各个题目的源程序及图像处理结果 实验八 图像增强 一、 实验目的 1. 了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法。 2. 熟练掌握直方图均衡化和直方图规定化的计算过程。 3. 熟练掌握空域滤波中常用的平滑和锐化滤波器。 4. 熟练掌握掩膜技术,并可以应用掩膜技术对图像进行局部增强。 二、 实验原理 1. 直方图均衡化 直方图均衡化处理是以累积分布函数为基础的直方图修改方法。直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一幅已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。相关的直方图均衡化的计算过程请查看教材。 2. 均值滤波器和中值滤波器 邻域平均法将一个像元及其邻域中的所有像元的平均值赋给输出图像中相应的像元,从而达到平滑的目的,又称为均值滤波。以3*3模板为例,将图1(b)中的所有k赋予相同的值,求 i得r后将其值除以9,再赋给相应的像元。 p4 p3 p2 k4 k3 k2 r p5p0p1k5k0k1p6p7p8k6k7k8 (a) (b) (c) 图 1空域模板滤波示意图 邻域滤波法虽然可以平滑图像,但在消除噪声的同时,会使图像中的一些细节变得模糊。中值滤波则在消除噪声的同时还能保持图像中的细节部分,防止边缘模糊,与邻域平均法不同,中值滤波是一种非线性滤波,它将邻域内所有像元值从小到大排序,取中间值作为中心像元的输出值,以3*3模板为例,将图1(a)中的p~p进 08行排序,将中间值赋给r。中值滤波与均值滤波不同,它不是通过对邻域内的所有像元求平均值来消除噪声的,而是让与周围像元灰度值的差比较大的像元改取近似于周围像元灰度值的值,从而达到消除噪声的目的。 3. 锐化滤波器 图像的平滑处理会使图像的边缘纹理信息受到损失,图像变得比较模糊。锐化滤波则可以增强图像中物体的边缘轮廓并减弱图像的低频分量,使得除边缘以外的像元的灰度值趋向于零。常用的锐化滤波方法有梯度法和拉普拉斯算子法。 (1)梯度法 对于一幅图像f(x,y),它的梯度可以表示为: ffG[f(x,y)][,] xyTfxf和分别表示在某个位置,f(x,y)沿x方向和yy方向的灰度变化率(一阶偏导数),G[f(x,y)]是一个矢量,它指向f(x,y)的最大变化率方向。对于数字图像用微分运算不方便,故一般采用差分形式,常用的梯度差分法为罗伯特梯度算子,可以表示为: G[f(i,j)]f(i,j)f(i1,j1)f(i1,j)f(i,j1) 图4.6给出了罗伯特算子的模板。 (2)拉普拉斯算子 拉普拉斯算子法采用二阶偏导数,其定义为: ff fxyM22222对于离散数字图像,在某个像元(i,j)处的拉普 拉斯算子可采用如下差分形式: f(i,j)f(i,j1)f(i,j1)f(i1,j)f(i1,j)4f(i,j) 2 其相应的模板如图2所示。 1 0 0 1 0 -1 -1 0 罗伯特算子 0 -1 0 -1 4 -1 0 -1 0 -1 -1 -1 -1 8 -1 -1 -1 -1 拉普拉斯算子 图 2 算子模板 三、实验题目 1. 编制一个对图像进行直方图均衡化处理的程序,增强的结果要能实时在屏幕上显示。 2. 编制程序实现m×n的均值滤波器和中值滤波器,注意边界像元的处理,设计一种简便的对图像边界像元进行处理的方法。 3. 编制程序实现应用拉普拉斯算子进行图像锐化的功能。 四、实验步骤 1.编写程序。 2.调试程序。 3.写出程序运行结果。 五、实验要求 1. 提交题目源程序清单、程序流程图及代码各部分的详细说明。 2. 提交题目的原始图像,及处理后的结果图像。 因篇幅问题不能全部显示,请点此查看更多更全内容