自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(366)
  • 资源 (4)
  • 收藏
  • 关注

原创 【频域分析及处理】4. FFT 采样频率和采样点数的选取

5、为了保证频率和幅度的准确性(博主理解为在该段采样时间内获取的原信号周期为整数倍,频谱尽可能不泄露),需满足。4、基2-FFT要求点数N为2的指数倍(不考虑补零或截断,采样点数直接等于FFT运算点数),因此可得到大于。1、根据奈奎斯特采样定理保证不混叠且能还原出原信号信息,确定最小采样频率。2、频率分辨率为100Hz,最小采样总时间。的N的可取值序列。......

2022-07-15 18:11:13 10795 7

原创 【C数据结构】队列

设计出两个结构体,一个结构体Node表示结点,其中包含有一个data域和next指针,其中data表示数据,其可以是简单的类型(如int,double等等),也可以是复杂的结构体(struct类型)。当进行动态创建队列的时候,也只不过是向后继续不断的申请内存空间,即使前面出队操作释放掉了前面的空间,但是指针依旧会向后进行移动,直到达到系统预留给程序的内存上界被强行终止。设计另一个结构体,其包括了两个分别永远指向队列的队尾和队头的指针,我们主要的操作只对这两个指针进行操作。

2024-04-18 17:21:46 640

原创 中缀表达式求值

【代码】中缀表达式求值。

2024-04-17 20:42:40 253

原创 【C 数据结构】栈

【代码】【C 数据结构】栈。

2024-04-15 11:09:11 795

原创 【C 数据结构】循环链表

在init重创建的结点next指向空,而在主函数调用创建之后手动 将head头结点的next指针指向自身。找到需要删除的结点,将其前一个结点的next指针直接指向删除结点的下一个结点。问题就是获取到链表的节点数同时也需要完成一次遍历才可以达成目标。在原有的双向链表的基础上,将尾部结点和头部结点进行互相连接。循环链表的尾指针指向的是链表的开头。

2024-04-11 11:33:27 677

原创 【C 数据结构】双向链表

双链表删除结点时,只需遍历链表找到要删除的结点,然后将该节点从表中摘除即可。每个节点存在前后两个指针,分别指向前驱节点和后继节点。

2024-04-11 10:14:59 683

原创 【C 数据结构】静态链表

数据全部存储在数组中(和顺序表一样),但存储位置是随机的,数据之间的逻辑关系通过一个整形变量(称为"游标",和指针功能类似)维持(和链表类似)a[0] 是备用链表的第一个节点,我们知道它的位置,操作它的直接后继节点相对容易,无需遍历备用链表。备用链表最后1个节点的游标为 0 即指向表头,备用链表第1个节点存有值,则表明数据已存满。

2024-04-11 09:32:10 1071

原创 【C 数据结构】单链表

---------------------------------------以下对链表的操作实现均建立在已创建好链表的基础上,该链表是一个具有头节点的链表。由于头节点本身不用于存储数据,因此在实现对链表中数据的"增删查改"时要引起注意。将插入位置前结点的 next 指针指向插入结点,除非再添加一个指针,作为插入位置后续链表的头指针,否则会导致插入位置后的这部分链表丢失。不存任何数据的空节点,通常作为链表的第一个节点。链表实际存储的是一个一个的节点。永远指向链表第一个节点的位置。第一个存有数据的节点。

2024-04-10 16:09:30 841

原创 【C 数据结构】顺序表

顺序表存储数据时,会提前申请一整块足够大小连续的物理空间,然后将数据依次存储起来,存储时做到数据元素之间不留一丝缝隙。顺序表申请的存储容量要大于顺序表的长度。

2024-04-10 11:01:13 597

原创 【C 数据结构】线性表

使用线性表存储的数据,要求数据类型必须一致。

2024-04-10 10:21:10 498

原创 C++ 学习笔记

