• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 求声音的频谱分析算法,就像winamp的柱状显示2

求声音的频谱分析算法,就像winamp的柱状显示2

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了winamp,winamp播放器官方下载,winamp播放器,winamp中文版,winamp是什么等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 求声音的频谱分析算法,就像winamp的柱状显示2
描述:

求声音的频谱分析算法,就像winamp的柱状显示。
大概又叫光谱分析吧,有函数代码最好,估计理论上应该是较复杂的,听说用到个什么傅立叶。
有熟悉的朋友帮帮忙吧。
由于较急,发了两个帖子。
另一个相同的帖子如下:
http://community.csdn.net/Expert/topic/3705/3705908.xml?temp=.683468


解决方案1:

应该要用到DFT,可以用DCT来加快算法速度,不过没有具体搞过,帮不了忙!

解决方案2:

傅立叶变换不行吗

解决方案3:

下面的代码不知是否有用:
我这儿也有一个c版的源程序
[代码]FFT 快速傅立叶变换 (c语言)
算法参见徐世良《计算机常用算法》第二版 第294页
void KFFT(
BNU::vector<std::complex<double> > &x,
BNU::vector<std::complex<double> > &y,
int inverse)
{
  int n = x.size();
  int k = log((double)n)/log(2.);
  int t ,m ,s , i, j, NV, r;
  double angle;
  std::complex<double> V,PODD;
  for (t = 0 ; t <= n-1 ; t++) {
    m = t;
    s = 0;
    for (i = 0 ; i <=k-1 ; i++) {
      j = int(m/2);
      s = 2*s + m - 2*j;
      m = j;
    }                                         
  if (&x!=&y) {
      y[t] = x[s];
    }else {
       if (s>t) {
           V=x[t];
           y[t]=x[s];
           y[s]=V;
       }
    }
  }
  for (t = 0 ; t <= n-2 ; t+=2) {
    V = y[t];
    y[t] = V + y[t+1];
    y[t+1] = V - y[t+1];
  }
  m = n/2;
  NV = 2;
  for (r = k-2 ; r >=0 ; r-- ) {
    m = m/2;
    NV = 2*NV;
    for (t = 0 ; t <= (m-1)*NV ; t=t+NV ){
      for (j = 0 ; j <= (NV/2)-1 ; j++) {             
  angle = -(2.0*M_PI*inverse*j)/NV;
        PODD = complex<double>(cos(angle),sin(angle))*y[t+j+(NV/2)];
        y[t+j+(NV/2)] = y[t+j] - PODD;
        y[t+j] = y[t+j] + PODD;
      }
    }
  };
for (i = 0 ; i < n; i++) {
   if (inverse==-1)
        y = y/double(n);
}
}

解决方案4:

http://www.codeproject.com/audio/waveInFFT.asp
http://www.codeguru.com/Cpp/G-M/multimedia/audio/article.php/c4709/

解决方案5:

波形图可不可以?可以的话,发邮件给我,我有这么个例子 EnochShen@QQ.com

解决方案6:

用快速傅立叶变缓算法


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 高分:如何和winamp插件通讯
  • 我想问一下,那位大虾有Winamp的相关编程文档,例如:插件的接口定义
  • 求声音的频谱分析算法,就像winamp的柱状显示2

相关文章

  • 2017-06-04 关于CALLBACK的疑问
  • 2017-06-04 C#导入COM组件
  • 2017-06-04 请教:#importdirective的相关问题
  • 2017-06-04 有关进程间服务的不解!大家告诉我!!
  • 2017-06-04 IDispatch::Invoke如何通过dispid调用方法?
  • 2017-06-04 如何在ATL中把自己定义的接口中的方法导出呢?多谢各位。
  • 2017-06-04 控件调用控件问题
  • 2017-06-04 MTS/com+在win2003上的部署问题!
  • 2017-06-05 线程cpu资源分配
  • 2017-06-05 哪里有socket多线程的例子可下载啊

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 用alt开发activex怎么返回一个IXMLDOMDocument对象。。
    • 100分请教:用MFC做ACTIVEX控件,怎样才能在IE中用<PARAM>给控件传递参数。急!
    • 怎么在DLL中弹出对话框?急!!!!
    • 请问一个vc调用excel的问题:向excel中添加了数据后保存时怎样弹出提示框?
    • 鼠标钩子和低级鼠标钩子在功能上有何区别?
    • 如何将一个DLL加入到我的工程中!
    • 十万火急!求教com组件生产的tlh声明问题,看不懂,100分
    • 关于MFC如何操作photoshop
    • 跪求BHO关于自定义浏览器上下文菜单的源码
    • 使用VLCActiveX出现的问题?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有