首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏硬件工程师

    区分高速与低速信号!!

    高速,低速信号一般用于数字电路中,模拟和射频电路更喜欢用高频,低频信号这样的说法。 高速信号通过PCB走线进行传输的时候会发生一些问题,造成反射、振荡、地弹、串扰等一系列信号完整性问题。 信号是否为高速信号,取决于两个因素:信号频率和信号传输路径长度(信号线长度)。 /inch≈7.09X10^(-9) (1inch=2.54cm) 因此,区分某信号高速信号还是低速信号的步骤是: (1)获取信号有效频率 (2)计算信号有效长度U (3)获取实际信号线长度L ( 4)若L< 1/6U,为低速信号,若L > 1/6 U,为高速信号 综上所述:对于数字电路,关键是看信号的边沿陡峭程度,即信号的上升、下降时间,信号从10%上升到90%的时间小于6倍导线延时,就是高速信号 而对于周期频率高于1GHz信号,基本不用计算,绝大部分都属于高速信号了。

    3.4K21编辑于 2022-08-29
  • 来自专栏硬件大熊

    面试题:高速电路是什么,什么信号高速

    然而,高速电路是什么,什么信号才属于高速信号? 这是笔者曾在一次面试中被问到过的一个问题,当时脑袋中迅速闪过图像数据处理、音频处理等设计,但是如何定义所谓的“高速”却一下子想不出来如何定义这个基本概念。 高速电路:数字逻辑电路的频率达到或超过50MHz,而且工作在这个频率之上的电路占整个系统的1/3以上,就可以称其为高速电路 高速信号:如果线传播延时大于数字信号驱动端上升时间的1/2,则可以认为此类信号高速信号 如果传输时间大于上升或下降时间的1/2,那么信号在改变状态之后,来自接收端的反射信号将到达驱动端,若该反射信号很强,叠加的波形就有可能改变逻辑状态。 以Tr表示信号上升时间,Tpd表示信号线传播延时, 若Tr > 4Tpd,则信号落在安全区域; 若2Tpd < Tr < 4Tpd,则信号落在不确定区域; 若Tr ≤ 2Tpd,则信号将落在问题区域。

    1.4K10编辑于 2022-06-23
  • 来自专栏全栈程序员必看

    信号处理之父_信息与信号处理

    N=30; L=512; f1=100; f2=120; fsam=600; T=1/fsam; wsam=2*pi*fsam; t=(0:N-1)*T; x=cos(2*pi*f1*t)+cos(2 *pi*f2*t); X=fft(x,L); X1=fftshift(X); w=(-wsam/2+(0:L-1)*wsam/L)/(2*pi); plot(w,abs(X1)); ylabel('幅度值

    68910编辑于 2022-09-20
  • 来自专栏上善若水

    L007Linux信号信号处理信号处理函数

    2、 软件方式 用户在终端下调用kill命令向进程发送任务信号。 进程调用kill或sigqueue函数发送信号。 1、 捕捉信号:对于要捕捉的信号,可以为其指定信号处理函数,信号发生时该函数自动被调用,在该函数内部实现对该信号处理2、 忽略信号:大多数信号都可使用这种方式进行处理,但是SIGKILL和SIGSTOP这两个信号不能被忽略,同时这两个信号也不能被捕获和阻塞。 ,第二个参数指定针对前面信号值的处理,可以忽略该信号(参数设为SIG_IGN);可以采用系统默认方式处理信号(参数设为SIG_DFL);也可以自己实现处理方式(参数指定一个函数地址)。 2、发送信号函数 (1) int raise(int sig); 对当前进程发送指定信号2) int pause(void); 将进程挂起等待信号 (3) int kill(pid_t pid,

    4.6K30发布于 2018-09-28
  • 来自专栏学习之路

    【Linux】:进程信号信号保存 & 信号处理

    被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作 注意:阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作 2. ,索引信号处理方法!) 信号产生后,如果未被处理且没有被阻塞,则处于未决状态,等待被处理。 号信号的屏蔽,修改如下: 运行如下: 我们发现:后续输出没有了,原因:由于 2信号的默认动作是终止进程,一旦解除屏蔽,处理 2信号执行默认动作,就把自己干掉了,因此还需要做修改 void non_handler (int signo) { std::cout << "处理:" << signo << std::endl; } int main() { // 忽略 2信号的两种方式

    2.4K10编辑于 2024-11-19
  • 来自专栏用户10155340的专栏

    Linux进程信号信号处理

    关于信号何时处理、该如何处理,本文中将会一一揭晓 捕捉动作并进行处理 ---- ️正文 1、信号处理时机 直奔主题,谈谈信号处理时机 1.1、处理情况 普通情况 所谓的普通情况就是指 - 2、用户态与内核态 对于 用户态、内核态 的理解及引出的 进程地址空间 和 信号处理过程 相关知识是本文的重难点 2.1、概念 先来看看什么是 用户态和内核态 用户态:执行用户所写的代码时,就属于 就行了 下面的情况都是基于 信号未被阻塞 且 信号已产生 的前提 情况2:当前信号的执行动作为 默认 大多数信号的默认执行动作都是 终止 进程,此时只需要把对应的进程干掉,然后切回 用户态 就行了 ); //实时信号相关,不用管 }; 返回值:成功返回 0,失败返回 -1 并将错误码设置 参数1:待操作的信号 参数2:sigaction 结构体,具体成员如上所示 参数3:保存修改前进程的 sigaction 信号注册自定义动作 sigaction(2, &act, &oldact); // 死循环 while (true); return 0; } 当 2信号的循环结束

    1.2K10编辑于 2023-07-01
  • 来自专栏c/c++&&linux

    【Linux】信号信号产生&&信号处理&&信号保存&&信号详解

    本质上是你“记住了有一个快递要去取” 当你时间合适,顺利拿到快递之后,就要开始处理快递了。而处理快递一般方式有三种: 1. 执行默认动作(幸福的打开快递,使用商品) 2. 例如其中有定 义 #define SIGINT 2 编号34以上的是实时信号,暂不讨论实时信号。 : 忽略此信号 执行该信号的默认处理动作 提供一个信号处理函数,要求内核在处理信号时切换到用户态执行这个处理函数,这种方式称为捕捉(Catch)一个信号 2.产生信号 2.1 通过终端按键产生信号 2号(OS对2号自动屏蔽),同时对其他信号也进行屏蔽 sigaddset(&act.sa_mask, 3); act.sa_flags = 0; sigaction( :父进程fork出子进程,子进程调用exit(2)终止,父进程自定义SIGCHLD信号处理函数,在其中调用wait获得子进程的退出状态并打印 事实上,由于UNIX 的历史原因,要想不产生僵尸进程还有另外一种办法

    1.3K10编辑于 2024-06-04
  • 来自专栏学习之路

    【Linux】:进程信号信号概念 & 信号处理 & 信号产生)

    信号可以随时产生 如果进程做着别的事,可以暂不处理信号,等到合适的时候再处理 2, 信号处理 ❓ ( sigaction 函数后面博客来详细介绍),现在先说可选的以下三种处理动作 默认处理(通常为终止 返回值:返回值为一个函数指针,指向之前的信号处理器;如果之前没有信号处理器,则返回 SIG_ERR 2.1 执行该信号的默认处理动作 如果signal函数的 func 参数为 SIG_DFL,则系统将使用默认的信号处理动作 参数1是信号的编号,参数2是函数指针。 ,当接收到 SIGALRM 信号时被调用 // 2. CR2 和 CR3 寄存器在内存管理和错误处理中扮演着重要角色 CR3 寄存器用于切换不同进程的页表 CR2 寄存器则用于存储引起页错误的虚拟地址,帮助操作系统定位和处理错误 CR2 寄存器用于存储引起页错误的线性地址

    1.3K10编辑于 2024-11-19
  • 来自专栏韩曙亮的移动开发专栏

    【数字信号处理】数字信号处理简介 ( 数字信号处理技术 | 傅里叶变换 )

    文章目录 一、数字信号处理技术 二、傅里叶变换 ( 时域转频域 ) 一、数字信号处理技术 ---- 数字信号处理 ( DSP , Digital Signal Processing ) 是 信息学科 和 计算机学科 结合产生的一门新的学科 , 核心是 使用 数值计算的方法 , 完成对信号处理 ; DSP 有两种理解 : Digital Signal Processor : 数字信号处理器 ; DSP , Digital Signal Processing : 数字信号处理技术 ; 数字信号处理完整过程 : 模拟信号 经过 A/D 转换 为 数字信号 , 数字信号经过 数字信号处理 转换成新的 数字信号处理 ; DSP 实现 : 数字信号处理一般使用硬件实现 , 通用 CPU: 一般的电脑 , 服务器 上运行的 DSP 算法 ; CPU 的性能越来越高 ( 这个是主要趋势 ) ; DSP 芯片 : 之外的频率上 , 能量都是 0 , 如果一个信号在时间上是可分的 , 没有噪声 , 如 在 0 ~ 100 秒内发出 5KHz 信号 , 在 100 ~ 200 秒内发出 2KHz

    2.1K20编辑于 2023-03-29
  • 来自专栏Android点滴分享

    信号处理(三)

    本篇介绍 本篇接续信号处理的介绍。 图像中的信号处理 信号处理在采样图像中使用的最为广泛。 公式如下: image.png image.png 效果如下: image.png 图像抗锯齿 在对图像采样过程中,也就是针对2D连续信号进行采样,如果不加任何处理,结果就会出现摩尔纹或锯齿,效果如下 ,左边是摩尔纹,右边是锯齿: image.png 摩尔纹的现象就是出现重复的样式,原因就是采样频率和原始信号频率接近时,就会出现周期性的重叠。 原因还是因为像素点也有空间属性,最科学的方法应该是先重建,再采样,参考图如下: image.png 这时候我们可以看到需要用到2个滤波器,一个是重建滤波器,一个是采样滤波器。 重采样伪代码如下: image.png 这儿有一个问题需要考虑下,遇到边界时怎么处理

    74510编辑于 2022-10-25
  • 来自专栏Linux内核那些事

    Linux信号处理

    事实上,进程也不知道信号到底什么时候到达。一般来说,我们只需要在进程中设置信号相应的处理函数,当有信号到达的时候,由系统异步触发相应的处理函数即可。 信号实现原理 接下来我们分析一下Linux对信号处理机制的实现原理。 return 0; } 上面的代码表示,如果指定为默认的处理方法,那么就使用系统的默认处理方法去处理信号,比如 SIGSEGV 信号的默认处理方法就是使用 do_coredump() 函数来生成一个 core put_user(0xb858, (short *)(frame->retcode+0)); err |= __put_user(__NR_sigreturn, (int *)(frame->retcode+2) 设置信号处理程序 最后我们来分析一下怎么设置一个信号处理程序。

    6.5K40发布于 2020-08-25
  • 来自专栏Android点滴分享

    信号处理(一)

    本篇介绍 图像处理离不开采样与重建,本篇就介绍下采样与重建背后的数学逻辑。 一维采样 采样就是将模拟信号用数字信号表示,参考音频的处理流程如下: image.png 这儿可以看到有滤波器的出现,滤波器是为了消除走样,后面会专门介绍。 从公式上看是没问题的,不过从信号处理角度看,翻转一下更接近实际情况。 当时间是n时,输入的信号是a[n],此时系统整体的影响是n时刻及以前信号影响的累加,也就是a[0]刻的信号对于n时刻的系统也有影响,影响多大呢?就是b[n]a[0], 为啥是b[n]而不是b[0]呢? 2维卷积 前面介绍的是1维卷积,可以简单看下2维离散卷积: image.png 对应的推导如下: image.png 某个点的卷积值可以看成是这个点周围区域所有点的带权和。

    1.2K20编辑于 2022-10-25
  • 来自专栏Android点滴分享

    信号处理(二)

    本篇介绍 本篇继续信号处理的介绍。 卷积滤波器 首先先总结下几种卷积滤波器。 盒子滤波器 盒子滤波器的值要不是常数,要不就是零,积分为1。 image.png Mitchell-Netravali 3次滤波 其实就是对B样条滤波和 Catmull-Rom 滤波做一个加权和: image.png image.png 滤波器的性质 插值滤波器利用离散信号重建连续信号的本质就是构造一条曲线将离散的点连接起来 比如帐篷滤波器的度数是0,三次滤波器的度数就是2。重构函数的度数就等于滤波器的度数。 可分离滤波器 2D场景中使用的滤波器往往就是1D滤波器的乘积,公式如下: image.png image.png 比如2D的帐篷滤波器如下: image.png image.png 2D的高斯滤波器如下

    84020编辑于 2022-10-25
  • 来自专栏Android点滴分享

    信号处理(四)

    本篇介绍 本篇介绍下采样背后的理论,也是信号处理的最后一部分。 如果原始函数是实函数,对应的傅立叶函数就是偶函数,如果原始函数是偶函数,对应的傅立叶函数就是实函数 卷积和傅立叶变换 卷积和傅立叶的关系可以用2个优雅的公式表示: image.png image.png 这时候会有2个地方出现走样,一个是采样的时候,会出现信号重叠,一个是重建的时候,又会在原始信号上加上一些走样信号。 比如用盒子滤波器重建,实际上就是原始信号的傅里叶和盒子信号傅立叶的乘积,由于盒子滤波器也有其他信号的频谱,因此也会将其他信号的频率加上。 2倍。

    86210编辑于 2022-10-25
  • 来自专栏学习之路

    【Linux进程#4】:进程信号信号概念 & 信号处理 & 信号产生)

    信号可以随时产生 如果进程做着别的事,可以暂不处理信号,等到合适的时候再处理 2, 信号处理 ❓ ( sigaction 函数后面博客来详细介绍),现在先说可选的以下三种处理动作 默认处理(通常为终止 信号处理方式,可以是以下三种之一: SIG_DFL :使用默认处理方式(如 SIGINT 默认终止程序) SIG_IGN :忽略信号(但某些信号如 SIGKILL 无法忽略) 自定义函数指针 :指向用户定义的信号处理函数 参数1是信号的编号,参数2是函数指针。 ,当接收到 SIGALRM 信号时被调用 // 2. CR2 和 CR3 寄存器在内存管理和错误处理中扮演着重要角色 CR3 寄存器用于切换不同进程的页表 CR2 寄存器则用于存储引起页错误的虚拟地址,帮助操作系统定位和处理错误 CR2 寄存器用于存储引起页错误的线性地址

    56610编辑于 2025-06-02
  • 来自专栏全栈程序员必看

    sigaction信号处理

    sa_mask 指定的信号集搁置 sa_flags:设置信号处理相关操作 SA_SIGINFO:如果设置,那么采用sa_sigaction;默认采用sa_handler SA_RESETHAND:当调用信号处理函数时 ,将信号处理函数重置为缺省值SIG_DFL SA_RESTART:如果信号中断了进程的某个系统调用,则系统自动启动该系统调用 SA_NODEFER :一般情况下, 当信号处理函数运行时,内核将阻塞该给定信号 但是如果设置了 SA_NODEFER标记, 那么在该信号处理函数运行时,内核将不会阻塞该信号 sa_restorer:此参数没有使用 3. siginfo_t siginfo_t { int on most architectures) */ pid_t si_pid; /* 发送信号的进程ID,对kill(2),实时信号以及SIGCHLD有意义 */ uid_t si_uid; /* 发送信号进程的真实用户ID,对kill(2),实时信号以及SIGCHLD有意义 */ int si_status; /* 退出状态,对SIGCHLD

    74710编辑于 2022-09-01
  • 来自专栏我的博客

    【Linux系统】进程信号信号处理

    2. sigreturn 系统调用的重要性 sigreturn 是信号处理机制中的关键环节,它的作用是: 通知内核信号处理已经完成 让内核恢复之前保存的上下文 清理为信号处理设置的临时结构 2. sa_mask - 执行处理函数期间阻塞的信号 指定在信号处理函数执行期间,额外需要阻塞的信号集合 即使没有明确指定,当前正在处理信号也会被自动阻塞 这可以防止信号处理函数被同一信号重入 使用 sigaction 来捕获 SIGINT 信号,第一次捕获2信号时,会执行我们自定义函数handler,所以第一次捕获到2信号时,pending表中2信号并不处于未决状态,因为已经在执行自定义函数了 信号处理特殊性 信号处理函数与主程序共享用户态上下文(包括全局变量),但拥有独立栈帧。  结果:node2的插入被node1的步骤2覆盖,造成数据丢失(仅node1存在于链表中)。 ,二次调用将破坏链表完整性 死锁风险:信号处理中调用malloc可能导致锁重入死锁 2.

    29710编辑于 2025-12-22
  • 来自专栏C++/Linux

    【Linux】信号保存与信号捕捉处理

    2信号保存概念 实际执行信号处理动作称为信号递达(Delivery); 信号从产生到递达之间的状态,称为信号未决(Pending); 进程可以选择阻塞 (Block )某个信号; 被阻塞的信号产生时将保持在未决状态 二、信号捕捉处理 1. 信号处理 我们在上面说过,信号保存是为了让进程在合适的时候处理,那么信号是什么时候被处理的呢? 下面我们也可以验证一下,我们只需要将上面代码的自定义处理方法修改一下即可,我们在 myhandler 中写个死循环打印 pending表,这样就能让2信号一直在处理了,这时候我们再给进程发送2信号, 正如我们上面所说,如果正在处理2信号2信号会被屏蔽,那么如果还希望自动屏蔽另外一些信号,则用 sa_mask 字段说明这些需要额外屏蔽的信号,当信号处理函数返回时会自动恢复原来的信号屏蔽字。 ,于是就去处理信号,而该信号处理方法又是自定处理方法,该方法就是再插入一个节点 node2,那么该方法执行完毕后返回用户态,此时的 head 指向 node2

    53811编辑于 2024-03-01
  • 来自专栏全栈程序员必看

    雷达系统及信号处理_毫米波雷达信号处理

    雷达的工作原理是: 发射机向目标发射电磁波,经目标反射之后,由接收机接收,经过信号处理可获得目标至发射机的距离、(径向)速度、方位、高度等信息。 二、脉冲体制雷达 2.1 系统构成及作用 一种简单的脉冲单基雷达大致由波形发生器、发射机、天线、接收机、信号处理器、数据处理器组成。 ; 接收机对回波信号进行了放大、解调,将调制信号调制到较低的中频和最终的基带上,基带信号上是没有调制任何载波的,基带信号会被送入信号处理器; 信号处理器完成信号处理功能,比如脉冲压缩、匹配滤波、多普勒滤波 、积累和运动补偿等; 信号处理器的输出被送入最终的数据处理器和显示器。 实际应用中,信号处理通常会将 I 通道的信号当成实部,Q 通道的信号当成虚部,形成一个复信号,即: x ( t ) = I ( t ) + j Q ( t ) = e j θ ( t ) x(t)=

    1.4K30编辑于 2022-09-27
  • 来自专栏就业 C++ 综合学习

    【Linux】信号处理

    信号处理 1 信号处理 2 内核态 VS 用户态 3 键盘输入数据的过程 4 如何理解OS如何正常的运行 5 如何进行信号捕捉 信号处理的总结 6 可重入函数 volatile关键字 Thanks♪ 首先我们来看如何进行捕捉信号信号处理有三种: signal(2 , handler);//自定义 signal(2 , SIG_IGN);//忽略 signal(2 , SIG_DFL);//默认 我们慢慢来说: 首先信号处理有一个特性,比如我们在处理二号信号的时候,默认会对二号信号进行屏蔽!对2信号处理完成的时候,会自动解除对2信号的屏蔽! 处理信号完毕,就会解除屏蔽! 接下来我们既可以来介绍sa_mask了,上面只是对2号信息进行了屏蔽,当我传入3号新号ctrl + \时就正常退出了,那么怎么可以在处理2信号时屏蔽其他信号呢? 就是通过sa_mask,将想要屏蔽的信号设置到sa_mask中,就会在处理2信号的时候,屏蔽所设置的信号

    73210编辑于 2024-07-09
领券