当 value 类型为 char* 时,cout会从 value 这个 char * 地址开始遍历地址对应的元素直至遇到 ‘\0’ 字符。

2024-04-08 17:29:28 855

原创 C++ 十进制转十六进制

【代码】C++ 十进制转十六进制。

2024-04-08 09:39:44 148

原创 【C++ STL算法】sort 排序

快速排序。

2024-04-07 09:25:26 1059

原创 【C++ STL有序关联容器】map 映射

无论是调用复制构造函数还是调用拷贝构造函数,前提是需要保证两个容器的类型一致。map容器会自动根据各键值对中键的大小,按照既定的规则进行。使用 map 容器存储的各个键值对,

2024-04-06 20:23:53 1152

原创 【C++ STL序列容器】deque 双端队列

当操作对象是容器时,它和容器包含的 begin() 和 end() 成员函数的功能完全相同;如果操作对象是普通数组,则 begin() 函数返回的是指向数组第一个元素的指针,同样 end() 返回指向数组中最后一个元素之后一个位置的指针(注意不是最后一个元素)。deque 容器还有一个std::swap(x , y) 非成员函数(其中 x 和 y 是存储相同类型元素的 deque 容器),它和 swap() 成员函数的功能完全相同,仅使用语法上有差异。deque 还擅长在序列头部添加或删除元素。

2024-04-06 16:32:48 814

原创 【C++ STL容器适配器】queue 队列

因此访问元素的唯一方式是遍历容器,通过不断移除访问过的元素,去访问下一个元素。

2024-04-06 16:05:46 939

原创 【C++ STL容器适配器】stack 栈

【代码】【C++ STL容器适配器】stack栈。

2024-04-06 15:48:55 813

原创 【C++ STL】简述

将不适用的序列式容器(包括 vector、deque 和 list)变得适用。元素在容器中的位置同元素的值无关,即容器不是排序的。容器中封装的是组织数据的方法(也就是数据结构)元素是未排序的,元素的位置由哈希函数确定。元素默认是由小到大排序好的。容器就是一些模板类的集合。容器适配器本质上还是容器。

2024-04-06 15:23:35 1039

原创 【C++ STL有序关联容器】set 集合

基本语法该容器采用默认的std::less规则,会对存储的 DataType 类型元素做升序排序。注意,由于 set 容器支持随时向内部添加新的元素,因此创建空 set 容器的方法是经常使用的。

2024-04-03 17:40:17 961

原创 【C++ STL迭代器】iterator 迭代器

尽管不同容器对应着不同类别的迭代器,但这些迭代器有着较为统一的定义方式:迭代器定义方式具体格式正向迭代器容器类名::iterator 迭代器名;常量正向迭代器容器类名::const_iterator 迭代器名;反向迭代器(全称:反向迭代器适配器)容器类名::reverse_iterator 迭代器名;常量反向迭代器容器类名::const_reverse_iterator 迭代器名;迭代器名就表示迭代器指向的元素。通过非常量迭代器还能修改其指向的元素。

2024-04-03 15:49:52 928

原创 【C++ STL序列容器】vector 向量

下面给出几个常用的操作及案例。

2024-03-29 20:15:24 753

原创 【Ucore操作系统】8. 并发

简单地说,线程是进程的组成部分,进程可包含 1~n 个线程,属于同一个进程的线程共享进程的资源, 比如地址空间、打开的文件等。基本的线程由线程ID、执行状态、当前指令指针 (PC)、寄存器集合和栈组成。线程是可以被操作系统或用户态调度器独立调度(Scheduling)和分派(Dispatch)的基本单位。在本章之前,进程是程序的基本执行实体,是程序关于某数据集合上的一次运行活动,是系统进行资源(处理器、 地址空间和文件等)分配和调度的基本单位。在有了线程后,对进程的定义也要调整了,

2024-03-27 22:36:19 860

原创 【Ucore操作系统】7. 进程间通信

