boringhex.top博客

非典型程序员的小破站

引言

生物电信号是生物体内的电活动产生的电流或电压信号,它反映了生物体的生理状态和活动。生物电信号测量技术是一种用于记录和分析这些信号的方法,广泛应用于医学、生物学、神经科学等领域。本文将介绍几种常见的生物电信号测量技术,并讨论它们的原理、优缺点以及应用领域。

脑电图(Electroencephalogram,EEG)

脑电图是一种记录脑部电活动的技术,通过在头皮上放置电极,测量脑部神经元的电信号。脑电图可以用来研究大脑的功能活动、诊断脑部疾病以及监测睡眠状态。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到头表的电活动。

心电图(Electrocardiogram,ECG)

心电图是一种记录心脏电活动的技术,通过在胸部或四肢上放置电极,测量心脏肌肉的电信号。心电图可以用来评估心脏的健康状况、诊断心脏疾病以及监测心脏的节律。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到心脏的整体电活动。

肌电图(Electromyogram,EMG)

肌电图是一种记录肌肉电活动的技术,通过在肌肉上放置电极,测量肌肉的电信号。肌电图可以用来评估肌肉的功能状态、诊断肌肉疾病以及监测肌肉的活动。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到电极附近的肌肉电活动。

眼电图(Electrooculogram,EOG)

眼电图是一种记录眼部电活动的技术,通过在眼睛周围放置电极,测量眼睛的电信号。眼电图可以用来评估眼球运动的情况、诊断眼部疾病以及研究眼睛与大脑之间的关系。它具有高时间分辨率和较低成本的优点,但空间分辨率较低,只能测量到眼部附近的电活动。

血氧饱和度(Pulse oximetry)

血氧饱和度是一种测量血液中氧气含量的技术,通过在指尖或耳垂上放置传感器,测量血液中氧气的饱和度。血氧饱和度可以用来评估血液的供氧情况、诊断呼吸系统疾病以及监测患者的呼吸状态。它具有非侵入性、实时性和较低成本的优点,但只能测量到局部的血氧饱和度。

阅读全文 »

构建被动收入组合 一文中描述了一个构建被动投资组合的想法,用来追踪A股指数。目前,这个组合已经开始运行了。

项目地址:GitHub

💡注意:该项目不构成任何投资建议,仅用于技术交流。

1号组合

1号组合是一个被动组合,主要关注沪深300、中证500、科创50、北证50、MSCI中国A50指数。

因为还没有找到合适的券商交易API,为便于操作和计算,选取了对应的场外ETF联接基金,这样可以通过在支付宝中设置定投实现买入操作,分别是:

  • 沪深300:易方达沪深300ETF联接C(007339)
  • 中证500:易方达中证500ETF联接C(007029)
  • 科创50:易方达上证科创50联接C(011609)
  • 北证50:易方达北证50成份指数C(017516)
  • MSCI中国A50:易方达MSCI中国A50互联互通ETF联接C(014533)
阅读全文 »

作为一名快15年股龄的股民,虽然经历过2015,但是依然觉得2023真是一言难尽!从上大学时小打小闹,到现在以基金定投为重点,我一直在思考如何构建一个被动收入组合。这个组合应该是一个长期的投资组合,能够在不断的市场波动中稳定地产生收入。这个组合应该是一个多元化的组合,能够在不同的市场环境中表现出色。这个组合应该是一个低成本的组合,能够在长期中稳定地产生收入。我想这也是适合大多数人的投资路线。

什么是被动收入组合

被动收入组合是指投资者通过投资一系列资产,以获得稳定的收入。这些资产包括股票、债券、房地产、黄金、大宗商品等。被动收入组合的目标是通过多元化投资,降低投资风险,稳定收益。被动收入组合的特点是长期投资,低成本,稳定收益。

如何构建被动收入组合

构建被动收入组合需要考虑以下几个方面:

  1. 资产配置:选择适合的资产组合,包括股票、债券、房地产、黄金、大宗商品等。
  2. 风险管理:通过多元化投资,降低投资风险。
  3. 收益管理:通过长期投资,稳定收益。
  4. 成本管理:通过低成本投资,降低投资成本。
阅读全文 »

以前的一篇文章 介绍了一个大佬用差不多600行C语言代码实现了RISC-V CPU核,今天又看到GitHub上有牛人用Excel搓了一个16位CPU。

Excel 16-Bit CPU

Excel 16 位 CPU 存储库包含以下主要文件:

1
2
3
4
5
6
CPU.xlsx - The main spreadsheet which contains the CPU
ROM.xlsx - The ROM spreadsheet used read by the CPU when the read ROM switch is turned on
InstructionSet.xlsx - Explains the ISA of the CPU
compileExcelASM16.py - The Excel-ASM16 compiler
Excel-ASM16.xml - Markdown for the Excel-ASM16 language compatible with Notepad++
Sample Programs - Folder of sample programs for the Excel CPU
阅读全文 »

最近在尝试做元器件信息系统,需要用到数据库,之前学习python时一直被安利postgresql,所以就打算用postgresql。其实对初级用户来说,mysql、postgresql都差不多,用不到什么高级功能,完全个人偏好。

1.下载安装包

PostgreSQL下载地址

找到Windows平台安装包下载即可。

2.安装

按照安装向导安装,数据库安装一切都很顺利,问题出在扩展安装上。

其实我似乎用不到PostGIS Bundle,但是安装时我还是勾选了,安装过程也没有提示错误,就这样安装完成了。但是当我点击 PostGIS 图标时就开始报错了。

PostGIS

阅读全文 »

只有编译器才会喜欢的语法

Kemighan 和 Richie 承认,“C 语言声明的语法有时会带来严重的问题。”(K&R,第二版,第122页)。C语言声明的语法对于编译器(或编译器设计者)的处理来说并不是什么大不了的事。但对于一般的程序员,它却会成为障碍。语言的设计者也是人,他们也会犯错误。例如,Ada 的语言参考手册在最后的附录中所附的Ada 语法手册中,有一处存在歧义。对于编程语言的语法来说,歧义是非常忌讳的,因为它使编译器设计者的工作严重复杂化。但C语言声明的语法确实非常可怕,渗透于整个语言使用的方方面面。毫不夸张地说,正是由于在组合类型方面的笨拙行为,C语言被显著且毫无必要地复杂化了。

C语言的声明模型之所以如此晦涩,这里有几个原因。六十年代晚期,人们在设计C语言的这部分内容时,“类型模型(type model)”这个概念对于当时的编程语言理论而言尚属陌生。BCPL 语言(C语言的祖先)几乎没有类型,它把二进制字作为惟一的数据类型,所以C语言先天有缺。然后出现了一种C语言设计哲学,要求对象的声明形式与它的使用形式尽可能相似。

“声明的形式和使用的形式相似”这种用法可能是C语言的独创,其他语言并没有采用这种方法。而且,”声明的形式和使用的形式相似”即使在当时也不像是一个特别好的主意。把两种截然不同的东西做成一个样子真的有什么重要意义吗?贝尔实验室的学究们也承认此批评有理,但他们坚决死扛原来的决定,至今依然。

什么是C语言声明?

C 语言的声明是描述变量或函数的类型的语句。在 C 语言中,声明可以包括基本类型、指针、数组、结构体、联合体和函数等。声明的复杂性取决于它所描述的实体的复杂性,以及使用的修饰符和符号。

以下是一些常见的 C 语言声明元素和一些复杂声明的解释:

1. 基本类型声明:

1
int x;

这是一个简单的声明,表示 x 是一个整数。

阅读全文 »

我们平时绘制PCB封装时,一般都是按照元器件数据表上的封装图来绘制,有一些ECAD软件提供了向导,但是这个过程还是比较繁琐。现在有很多大厂比如TI都会提供芯片封装库,一般需要Ultra Librarian软件才能打开,然后再转换成自己使用的ECAD软件格式。还有一些网站提供了主流ECAD软件的封装库,一般注册账号后就可以下载。但总是有适配不到的情况,所以在工作中还是要维护一套自己的封装库。

今天要介绍一个工具软件,可以帮助我们快速绘制PCB封装,这个软件就是Footprint Expert,号称 “the best quality and most affordable library tool that can build tens of millions of user-customized parts!”

这个软件支持主流ECAD软件封装库格式:

支持的ECAD软件

阅读全文 »

以前有一个魔术,是这样的:

魔术师蒙蔽眼耳,不得与助手和观众有任何交流,助手则从现场随机找一名观众,给他若干枚类似硬币的棋子,每枚棋子正反面分别为黑色和白色,然后让观众任意排列这些棋子,助手用自己手上的一枚棋子补位,然后再让观众自己选择翻转或不反转这些棋子,最后由魔术师观察这些棋子,判断观众是否翻转了棋子。

似曾相识?

对,这就是奇偶校验。

