滤波总结 波形处理原理 如何对一个规律的波形进行滤波 显现出真正的波形 如何设计滤波
需要用到的软件:waveserialport
vofa++
1.波形想用MCU进行采集首先你要考虑到你的采集频率因为如果你的对象波形即你要采集的波形,他过于快速的话有一些MCU它是不能的比如说有一些它的主频才36兆72兆呢你如果遇到一个特别快的波形毫秒级别那他就检测不了
2.然后你得想个办法,调用定时器也好,或者使用固定延时也罢反正你就是要再定一个采样频率,因为不同波形它的频率是不一样的我们相应的采样频率也得不一样如果说你的采样频率不符合的话你是很难提取一个周期的波形当在数字信号系统中有一条定理它规定了我的采集频率一定要比我的波形的频率要是它频率的一半最少是一半不然的话你的波形就是不完整的,也就是说你的采样频率要比我的波形快2倍这样的话你才能采集到一个完整的波形周期如果说你比的波形的频率还要慢的话那你根本就采集不到一个完整的波形
3.接着你的采样方法去采集你的ADC波形成一个数组然后用串口输出符合你串口波形软件的协议的串口信息到我的串口显示软件里面看看我的波形长的是什么样子 采样频率怎么计算呢就是你点与点之间的间隔吗比如说我这个红光采样是每六毫秒采样一次那就是1秒除以我的六毫秒等于我的赫兹125
在这一步中因为你不知道你的波形大概是多少个点也就是你不知道你的波形在你的采样频率下是多少个数据为一个数组,也就是说你一个周期你不知道你有多少个采样点,那你的数组就要定的越大越好定到你的数组里面可以看得出我一个规律的波形出来,比如说我下面这张图片我订的是一个两百个点的一个数据集去采集我的ADC然后再输出串口然后显示成波形可以明显的看到他们是有一个很虽然说长得不像但是是有一个规律存在在里面的它们长得都十分足够大的足够包含我一个周期的点数的的相似那这就是我们这个数组
4.有了这个数组以后因为我们能从中看出我们一个完整规律的一个波形出来那我们就要把它拆成点然后用手去数一下到底一个周期的波形里面有多少个点呢那你这样那我们数出来的这个数就是我的一个周期以内在当前的采样频率下有多少个点为一个周期也就是我一个周期会包含多少一个采样点注意的是这个采样点的个数会随着我们的采样频率的变化而变化所以说一开始你的采样频率就需要确定好而且要比你的要测的波形的频率快两倍
你看虽然我定数组刚开始定两百,但是我这个两百的数组里面包含了两个周期的波形,那我就把这个连线拆成了点,因为我用的vofa++加这个串口波形显示软件,
我就可以把它切换成连线模式也好然后画点模式也好然后我就可以再这个话点模式下数一下我一个周期大概是有多少个点这里我就数出来了我一个周期大概是有八十个点那我定的数组就不应该是两百而是八十如果你不用模糊佳佳你需要怎么去呃知道你的这个周期大概包含了多少个采样点呢最完整的方法就是不断的下降直到你的波形不完整为止也就是说你从两百降到一百五降到一百四降到一百三然后降到八十看一下你的波形到底在哪一个值它是非常的稳定的非常的好看的准确的
5.所有的波都是可以用正弦波进行组合而成 你用不同频率的正弦波就能组成不同形状的波形,比如说一个血氧的波形就可能由两赫兹的正弦波三赫兹的正弦波和12赫兹的正弦波组成,只需要你把这些几赫兹几赫兹的波形进行拆分,就是把一个波形拆成它的组成正弦波就可以看出你哪一个频率的波形是最多最广泛的,比如说一个血氧的波形就是两赫兹三赫兹和12赫兹的正弦波,那你把它采集到的adc数据输入到某个软件中,让他去帮你提取里面的正弦波,那你的波形是有杂波的,你的杂波出现于六赫兹。十八赫兹或者二十赫兹等等,那这些赫兹它的波形因为只是噪声只是干扰,它不会有规律,所以在你的软件里面显现。出这些频率的波形,它在你传入的波形中出现的概率比较低,它没有那些规律的波形出现的概率比较高,所以你就会得到一种不同频率的波在你传入的波形中出现的频率。哪一个波形出现的哪一个频率波。正弦波出现的最多,那他就是你想要得到的规律波形被拆成的几种频率的正弦波,比如一个带噪声的血氧波形,它是由两赫兹6赫兹12,赫兹20,赫兹30,赫兹40,赫兹十八赫兹的正弦波组成,你把这个波形用adc提取了之后,把数字发到那个软件中一个周期里面他就会帮你分辨这个周期的波形是有多少这种频率的正弦波组成的,
那在你显示的那个结果。中你就会看到两赫兹六赫兹十二赫兹的正弦波,它在你的这个周期波形里面出现的频率是最多的,那也就是说你这个新血氧的波形就是由这几种频率赫兹的波形组成的。那其他的18赫兹20赫兹的波形就是噪声,这样的话你就可以选择低通滤波器,高通滤波器带阻滤波器进行波形。频率的一个滤除,比如说我用低通滤波器截止频率为13赫兹那13赫兹以上的20赫兹18赫兹全部都滤掉了,等于是我的噪声被滤掉了
这个软件它有几个参数
波形点数:就是我要显示多少个串口传进来的波形数据点,也就是说你串口用单片机传数据到电脑之后它会先存储起来组成缓冲区,然后在这个串口波形显示框里面你要指定你要提取你这个缓冲区里面多少个点,把它转换到这个显示区里面,那其他没有转换的,那就还是保存在缓冲区,你显示的波形点越多呢,你这个重复出现的频率正弦波也就越准确,那这些重复出现的频率正弦波就是我这个波形真正组成该波形的频率正弦波,那其他那一些不常出现的频率正弦波就是杂波噪声,我们要做的就是保存我们这个真正组成规律波形的频率正弦波,也就是占比百分百占比百分百最常出现那一片波形要保存起来,其他的波形全部滤掉也就是这张图里面的二十到六十赫兹全部不要了,在严格来说就是十以上的全部波形都不要了,那我们就要使用低通滤波器来完成
FFT点数:自动填写
采样频率:你的mcu采样频率
信号频率:最多出现的频率正弦波 这里就是那个为占比为1的 也就是频率为2hz的正弦波
接下来是我用的滤波函数:
低通滤波器:滤除高于截止频率的波形
#include <stdio.h> #include <math.h>#define PI 3.14159265358979323846 // 滤波器结构体 typedef struct {// 滤波器系数 float b0, b1, b2;float a1, a2;// 状态变量 float x1, x2; // 输入延迟 float y1, y2; // 输出延迟 } LowPassFilter;// 初始化二阶低通滤波器 void initLowPassFilter(LowPassFilter* filter, float cutoffFreq, float sampleRate) {float Q = 1.0f / sqrtf(2.0f); // 巴特沃斯滤波器Q值 float omega0 = 2 * PI * cutoffFreq / sampleRate;float alpha = sinf(omega0) / (2 * Q);// 计算系数 float b0 = (1 - cosf(omega0)) / 2;float b1 = 1 - cosf(omega0);float b2 = b0;float a0 = 1 + alpha;// 归一化系数 filter->b0 = b0 / a0;filter->b1 = b1 / a0;filter->b2 = b2 / a0;filter->a1 = -2 * cosf(omega0) / a0;filter->a2 = (1 - alpha) / a0;// 初始化状态 filter->x1 = filter->x2 = 0;filter->y1 = filter->y2 = 0; }// 处理单个样本 float processSample(LowPassFilter* filter, float input) {float output = filter->b0 * input + filter->b1 * filter->x1 + filter->b2 * filter->x2 - filter->a1 * filter->y1 - filter->a2 * filter->y2;// 更新状态 filter->x2 = filter->x1;filter->x1 = input;filter->y2 = filter->y1;filter->y1 = output;return output; }
使用实例:
(1)
//实例波形数据message_RED[80] message_IR[80]LowPassFilter filter; float output_IR[80]; float output_RED[80]; int main(void) { const float sampleRate = 125.0f; // 采样率1kHz const float cutoffFreq = 4.0f; // 截止频率20Hz const int numSamples = 80; // 处理1000个样本 initLowPassFilter(&filter, cutoffFreq, sampleRate);for(int yy = 0; yy <79; yy++){float input = message_RED[yy];output_RED[yy] = processSample(&filter, input); //低通滤波器循环处理input = message_IR[yy];output_IR[yy] = processSample(&filter, input);}
(2)
#include <stdio.h> #include <math.h>#define PI 3.14159265358979323846 // 滤波器结构体 typedef struct {// 滤波器系数 float b0, b1, b2;float a1, a2;// 状态变量 float x1, x2; // 输入延迟 float y1, y2; // 输出延迟 } LowPassFilter;// 初始化二阶低通滤波器 void initLowPassFilter(LowPassFilter* filter, float cutoffFreq, float sampleRate) {float Q = 1.0f / sqrtf(2.0f); // 巴特沃斯滤波器Q值 float omega0 = 2 * PI * cutoffFreq / sampleRate;float alpha = sinf(omega0) / (2 * Q);// 计算系数 float b0 = (1 - cosf(omega0)) / 2;float b1 = 1 - cosf(omega0);float b2 = b0;float a0 = 1 + alpha;// 归一化系数 filter->b0 = b0 / a0;filter->b1 = b1 / a0;filter->b2 = b2 / a0;filter->a1 = -2 * cosf(omega0) / a0;filter->a2 = (1 - alpha) / a0;// 初始化状态 filter->x1 = filter->x2 = 0;filter->y1 = filter->y2 = 0; }// 处理单个样本 float processSample(LowPassFilter* filter, float input) {float output = filter->b0 * input + filter->b1 * filter->x1 + filter->b2 * filter->x2 - filter->a1 * filter->y1 - filter->a2 * filter->y2;// 更新状态 filter->x2 = filter->x1;filter->x1 = input;filter->y2 = filter->y1;filter->y1 = output;return output; }int main() {const float sampleRate = 1000.0f; // 采样率1kHz const float cutoffFreq =
相关文章:
滤波总结 波形处理原理 如何对一个规律的波形进行滤波 显现出真正的波形 如何设计滤波
需要用到的软件:waveserialport vofa++ 1.波形想用MCU进行采集首先你要考虑到你的采集频率因为如果你的对象波形即你要采集的波形,他过于快速的话有一些MCU它是不能的比如说有一些它的主频才36兆72兆呢你如果遇到一个特别快的波形毫秒级别那他就检测不了 2.…...
【代码随想录】刷题记录(115)-岛屿数量(广搜)
题目描述: 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。 输入描…...
Git指南-从入门到精通
代码提交和同步命令 流程图如下: 第零步: 工作区与仓库保持一致第一步: 文件增删改,变为已修改状态第二步: git add ,变为已暂存状态 bash $ git status $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ g…...
uvm错误记录4
如下所示,奇怪的是penable莫名其妙的出X。可问题,我发送激励了。 仔细定位发现,39行用的是vif中的penable, 问题是都是赋值,却出现同时赋值多次,这是因为nonblocking和blocking同时触发导致的,因此…...
用大模型学大模型03-数学基础 概率论
https://metaso.cn/s/Jp0OU9w 提示词:我正在学习深度学习相关的数学知识,学到了概率论与统计学部分,给我一个入门级的完整教程和实例。 好的,我现在需要回答用户关于深度学习所需的概率论与统计学入门教程和实例的问题。用户希望得到一个完整…...
数字电路-基础逻辑门实验
基础逻辑门是数字电路设计的核心元件,它们执行的是基本的逻辑运算。通过这些基本运算,可以构建出更为复杂的逻辑功能。常见的基础逻辑门包括与门(AND)、或门(OR)、非门(NOT)、异或门…...
基于springboot轨道交通安全评估系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,轨道交通安全评估管理当然不能排除在外。轨道交通安全评估系统是在实际应用和软件工程的开发原理之上,运用Java语言以及Spring…...
多能互补综合能源系统,改变能源结构---安科瑞 吴雅芳
多能互补综合能源系统是一种通过整合多种能源的形势(如电力、天然气、热能、冷能等)和多种能源技术(如可再生能源、储能技术、智能电网等),实现能源利用和配置调整的系统。其目标是通过多能互补和协同优化,…...
Python 量化
Python 量化是指利用 Python 编程语言以及相关的库和工具来进行金融市场数据分析、策略开发和交易执行的过程。 Python 由于其简洁、易学、强大的生态系统和丰富的金融库而成为量化交易的首选编程语言之一。 量化交易在金融领域得到广泛应用,它允许交易者通过系统…...
图数据库Neo4j面试内容整理-属性(Property)
在图数据库中,属性(Property)是用来描述节点(Node)和关系(Relationship)详细信息的键值对。属性可以附加到节点或关系上,用来存储具体的数据,如名字、年龄、时间戳、标签等。属性使得节点和关系不仅能够表示实体或交互,还能包含丰富的、与实体或交互相关的信息。 1. …...
uniapp - iconfont下载本地并且运用至项目上
1、项目中创建一个文件夹放置iconfont相关文件,例如src/assets/iconfont(名称自己定义) 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址,修…...
leetcode 1594. 矩阵的最大非负积
题目如下 数据范围 示例 本题难就难在矩阵存在负数,我们可以先思考如果矩阵每个数都大于等于0那么很简单我们只需要维护左边和上面的最大值即可。那么如果遇到负数显然要得到最大值就要和左边和右边的最小值相乘。所以这里我们维护两个二维数组用于存从(0,0)开…...
Vue3 从入门到精通:全面掌握前端框架的进阶之路
一、Vue3 简介 Vue.js 是一款流行的 JavaScript 前端框架,用于构建用户界面。Vue3 作为 Vue.js 的重大升级版本,带来了诸多性能提升和新特性。它采用了 Proxy 实现数据响应式系统,优化了虚拟 DOM 算法,使得应用在运行时更加高效。…...
lightning.pytorch.callbacks内置的Callbacks介绍
PyTorch Lightning 提供了一些 内置回调 (Callback),可以在训练过程中自动执行 检查点保存、学习率调度、早停 等功能。通过使用 Trainer(callbacks=[...]) 来传入这些回调。 PyTorch Lightning 的 Callback 是一种强大的工具,允许用户在训练过程中插入自定义逻辑,而无需修…...
网络运维与网络安全技术分享
网络运维与网络安全介绍之二 在上阶段给大家基本介绍了网络运维与网络安全专业第一阶段的内容之后,接下来,我们就开始进入正式内容分享了! 第一阶段:运维基础与网络系统管理之Windows系统的安装部署以及常见Windows应用技巧。 在这…...
基于巨控GRM242Q-4D4I4QHE模块的农村供水自动化监控技术方案
一、系统架构设计 拓扑结构: 传感器层(液位/压力/流量)→ 巨控GRM242Q模块 → 4G网络 → 云平台 → 手机/PC监控端硬件配置: 核心设备:GRM242Q-4D4I4QHE模块(4DI/4DO/4AI/1485)传感器࿱…...
Java 单元测试框架之 Mockito 详细介绍
本文是博主在学习如何高效创建单元测试时的知识记录,文中项目代码是基于 SpringBoot 项目,测试组件使用的 JUnit 5,单元测试组件使用的 Mockito 。虽然现在都是在使用 AI 助手帮助生成单元测试和代码辅助修改,但我们不能被工具挡住…...
对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 , 基于 openEuler 构建 LVS-DR 群集。
对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 NAT模式的优势: 可以隐藏后端服务器的IP地址,提高了系统的安全性。 支持多个后端服务器共享同一个IP地址,提高了系统的可扩展性。 可以在负载均衡器和后端服务…...
mapbox V3 新特性,添加下雪效果
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象…...
谈谈云计算、DeepSeek和哪吒
我不会硬蹭热点,去分析自己不擅长的跨专业内容,本文谈DeepSeek和哪吒,都是以这两个热点为引子,最终仍然在分析的云计算。 这只是个散文随笔,没有严谨的上下游关联关系,想到哪里就写到哪里。 “人心中的成见…...
深入HBase——引入
引入 前面我们通过深入HDFS到深入MapReduce ,从设计和落地,去深入了解了大数据最底层的基石——存储与计算是如何实现的。 这个专栏则开始来看大数据的三驾马车中最后一个。 通过前面我们对于GFS和MapReduce论文实现的了解,我们知道GFS在数…...
【前端】【vue】vue2/3,nuxt的插槽使用详解
插槽在Vue2、Vue3和不同版本Nuxt中的使用 Vue2中的插槽 基础插槽 在Vue2中,基础插槽允许在组件的模板中定义一个占位符,然后在使用组件时插入自定义内容。例如,创建一个简单的MyBox组件: <template><div class"…...
逆境、情绪低落时可用的锦囊、咒语
《浮生一梦》(一) 大多数人都经历过逆境低谷、失败、挫折、看似无端情绪低落、抑郁… 人逢情绪低落时,几乎任何话都听不进去,再正的能量也塞不进脑子,笑话笑不出来,食不知味… 复原力不强者很难走出来&am…...
【目标检测json2txt】label从COCO格式json文件转YOLO格式txt文件
目录 🍀🍀1.COCO格式json文件 🌷🌷2.YOLO格式txt文件 💖💖3.xml2json代码(python) 🐸🐸4.输入输出展示 🙋🙋4.1输入json 🍂🍂4.2输出txt 整理不易,欢迎一键三连!!! 送你们一条美丽的--分割线-- 🍀🍀1.COCO格式json文件 COCO数…...
ASP.NET Core SixLabors.ImageSharp 位图图像创建和下载
从 MVC 控制器内部创建位图图像并将其发送到浏览器;用 C# 编写并与 Linux 和 Windows 服务器兼容。 使用从 ASP.NET MVC 中的控制器下载任何文件类型File。 此示例创建一个位图 (jpeg) 并将其发送到浏览器。它需要 NuGet 包SixLabors.ImageSharp v1.0.4。 另请参…...
Java开发实战:使用IntelliJ IDEA 开发Spring Boot + MyBatis + MySQL的详细实现步骤
使用IntelliJ IDEA 开发Spring Boot MyBatis MySQL的详细实现步骤 在本文中,我们将一步步讲解如何在IntelliJ IDEA 2024.2.3中使用Spring Boot、MyBatis和MySQL来开发一个简单的Web应用。通过本文,你将学会如何设置项目、配置数据库、创建实体类、编写…...
python-leetcode-在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode) class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:def find_first(nums, target):left, right 0, len(nums) - 1result -1while left < rig…...
Oracle RHEL 7.8 安装
前言 Red Hat Enterprise Linux Server release 7.8 为企业级 SO 镜像。绝大部分企业如果使用Oracle数据库均会使用其企业版 OS ,能够很好的支持数据库的运行 文档目的 当前文档仅针对 VMware Workstation Pro 进行 OS 介质安装。 镜像下载地址 注意࿱…...
Java多线程交替打印
1. 双线程交替打印奇偶数 class Printer{private int num1; //要打印的数字private Object myLock new Object();public static void main(String[] args){Printer pnew Printer();Thread t1new Thread( ()->p.printNum(true), "threadA");t1.start();Thread t…...
华为2288H V5服务器无法启动问题处理
问题:通电后服务器前面显示888,点击电源键没有反应 一.通过管理口管理服务器硬件设备 华为2288H V5它默认的IP是192.168.2.100 网关是255.255.255.0 2.将网线一头连接服务器的Mgmt口,另一头来连接笔记本的网口,将笔记本的的本地…...
阿里巴巴对deepseek回应
行业背景与发布契机 当杭州的DeepSeek在相关领域展现实力时,阿里巴巴为了在技术竞争中占据一席之地,推出新的视觉 - 语言模型,试图吸引行业关注。 Qwen2.5 - VL系列模型发布详情 模型介绍:阿里巴巴发布Qwen2.5 - VL系列视觉 - 语…...
如何使用UniApp实现页面跳转和数据传递?
在 UniApp 中,页面跳转和数据传递是基本的功能,允许用户在应用中浏览不同的页面并传递必要的信息。以下是如何实现页面跳转和数据传递的详细步骤和示例。 一、页面跳转 UniApp 提供了几种方式来进行页面跳转,主要包括: uni.nav…...
STM32:迎接汽车与AI时代MCU新挑战
作为通用32位MCU市场最受关注的产品系列,意法半导体(ST)的STM32 MCU从2007年问世之后就迎来爆发式增长,成功占据通用32位MCU市占率领头羊的位置,并且不断引领着通用MCU技术与应用的新思维开拓。 本文引用地址…...
【操作系统】深入理解Linux物理内存
物理内存的组织结构 我们平时所称的内存也叫随机访问存储器也叫 RAM 。RAM 分为两类: 一类是静态 RAM( SRAM ),这类 SRAM 用于 CPU 高速缓存 L1Cache,L2Cache,L3Cache。其特点是访问速度快,访…...
K8s组件
一、Kubernetes 集群架构组件 K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。 主节点一般被称为 Master 节点,master节点上有 apis…...
【ESP32接入国产大模型之Deepseek】
【ESP32接入国产大模型之Deepseek】 1. Deepseek大模型1.1 了解Deepseek api1.2 Http接口鉴权1.3. 接口参数说明1.3.1 请求体(request)参数1.3.2 模型推理 2. 先决条件2.1 环境配置2.2 所需零件 3. 核心代码3.1 源码分享3.2 源码解析3.3 连续对话修改后的代码代码说明示例输出注…...
Vue 2 路由指南:从基础到高级
注意:对于代码看不清的部分,用鼠标选中就能看到了,背景颜色和字体颜色过于接近,我也不知道怎么调,只能这样子先看着了 一、Vue Router 是什么? Vue Router 是 Vue.js 官方的路由管理器,它允许…...
2025最新深度学习pytorch完整配置:conda/jupyter/vscode
从今天开始,开始一个新的专栏,更新深度学习相关的内容,从入门到精通,首先的首先是关于环境的配置指南:工欲善其事必先利其器! PyTorch 是由 Facebook(现 Meta)开发的 开源深度学习框…...
Python教学-最常用的标准库之一——OS库
os 库是 Python 标准库中的一个模块,它提供了一种方便的方式来使用操作系统相关的功能。os 模块提供了很多函数,可以用来处理文件和目录、访问环境变量、执行系统命令等。以下是一些常用的 os 模块的功能和示例: 1. 文件和目录操作 1.1 当前…...
尚硅谷爬虫note006
一、ajax的get请求 1. ajax的get请求—豆瓣电影第一页 # _*_ coding : utf-8 _*_ # Time : 2025/2/13 15:14 # Author : 20250206-里奥 # File : demo23_ajax的get请求 # Project : PythonProject10-14import urllib.requestfrom demo17_qingqiuduixaingdedingzhi import hea…...
LeetCode刷题---字符串---859
亲密字符串 859. 亲密字符串 - 力扣(LeetCode) 题目: 给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。 交换字母的定义是&…...
探索大数据处理:利用 Apache Spark 解锁数据价值
探索大数据处理:利用 Apache Spark 解锁数据价值 大家好,我是你们熟悉的大数据领域自媒体创作者Echo_Wish。今天,我们来聊聊如何利用Apache Spark进行大规模数据处理。Apache Spark作为一个快速、通用的集群计算框架,以其出色的性…...
伯克利 CS61A 课堂笔记 08 —— Strings and Dictionaries
本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理,全英文内容,文末附词汇解释。 目录 01 Strings 字符串 Ⅰ Strings are An Abstraction. Ⅱ Strings Literals have Three Forms Ⅲ String are Sequences 02 Dictionaries 字典 …...
V93K测试机
爱德万V9300(又称V93K)是Advantest公司推出的高端可扩展SoC测试平台,在半导体测试领域具有标杆地位。以下为该设备的详细介绍: ### 一、核心性能与技术优势 1. **高速高精度测试能力** V9300支持高达112 Gbps PAM4信号&…...
在 CentOS 上更改 SSH 默认端口以提升服务器安全性
🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 …...
基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)
基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)是语义通信(Semantic Communication, SemCom)的核心研究方向,它们旨在优化通信效率&#…...
Golang GORM系列:GORM事务及错误处理
在数据库管理领域,确保数据完整性至关重要。GORM是健壮的Go对象关系映射库,它为开发人员提供了维护数据一致性和优雅地处理错误的基本工具。本文是掌握GORM事务和错误处理的全面指南。我们将深入研究如何使用事务来保证原子性,并探索有效处理…...
51单片机-C语言扩展及最小系统
1、C-51的数据类型扩充定义 sfr:特殊功能寄存器声明 sfr:变量名地址值; 特殊功能寄存器在reg51.H这个头文件里面都帮我们定义好了,所以平时我们就不要自己去定义寄存器的名字。 sbit:特殊功能位声明sbit 变量名地址…...
日常问题-pnpm install执行没有node_modules生成
日常问题-pnpm install执行没有node_modules生成 1.问题2.解决方法 1.问题 执行pnpm i后,提示Scope: all 3 workspace projects Done in 503ms,而且没有node_modules生成。很奇怪 2.解决方法 确保根目录有 pnpm-workspace.yaml 文件: 把这…...
FreeRTOS低功耗总结
前言 Cortex-M核的MCU一般支持以下三种低功耗方式: ● 睡眠(Sleep)模式 ● 停止(Stop)模式 ● 待机(Standby)模式 睡眠模式 进入睡眠模式有两种指令:WFI(等待中断)和WFE(等待事件), WFI进入睡眠模式后,任意中断都可唤醒。 WFE进…...