在内核中,我们是不能 new 一个结构体的,这是由于我们没有实现堆内存管理。但我们可以用一种略显浪费的方式,也就是直接 kalloc() 一个页,只要不大于一整个页的数据结构都可以这样 new 出来。

2024-03-27 20:21:15 534

原创 【Ucore操作系统】6. 文件系统与I/O重定向

Persistent Storage 持久存储设备。文件系统 (File System)目录是否有必要存在?

2024-03-27 17:31:18 853

原创 【Ucore操作系统】5. 进程及进程管理

注意 mmap 对于进程 max_page 的影响。在 ch4 中,即便实现错误导致了内存泄漏也不会有直接致命的影响,但在 lab5 就不是这样了!修复你的 mmap 实现!为何创建进程要通过两个系统调用而不是一个?

2024-03-27 16:39:08 621

原创 【Ucore操作系统】4. 地址空间

在上一小节中我们已经简单介绍了分页的内存管理策略,现在我们尝试在 RV64 架构提供的 SV39 分页机制的基础上完成内核中的软件对应实现。由于内容过多,我们将分成两个小节进行讲解。本节主要讲解在RV64架构下的虚拟地址与物理地址的访问属性(可读,可写,可执行等),组成结构(页号,帧号,偏移量等),访问的空间范围等;以及我们在OS中如何进行页表的处理。

2024-03-25 22:41:44 787

原创 【Ucore 操作系统】3. 多道程序与分时多任务

计算机科学家很快发现,编写应用程序的科学家(简称应用程序员)来自不同的领域,他们不一定有友好互助的意识,也不了解其他程序的执行情况,很难(也没必要)有提高整个系统利用率上的大局观。比如:在从作为外部存储的磁盘上读取数据的时候,CPU 将要读取的扇区的编号以及读到的数据放到的物理地址传给磁盘,在磁盘对请求进行调度并完成数据拷贝之后,就能在物理内存中看到要读取的数据。在计算机发展的早期,由于应用基本上都是一些简单的计算任务,且程序员都比较遵守规则,因此内核可以信赖应用,这样协作式的制度是没有问题的。

2024-02-23 22:19:12 881

原创 【Ucore 操作系统】2. 批处理系统和特权机制

测例实际就是批处理操作系统中一个个待执行的文件。我们的测例是 通过cmake来编译 的。具体编译出测例的指令可以参见其中的readme。下面我们看一个测例来理解本章以及之后测例的本质:这个测例编译出来实际上就是一个可执行的打印helloworld的程序。如果是windows或者linux上它编译之后是可以直接执行的。它也可以用来检查我们操作系统的实现是否有问题。");return 0;

2024-02-23 17:45:32 941

原创 【uCore 操作系统】1. 应用程序与基本执行环境

编译器操作系统。

2024-02-18 22:45:22 885

原创 【uCore 操作系统】0. 操作系统概述

操作系统(OS)是一个软件,它帮助用户和应用程序使用和管理计算机(更通用的讲,有嵌入式设备、手机、服务器等)的资源。操作系统这个系统软件干的事主要有两件:一是向下管理并控制计算机硬件和各种外设,二是向上管理应用软件并提供各种服务。操作系统是一种系统软件,主要功能是向下管理CPU、内存和各种外设等硬件资源,并形成软件执行环境来向上管理和服务应用软件。这样的描述也符合大多数操作系统教材上对操作系统的定义。为了完成上述工作,操作系统需要知道如何与硬件打交道,如何给应用软件提供服务。

2024-02-04 22:59:32 834

原创 FIR数字滤波器设计

⎨⎧​0.1102(α−8.7),0.5842(α−21)0.4+0.07886(α−21),0,​α>5050≥α≥21α

2024-01-23 22:37:44 1058

原创 【操作系统】1. 操作系统概述

