社区
图形处理/算法
帖子详情
图像处理 提取波形 在新窗口重绘波形 FFT变换 绘出变换结果
vctuxiangchuli
2010-04-26 03:28:43
小辈正在进行图像处理,要求把示波器出图中的波形提取出来,并将波形进行FFT变换,我现在知道部分算法,但是还有很多问题,如怎样在一个新窗口中绘出波形、FFT变换后的频域图,求可供参考的相似的例子。若有源代码,感激不尽。(xuhang_hit2006@126.com)
...全文
162
8
打赏
收藏
图像处理 提取波形 在新窗口重绘波形 FFT变换 绘出变换结果
小辈正在进行图像处理,要求把示波器出图中的波形提取出来,并将波形进行FFT变换,我现在知道部分算法,但是还有很多问题,如怎样在一个新窗口中绘出波形、FFT变换后的频域图,求可供参考的相似的例子。若有源代码,感激不尽。(xuhang_hit2006@126.com)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lqa876270
2011-08-12
打赏
举报
回复
您好,我也在找FFT,也给我发一份。276367745@qq.com
谢谢!
vctuxiangchuli
2010-05-05
打赏
举报
回复
结贴,懂了
wangyingyingqq
2010-04-30
打赏
举报
回复
友情帮顶
xz801025
2010-04-29
打赏
举报
回复
不错啊,学习了
vctuxiangchuli
2010-04-26
打赏
举报
回复
谢谢楼主们
尹成
2010-04-26
打赏
举报
回复
另外在FFT变换的时候:
X轴代表频率,它的分辨率与你进行FFT变换的点数和采样频率有关,设点数为N,采样频率为FS,则FFT变换后的结果(模)中,第0到N/2个数据代表了对应从0Hz到FS/2的功率谱,所以结果数据的分辨率为FS/N
Y轴代表功率,可用dB为单位,取个合适的比例系数表示高度就可以了。
尹成
2010-04-26
打赏
举报
回复
#include "dip.h"
void TDipWindow::add(COMPLEX *a,COMPLEX *b,COMPLEX *ret)
{
ret->re = a->re + b->re;
ret->im = a->im + b->im;
}
void TDipWindow::sub(COMPLEX *a,COMPLEX *b,COMPLEX *ret)
{
ret->re = a->re - b->re;
ret->im = a->im - b->im;
}
void TDipWindow::mul(COMPLEX *m,COMPLEX *n,COMPLEX *ret)
{
float a,b,c;
a = ( m->re - m->im ) * n->im;
b = m->re * ( n->re - n->im );
c = m->im * ( n->re + n->im );
ret->re = a + b;
ret->im = a + c;
}
int TDipWindow::reverse(int t,int k)
{
int i,j,m,s;
m = t;
s = 0;
for ( i = 0 ; i < k ; i++ )
{
j = m / 2;
s = s * 2 + ( m - j * 2 );
m = j;
}
return s;
}
void TDipWindow::root(int n)
{
int j;
omega->re = 1;
omega->im = 0;
omega[1].re = (float)cos(2 * PI / n);
omega[1].im = -(float)sin(2 * PI / n);
for ( j = 2 ; j < n/2 ; j++ )
mul(&omega[1],&omega[j-1],&omega[j]);
for ( j = n/2 ; j < n ; j++ )
{
omega[j].re = -omega[j-n/2].re;
omega[j].im = -omega[j-n/2].im;
}
}
void TDipWindow::fft(int n)
{
int s,k,m,l,nv,t,j;
COMPLEX podd,ret;
k = (int)(log(n) / log(2) + 0.5);
nv = n;
m = 1;
for ( l = k-1 ; l >= 0 ; l-- )
{
for ( t = 0 ; t < m * nv ; t+=nv )
for ( j = 0 ; j < nv/2 ; j++ )
{
s = (t+j) / (int)pow(2,l);
s = reverse(s,k);
ret = omega[s];
mul(&ret,&p[t+j+nv/2],&podd);
sub(&p[t+j],&podd,&p[t+j+nv/2]);
add(&p[t+j],&podd,&p[t+j]);
}
m *= 2;
nv /= 2;
}
for ( t = 0 ; t < n ; t++ )
{
s = reverse(t,k);
f[t] = p[s];
}
}
void TDipWindow::nfft(int n)
{
int i;
for ( i = 0 ; i < n ; i++ )
p[i] = f[i];
fft(n);
p[0] = f[0];
for ( i = 1 ; i < n ; i++ )
p[i] = f[n-i];
for ( i = 0 ; i < n ; i++ )
{
p[i].re /= n;
p[i].im /= n;
}
}
void TDipWindow::tfft(int m,int n)
{
int i,j;
root(n);
p = (COMPLEX *) new COMPLEX[n];
f = (COMPLEX *) new COMPLEX[n];
for ( i = 0 ; i < m ; i++ )
{
for ( j = 0 ; j < n ; j++ )
p[j] = SpaceField[i][j];
fft(n);
for ( j = 0 ; j < n ; j++ )
FreqField[i][j] = f[j];
}
delete p;
delete f;
for ( i = 0 ; i < m ; i++ )
for ( j = 0 ; j < n ; j++ )
SpaceField[i][j] = FreqField[i][j];
root(m);
p = (COMPLEX *) new COMPLEX[m];
f = (COMPLEX *) new COMPLEX[m];
for ( j = 0 ; j < n ; j++ )
{
for ( i = 0 ; i < m ; i++ )
p[i] = SpaceField[i][j];
fft(m);
for ( i = 0 ; i < m ; i++ )
FreqField[i][j] = f[i];
}
delete p;
delete f;
}
void TDipWindow::ntfft(int m,int n)
{
int i,j;
root(n);
p = (COMPLEX *) new COMPLEX[n];
f = (COMPLEX *) new COMPLEX[n];
for ( i = 0 ; i < m ; i++ )
{
for ( j = 0 ; j < n ; j++ )
f[j] = FreqField[i][j];
nfft(n);
for ( j = 0 ; j < n ; j++ )
SpaceField[i][j] = p[j];
}
delete p;
delete f;
for ( i = 0 ; i < m ; i++ )
for ( j = 0 ; j < n ; j++ )
FreqField[i][j] = SpaceField[i][j];
root(m);
p = (COMPLEX *) new COMPLEX[m];
f = (COMPLEX *) new COMPLEX[m];
for ( j = 0 ; j < n ; j++ )
{
for ( i = 0 ; i < m ; i++ )
f[i] = FreqField[i][j];
nfft(m);
for ( i = 0 ; i < m ; i++ )
SpaceField[i][j] = p[i];
}
delete p;
delete f;
}
liumenghappy
2010-04-26
打赏
举报
回复
lz,FFT变换的代码已发到你邮箱
PyTorch音频处理技术及应用研究:从特征
提取
到相似度分析
本文系统研究了现代音频处理技术及其应用,重点探讨了梅尔频率倒谱系数(MFCC)的特征
提取
方法和快速傅里叶
变换
(
FFT
)在音频分析中的关键作用。研究内容包括音频信号处理的基础技术,如离散余弦
变换
、能量谱处理和Mu-Law编码等
波形
变换
方法,并通过两个实践案例验证了理论方法的有效性。第一个案例展示了音频建模的全流程,包括数据加载、
波形
变换
和频谱图绘制;第二个案例实现了音频相似度分析,提供了完整的实现代码和结果分析。
数字
图像处理
自学笔记 (武汉大学 贾永红)
第一章——绪论 数字
图像处理
的概念 图像:对客观对象的一种相似性的,生动的写真或描述 图像类别: 伽马射线成像 x射线成像 紫外线成像 可见光与红外波段成像 微波成像 无线电波成像 其他成像模式:超声波成像,电子显微镜方法,合成成像 分类: 彩色图像与非彩色图像 模拟图像与数字图像 模拟图像:空间坐标和亮度可以用函数表示 数字图像:可以用数组或矩阵表示(值全是整数)
图像处理
:对图像进行一系列操作,达到预期目的。 模拟
图像处理
借助光学设备 数字
图像处理
借助计算机 (计算机
图像处理
)
C++音频处理实战:WAV文件解析与
波形
图生成
WAV文件基于RIFF容器规范,其核心由多个“chunk”组成,其中最重要的两个是fmtchunk 和datachunk。为了在C++中高效地映射这些二进制结构,必须明确定义与文件布局完全一致的结构体类型,并严格控制编译器的内存对齐行为。典型的
波形
图以中心线为基准,上方表示正振幅,下方表示负振幅。设绘图区域的高度为H像素,垂直居中线位于H/2处。
MATLAB实现时域频域特征
提取
技术指南
时域分析是对信号在时间轴上的直接测量和观察,包括但不限于信号的幅值变化、
波形
形状以及周期性等。它是信号处理的第一步,对信号的初步理解至关重要。例如,在无线通信领域,时域分析可以帮助工程师了解信号的时序特性,为后续的信号解调、滤波设计等提供理论依据。MATLAB界面由命令窗口、编辑器、工作空间和路径等几大部分组成。命令窗口提供了一个交互式环境,允许用户直接输入命令并立即看到结果。编辑器用于编写和调试脚本或函数,工作空间存储变量,而路径则显示当前可用的文件夹和搜索路径。
串口上位机
波形
显示与数据分析工具设计
在计算机控制系统中,上位机通常指的是与下位机(例如微控制器、PLC、单片机等)相连接的高级计算机系统。它在系统中扮演着数据处理、监控和控制的角色,具备更强的计算能力和更丰富的用户交互界面。上位机可以是个人电脑、工控机或是嵌入式计算机等,往往运行着操作系统和特定的应用程序,用于执行复杂的运算和逻辑判断,以及提供用户友好的交互环境。上位机与下位机通过串口通信、以太网通信、无线通信等多种方式交换数据。它们之间通过一定的通信协议确保数据传输的正确性和实时性。
图形处理/算法
19,466
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章