奇偶校验是数据通信和数据存储中用来检测错误的一种简单的方法,其基本思想在于通过引入一个额外的校验位,使得数据位的总数为奇数或偶数。这个校验位的奇偶性与数据位中1的个数相关,以此校验通信或存储过程是否出现错误。奇偶校验基于数据位中1的个数,通过在数据传输中引入一个校验位,使得数据位和校验位中的1的总数为奇数或偶数。这样在接收端,通过检测校验位中的奇偶性,就可以判断数据是否在传输过程中发生了错误。

奇校验

  • 奇校验的原理: 在奇校验中,校验位被设置为确保数据位和校验位中1的总数为奇数。如果数据中的1的个数已经是奇数,校验位设置为0,使得总数为偶数;如果数据中的1的个数是偶数,校验位设置为1,使得总数为奇数。

  • 实现方式: 在串口通信中,发送端计算数据位中1的个数,然后设置校验位,使得总的位数为奇数。接收端同样计算接收到的数据位和校验位中1的个数,检测奇偶性,从而发现是否存在传输错误。

偶校验

  • 偶校验的原理: 在偶校验中,校验位被设置为确保数据位和校验位中1的总数为偶数。如果数据中的1的个数已经是奇数,校验位设置为1,使得总数为偶数;如果数据中的1的个数是偶数,校验位设置为0,使得总数为奇数。

  • 实现方式: 类似于奇校验,发送端计算数据位中1的个数,然后设置校验位,使得总的位数为偶数。接收端同样计算接收到的数据位和校验位中1的个数,检测奇偶性,从而发现是否存在传输错误。

应用场景

奇偶校验在串口通信中广泛应用,特别是在RS-232等标准中。在传输数据时,通过设置奇偶校验位,可以有效地检测并纠正单比特错误,提高通信的可靠性。

阅读全文 »

从头开始组建电子实验室

本文译自 Electronics Lab Equipment: Kitting out a Lab from Scratch

数字存储示波器

示波器是开发和调试电子设备的最有用的工具之一。它支持您以非常小的时间尺度和非常高的分辨率在一条线路上(或具有多个通道的多条线路上)观测信号。示波器种类繁多,从几百美元到远超豪华跑车甚至家庭住宅的价格不等。下方示波器确实处于这类设备的低端。如果是第一次组建实验室,您几乎不需要价值数十万美元的示波器。

购买示波器时,您需要考虑三个关键规格,并且由于本指南并非旨在作为购买示波器的深入指南,我将为您简单讲解。

首先,您有带宽。所需带宽应该至少是您要测量的信号基频的三到五倍。如果使用的电源开关频率为2.5MHz,您只需要12.5MHz的带宽。不过,如果要查看时钟频率为40MHz的SPI数据,您将需要200MHz带宽示波器。如果您开始观测到显示器的LVDS信号,信号的时钟频率可能超过100MHz,这意味着您需要带宽为500MHz的示波器。带宽也是示波器成本的主要因素之一,随着带宽的增加,成本几乎呈指数级增长。一般的业余爱好者可能会对50-100MHz的示波器感到非常满意。如果您从事专业工作,根据您的设计,200-500MHz示波器可能更合适。

第二是采样率。要使示波器正常工作,您至少需要两倍于采样速率的带宽,因此最好选用五倍以上的带宽。您会发现,在我们此处关注的带宽范围内,大多数现代数字示波器的带宽至少是其采样率的十倍。

第三是内存深度。更大的内存深度几乎总是合适的,因为它可以延长测量时间。您一次可以测量的持续时间是一种内存深度除以采样频率(即,每个样本占用一个内存点)的函数。如果有更多的内存,您可以在更长的时间内或以更精细的分辨率可视化处理信号,这样您就更有机会发现导致硬件问题的故障。

示波器有多种配置,大多数基本示波器都有双通道。我发现双通道非常有限,因为我通常需要第三个通道来测量或观察与前两个通道相关的另一个信号。例如,在H桥上,您可能在观察两个MOSFET的门引脚,同时也在观察门驱动器IC的输入;或者在开关模式电源上,监测输入、输出和滤波器后的电压。与许多设备一样,购买超越当下需求的设备,通常比数月后再购买另一台满足届时需求的设备更便宜。

现代示波器的另一个配置选项是混合信号示波器,它可以将逻辑分析仪集成到示波器中。乍一看,与连接计算机的逻辑分析仪相比,配备示波器小屏幕的逻辑分析仪似乎并不特别有用。在我看来,集成逻辑分析仪的真正优势在于能够触发来自逻辑分析仪的数据,而不是仅仅扮演着标准通道触发器的角色。

示波器选择

阅读全文 »
0%