操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供服务的一种系统软件。一个服务提供者。一个系统软件。执行用户程序,提供系统调用。控制程序执行过程,防止错误。方便用户使用计算机系统。一个资源管理程序。应用程序与硬件之间的中间层。管理各种软硬件资源。提供访问软硬件资源的高效手段。解决访问冲突, 确保公平使用。系统设计者利用硬件提供的能力,来完成操作系统的功能实现;

2024-01-16 21:45:16 842

原创 【Linux Shell】12. 文件包含

被包含的文件 不需要可执行权限。

2024-01-08 22:54:30 460

原创 【Linux Shell】11. 输入/输出 重定向

大多数 UNIX 系统命令从终端接受输入并将所产生的输出发送回​​到原来输入的终端。一个命令通常从标准输入的地方读取输入,默认情况下,这恰好是你的终端,同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。重定向命令列表如下:命令作用默认情况下,将 stdout输出 重定向到 file。默认情况下,将 stdin输入 重定向到 file。将输出以追加的方式重定向到 file。n > file将文件描述符为 n 的文件重定向到 file。n >> file。

2024-01-08 22:43:43 1090

原创 【Linux Shell】10. 函数

所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。函数返回值在调用该函数后通过来获得。shell中函数的定义格式如下:可以带 function fun() 定义,也可以直接fun() 定义,不带任何参数。参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。action;实例1:一个简单的函数。

2024-01-08 21:22:12 514

原创 【Linux Shell】9. 流程控制

表示 break,即执行结束,跳出整个 case …esac 语句,esac(就是 case 反过来)作为整个代码块的结束标记。if else 的 […] 判断语句中大于使用 -gt,小于使用 -lt。fi 是 if 的倒写, fi 作为表示 if 代码块结束的标记。用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。case 的取值可以为变量或常数,取值后面必须为单词。跳出所有循环(终止执行后面的所有循环)每个 case 分支用。

2024-01-08 20:58:58 1248

原创 【Linux Shell】5. 运算符

原生 bash 不支持简单的数学运算,但是可以通过其他命令来实现。条件表达式要放在方括号之间,并且要有空格,例如: [b] 是错误的,必须写成 [ $a == $b ]乘号 * 前边必须加反斜杠 \ 才能实现乘法运算;表达式和运算符之间要有空格。

2024-01-08 16:13:25 1785

原创 【Linux Shell】8. test 命令

test 命令用于检查某个条件是否成立。

2024-01-05 22:46:00 488

原创 【Linux Shell】7. printf 命令

默认的 printf 不会像 echo 自动添加换行符。单引号与双引号效果一样,没有引号也可以输出。

2024-01-05 22:30:29 1009

原创 【Linux Shell】6. echo 命令

【代码】【Linux Shell】6.echo 命令。

2024-01-05 22:07:04 456

qemu-7.0.0.tar.xz

qemu-7.0.0.tar.xz

2024-02-11

matlab 应用教程,矩阵操作、画图相关

matlab 矩阵数组

2023-03-28

MATLAB dft 实现代码

MATLAB dft 实现代码 已验证通过

2023-03-03

《数字信号处理1》学习笔记-思维导图

博主学习数字信号处理整理的的学习笔记(思维导图模式,可用XMIND、幕布等软件打开),内容如下: 1. 离散序列及离散系统 2. 周期采样 3. 离散傅里叶变换 DFT 4. 快速傅里叶变换 FFT 5. 有限脉冲响应滤波器 FIR 6. 无限脉冲响应滤波器 IIR

2023-02-25

《自动控制系统》学习笔记_思维导图.rar

《自动控制系统》学习笔记_思维导图,可用思维导图软件打开

2021-10-25

《数据域测试与仪器》_学习笔记_思维导图.rar

《数据域测试与仪器》学习笔记_思维导图,可用思维导图软件打开

2021-10-25

51单片机汇编指令巧记.mm

51单片机汇编指令思维导图文件,可用思维导图软件打开

2021-10-25

误差与不确定度mm文件.rar

误差与不确定度知识 整理,可用思维导图文件打开

2021-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除