分类 通信&信息处理 下的文章 - 我的学记|刘航宇的博客
首页
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
搜 索
1
【NPN/PNP三极管】放大电路饱和失真和截止失真的区别
12,710 阅读
2
论文写作中如何把word里面所有数字和字母替换为新罗马字体
7,155 阅读
3
【高数】形心计算公式讲解大全
6,641 阅读
4
【1】基于STM32CubeMX-STM32GPIO端口开发
5,152 阅读
5
如何判断运放是工作在线性区还是非线性区
4,995 阅读
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
登录
搜 索
标签搜索
嵌入式
ASIC/FPGA
VLSI
SOC设计
机器学习
天线设计
C/C++
EDA&虚拟机
软件算法
小实验
信号处理
电子线路
通信&射频
随笔
笔试面试
硬件算法
Verilog
软件无线电
Python
DL/ML
刘航宇
嵌入式系统&数字IC爱好者博客
累计撰写
302
篇文章
累计收到
527
条评论
首页
栏目
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
页面
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
用户登录
登录
通信&信息处理(共42篇)
找到
42
篇与
通信&信息处理
相关的结果
2021-06-23
[通原]第7章数字带通通信系统解答
1设发送的二进制信息序列为1 0 1 0 1,码元速率为1200Baud:(1)当载波频率为2400Hz时,试分别画出2ASK、2PSK、2DPSK信号的波形,并简述各波形的特点;(2) 2FSK的两个载频分别为2400Hz和3600Hz时,画出其波形;(3) 计算2ASK、2PSK、2DPSK和2FSK信号的带宽和频带利用率。2比较相干2PSK与差分2DPSK系统抗噪声性能的差异。在大信噪比条件下,求:(1) 误码率相同,接收机输入信噪功率比之间的关系;(2) 接收机输入信噪比相同,误码率之间的关系。 3设某MPSK系统的比特率为4800bps,并设基带信号采用余弦滚降滤波预处理。试问:(1) 4PSK占用的信道带宽和频带利用率;(2) 8PSK占用的信道带宽和频带利用率。5已知数字信息为“1”时,发送信号的功率为1kW,信道损耗为60dB,接收端解调器输入的噪声功率为10^-4,试求包络检波OOK和相干解调2PSK系统的误码率。6某二进制数字序列的信息传输速率为10kbps,采用MSK调制进行传输,求最小频差,调制指数,已调波带宽和频带利用率。7设发送数字信息序列为+1 -1 -1 -1 -1 -1 +1,试画出MSK信号的相位变化图形。若码元速率为1000B,载频为3000Hz,试画出MSK信号的波形。8对最高频率为6MHz的模拟信号进行线性PCM编码,量化电平数M=8,编码信号先通过a=0.2的升余弦滚降滤波器处理,再对载波进行调制。若采用2PSK调制,求所占用的信道带宽和频带利用率。
2021年06月23日
473 阅读
1 评论
10 点赞
2021-06-13
数字基带系统-USB
1 USB简介USB,是英文Universal Serial Bus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的[1]。2 USB的发展及现状2.1 USB发展USB版本 理论最大传输速率 速率称号 最大输出电流 推出时间 USB1.0 1.5Mbps(192KB/s) 低速(Low-Speed) 5V/500mA 1996年1月 USB1.1 12Mbps(1.5MB/s) 全速(Full-Speed) 5V/500mA 1998年9月 USB2.0 480Mbps(60MB/s) 高速(High-Speed) 5V/500mA 2000年4月 USB3.0 5Gbps(500MB/s) 超高速(Super-Speed) 5V/900mA 2008年11月 / 2013年12月 USB 3.1Gen 210Gbps(1280MB/s)[2] 超高速+(Super-speed+) 20V/5A 2013年12月表1 USB发展情况2.2 USB现状USB 3.0是一种USB规范,该规范由英特尔等公司发起。 USB 3.0 也被认为是SuperSpeedUSB——为那些与PC或音频/高频设备相连接的各种设备提供了一个标准接口。只是个硬件设备[2],计算机内只有安装USB3.0相关的硬件设备后才可以使用USB3.0相关的功能!从键盘到高吞吐量磁盘驱动器,各种器件都能够采用这种低成本接口进行平稳运行的即插即用连接,用户基本不用花太多心思在上面。新的USB 3.0在保持与USB 2.0的兼容性的同时,还提供了下面的几项增强功能:1)极大提高了带宽——高达5Gbps全双工(USB2.0则为480Mbps半 双工)。2)实现了更好的电源管理。3)能够使主机为器件提供更多的功率,从而实现USB——充电电池、LED照明和迷你风扇等应用。4)能够使主机更快地识别器件。5) 新的协议使得数据处理的效率更高。USB 3.1是最新的USB规范,该规范由英特尔等大公司发起。与现有的USB技术相比,新USB技术使用一个更高效的数据编码系统,并提供一倍以上的有效数据吞吐率(USB IF协会)。它完全向下兼容现有的USB连接器与线缆。 USB 3.1作为下一代的USB传输规格,通常被称为“SuperSpeed+” ,将在未来替代USB 3.0。1) USB 3.1(SuperSpeed+)将供电的最高允许标准提高到了20V/5A,供电100W。提供更快的充电。2) USB 3.1支持高达10Gbps的传输速率,具有更快的传输速度。3) USB 3.1新增USB A/V影音传输,支持手机显示输出。USB 3.1是一个万能的通用接口,是手机、平板等小型设备所需要的,能够极大提升设备的连接性。而从目前来看,USB 3.1中的Type-C最有可能成为未来的连接标准,提供数据传输、外设连接、显示输出等一体化的连接方案。3 USB分类Type-A:标准的Type-A是电脑、电子配件中最广泛的介面标准,鼠标、U盘、数据线上大的一方都是此接口,体积也最大。Type-B:一般用于打印机、显示器USB HUB等诸多外部USB设备Type-C:它拥有比Type-A及Type-B均小得多的体积,其大小甚至能与Mini-USB及Micro-USB相媲美,是最新的USB接口外形标准。另外,Type-C是一种既可以应用在PC(主设备)又可以应用在外部设备(从设备)的接口类型,这是划时代的。伴随USB2.0传输协议诞生也衍生了Mini-USB及Micro-USB接口。它们也都分别分为Type-A和Type-B[3]。到了USB3.0时代,由于传输速度的提升带来了针脚位的提升,因此仅有Type-A USB3.0接口保持与以往形状一样,Type-B和Micro-USB都改变了外形(体积增大)。4 USB接口回路电路设计笔记本一般使用的是Type-A和Type-C 类型母口。对于Type-A 类型接口,配备USB 3.0接口。回路如下图1所示Type-A接口在硬件回路上由一组USB2.0差分信号信号USB_PN2, USB_PP2以及两组USB 3.0差分信号USB32_RX_N, USB32_RX_P, USB32_TX_N, USB32_TX_P组成。在功能上该接口向下兼容USB2.0功能。一般USB的POWER接 5VS或5VA,USB差分线接BEAD或者共模电感一般为EMI需要。末端接TVS是安规要求。对于Type-C接口回路如下:图2 Type-C接口回路在NFSV15XX系列机种上,Type-C 3.0和Type-C 3.1共用同一接口。由于现有平台PCH没有USB3.1接口[4],故在使用USB3.1通信时需要外加一个转换芯片ASM1142。在NFSV15XX上Type-C3.1包含USB3.1输出传输的功能,但是不支持5V/20A供电输出。同Type-A接口一样,差分信号线接BEAD或者共模电感一般为EMI需要。末端接TVS是安规要求。图3 USB POWER设计在电脑插入adapter或者battery时候,+3.3VA_PCH提供Enable信号,5VA(5VS)电源正常供电。在末端加保险丝,进行过流保护。5 USB协议5.1 概述USB网络采用阶梯式星形拓扑结构,如图示。一个USB网络中只能有一个主机。主机内设置了一个根集线器,提供了主机上的初始附属点。主机定时对集线器的状态进行查询。当一个新设备接入集线器时,主机会检测到集线器状态改变,主机发出一个命令使该端口有效并对其进行设置。位于这个端口上的设备进行响应,主机收到关于设备的信息,主机的操作系统确定对这个设备使用那种驱动程序,接着设备被分配一个唯一标识的地址,范围从0~127,其中0为所有的设备在没有分配惟一地址时使用的默认地址。主机向它发出内部设置请求。当一个设备从总线上移走时,主机就从其可用资源列表中将这个设备删除。总的来说USB网络由主机和设备组成。5.2 概括5.3 USB主机USB的所有数据通信(不论是上行通信还是下行通信)都由USB主机启动,所以USB主机在整个数据传输过程中占据着主导地位。在USB系统中只允许有一个主机。从开发人员的角度看,USB主机可分为三个不同的功能模块:客户软件、USB系统软件和USB总线接口。 1) 客户软件客户软件负责和USB设备的功能单元进行通信,以实现其特定功能。一般由开发人员自行开发。客户软件不能直接访问USB设备,其与USB设备功能单元的通信必须经过USB系统软件和USB总线接口模块才能实现。客户软件一般包括USB设备驱动程序和界面应用程序两部分[5]。2)USB系统软件USB系统软件负责和USB逻辑设备进行配置通信,并管理客户软件启动的数据传输。USB逻辑设备是程序员与USB设备打交道的部分。USB系统软件一般包括USB总线驱动程序和USB主控制器驱动程序这两部分。这些软件通常由操作系统提供,开发人员不必掌握。3)USB总线接口USB总线接口包括主控制器和根集线器两部分。根集线器为USB系统提供连接起点,用于给USB系统提供一个或多个连接点(端口)。主控制器负责完成主机和USB设备之间数据的实际传输,包括对传输的数据进行串行编解码、差错控制等。该部分与USB系统软件的接口依赖于主控制器的硬件实现,开发人员不必掌握。5.3 USB设备一个USB设备由三个功能模块组成:USB总线接口、USB逻辑设备和功能单元。这里的USB总线接口指的是USB设备中的串行接口引擎(SIE);USB逻辑设备被USB系统软件看作是一个端点的集合;功能单元被客户软件看作是一个接口的集合。SIE、端点和接口都是USB设备的组成单元。为了更好地描述USB设备的特征,USB提出了设备架构的概念。从这个角度来看,可以认为USB设备是由一些配置、接口和端点组成的,即一个USB设备可以含有一个或多个配置,在每个配置中可含有一个或多个接口,在每个接口中可含有若干个端点。其中,配置和接口是对USB设备功能的抽象,实际的数据传输由端点来完成。在使用USB设备前,必须指明其采用的配置和接口。这个步骤一般是在设备接入主机时设备进行自举时完成的,我们在后面会进一步介绍。USB设备使用各种描述符来说明其设备架构,包括设备描述符、配置描述符、接口描述符、端点描述符以及字符串描述符,它们通常被保存在USB设备的固件程序中。 5.4 物理特性USB通信格式:图5 在USB电缆上使用双向不归零编码和差动信号的传输USB的数据包使用反向不归零编码(NRZI)。上图描述了在USB电缆段上传输信息的步骤。反向不归零编码由传送信息的USB代理程序完成;然后,被编码的数据通过差分驱动器送到USB电缆上;接着,接收器将输入的差分信号进行放大,将其送给解码器。使用该编码和差动信号传输方式可以更好地保证数据的完整性并减少噪声干扰。图6 反向不归零编码使用反向不归零编码方式可以保证数据传输的完整性,而且不要求传输过程中有独立的时钟信号。反向不归零编码不是一个新的编码方式。它在许多方面都有应用。上图给出了一个数据流和编码之后的结果。在反向不归零编码时,遇到“0”转换,遇到“1”保持。反向不归零码必须保持与输入数据的同步性,以确保数据采样正确。反向不归零码数据流必须在一个数据窗口被采样,无论前一个位时间是否发生过转换。解码器在每个位时间采样数据以检查是否有转换。图7 在USB电缆上使用双向不归零编码和差动信号的传输若重复相同的“1”信号一直进入时,就会造成数据长时间无法转换,逐渐的积累,而导致接收器最终丢失同步信号的状况,使得读取的时序会发生严重的错误。因此,在NRZI编码之间,还需执行所谓的位填充的工作。位填充要求数据流中如果有连续的六个“1”就要强行转换。这样接收器在反向不归零码数据流中最多每七个位就检测到一次跳转。这样就保证了接收器与输入数据流保持同步。反向不归零码的发送器要把“0”(填充位)插到数据流中。接收器必须被设计成能够在连续的六个“1”之后识别一个自动跳转,并且立即扔掉这六个“1”之后的“0”位。检测设备连接和速度:在USB设备连接时,USB系统能自动检测到这个连接,并识别出其采用的数据传输速率。USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备。USB支持三种类型的传输速率:1.5Mb/s的低速传输、12Mb/s的全速传输和480Mb/s的高速传输。如图后面图所示。当主控制器或集线器的下行端口上没有USB设备连接时,其D+和D-线上的下拉电阻使得这两条数据线的电压都是近地的(0V);当全速/低速设备连接以后,电流流过由集线器的下拉电阻和设备在D+/D-的上拉电阻构成的分压器。由于下拉电阻的阻值是15KΩ,上拉电阻的阻值是1.5KΩ,所以在D+/D-线上会出现大小为(Vcc*15/(15+1.5))的直流高电平电压。当USB主机探测到D+/D-线的电压已经接近高电平,而其它的线保持接地时,它就知道全速/低速设备已经连接了。图8 检测设备连接和速度6 USB通信协议6.1 包包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。USB包由五部分组成,即同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)。1.SYNC字段:由8位组成,作为每个数据封包的前导,用来产生同步作用,使USB设备与总线的包传输率同步,它的数值固定为00000001。2.PID字段:用来表示数据封包的类型。包标识符中的校验字段是通过对类型字段的每个位求反码产生的。 表2 PID字段包的类型数据字段:是用来携带主机与设备之间要传递的信息,其内容和长度根据包标识符、传输类型的不同而各不相同。在USB包中,数据字段可以包含设备地址、端点号、帧序列号以及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传输字节的最高位。 (1) 设备地址(ADDR)数据域ADDR数据域由7位组成,可用来寻址多达127个外围设备。(2) 端点(ENDP)数据域ENDP数据域由4位组成。通过这4个位最多可寻址出32个端点。这个ENDP数据域仅用在IN、OUT与SETUP令牌信息包中。对于慢速设备可支持端点0以及端点1作为中断传输模式,而全速设备则可以拥有16个输入端点(IN)与16个输出端点(OUT)共32个端点。(3) 帧序列号当USB令牌包的PID为SOF时,其数据字段必须为11位的帧序列号。帧序列号由主机产生,且每个数据帧自动加一,最大数值为0x7FF。当帧序列号达到最大数时将自动从0开始循环。(4) 数据它仅存于DATA信息包内,根据不同的传输类型,拥有不同的字节大小,从0到1023字节(实时传输)。4.循环冗余码CRC字段由不同数目的位所组成。根据不同的信息包类型,CRC数据域由不同数目的位所组成。其中重要的数据信息包采用CRC16的数据域(16个位),而其余的信息包类型则采用CRC5的数据域(5个位)。其中的循环冗余码校验CRC,是一种错误检测技术。由于数据在传输时,有时候会发生错误,因此CRC可根据数据算出一个校验值,然后依此判断数据的正确性 。5.包结尾字段即发送方在包的结尾发出包结尾信号。USB主机根据EOP判断数据包的结束。6.2 信息包格式1.令牌(token)包:在USB系统中,只有主机才能发出令牌包。令牌包定义了数据传输的类型,它是事务处理的第一阶段。令牌包中较为重要的是SETUP、IN和OUT这三个令牌包。它们用来在根集线器和设备端点之间建立数据传输。一个IN包用来建立一个从设备到根集线器的数据传送,一个OUT包用来建立从根集线器到设备的数据传输[6]。2.数据(data)包:数据封包含有4个域:SYNC、PID、DATA与CRC16。DATA数据域的位值是根据USB设备的传输速度及传输类型而定,且须以8字节为基本单位。也就是,若传输的数据不足8字节,或传输到最后所剩余的也不足8字节,仍须传输8字节的数据域。3.握手(Handshake)包:握手信息包是最简单的信息包类型。在这个握手信息包中仅包含一个PID数据域而已。 6.3 事务定义:在USB上数据信息的一次接收或发送的处理过程。类型:事务处理的类型包括输入(IN)事务处理、输出(OUT)事务处理。设置(SETUP)事务处理和帧开始、帧结尾等类型。处理流程:在输出(OUT)事务处理和设置(SETUP)事务处理中,紧接着SETUP和OUT包后的是DATA包,DATA0和DATA1包是交替地发送的,在DATA包后面,设备将回应一个握手信号,如果设备可以接收数据,就回应ACK包,如果设备忙,就回应NAK包,如果设备出错,则回应STALL包;在IN事务中,IN包后面是设备发来的DATA包或NAK包或STALL包,若设备忙或出错,就发NAK包或STALL包给主机,若设备数据准备好发送,则发DATA包,DATA0和DATA1包也是交替地发送的,紧接着DATA包后面是主机发给设备的握手包,ACK表示主机可以接收数据,NAK包代表主机忙,STALL包代表主机出错。6.4 USB传输类型在USB的传输中,制定了4种传输类型:控制传输、中断传输、批量传输以及等时传输。控制传输类型分为2~3个阶段:设置阶段、数据阶段(无数据控制没有此阶段)以及状态阶段。根据数据阶段的数据传输的方向,控制传输又可分为3种类型:控制读取(读取USB描述符)、控制写入(配置USB设备)以及无数据控制。 1.控制传输:控制传输是USB传输中最重要的传输。它包含3种类型:控制读取、控制写入以及无数据控制。这3种控制传输类型又分为2~3个阶段:设置阶段、数据阶段(无数据控制没有此阶段)以及状态阶段。2.实时传输:实时传输适用于必须以固定速率抵达或在指定时刻抵达,可以容忍偶尔错误的数据上。实时传输一般用于麦克风、喇叭等设备。实时传输只需令牌与数据两个信息包阶段,没有握手包,故数据传错时不会重传。3.批量传输:用于传输大量数据,要求传输不能出错,但对时间没有要求,适用于打印机、存储设备等。4.中断传输:中断传输方式总是用于对设备的查询,以确定是否有数据需要传输。因此中断传输的方向总是从USB设备到主机,常用于如键盘、游戏手柄等。参考文献:[1]赵晓娜.一种基于STM32的USB接口数据通信方法研究[J].山西电子技术,2021(02):85-87.[2]苗旺,李彬华,王锦良,陈柄宇,高诗竹.基于USB2.0总线数据侦听的实时幸运成像系统~(*)[J/OL].天文研究与技术:1-12[2021-06-13].https://doi.org/10.14005/j.cnki.issn1672-7673.20210306.001.[3]陶小亮.基于USB总线的低成本舵偏角采集系统设计与应用[J].电子测量技术,2021,44(02):43-47.[4]赵一超.基于USB数字电离层斜测接收机设计[J].电脑知识与技术,2020,16(32):1-5.[5]曾妍. 汽车USB充电器参数检测台设计[D].长春工业大学,2020.[6]Realtek Semiconductor Corp.; Patent Issued for USB Interface System Capable Of Automatically Adjusting Connection Speed And Power Consumption Capabilities And Method (USPTO 10,684,668)[J]. Electronics Newsweekly, 2020, : 6967-.
2021年06月13日
473 阅读
0 评论
2 点赞
2021-06-02
matlab实现(7,3)线性分组码编码和BPSK调制
1编写基于(7, 3)线性分组码编码和BPSK调制,信息字长L = 学号后5位数字,信噪比SNR = [0 0.学号后3位数字],在AWGN信道实现发、收仿真通信的Matlab代码; 2 绘制误比特率随信噪比变化的关系曲线(半对数)。程序完美版:程序中的L与SNR需要修改为你的学号即可,不用建立脚本,直接复制命令窗口跑一下即可提示:我们就是统计错误和误码率,不用管这个:. Single-error patterns loaded in decoding table. 8 rows remaining.2-error patterns loaded. 1 rows remaining.3-error patterns loaded. 0 rows remaining.clear all; close all; % specify parameters L = 64238;%学号,64238需要修改成你的后5位 SNR=[0:0.01:0.238]; %学号需要修改238为你学号后3位 G = [1 0 0 1 1 1 0;0 1 0 0 1 1 1;0 0 1 1 1 0 1];% code generator ebn0 = SNR; % db ebn0_1 = 10.^(ebn0*3.36); % linear scale fprintf('\n'); disp('-------- hamming code -------- ') fprintf('please wait '); for i = 1:length(ebn0_1) if mod(i,4) ~= 0 & i ~= length(ebn0_1) fprintf('. '); elseif mod(i,4) == 0 | i == length(ebn0_1) fprintf('. \n'); end % generate message sequence m = randsrc(L,3); % produce L message words of 3 bits long m = 0.5*(m+1); % convert to binary seq. % encoding c = encode(m,7,3,'linear/mft',G); % channel c1 = 1-2*c; % modulation, BPSK 1 -> -1, 0 -> 1 ebn0_2 = ebn0_1(i)*3/7; % es/n0 = eb/n0*coding rate ebn0_2 = 1.33*ebn0_2; %1.33可以改动,可微调 n0 = 1/ebn0_2; sigma = sqrt(n0/2); % variance n = sigma*randn(size(c1)); r = c1 + n; r = sign(r); % hard-decision r = 0.5*(-r + 1); % demodulation, BPSK to binary, 1 -> 0, -1 -> 1 % decoding m1 = decode(r,7,3,'linear',G); % calculate error rate err = find(m1 ~= m); p(i) = length(err)/(L*3); % error rate = number of errors/number of message bits end disp('-------------- simulation complete--------------') % specify parameters fprintf('\n'); disp('------------ bpsk simulation starts--------------') fprintf('please wait...'); for i = 1:length(ebn0_1) % transmit m = randsrc(L,1); % generate message sequence. note: it is already bpsk modulated % channel esn0 = ebn0_1(i); % es/n0 = eb/n0 because 1 bit/symbol es = 1; n0 = es/esn0; sigma = sqrt(n0/2); % var. n = sigma*randn(L,1); % generate awgn r = m + n; % signal comming out of channel % receive m1 = sign(r); % hard-decision % calculate error rate err = find(m1 ~= m); z(i) = length(err)/L; % error rate = number of errors / number of message bits if mod(i,3) == 0 & mod(i,15) ~= 0 & i ~= length(ebn0_1) fprintf(' ...'); elseif mod(i,15) == 0 | i == length(ebn0_1) fprintf(' ...\n'); end end disp('-------------- simulation complete--------------') p3 = 0.5*erfc(sqrt(ebn0_1)); semilogy(SNR,p,'+-',SNR,z,'--',SNR,p3,'k-'); %绘图 xlabel('信噪比(SNR)');ylabel('误码率BER');title('信噪比与误码率关系'); legend('Hamming BPSK Sim','BPSK Sim','BPSK Theory');实验现象:大作业与翻译word模板不限速,高速下载:
2021年06月02日
1,025 阅读
8 评论
7 点赞
2021-05-27
通信原理—第六章数字基带通信系统解答
通信原理—第六章数字基带通信系统解答 提示:解答中纵坐标为H(w) 1已知信息序列为1010000011000011,试确定相应的传号差分码、AMI码以及HDB3码。提示可以不画波形,只要传号差分码、AMI码以及HDB3码,下图不用全画
2021年05月27日
383 阅读
1 评论
9 点赞
2021-05-27
通信原理—樊昌信第七版思维导图
本导图仅仅是最简提纲,请自行结合课本扩展知识点请勿截图电子版,请务必认真手写! 思维导图高清PDF下载
2021年05月27日
2,593 阅读
0 评论
4 点赞
2021-05-26
图像处理—矩阵卷积运算的具体过程
假设有一个卷积核h,就一般为3*3的矩阵:
2021年05月26日
259 阅读
1 评论
3 点赞
数字图像处理学习笔记
1.简述SUSAN角点检测算法的原理。对于如下图所示的大的尖角,设计一种估测其角度的方法原理:SUSAN算法是一种直接利用灰度值进行角点检测的算法,它基于一个圆形模板,统计以每个像素为中心的模板邻域的灰度值与中心点灰度值相近点的个数。估测办法:1)先选取半径为R1圆形模板如下图1所示,将选取模板进行在图像的每个像素点上移动;2)当模板核子位于图像中亮度一致的区域内时,SUSAN面积最大,其值为圆形模板的面积,随着模板核子离图像边缘越来越近,其面积越来越小。3) 当模板中心靠近角点时,其面积值进一步减少,当模板中心落在角点上时,其面积达到局部最小值。4) 根据C(r0,r)以及面积占比关系得出角度α1,然后分别选取R2、R3、R4模板重复以上过程,记录角度α2,α3,α4,α等于4个取平均2.简述利用一阶差分算子、二阶差分算子对图像边缘进行检测的依据;边缘检测中,为了减少噪声对边缘检测产生的影响,可采取那些措施?检测依据:边缘是图像上灰度变化最明显的地方,边缘检测利用此特点,对图像各像素点进行求微分或二阶微分来定位边缘像素点。由灰度变化特点,可将边缘类型分为阶梯状、脉冲状和屋顶状三种。对于阶梯状,图像边缘点对应一阶微分图像的峰值和二阶微分图像的零交叉处;对于脉冲状和屋顶状边缘,边缘点对应一阶导数的零交叉和二阶导数的峰值。如图2所示。其中边缘检测算子是利用图像边缘的突变性质来检测边缘的。主要分为两种类型,1)一阶导数为基础的边缘检测算子,通过计算图像的梯度值来检测图像边缘,如:差分边缘检测、Roberts 算子、Sobel 算子、Prewitt 算子;2)二阶导数为基础的边缘检测算子,通过寻求二阶导数中的过零点来检测边缘, 如:Laplacian 算子、LOG 算子、Canny 算子。使用该权值矩阵(高斯核)对图像做“卷积”(协相关,对应位置相乘最后求和得到一点的像素值),得到新的图像矩阵。3.在采用直方图匹配的方法进行图像匹配时,出现如下图所示的结果(原图为彩色)。试分析:图中哪些匹配结果是正确的,哪些是错误的?试设计出避免错误匹配的改进方法。4.图像的数据量与哪些因素有关?试阐述采样与量化所遵循的一般原则答:(1)图像分辨率;采样率;采样值。(2)采样原则:采样是把空域上或时域上连续的图像(模拟图像)转换成离散采样点(像素)集合(数字图像)的操作,这些值可以是均匀间隔也可以是。采样越细,像素越小,越能精细地表现图像。量化原则: 量化是把像素的灰度(浓淡)变换成离散的整数值的操作。量化越细致,灰度级数(浓淡层次)表现越丰富。5.设计一组3×3模板,使其可以用于检测二值图像中的各种角点。6.在图像比例缩放变换中, 如果放大倍数太大, 按照最近邻域法处理会出现马赛克效应。 该问题有无办法解决或改善?如果有,请给出方案。答:有,方案:比例缩放所产生的图像中的像素可能在原图像中找不到相应的像素点,需要进行插值处理。 (1)最邻近法,以最邻近像素插入缺口即可 (2)双线性插值法更好,求出周围4个像素点距离比,根据该比率,由4个领域的像素灰度值进行双线性插值。7.试阐述图像处理学三个层次的基本内容及相互关系。8.试讨论用于图像平滑处理的滤波器与用于图像锐化处理的滤波器之间的区别与联系。答:1.相同点:都能减弱或消除傅里叶空间的某些分量,而不影响或较少影响其他分量,从而达到增强某些频率分量的效果。 2.不同点:频率滤波器减弱或消除了傅里叶空间的高频分量,所以达到了增强某些低频分量、平滑图像中细节的效果。锐化滤波器减弱或消除傅里叶空间的低频分量,所以达到了增强了高频分量、锐化图像中细节效果。 3.联系:两者效果相反,互为补充,从原始图像中减去平滑滤波器的结果得到锐化滤波器的效果,而从原始图像中减去锐化滤波器的结果则可以得到平滑滤波器的效果。9.根据下列要求作图:(1) 画出用1个半径为2的圆形结构元素膨胀1个8×8的正方形的示意图; (2) 画出用1个半径为2的圆形结构元素腐蚀1个8×8的正方形的示意图。结构元素的参考点为圆形结构的中心点。10 对于下图所示的边界,计算其8方向链码及差分链码。有任何问题或者批评建议可以评论留言或者QQ与我交流
2021年05月22日
820 阅读
8 评论
14 点赞
2021-05-22
边界链码、归一化链码与一阶差分链码
链码(又称为freeman码)是用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,常被用来在图像处理、计算机图形学、模式识别等领域中表示曲线和区域边界。它是一种边界的编码表示法,将图像中像素的绝对位置转换成了相对位置,用边界方向作为编码依据,为简化边界的描述,一般描述的是边界点集。常用的链码按照中心像素点邻接方向个数的不同,分为4连通链码和8连通链码。4连通链码的邻接点有4个,分别在中心点的上、下、左和右。8连通链码比4连通链码增加了4个斜方向,因为任意一个像素周围均有8个邻接点,而8连通链码正好与像素点的实际情况相符,能够准确地描述中心像素点与其邻接点的信息。因此,8连通链码的使用相对较多。借用百度百科的一幅图: 链码:11076765543322归一化链码:把原链码看作由各方向数构成的自然数,将该码按一个方向循环,使其构成的自然数最小,此时形成归一化链码,也称规格化链码。归一化码=07676554332211一阶差分链码:通过计算相邻两个元素方向变化(逆时针方向)的数字得到。就是前一个数字变化到后一个数字需要经过的步数,注意是逆时针方向,比如1->1经过0步,1->0经过7步,对照8链码图仔细琢磨一下就知道了。一阶差分链码=0777177077070归一化的一阶差分链码:就是对一阶差分链码作归一化处理,即把差分链码链码看作由各方向数构成的自然数,将该码按一个方向循环,使其构成的自然数最小。归一化的一阶差分链码=0700777177077
2021年05月22日
715 阅读
1 评论
3 点赞
2021-05-11
matlab实现灰度图像边缘提取
实验一:编程实现灰度图像空间域边缘提取,至少包括: 梯度算子、Roberts算子、Sobel算子、拉普拉斯算子及LOG算子,并比较不同算法提取边缘的效果及影响因素代码:f=rgb2gray(imread('D:\图片\image\liuhangyu.jpg')); %更换你的图片地址 T=20;%阈值 [m,n]=size(f); %------梯度法------- f_g=zeros(m,n); for i=2:m-1 for j=2:n-1 f_g(i,j)=abs(f(i+1,j)-f(i,j))+abs(f(i,j+1)-f(i,j)); if f_g(i,j)<T f_g(i,j)=0; else f_g(i,j)=255; end end end figure(1); subplot(2,4,1);imshow(uint8(f_g));title('梯度法'); %------roberts算子------- f_r=zeros(m,n); for i=2:m-1 for j=2:n-1 f_r(i,j)=abs(f(i+1,j+1)-f(i,j))+abs(f(i,j+1)-f(i+1,j)); if f_r(i,j)<T f_r(i,j)=0; else f_r(i,j)=255; end end end %f_r=imbinarize(imfilter(f,r),T); subplot(2,4,2);imshow(uint8(f_r));title('Roberts算子'); %------prewitt算子------- f_p=zeros(m,n); for i=2:m-1 for j=2:n-1 f_p(i,j)=abs(f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)-f(i-1,j+1)-f(i,j+1)-f(i+1,j+1))+abs(f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)-f(i-1,j-1)-f(i-1,j)-f(i-1,j+1)); if f_p(i,j)<15 f_p(i,j)=0; else f_p(i,j)=255; end end end subplot(2,4,3);imshow(uint8(f_p));title('Prewitt算子'); %------sobel算子------- f_s=zeros(m,n); for i=2:m-1 for j=2:n-1 f_s(i,j)=abs(f(i-1,j-1)+2*f(i,j-1)+f(i+1,j-1)-f(i-1,j+1)-2*f(i,j+1)-f(i+1,j+1))+abs(f(i+1,j-1)+2*f(i+1,j)+f(i+1,j+1)-f(i-1,j-1)-2*f(i-1,j)-f(i-1,j+1)); if f_s(i,j)<T f_s(i,j)=0; else f_s(i,j)=255; end end end subplot(2,4,4);imshow(uint8(f_s));title('Sobel算子'); %------krisch算子------- k(:,:,1)=[-3,-3,-3; -3,0,5; -3,5,5]; k(:,:,2)=[-3,-3,5; -3,0,5; -3,-3,5]; k(:,:,3)=[-3,5,5; -3,0,5; -3,-3,-3]; k(:,:,4)=[-3,-3,-3; -3,0,-3; 5,5,5]; k(:,:,5)=[5,5,5; -3,0,-3; -3,-3,-3]; k(:,:,6)=[-3,-3,-3; 5,0,-3; 5,5,-3]; k(:,:,7)=[5,-3,-3; 5,0,-3; 5,-3,-3]; k(:,:,8)=[5,5,-3; 5,0,-3; -3,-3,-3]; kk=zeros(size(f)); I=double(f); for i=1:8 f_k(:,:,i)=conv2(I,k(:,:,i),'same'); kk=max(kk,f_k(:,:,i)); end f_kk=imbinarize(kk,600); subplot(2,4,5);imshow(f_kk);title('Krisch算子'); %------LoG算子------- log1=[0 0 -1 0 0; 0 -1 -2 -1 0; -1 -2 16 -2 -1; 0 -1 -2 -1 0; 0 0 -1 0 0]; f_l=conv2(f,log1,'same'); f_ll=imbinarize(abs(f_l),300); subplot(2,4,6);imshow(f_ll);title('LoG算子'); %------拉普拉斯算子------- I=f; I=im2double(I); [M,N]=size(I); B=zeros(size(I)); for x=2:M-1 for y=2:N-1 B(x,y)=I(x+1,y+1)+I(x-1,y-1)+I(x-1,y+1)+I(x+1,y-1)+I(x+1,y)+I(x-1,y)+I(x,y+1)+I(x,y-1)-8*I(x,y); end end I=im2uint8(I); B=im2uint8(B); subplot(2,4,7);imshow(I);title('原图'); subplot(2,4,8);imshow(B);title('拉普拉斯算子后的图'); 现象:分析:通过比较提取边缘效果,可以发现Roberts算子的边缘定位较准确,但是抗噪声能力较弱。Sobel算子有平滑差分作用,它利用像素临近区域的梯度值来计算一个像素的梯度,然后进行取舍。拉普拉斯高斯算子通过对图像进行微分操作实现边缘检测,所以对离散点和噪声较敏感,可以强化突变,并且保留部分物体内部。实验二:编程实现灰度图像阈值分割,至少包括: 固定阈值分割、最大类间方差(Otsu)方法、最佳熵自动门限方法,并比较不同算法分割的效果及影响因素。代码由于算法复杂,此程序需要执行很长时间如果遇到没反应请等待一会即可tip:担心报错请用下面图片处理I=imread('D:\图片\image\liuhangyu.jpg'); imshow(I); %输出直方图 figure;imhist(I); %人工选定阈值进行分割,选择阈值为120 [width,height]=size(I); T1=120; for i=1:width for j=1:height if(I(i,j)<T1) BW1(i,j)=0; else BW1(i,j)=1; end end end figure;imshow(BW1),title('人工阈值进行分割'); %自动选择阈值 T2=graythresh(I); BW2=im2bw(I,T2);%Otus阈值进行分割 figure;imshow(BW2),title('Otus阈值进行分割'); count = imhist(I); %图像的直方图 [m,n] = size(I); N = m*n; L = 256; count = count/N; %每一个像素的分布概率 for i = 1:L if count(i) ~= 0 st = i-1; break; end end for i = L:-1:1 if count(i) ~= 0 nd = i-1; break; end end f = count(st+1:nd+1); %f是每个灰度出现的概率 size(f); E=[]; for Th = st:nd+1 Hbt = 0; Hwt = 0; Pth = sum(count(1:Th+1)); for i = 0:Th %计算图像背景的熵 Hbt = Hbt-count(i+1)/Pth*log(count(i+1)/Pth+0.01); end for i = Th+1:L-1; %计算图像目标的熵 Hwt = Hwt-count(i+1)/(1-Pth)*log(count(i+1)/(1-Pth)+0.01); end E(Th-st+1) = Hbt+Hwt; end position = find(E==(max(E))); Ht = st+position-100; for i = 1:m for j = 1:n if a(i,j)>Ht a(i,j) = 0; %对图像分割 else a(i,j) = 255; end end end figure,imshow(I),title('最佳熵自动门限方法'); 报错,换上面提示的图片处理实验现象应有5张图,不要出现数组超出
2021年05月11日
549 阅读
3 评论
3 点赞
2021-05-01
matlab实现灰度图像空间域滤波
实验目的:掌握采用图像灰度图像空间域平滑、去噪的一般方法方法,并编程实现。实验内容:编程实现灰度图像空间域滤波:至少包括 3×3、5×5窗口的均值滤波与中值滤波,并比较不同方案增强后的效果及影响因素。实验平台:Matlab实验代码:%matlab实现灰度图像空间域滤波,自定义窗口的均值、中值、高斯滤波,189064238刘航宇 try %步骤一:彩色、灰度变换 h=imread('D:\图片\image\liu.jpg'); %读入彩色图片 subplot(2,2,1),imshow(h);title('原图'); %显示原图像 c=rgb2gray(h); %把彩色图片转化成灰度图片,256级 subplot(2,2,2),imshow(c),title('原始灰度图象'); %显示原始图象 g=imnoise(c,'gaussian',0.1,0.002); %加入高斯噪声 subplot(2,2,3),imshow(g),title('加入高斯噪声之后的图象'); %显示加入高斯噪声之后的图象 %步骤二:用系统预定义滤波器进行均值滤波 n=input('请输入均值滤波器模板大小\n'); A=fspecial('average',n); %生成系统预定义的3X3滤波器 Y=filter2(A,g)/255; %用生成的滤波器进行滤波,并归一化 figure,imshow(Y),title('用系统函数进行均值滤波后的结果'); %显示滤波后的图象 %步骤三:用Matlab系统函数进行中值滤波 n2=input('请输入中值滤波的模板的大小\n'); Y1=medfilt2(g,[n2 n2]); %调用系统函数进行中值滤波,n2为模板大小 figure,imshow(Y1),title('用Matlab系统函数进行中值滤波之后的结果'); %显示滤波后的图象 %步骤四:用matlab系统函数进行高斯滤波 n3=input('请输入高斯滤波器的均值\n'); k=input('请输入高斯滤波器的方差\n'); A2=fspecial('gaussian',k,n3); %生成高斯序列 Y2=filter2(A2,g)/255; %用生成的高斯序列进行滤波 figure,imshow(Y2),title('用Matlab函数进行高斯滤波之后的结果'); %显示滤波后的图象 catch %捕获异常 disp(lasterr); %如果程序有异常,输出 endps:方差填1,2,3,4任意一个即可步骤及其实验现象:然后输入模板大小然后产生三个图窗然后输入 clc;clear重新输入本代码,完成5*5模板,在此不再赘述。结果分析:请自行上网查询均值、中值、高斯滤波区别、学习。
2021年05月01日
346 阅读
0 评论
5 点赞
2021-04-24
基于DSP实现FIR滤波器实验解答
主频80MHZ,晶振20MHZ,定时125us,4阶滤波器,0.1,0.2,-0.1,-0.2,端口4进8出实现:asm程序 .title "FIR.asm" .mmregs .def _c_int00 STACK .usect "stk",10H .sect "vectors" x .usect "x",4 h .usect "h",4 .bss y,1 PA4 .set 4 PA8 .set 8 .data table .word 1*32768/10 .word 2*32768/10 .word -1*32768/10 .word -2*32768/10 .text _c_int00: LD #0006h,DP STM #STACK+10H,SP SSBX INTM RSBX SXM STM #0825H,PMST STM #0669H,TCR STM #3007H,CLKMD STM #999,PRD STM #008H,IMR STM #0FFFH,IFR SSBX FRCT STM #h,AR2 RPT #3 MVPD table,*AR2+ STM #y,AR5 STM #x+3,AR1 STM #h+3,AR2 STM #3,AR0 STM #x,AR4 FIR: PORTR PA4,*AR3 LD *AR1-,T MPY *AR2-,A ;4 LTD *AR1- MAC *AR2-,A ;3 LTD *AR1- MAC *AR2-,A ;2 LTD *AR1+0 MAC *AR2+0,A ;1 STH A,*AR5 PORTW *AR5,PA8 RETE loop: B loop B _c_int00 nop nop NMT rete nop nop nop SINT17 .space 4*14*16 TIN0: rsbx intm rete NOP NOP .space 4*18*16 TINT: B FIR nop nop .endcmd文件MEMORY {PAGE 0: VECS: origin=0800H,length=0500H PROG: origin=1600H,length=0500H DATA: origin=2400H,length=0500H PAGE 1: BSS: origin=0300H,length=0200H XSPACE: origin=0500H,length=0010H HSPACE: origin=0510H,length=0010H STACK: origin=0600H,length=0500H } SECTIONS { .data :>DATA PAGE 0 .text :>PROG PAGE 0 vector :>VECS PAGE 0 .bss :>BSS PAGE 1 x :>XSPACE PAGE 1 h :>HSPACE PAGE 1 .stk :>STACK PAGE 1 }实验现象:波形:
2021年04月24日
347 阅读
1 评论
2 点赞
2021-04-01
基于点处理的图像增强matlb实现线性变换和直方图均衡
引言图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。增强的首要目标是处理图像,使其比原始图像更适合于特定应用。图像增强的方法主要分为两类: 空间域增强法和频域增强法。“空间域”一词是指图像平面本身,这类方法是以对图像像素直接处理为基础的;“频率域”处理技术是以修改图像的傅氏变换为基础的。 增强处理可将其灰度范围拉伸到0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。增强主要以图像的灰度直方图最为分析处理的基础。直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。基于点处理的图像增强方法有:灰度线性变换、灰度非线性变换、灰度分段线性变换和直方图均衡化,本文主要讨论灰度分段线性变换和直方图均衡化对图像的增强,并用MATLAB进行实验验证。图像增强的研究意义图像增强是数字图像处理的最基本的方法之一,它是为了改善视觉效果或便于人或机器对图像的分析理解,根据图像的特点或存在的问题,以及应用目的所采取的改善图像质量的方法或加强图像的某些特征的措施。图像在成像、采集、运输、复制等过程中不可避免地会造成某些降质。如在成像过程中由于光学系统会导致图像失真,不同的光照条件会使图像的曝光度差异很大,运动状态下成像会使图像模糊;而在传输过程中,各种噪声和干扰将污染图像。因此,通常需要对降质的图像进行预处理,以满足后期处理及分析的需要。图像复原是改善图像的一类方法,这类方法会尽可能还原图像的本来面目,追求提高图像的保真度。而图像增强则是一类追求图像可懂度的方法,通过处理有选择地突出某些感兴趣的信息,便于人或机器分析这些信息,抑制一些无用的信息,以提高图像的使用价值。图像增强处理后的图像比原始图像更适合于具体应用。由于成像和传输过程的差异性很大,决定了图像增强的方法只能有选择性地使用。实际应用时,需要根据所针对的处理图像、需要解决的问题以及最终要达到的效果等情况,合理选择合适的图像增强算法,并做适当的优化。图像增强处理后的图像比原始图像更适合于具体应用。由于成像和传输过程的差异性很大,决定了图像增强的方法只能有选择性地使用。实际应用时,需要根据所针对的处理图像、需要解决的问题以及最终要达到的效果等情况,合理选择合适的图像增强算法,并做适当的优化。实验目的1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。2、掌握灰度分段线性变换的图像增强方法。3、学会用直方图均衡化对图像进行增强。实验内容一、灰度分段线性变换1、理论基础:在某些情况下,为了将图像灰度级整个范围(AB) 或其中某一段扩展或压缩到另一灰度范围(z1,zk) 质内,称灰度的线性变换。分段线性变换和灰度的线性变换有点类似,都用到了灰度的线性变换。但不同之处在于分段线性变换不是完全的线性变换,而是分段进行线性变换。将图像灰度区间分成两段乃至多段,分别作线性变换称之为分段线性变换,如图,分段线性变换的优点是可以根据用户的需要,拉伸特征物体的灰度细节,相对抑制不感兴趣的灰度级。图中的(0,a),(a,b),(b,255)等变换区间边界能通过键盘随时做交换式输入,因此,分段线性变换是非常灵活的。它的灰度变换函数如图所示,函数表达式如下:式中,(a,c)和(b,d)是图中两个转折点坐标。该变换函数的运算结果是将原图在a和b之间的灰度拉伸到c和d之间。通过选择的拉伸某段灰度区间,能够更加灵活地控制图像灰度直方图的分布,以改善输出图像量。如果一幅图像灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来拉伸(斜率>1)物体灰度区间以改善图像质量;同样如果图像灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。2、程序设计:clc; clear all; %刘航宇 X1=imread('图片路径'); subplot(2,2,1),imshow(X1);title('原图'); f0=0;g0=0;%折线点赋值 f1=20;g1=10; %参数自己改动,不要完全复制我的 f2=130;g2=180; f3=255;g3=255; subplot(2,2,2),plot([f0 f1 f2 f3],[g0 g1 g2 g3]); axis tight,xlabel('f'),ylabel('g'),title('灰度变换曲线'); r1=(g1-g0)/(f1-f0);%第一段折线的斜率 b1=g0-r1*f0;%计算截距1 r2=(g2-g1)/(f2-f1); b2=g1-r2*f1; r3=(g3-g2)/(f3-f2); b3=g2-r3*f2; [m,n]=size(X1); for i=1:m for j=1:n f=X1(i,j); if(f<f1) g(i,j)=r1*f+b1; elseif(f>=f1)&(f<=f2) g(i,j)=r1*f+b1; else(f>=f2)&(f<=f3) g(i,j)=r3*f+b3; end end end subplot(2,2,3),imshow(g);title('灰度变换后');3、运行结果:二、直方图均衡化1、理论基础:(1)直方图的定义在图像处理中提到的直方图是指灰度直方图。它定义为统计图像中具有某种灰度的像素数目(或频率=像素数目/图像总的像素个数)的函数。灰度直方图概括了图像中各灰度级的含量,提供了原图的灰度值分布情况[12],也可以说给出了1幅图所有灰度值的整体描述。什么是灰度直方图呢?灰度直方图(histogram)是灰度级的函数,它表示图像中具有每种灰度级的象素的个数,反映图像中每种灰度出现的频率[8]。设变量r代表图像中像素灰度级。在图像中,像素的灰度级可作归一化处理,这样,r的值将限定在下述范围之内: 0 ≤ r ≤ 1 在灰度级中,r=0代表黑,r=1代表白。对于一幅给定的图像来说,每一个像素取得[0,1]区间内的灰度级是随即的,也就是说r是一个随即变量。假定对每一瞬间它们是连续的随即变量,那么,就可以用概率密度函数pr(r)来表示原始图像的灰度分布。如果用直角坐标系的横轴代表灰度级r,用纵轴代表灰度级的概率密度函数pr(r),这样就可以针对一幅图像在这个坐标系中作一条曲线来。这条曲线在概率论中就是分布密度曲线(见图2.1)从图像灰度级的分布可以看出一幅图像的灰度分布特性。例如上图中的两个灰度密度分布函数中可以看出: (a)的大多数像素灰度值取在较暗的区域,所以这幅图像较暗,一般在摄影过程中暴光过强就会造成这种后果;而(b)图像的像素灰度值集中在亮区,因此,图像(b)的特性将偏亮,一般在摄影中暴光太脆弱将导致这种结果。当然,从两幅图像的分布来看图像的质量均不理想。为了有利于数字图像处理,必须引入离散形式。在离散形式下,用rk代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立:(2)灰度直方图面积为A的连续图像f(x,y)经数字化后,成为M行N列的数字图象f(m,n)。一般而言,在数字图像f(m,n)中取不同灰度值的像素的数目是不同的。直方图是用于表达图像灰度分布情况的统计图表[4]。其横坐标是灰度值r,纵坐标是出现这个灰度值的概率密度p(r)(对连续图像f(x,y)而言),或者是出现这个灰度值的概率值p(ri)(对数字图像f(m,n)而言),参见图2.3。(3)直方图均衡化直方图均衡化是图象增强中点运算的一种最常用的直方图修正法[10]。其实质是减少图像的灰度等级以换取对比度的扩大。它把给定图像的直方图分布改造成均匀直方图分布,其本质是扩大了量化间隔,减少量化级别。因此,会出现这样的效果,原来灰度不同的象素经处理后可能变为相同,形成了一片相同灰度的区域;各区域之间有明显的边界,出现伪轮廓,图像的对比度增加。但是由于在均衡化过程中,原直方图上频数较少的灰度级被并入少数几个或一个灰度级,对应的图像部分将得不到增强。直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布[5]。对于图像的灰度变换,我们这里介绍一种稍微复杂一点的方法,既直方图均衡化。直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。若像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S是归一化后的灰度值,其灰度变换函数T()为:2.统计原始图像各灰度级的像素数目nk3.计算原始图像直方图各灰度级的频率数4.计算原始图像的累计直方图5.取整计算:Sk=int[(N-1)tk+k/N]6.确定映像关系:Sk-->tk7统计新直方图各个灰度级的像素Nk8.计算新的直方图:pt(tk)=nk/N 2、程序设计:clear all %预处理,彩图灰度化 PS=imread('图片位置');%读入彩色图像文件 imshow(PS) %显示出来 title('输入的彩色图像') %刘航宇 imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存 PS=rgb2gray(PS); %灰度化后的数据存入数组 %二、绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置 end figure,bar(0:255,GP,'g') %绘制直方图 title('原图像直方图') xlabel('灰度值') ylabel('出现概率') %三、直方图均衡化 S1=zeros(1,256); for i=1:256 for j=1:i S1(i)=GP(j)+S1(i); %算sk end end S2=round((S1*256)+0.5); %将Sk归到相近级的灰度 for i=1:256 GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率 end figure,bar(0:255,GPeq,'b') %显示均衡化后的直方图 title('均衡化后的直方图') xlabel('灰度值') ylabel('出现概率') %四、图像均衡化 PA=PS; for i=0:255 PA(find(PS==i))=S2(i+1); %各个像素归一化赋给这个像素 end figure,imshow(PA) %显示均衡化后的图像 title('均衡化后图像') imwrite(PA,'PicEqual.bmp'); %图片格式自己改改,中文描述改改,不要光复制我的程序 3、运行结果:原图:4、结果分析:直方图均衡化是图像增强技术的基本方法,本文分析了这种处理方法的基本理论,并用Matlab 进行实验,结果表明,直方图均衡化在一定程度上改善了图像的对比度差和灰度动态范围,增强了图像的可读性,提高了地物的可分性,有利于进行遥感图像的目视解译。 该算法简单,是一种行之有效的图像增强算法。
2021年04月01日
633 阅读
1 评论
6 点赞
1
2
3
4