首页
学习
活动
专区
圈层
工具
发布

STM32单片机-输入捕获、FFT测频

​本内容介绍基于STM32F103VET6的一个实际工程中添加采集A相电压信号或B相电流信号频率的功能,分别通过输入捕获与FFT实现,均测试可用。持续更新,原创不易!...如图1.2.2所示,注意其中的TIM3_CH2N是PWM捕获比较输出,TIM3_CH3才是输入捕获。二、程序部分 这里通过STM32输入捕获或FFT转换两种方式实现频率的测量,在实际工程中都已实现。...1、通过STM32输入捕获 下面的程序采集PB0口(图1.2.1)的电压信号,因频率较低,且要求继电器出口时间小于35mS,采用测周法计算频率。给出主要部分定时器配置与定时器中断程序。...实现 1)概述 下面是采集PC1口(图1.2.1)的小通道电流信号,计算频率,其固件具ST官方DSP库实现FFT,测试固件移步:FFT(具ST官方DSP库实现)。...----------------- 已实现FFT的控制板: ----------------- GSM短信功能介绍移步:SIM7600CE模块(GSM/GPRS)调试。

77510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    xilinx FFT IP的介绍与仿真

    1 xilinx FFT IP介绍 Xilinx快速傅立叶变换(FFT IP)内核实现了Cooley-Tukey FFT算法,这是一种计算有效的方法,用于计算离散傅立叶变换(DFT)。...图1 xilinx FFT IP 1)AXI4-Stream 介绍 AXI4-Stream接口带来了标准化,并增强了Xilinx IP LogiCORE解决方案的互操作性。...除了诸如aclk,acclken和aresetn之类的常规控制信号以及事件信号之外,到内核的所有输入和输出都通过AXI4-Stream通道进行传输。...NFFT(变换的点大小):NFFT可以是最大变换的大小或任何较小的点大小。例如,1024点FFT可以计算点大小1024、512、256等。NFFT的值为log2(点大小)。...3 xilinx FFT IP的仿真测试 FFT的长度选择8点,x输入序列为x=[1,2,3,4,5,6,7,8]; Matlab验证: clear all close all clc x = [

    2.6K41

    基于python的快速傅里叶变换FFT(

    基于python的快速傅里叶变换FFT(二) 本文在上一篇博客的基础上进一步探究正弦函数及其FFT变换。...知识点   FFT变换,其实就是快速离散傅里叶变换,傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。...假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是An=sqrt(a*a+b*b)(某点处的幅度值An = A*(N/2)) 代码实现 包的安装步骤见上一篇博客。...frq = k/T # two sides frequency range frq1 = frq[range(int(n/2))] # one side frequency range YY = np.fft.fft...(y) # 未归一化 Y = np.fft.fft(y)/n # fft computing and normalization 归一化 Y1 = Y[range(int(n/2))] fig, ax

    3K30

    示波器中的 FFT 参数如何设置?

    FFT 属于 数学运算(Math)功能的一部分。...可以把任意一个模拟通道、数字通道或者参考波形作为输入源;在时域波形的基础上,生成一个频域显示,用于频谱观察;用户通过前面板 Math 按键 → 触摸屏 数学 → FFT 菜单进入。...FFT 有些可以设置的参数,我早就说过,频域的世界对我们来说是陌生的,那肯定这些设置也是不习惯的。...频率跨度 (HSCale / SPAN) 决定横轴的覆盖范围,也就是显示带宽;已知FFT 的频率分辨率由公式决定: 采样率点数 而屏幕能看到多少频率范围由 SPAN(跨度)决定。...画一张 示意图(频谱坐标轴 + 这五个参数的标注),这样能更直观地看到它们的关系 频谱坐标轴 + 这五个参数的标注 仿真一个 FFT 显示设置示意图: 红色虚线 → 中心频率 (HCENter),频谱横轴的中点

    10510

    FFT 中零填充的若干问题

    零填充的公式与作用 FFT 分辨率定义 :采样率 :采样点数(实际采到的点数,不包含零填充) 其中FFT 的分辨率完全取决于采样时间长度 ,和采样率 ,与零填充无关。...零填充的操作 如果原始信号长度是 ,我们在末尾补零到 点(通常取到 2 的幂,比如 或 ): FFT 之后的频率刻度变成: 零填充的效果 频率分辨率 Δf 并没有变: 依旧是 ,因为“有效采样时长”...只是增加了插值点:频谱曲线变得平滑,看起来像“更细”;实质是对原本 FFT 结果做了sinc 内插**。...零填充 = 频谱插值 ≠ 增加分辨率 做一个小可视化对比:同样 1 秒、1 kHz 正弦波,分别用 1024 点 FFT 和 1024 点+零填充到 8192 点 FFT,画出来两张图,直观展示“曲线更平滑...Hz,已经挺准,但和真实值有约 0.05 Hz 的偏差。

    11310

    MATLAB实现FFT 及信号的谱分析

    一、实验目的 1.通过实验加深对 FFT 的理解,熟悉 FFT 程序、结构及编程方法。 2.熟练应用 FFT 对典型信号进行谱分析的方法。...3.了解应用 FFT 进行信号频域分析可能出现的问题以便在实际中正确应用FFT。  4. 理解 FFT 与 IFFT 的关系。  5.. 熟悉应用 FFT 实现两个序列的线性卷积的方法。...FFT 并不是与 DFT 不同的另一种变幻,而是为了减少 DFT运算次数的一种快速算法。它是对变换式进行一次次的分解,是其成为若干小点数的组合,从而减少运算量。...常用的 FFT 是以 2 为基数的,其长度 N = 2L 。...它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于 2 的整数次方时,为了使用以2为基数的 FFT,可以用末位补零的方法,是其长度延长至 2 的整数次方。

    1.7K10

    卷积神经网络中的Winograd快速卷积算法

    目录 写在前面 问题定义 一个例子 F(2, 3) 1D winograd 1D to 2D,F(2, 3) to F(2x2, 3x3) 卷积神经网络中的Winograd 总结 参考 博客:blog.shinelee.me...问题定义 image.png 一个例子 F(2, 3) image.png image.png 1D winograd image.png image.png 整个计算过程在逻辑上可以分为4步: Input...1D to 2D,F(2, 3) to F(2x2, 3x3) image.png ? 将卷积核的元素拉成一列,将输入信号每个滑动窗口中的元素拉成一行。...只适用于较小的卷积核和tile(对大尺寸的卷积核,可使用FFT加速),在目前流行的网络中,小尺寸卷积核是主流,典型实现如\(F(6\times 6, 3\times 3)\)、\(F(2\times 2...就卷积而言,Winograd算法和FFT类似,都是先通过线性变换将input和filter映射到新的空间,在那个空间里简单运算后,再映射回原空间。

    2.8K40

    卷积神经网络中的傅里叶变换:1024x1024 的傅里叶卷积

    并且计算傅里叶变换的高效算法,即快速傅里叶变换 (FFT)可将复杂度降低到 O(N log(N))。而且更重要的是只要核比输入信号小,那么计算的复杂度就是恒定的。...二维 DFT(以及 2D 连续傅里叶变换)可以分成连续的 1D DFT,其中行和列可以分别计算。...基本测试信号及其对 CNN 的影响 考虑一个像素强度遵循对角正弦波的图像。可以通过沿图像的每个轴将 2D 傅里叶变换分离为多个 1D 傅里叶变换来计算 2D 傅里叶变换。...此外计算 DFT 的 FFT 算法对于 2 次方的信号长度(例如 128,512,1024)特别有效。 填充输入图像至少有两个选项:1、手动填充图像。2、将 FFT 的序列长度设置为填充信号的长度。...输入未填充的信号并将 fft_length 设置为大于输入长度的值。这会自动用零填充信号。 提示:TensorFlow 的 rfft2d 实现在输入的最后两个维度上计算 FFT。

    1.9K30

    干货 | 使用FFT变换自动去除图像中严重的网纹

    在网络上很多的PS教程中,也有提到使用FFT来进行去网纹的操作,其中最为广泛的是使用PS小插件FOURIER TRANSFORM,使用过程为:打开图像--进行FFT RGB操作,然后定位到红色通道,选取通道中除了最中心处的之外的白点区域...针对这一幅,我曾尝试在PS中用其他的方法来去背景纹理,可是一般去网的同时也把相片模糊了,只有FFT去网纹插件能完美去掉相片的网纹而且不损伤画质。   ...这个插件有个特性,他要求输入必须是3通道或者4通道的图,但是用他处理完成后的图虽然表面上看还是3通道还是4通道的,但是他已经失去了彩色信息了,我们注意到他在进行FFT RGB操作后,RGB三个通道中,R...我们看上面的FFT频谱图,这种显示基本上都是对直接进行FFT变换后的浮点数据进行对数变换后,在线性映射到0到255范围内的,有进行了log操作,数据压缩了很多,导致频谱图的对比度不是很强,也不利于我们分隔出那些亮点...这种效果的FFT图很明显更有利于纹理特征的提取。 下面的步骤就是:OSTU二值化 -- 》膨胀 --》 腐蚀 -- 》 反色 ---》中心核保留 -- 》中值 得到纹理频率的滤波器。

    4.8K40

    FFT 中常出现的 bin 是什么意思?

    我的文章里面经常在 FFT 里面出现 bin,bin,bin,其实之前也小小的解释了一下,但是可能太多了,大家没有注意,这里就单独的写一个小 Tips~ 什么是 bin FFT 把长度 的时域序列分解成...每一个输出点就是一个 bin(频率槽),它代表一个离散频率: 在实际分析里,我们通常只取前一半(0 ~ ),因为实数信号的 FFT 是共轭对称的。...不在整数 bin 上,就会泄漏到 100 Hz 和 101 Hz 的 bin,导致 FFT 看上去峰值“不稳”。...写一个大家直观想象的小例子 把 FFT 想象成一排收音机频道(bin),频率分辨率 Δf = 每个频道间隔。...image-20250920161204849 这张图正好展示了 bin 的概念和它对 FFT 结果的影响: f0=50 Hz:信号频率正好对齐到 bin(Δf≈3.91 Hz 的整数倍),能量全部集中在一个谱线里

    11610

    几幅图弄清FFT、DFT、DTFT和DFS的关系

    很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DFT,DTFT,DFS,FFT,FT,FS等,FT和FS属于信号与系统课程的内容,是对连续时间信号的处理,这里就不过多讨论,只解释一下前四者的关系...(在任何一本信号与系统课本里,此两条性质有详细公式证明) 下面,就用这两条性质来说明DFT,DTFT,DFS,FFT之间的联系: 先看图片: ? ? ? ? ?...没错,因此你去查找一个IDFT的定义式,是不是对n的取值区间进行限制了呢?这一限制的含义就是,取该周期延拓序列的主值区间,即可还原x[n]。 FFT呢?...FFT的提出完全是为了快速计算DFT而已,它的本质就是DFT!我们常用的信号处理软件MATLAB或者DSP软件包中,包含的算法都是FFT而非DFT。...如果您不是算法设计者,其实只要懂得如何使用FFT分析频谱即可。 其实个人认为,纠结了这么多,就是为了打破现实模拟世界与计算机数字世界的界限,道路漫长,仍需攻坚,加油。

    7.3K11

    GFNet | MLP领域再发力,清华大学提出将FFT思想用于空间信息交互

    受益于FFT的log-linear计算复杂度,GFNet可以设计成分层架构形式,能够更高分辨率作为起点,比如 。...给定长度为N的序列 ,1D DFT通过如下公式将其转换到频域: 注: 表示序列 的频谱。 此外,值得注意的是:DFT是一对一变换。...,比如利用其对称与周期性的FFT。...所提方案的输入尺寸为 并进行非重叠块拆分与线性投影得到维度D的词。GFNet的核心模块包含两部分: 全局滤波器层,它用于进行空间信息交换; 前馈网络,即MLP部分。...最后,我们采用逆FFT将调制信号变换回空间并更新词: 上述核心部分的实现伪代码如下,就是这么的简单。

    1.1K20

    FFT中的频谱泄露:详细食用指南(YUNWJ指导版)

    一致性增益(Coherent Gain, CG) 是什么:窗口信号的平均值,公式 表示加窗后一个完美相干的正弦波在 FFT 主瓣峰值会被缩小多少倍。...公式: 窗口像滤波器一样,把原本“落在一个 FFT bin 的噪声”扩展到多个 bin;ENBW 越大,噪声地板就被抬高越多。...还有一个,FFT 频谱分析时,如果信号频率不是整数 bin,就会发生谱泄漏(能量扩散到所有 bin)。...在最后的最后,在唠叨一下: 相干(整数 bin,对齐 bin) 信号的频率恰好落在 FFT 的某个整数 bin 上。 其中 是采样率, 是 FFT 点数, 就是频率分辨率(bin 间隔)。...“非相干”:信号频率没对齐 FFT bin,结果会泄漏。

    15910

    PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现

    当输入数组很大时,它们比卷积要快得多。在这些情况下,我们可以使用卷积定理来计算频率空间中的卷积,然后执行傅立叶逆变换以返回到位置空间。 当输入较小时(例如3x3卷积内核),直接卷积仍然更快。...它应该模仿torch.nn.functional.convNd的功能,并在实现中利用FFT,而无需用户做任何额外的工作。这样,它应该接受三个张量(信号,内核和可选的偏差),并填充以应用于输入。...在此示例中,我将构建一个1D傅立叶卷积,但是将其扩展到2D和3D卷积很简单。最后我们也会提供github的代码库。在该存储库中,我实现了通用的N维傅立叶卷积方法。...1 填充输入阵列 我们需要确保填充后信号和内核的大小相同。将初始填充应用于信号,然后调整填充以使内核匹配。 # 1....我们为所有输入构造随机张量,并测量输出值的相对差异。

    3.6K10

    1D卷积入门:一维卷积是如何处理数字信号的

    卷积是在科学、工程和数学中应用最广泛的运算符之一 卷积是对两个函数(f和g)进行的一种数学运算,它产生的第三个函数表示其中一个函数的形状如何被另一个函数修改。 ? 离散时间信号的卷积 ?...一种求解离散时间信号卷积的简单方法如下所示 输入序列x[n] ={1,2,3,4},其索引为{0,1,2,3} 脉冲响应h[n] ={5,6,7,8},其索引为{- 2,1,0,1} 蓝色箭头表示x[...n]和h[n]的第0个索引位置。...红色指针表示输出卷积索引的第零索引位置。我们可以构造一个表,如下所示。如图所示,将x和h的元素相乘,然后对角相加。 ?...all; % clears all the variables in the workspace >> close all; % closes all the figure window 从用户那里获取输入

    2.7K21
    领券