- 博客(31)
- 收藏
- 关注
原创 关于编译原理——设计子集词法分析器(基于C语言实现)
词法分析器(Lexer)是编译器中的一个重要模块,它的工作是读取源程序的文本内容,并将其分割成一个个具有独立意义的单词,或者称之为“标记”(Token)。①保留字(Keywords):语言中的预定义单词,具有特定的语法意义,比如C语言中的intreturn等。②标识符(Identifiers):用户自定义的变量、函数、类名等。③常数(Constants):例如整数、浮点数或字符常量。④运算符(Operators):比如加号、减号、乘号等,用于表达计算。⑤分隔符(Separators)
2025-04-09 15:08:13
367
原创 关于数字信号与图像处理——基于C/C++编程实现直方图均衡化与卷积滤波
在现代图像处理领域,图像增强与过滤技术是不可或缺的工具,广泛应用于医学图像分析、卫星图像处理、计算机视觉等多个领域。本篇博客将从数字信号与图像处理的角度,探讨如何通过C/C++编程实现两种经典的图像处理算法:直方图均衡化(Histogram Equalization, histeq)与卷积滤波(Convolution Filtering, imfilter)。
2025-04-08 18:29:35
556
原创 关于数字信号与图像处理——因果系统的幅频响应与相频响应分析(基于Matlab实现)
给定的系统是一个线性时不变系统,具有以下的传递函数H(z):在这个传递函数中,分子是一个二阶多项式,分母也是一个二阶多项式。传递函数中的每一项都涉及到 z^(-1) 这种形式,意味着这是一个离散时间系统。我们需要分析其幅频响应和相频响应,这对于理解系统在频域中的表现至关重要。系统的频率响应是系统对不同频率信号的反应。
2025-04-04 14:23:43
212
原创 关于数字信号与图像处理——混叠现象的应用与研究(基于Matlab软件实现)
掌握信号处理的基本思想,理解采样信号的频谱特性,加强信号采样与重建的有关基本概念的理解,深入理解线性时不变系统输出与输入的关系,了解数字信号采样率转换前后信号频谱的特征。在数字信号处理(DSP)中,混叠(aliasing)是一个非常重要且具有挑战性的问题。它发生在采样过程中,尤其是信号的采样频率低于信号的Nyquist频率时。混叠现象会导致信号的高频成分折叠到低频范围,从而使原始信号无法准确还原。在本篇博客中,我将结合具体的数字信号分析题目,探讨混叠现象的原理以及如何通过周期扩展和绘制图像来分析混叠效应。
2025-04-03 20:33:28
518
原创 关于Java程序设计——几个重要模式的学习心得
装饰模式包括以下四种元素:抽象组件(Component)、具体组件(ConcreteCompoment)、装饰(Decorator)、具体装饰(ConcreteDecorator)。访问者模式结构包含以下四种角色:抽象元素(Element)、具体元素(ConcreteElement)、抽象访问者(Visitor)、具体访问者(ConcreteVisitor)。装饰也是抽象组件的一个子类,是“装饰着”的角色,它的作用是装饰具体组件。具体策略是先策略接口所定义的抽象方法,即给出算法标识的具体算法。
2023-12-23 19:37:00
412
原创 关于Java程序设计——泛型与集合框架的学习心得
Java泛型的主要目的是可以建立具有类型安全的数据结构,如链表、散列表等数据结构,最重要的一个优点就是:在使用这些泛型类建立的数据结构时,不必进行强制类型转换,即不要求进行运行时类型检查。Java推出泛型的主要目的是为了建立具有类型安全的数据结构,如链表、散列映射等。HashMap<K,V>泛型类实现了泛型接门Map<K,V>HashMap<K,V>类中的绝大部分方法都是Map<k,V>接口方法的实现。可以使用“class+名称+<泛型列表>”声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类。
2023-12-21 21:59:32
477
原创 关于Java课程设计——内部类与异常类的学习心得
直接使用一个类的子类的类体创建一个子类对象,这个类体被认为是一个子类去掉类声明后的类体,称为匿名类。匿名类可以继承父类的方法也可以重写父类的方法。在使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。(2)在内部类的类体中不可以声明类变量和类方法,在外嵌类的类体中可以用内部类生命对象作为外嵌类的成员。(1)内部类的外嵌类的成员变量在内部类中依然有效,内部类中的方法也可以调用外嵌类中的方法。内部类是指在一个类中声明另一个类,这样的类称为内部类,而包含内部类的类称为外嵌类。
2023-12-19 22:36:27
443
原创 关于Java程序设计——Servlet编程的学习心得
②HTTP请求类型:GET(浏览或下载)、POST(表单提交、数据发布)、PUT(上传)、HEAD(返回头部信息)、DELETE(删除)、OPTIONS(查询服务器支持的功能)③HTTP响应信息包括:使用的HTTP协议版本、HTTP状态代码、HTTP状态代码对应的简要说明、响应标题信息(响应头)、实体标题及响应主题(消息体)①HTTP的请求主要包括:HTTP请求的方法、请求的资源URI、使用的HTTP版本、请求标题信息(请求头)、请求信息主体(消息体)。
2023-12-13 22:55:28
102
原创 关于Java课程设计——HTML基础
Nescape公司和Sun公司一起在1995年重新设计了LiveScript,并改名为JavaScript。常用的工具有:记事本、EditPlus/UltraEdit、FrontPage、DreamWeaver、Word等。JavaScript是一种跨平台、基于对象 (Object) 和事件驱动(Event Driven) 的解释型的脚本程序开发语言。⑩u/b/i/strike/sub/sup:下划线/粗体字/斜体字/删除线/下标/上标。⑦table/th/tr/td:表格/表格头/行/单元格。
2023-12-12 17:05:46
49
原创 关于计算机组成原理——虚拟存储器的学习心得
而当我们想要在一台更大或更小内存的系统上运行程序时,我们就需要根据新系统的配置重新修改内存数组的值,这是非常耗费时间的。当发生缺页时,操作系统需要将一整页的数据在DRAM与磁盘间进行替换,由于磁盘速度远慢于DRAM,在程序中局部性起到决定性作用。虚拟存储器把主存看成是一个存储在磁盘地址空间上的高速缓存,在主存中只保存活动区域,根据用户的需要在磁盘和主存之间来回传送数据。我们可以通过建立虚拟地址和物理地址的关系表格,在程序运行时只需要通过查找表格,就能得到物理地址,从而完成访存。
2023-12-09 23:49:16
109
原创 关于汇编语言与接口技术——单片机的AD转换(ADC芯片)
逐次比较型A/D转换器,在精度、速度和价格上都适中,是最常用的A/D转换器。双积分型A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,与逐次比较型A/D转换器相比转换速度较慢,近年来在单片机应用领域中已得到广泛应用。②分辨率:分辨率是衡量ADC转换器能够分辨出输入模拟量最小变化程度的技术指标,取决于ADC转换器的位数。③转换精度:是一个实际ADC转换器与一个理想ADC转换器在量化值上的差值,用绝对误差或相对误差表示。①转换时间或转换速率:转换时间是指ADC转换器完成一次转换所需要的时间。
2023-12-07 15:23:34
775
原创 关于汇编语言与接口技术——单片机的AD转换(DAC芯片)
1.DAC转换器介绍:普通的单片机只能输出数字量(Digital),但对于某些控制场合,常常需要输出模拟量,所以需要用到DAC转换,将单片机输出的数字量转换为模拟量进行具体操作。①分辨率:指单片机输入给DAC转换器的单位数字量的变化,所引起的模拟量输出的变化。其中需要注意的是,CS端引脚为片选信号,WR1为写输入锁存器,WR2为写DAC寄存器,XFER的主要功能是允许输入锁存器的数据传送到DAC寄存器。②电流输出,建立时间为us;③转换精度:理想情况下,转换精度与分辨率精度一致,位数越多精度越高。
2023-12-05 18:31:45
521
1
原创 关于汇编语言与接口技术——IIC总线扩展IC卡的设计学习心得
单片机发送启动信号后,先发送含有AT24C02地址的写操作控制字AT24C02应答后,单片机再发送1字节的指定单元的地址,AT24C02应答后再发送1个含有AT24C02地址的读操作控制字,此时如果AT24C02做出应答,被访问单元的数据就会按SCL信号同步出现在SDA线上,供单片机读取。单片机先发送启动信号和1字节的寻址字节,再发送1字节的存储器起始单元地址,上述几个字节都得到AT24C02的应答后,就可以发送最多1页的数据,并顺序存放在已指定的起始地址开始的相继单元中,最后以终止信号结束。
2023-12-02 22:41:23
187
1
原创 关于计算机组成原理——CPU模型性能改进的学习心得
其中,Cache对“程序指令数”和“时钟周期”通常不会有影响,而对“每条指令所需的时钟周期数”存在一定影响。如果没有Cache,访存指令会花费更多的时钟周期访问主存,导致在访存过程中出现过多的“缺失”。但是这三个指标之间可能是彼此矛盾的,优化其中的一个也许可能会损害其他几个的性能。=程序的指令数*(正常执行时平均每条指令所需的时钟周期数+=程序的指令数*(正常执行时平均每条指令所需的时钟周期数+在前几节课的学习中,我们知道。改进后的CPU时间=程序的指令数*
2023-11-30 17:07:50
227
原创 关于汇编语言与接口技术——单片机系统的串行扩展技术的学习心得
I2C总线上的每个器件的接口处都有一定的等效电容,器件越多,电容值就越大,就会造成信号传输的延迟。在SPI串行扩展系统中,作为主器件的单片机在启动一次传送时,便产生8个时钟,传送给外围器件作为同步时钟,控制数据的输入和输出。数据线上输出数据的变化以及输入数据时的采样,都取决于SCK但对于不同的外围芯片,有的可能是SCK的上升沿起作用,有的可能是SCK的下降沿起作用。与并行扩展相比,串行接口器件需要连接的I/O口线相对较少,极大简化了器件间的连接,提高可靠性,降低了电路板的空间和成本。
2023-11-28 11:41:47
341
原创 关于汇编语言与接口技术——串行口的应用的学习心得
与RS-232C的主要区别是,收发双方的信号地不在共地,RS-422A采用了平衡驱动和差分接收的方法。AT89S51串行口的输入、输出均为TTL电平,抗干扰性差,传输距离短,传输速率低,为提高串行通信的可靠性,增大串行通信的距离和提高传输速率,均采用标准串行接口,如RS-232\RS-422A\RS-485等。RS-232C标准规定电缆长度限定在<=15m,如果双机通信距离在此距离之间,可以利用RS-232C标准接口实现点对点的双机通信,接口电路如下所示。(2)RS-232C双机通信接口。
2023-11-25 23:49:59
316
原创 关于计算机组成原理——Cache硬件设计的学习心得
对于MIPS32指令集体系结构为例,由于多个主存块地址可以指向同一个Cache地址,Cache会通过增加额外的标记(Tag),来表明该数据的真正来源,帮助处理器正确辨别Cache当中的块是否是CPU真正需要的。因此,在程序运行过程中,极有可能会出现多个主存块同时运行同一个Cache块的现象,这时就需要Cache与主存进行直接映射。若Cache中存在需要的数据,则将所需数据存入寄存器文件;若Cache中不存在需要的数据,则先从主存储器获得数据(若标记匹配,则说明当前的Cache块是CPU所需要的;
2023-11-23 09:27:54
643
原创 关于汇编语言与接口技术——单片机定时器/计数器的学习心得
在AT89S51定时器/计数器中,两种工作模式指的是定时器和计数器,四种工作方式指的是方式0、方式1、方式2和方式3。上图中提到的特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式,TCON用于控制T0、T1的启动和停止计数。(3)计算出计数次数X后,根据中断服务子程序的相关知识进行编程设计。(1)根据题目所给的定时时长确定采用哪一种工作方式。1.方式0逻辑结构图。2.方式1逻辑结构图。3.方式2逻辑结构图。4.方式3逻辑结构图。(2)确定工作方式后,计算计数初值X。
2023-11-18 19:28:17
1311
1
原创 关于计算机组成原理——存储器层次结构的学习心得
在处理器和主存储器之间增加了一个被称为Cache的存储器,该存储器可以长久存放被重复访问的数据;合适的存储器层次结构是计算机体系结构设计中程序员根据程序局部性解决存储器速度和容量问题的方案。速度最慢,容量最大并且每GB价格最便宜的存储器处于底层。指令存储器为处理器的执行提供指令,数据存储器为寄存器文件提供更大容量的存储空间。理想的存储器应在一个周期内提供指令或数据,同时需要较大的容量。现代常用的存储器包括SRAM、DRAM、闪存和磁盘等,她们都有一个同样的特点:速度快的存储容量不大,容量大的速度不快。
2023-11-16 08:52:48
175
1
原创 关于汇编语言与接口技术——开关的学习心得
消除按键抖动有两种方法,一种是用软件延时来消除键盘抖动:在检测到有按键按下时,该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10ms的子程序后,检测该行线为高电平,说明按键确实已经松开。8x8LED点阵显示模块中的每个发光二极管都放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平时,该发光二极管被点亮。对行线高低电平状态的检测,可以确认按键是否按下或松开。
2023-11-13 19:12:37
130
原创 关于计算机组成原理——线程级并行的学习心得(二)
此外我还了解到OpenMP有三种工作方式:静态方式、动态方式和任务并行方式,我们主要利用OpenMP的任务并行特点来实现归约操作。我们可以通过OpenMP中的归约操作(reduction)来指定某个变量是特定线程私有的,在并行处理结束后对这些变量进行归约运算,将运算后的结果返回主线程。通过DevC++中展示的代码段,我们可以观察到OpenMP的多个线程都可以访问同一个地址空间,因此变量sum对于各个线程来说是共享的,且各个线程更新sum的时机决定了sum的结果是否正确。
2023-11-11 22:50:36
74
1
原创 关于汇编语言与接口技术——中断系统的学习心得(二)
当执行完这条指令后,响应中断时所直1的不可寻址的优先级状态触发器清0,然后从堆栈中弹出栈顶上的两个字节的断点地址重新送到程序计数器PC,弹出的第一个字节送入PCH,第二个字节送入PCL,从断点处重新执行程序。通过中断服务子程序的处理,异常不会导致程序的崩溃或者数据丢失,从而保证了程序的稳定性和可靠性。在现场保护和现场恢复之后开中断,是为了下一次中断做准备,此时允许更高级的中断进入。1.若中断服务子程序不允许被其他的中断所中断,则可将“中断处理程序段”前后的“SETB EA”和“CLR EA”两条指令删去。
2023-11-09 16:32:46
282
1
原创 关于汇编语言与接口技术——中断系统的学习心得(一)
本节简单介绍了单片机内功能部件中断系统的硬件结构与工作原理,初步学习了学习单片机中断系统,了解到中断系统的重要性和工作原理,掌握了中断服务程序的编写方法。中断技术主要用于实时监测与控制,要求单片机能及时响应中断请求源提出的服务请求,并做出快速响应、及时处理。当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中午当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。(5)串行口中断请求,中断请求标志为发送中断TI或接收中断RI。中断优先级控制由中断优先级寄存器IP控制。
2023-11-07 00:17:19
211
原创 关于汇编语言与接口技术——I/O口应用的学习心得
需要注意的是,在以上程序中,我们采用了一个新的方法:延时子程序。这个中断子程序可以控制LED灯的发光时间,已达到点亮一段时间后再接着闪烁下一个LED灯的“走马灯“效果。1.静态显示:是指无论多少位的LED数码管,都同时处于显示状态。单片机利用片内的I/O口控制LED发光二极管、LED数码管、LCD显示,以及开关检测和键盘输入等来实现单片机应用系统的基本功能。2.动态扫描显示:当显示位数较多时,静态显示所占用的I/O口较多,为节省I/O口与驱动电路的数目,可使用动态扫描的显示方式。
2023-11-05 17:23:40
572
原创 关于计算机组成原理——计算系统性能的学习心得
计算系统是国家最高科技水平的象征之一,软性方面市场竞争激烈,计算机的性能优势能够带来产品体验的差异化,例如玩游戏时的流畅程度、抢票预约时的成功率、点击网页时的响应速度等;响应时间指的是从开始一个任务到完成该任务所需的时间,在日常生活中,手机、个人计算机更经常使用此标准;吞吐率指的是单位时间内完成的任务数量,数据中心更经常使用此标准。所以我们可以通过提升主频来改进计算系统的性能,如优化物理设计和工艺技术、以更好地逻辑设计减少关键路径带来的延迟,或者设计流水线处理器来提升单周期内执行的总指令数。
2023-11-04 22:41:09
109
1
原创 关于计算机组成原理——线程级并行的学习心得(一)
那么我们为什么使用多线程执行模型?多线程有许多优点,比如可以描述异步事件,程序的运行逻辑更加贴近现实世界;位操作系统的调度提供基础;可以更好利用机器提供的计算资源,提升计算性能等等。线程是一组指令,能够完成特定的任务。每个线程拥有独立的程序计数器、寄存器和栈,但可以共享内存。
2023-11-03 10:24:42
66
原创 关于计算机组成原理——中断与异常的学习心得(二)
通过学习“异常”,我们可以理解重要的系统概念,如I/O的实现,进程和虚拟内存的基本机制,理解应用程序是如何与操作系统交互的,理解软件异常如何工作,理解并发等深层概念。3.本篇初步介绍了中断机制的基本实现方法,通过中断和异常机制,我们能够实现进程/线程的并发执行,并为之后的“线程级并行”打下基础。在上一篇文章中,我们谈到了关于中断与异常一部分学习,接下来我们要学习补充两个案例:除0异常和异常处理过程。2.中断是异常的一种,程序员需要掌握异常的概念,并了解硬件对于异常机制提供的支持。
2023-11-02 20:23:39
190
原创 关于计算机组成原理——中断与异常的学习心得(一)
I/O设备提供一个状态寄存器,告诉处理器是否达到就绪状态,处理器反复读取I/O设备的状态寄存器,从而了解到“新数据数否准备就绪”;中断是指某种非程序预期的事件,使得CPU暂停当前程序,转向为改时间服务的中断处理程序,并在事件处理完毕后,再次恢复执行原来被暂停的程序。2.硬件在中断发生时,会保存中断指令的地址,帮助加载中断服务程序,恢复中断位置,写断电至PC内。3.启动始终模拟后,程序将不在轮询外设的状态,从而节省轮询中断机制的开销。三、程序访问I/O设备的机制:中断。3.理解中断的工作过程。
2023-11-01 11:01:51
231
1
原创 关于计算机组成原理——流水线处理器设计(指令级并行)的学习心得
步骤:将单步运行Logisim,将数据内容写入数据存储器片内,并观察运行结果后流水线性能优化提升了多少倍。1.现代计算系统利用“并行”提升计算性能,而流水线则是其中指令级并行的代表。四、采用数据旁路优化流水线(需要用到Mars仿真器和Logisim电路)2.流水线将处理器划分为多个阶段,从而允许多条指令重叠执行。2.结合CPU执行时间性能模型对流水线技术进行性能分析。三、在迷你处理器上构造多级流水线。1.理解流水线处理器的工作方式。二、流水线技术如何提高性能?一、理想的流水线处理器模型。
2023-10-31 17:21:59
133
1
原创 关于计算机组成原理——数据级并行的学习心得
拓展:在logisim中实现MIPS ALU子电路加法连线输出。3.理解阿姆达尔定律对于SIMD程序性能优化的指导意义。2.了解在现代处理器的数据级并行技术的编程接口。1.理解数据级并行计算的思想。
2023-10-30 20:18:13
68
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人