如何使用FFT求解一个音频数据采样率采样数据的频谱幅度

网站已改版,请使用新地址访问:
fft 在Qt中实现对采集到的数据进行频谱分析的源代码 Linux-Unix program 238万源代码下载- www.pudn.com
&文件名称: fft
& & & & &&]
&&所属分类:
&&开发工具: QT
&&文件大小: 7 KB
&&上传时间:
&&下载次数: 18
&&提 供 者:
&详细说明:在Qt中实现对采集到的数据进行频谱分析的源代码-Achieve spectral analysis use qt
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&fft\dialog.cpp&&...\dialog.h&&...\dialog.ui&&...\fft.h&&...\fir.h&&...\main.cpp&&...\mainwindow.cpp&&...\mainwindow.h&&...\mainwindow.ui&&...\ppfx.pro&&fft
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - Linux系统中进行快速傅里叶变换完整程序,包含测试数据,亲测通过
&[] - 使用Matlab GUI实现的音频播放器,可以显示频谱,实时频谱均衡,进度拖动,歌词显示等功能
&[] - Linux下的QTE 嵌入式可用的中文拼音输入法c++ ,利用他你可以进程移植到你的linux应用里
&[] - 在ARM9和ARMLinux下利用QT编写的实时数据采集,数据曲线动态显示程序。
&[] - QPSK的Matlab/Simulink的调制解调仿真系统,给出接收信号眼图及系统仿真误码率,包含载波恢复,匹配滤波,定时恢复等重要模块,帮助理解QPSK的系统
&[] - 给定多个512点的数组,分别对其进行FFT显示其频谱特性并显示频率和幅度坐标(可以通过界面控件选择数组、设定采样时间)
&[] - 简单的qt adc转换程序,例程学习用,实现对采集到的数据进行显示。
&[] - DS18B20温度采集子程序,包括温度读写命令及实现温度的采集信号处理
&[] - linux、QT,声卡采集并进行FFT变换的编程
&[] - 对PCM文件进行打包封装的程序,可以学习了解下WAV文件格式标准。用QT编写的查看: 4263|回复: 6
看了两天FFT做LED音乐频谱,有些问题想请教各位坛友
黄金会员, 积分 6397, 距离下一级还需 3603 积分
主题帖子积分精华0
阅读权限40
个人有些理解,但是又有些疑问:& &&&如做10个点的FFT,就需要采样10次,经过ADC转换后得到10个点的数字量,这10个数字量送去FFT处理,得到10个复数,这10个复数为10个频率点的频率特性,一个频率点跟下一个频率点的差值是(采样频率/10),也就是第1点的频率为0Hz, 第2点的频率为0+(采样频率/10)Hz, 第3点的频率为0+2*(采样频率/10)Hz。。。。以此类推
& &&&可以根据这10个复数算出这10个频率点的模值,幅度值。根据幅度值驱动不同数目的LED。
& &&&疑问来了,比如做个5行 10列的LED点阵显示频率,每个频率点的5行LED该如何量化显示?
黄金会员, 积分 6397, 距离下一级还需 3603 积分
主题帖子积分精华0
阅读权限40
哎呀 帖子要沉了 坛友们是嫌弃我的问题不够清楚吗???
黄金会员, 积分 6906, 距离下一级还需 3094 积分
主题帖子积分精华0
阅读权限40
既然已经通过这10个复数算出这10个频率点的模值,那再量化成整数就可以驱动对应数量的LED了
黄金会员, 积分 6397, 距离下一级还需 3603 积分
主题帖子积分精华0
阅读权限40
既然已经通过这10个复数算出这10个频率点的模值,那再量化成整数就可以驱动对应数量的LED了
求具体的量化思路& &我这样想 打个比方 我们预先知道所测量的电压值在0~5V之间变化,驱动5个LED,电压越高点亮LED越多,量化5v/5 = 1v, 0v 一个都不亮,1v 亮一个,2v 亮两个,5v 全亮,这样5个LED能够完全显示所测量的范围。
现在的问题是这个FFT变换后所计算的模值或者幅度值的范围是多少,范围未知,该如何量化?像这样的5个LED,假如我量化位0.5v显示一个LED,0.5X5 = 2.5V,5个LED只能显示0~2.5V以内的情况,超过2.5V的将无法显示出来
黄金会员, 积分 6397, 距离下一级还需 3603 积分
主题帖子积分精华0
阅读权限40
怎么发了两篇
黄金会员, 积分 6906, 距离下一级还需 3094 积分
主题帖子积分精华0
阅读权限40
不是这样的思路,看看这个&&AD采样的音频信号经过FFT运算之后获得某个时刻所要的频率的分量,即模值,显示到LED点阵上。比如你是5行10列,10个采样点,N=10,第n点的FFT运算结果是复数,该点的模值(即根号里面实部和虚部的平方和)除以2/N就是对应该频率下信号的幅度(对于第1个点则是除以N),即乘5,再除以5*10=50即是量化后的数值,介于0-5之间。而后通过扫描驱动LED的方法显示对应数量的LED,显示10次即完成一次转换。
中级会员, 积分 10, 距离下一级还需 40 积分
主题帖子积分精华0
阅读权限20
不是这样的思路,看看这个http://www.eeworld.com.cn/mcu//article_5703.html&&AD采样的音频信号 ...
最后为什么要除以50呢? 能不能解释一下呢.....不明白
Powered by使用Matlab对采样数据进行频谱分析_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
使用Matlab对采样数据进行频谱分析
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 14053|回复: 22
STM32F103 中如何使用FFT算法对ADC采样数据进行处理?Waiting for answer。。。
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
本人菜鸟一枚,使用STM32遇到了问题,希望技术大牛为我解答,感激不尽!!!
需求:在stm32f103z平台,通过ADC对一交流电压进行采样,使用FFT算法获得该电压信号的频谱
能提供源码文件更好,谢谢
主题帖子精华
金钱121743
在线时间987 小时
1,先将交流信号转换为STM32的ADC可以采集的信号(分压?+偏移)
2,学会STM32&adc采集。
3,写FFT代码。
4,完成....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
首先感谢老大指点,只是本人愚笨,无法写出代码,恳请给出FFT代码或者代码框架,万分感谢!!!
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
对了,ST官方是不提供了关于FFT的函数库,但是不知道放在哪一个头文件里,请指点啊。。。在线等
主题帖子精华
金钱121743
在线时间987 小时
FFT代码,百度下,很多。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
我找到了一些代码,但是不清楚FFT算法的使用,给出函数代码,求指点:FFT函数的输入输出参数含义?
#include&math.h&
#define PI 3.1971//定义圆周率值
#define FFT_N 128//定义福利叶变换的点数
struct compx
float real,
};//定义一个复数结构
struct compx s[FFT_N];//FFT输入和输出:从S[1]开始存放,根据大小自己定义
函数原型:struct compx EE(struct compx b1,struct compx b2)
函数功能:对两个复数进行乘法运算,输入参数:两个以联合体定义的复数a,b
输出参数:a和b的乘积,以联合体的形式输出
*********/
struct compx EE(struct compx a,struct compx b)
c.real=a.real*b.real-a.imag*b.
c.imag=a.real*b.imag+a.imag*b.
return(c);
函数原型:void FFT(struct compx *xin,int N)
函数功能:对输入的复数组进行快速傅里叶变换(FFT)
输入参数:*xin复数结构体组的首地址指针,struct型
void FFT(struct compx *xin)
int f,m,nv2,nm1,i,k,l,j=1;
struct compx u,w,t;
nv2=FFT_N/2;//变址运算,即把自然顺序变成倒位序,采用雷德算法
nm1=FFT_N-1;
for(i=0;i&nm1;i++)
if(i&j)//如果i&j,即进行变址
xin[j]=xin;
k=nv2;//求j的下一个倒位序
while(k&=j)//如果k&=j,表示j的最高位为1
j=j-k;//把最高位变成0
k=k/2;//k/2,比较次高位,依次类推,逐个比较,直到某个位为0
j=j+k;//把0改为1
int le,lei,//FFT运算核,使用蝶形运算完成FFT运算
for(l=1;(f=f/2)!=1;l++)//计算l的值,即计算蝶形级数;
for(m=1;m&=l;m++)//控制蝶形结级数
//m表示第m级蝶形,l为蝶形级总数
l=log(2)N le=2&&(m-1);//le蝶形结距离,即第m级蝶形的蝶形结相距le点
lei=le/2;//同一蝶形结中参加运算的两点的距离
u.real=1.0;//u为蝶形结运算系数,初始值为1
u.imag=0.0;
w.real=cos(PI/lei);//w为系数商,即当前系数与前一个系数的商
w.imag=-sin(PI/lei);
for(j=0;j&=lei-1;j++)//控制计算不同种蝶形结,即计算系数不同的蝶形结
for(i=j;i&=FFT_N-1;i=i+le)//控制同一蝶形结运算,即计算系数相同蝶形结
ip=i+//i,ip分别表示参加蝶形运算的两个节点
t=EE(xin[ip],u);//蝶形运算,详见公式
xin[ip].real=xin.real-t.
xin[ip].imag=xin.imag-t.
xin.real=xin.real+t.
xin.imag=xin.imag+t.
u=EE(u,w);//改变系数,进行下一个蝶形运算
/****函数功能:测试FFT变换,演示函数使用方法**************/
void main()
for(i=0;i&FFT_N;i++)//给结构体赋值
s.real=sin(2*3.793*i/FFT_N);//实部为正弦波FFT_N点采样,赋值为1
s.imag=0;//虚部为0
FFT(s);//进行快速福利叶变换
for(i=0;i&FFT_N;i++)//求变换后结果的模值,存入复数的实部部分
s.real=sqrt(s.real*s.real+s.imag*s.imag);
主题帖子精华
中级会员, 积分 212, 距离下一级还需 288 积分
在线时间0 小时
去看看数字信号处理的书,知道FFT(快速傅里叶变换)的原理,然后对照着函数看,就能看懂了。。基二FFT,基四FFT,基八FFT。就是蝶形运算,就是为了减少乘法或者加法的次数。
人需要沐浴阳光,也必将经历风雨
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
我想知道怎么使用FFT转换后数据,有什么含义???
主题帖子精华
新手入门, 积分 42, 距离下一级还需 -22 积分
在线时间0 小时
这是用波形发生器产生的正弦波(180Hz Vpp=5 采集512点)
使用ADC采集并转换后得到的电压值随采集点数(或者时间)的波形图,右图为FFT转换后得到的数组的实部和虚部构成的柱状图(实部数据作为X轴,虚部作为Y轴)现在需要从右图中获取频谱信息,不知如何操作,请高人指点!!!
2c979efbb4e01_268.png (0 Bytes, 下载次数: 0)
22:54 上传
194afcbea9a_65.png (0 Bytes, 下载次数: 0)
22:54 上传
主题帖子精华
新手入门, 积分 39, 距离下一级还需 -19 积分
在线时间0 小时
请问楼主这个问题是怎么解决的,如何将AD转换的结果进行FFT???急求啊、、、
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间0 小时
这个FFT的时间得一百多毫秒&&&有没有更快的&&&求推荐
主题帖子精华
金钱121743
在线时间987 小时
回复【11楼】草枝摆呀草枝摆:
---------------------------------
你移植的有问题吧,多少点啊?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间0 小时
回复【12楼】正点原子:
---------------------------------
1024
主题帖子精华
高级会员, 积分 591, 距离下一级还需 409 积分
在线时间32 小时
用ST官方的DSP库
一介草民……
主题帖子精华
金钱121743
在线时间987 小时
回复【13楼】草枝摆呀草枝摆:
---------------------------------
如13楼,用官方的DSP库试试.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间0 小时
回复【15楼】正点原子:
---------------------------------
官方的DSP库确实是快。但是我用官方的DSP库算做fft。比如输入5kHz的信号,&经过AD采样,做FFT,&&串口打印信号频率,输出的结果不知道为什么有5KHz也有10KHz&&&。这个10kHz不知道是怎么出来的。输入其它频率信号的时候,也都有这种现象存在
主题帖子精华
高级会员, 积分 600, 距离下一级还需 400 积分
在线时间128 小时
回复【6楼】cancan2013:
---------------------------------
你这个程序有一点问题吧
主题帖子精华
新手入门, 积分 21, 距离下一级还需 -1 积分
在线时间0 小时
请问官方DSP库哪边找呢
主题帖子精华
新手入门, 积分 26, 距离下一级还需 -6 积分
在线时间3 小时
主题帖子精华
初级会员, 积分 102, 距离下一级还需 98 积分
在线时间17 小时
请问楼主问题解决了吗
主题帖子精华
初级会员, 积分 102, 距离下一级还需 98 积分
在线时间17 小时
回复【15楼】正点原子:
---------------------------------
官方的DSP库确实是快。但是我用官方的DSP库算做 ...
STM32F103ZET6可以调用DSP库不
主题帖子精华
初级会员, 积分 102, 距离下一级还需 98 积分
在线时间17 小时
回复【15楼】正点原子:
---------------------------------
官方的DSP库确实是快。但是我用官方的DSP库算做 ...
朋友 可以交流下如何用STM32F103 对ADC采样数据做FFT吗
主题帖子精华
新手入门, 积分 4, 距离下一级还需 16 积分
在线时间0 小时
求楼主分享程序
Powered by关于音频采样级别的问题-采样频率与音频采样级别有什么区别
你正在浏览: &>&
关于音频采样级别的问题_采样频率与音频采样级别有什么区别
关于音频采样级别的问题
我下载了一首格式为WMA的节目,但它的音频采样级别是22kHz,而我的MP3仅支持32kHz以上的WMA,有改变音频采样级别而不转换格式的方法吗?
这样的软件很多啊推荐你用全能音频转换通.可以批量修改.其实也是一种转换,不过是只改变采样率,而不变格式.
视频转音频采样频率为多少最好? [
视频转音频采样频率为多少最好?441000Hz,音质也就可以了,48k太高。... 2007-04-...]关于音频参数的一些问题? [
音频参数大致有以下几个: 1、采样的位数 采样位数可以理解为采集卡处理声音的解析度。这个数值越大,解...]44.1kHZ的音频重采样为48kHZ的音频有什么办法能尽量提升音质呢?(都是16bit) [
2.音频采样级别(音频采样频率) 数码音频系统是通过将声波波形转换成一连串的...更多关于重采样的知...]请问位速只有96KBPS ,音频采样级别只有22KHZ,但为什么听上去比其他的正规音频文件要好听(M... [
这个东西是不能调的,只能从高往低调,不能从低往高走的 要高音质,最好找APE格式的,或者找CD,高音...]在多媒体中,常用的标准采样频率是多少? [
的特点是:采用RLE压缩方式存储数据,图像显示与计算机硬件设备的显示模式有关...2.音频采样级别(...]什么是数字音频里的采样深度? [
采样率和采样深度是数字音频技术里两个重要的参数。 采样率(取样频率)代表单位时间内采集的点数,比如9...]mp3中的频率 44100 Hz ,比特 16 Bits ,码率 128 Kbps ?它们三个的关系... [
1.频率(如44100Hz):音频采样级别(音频采样频率)采样位数可以理解为采集卡...更多关于码率...]
你可能感兴趣的内容?

我要回帖

更多关于 音频采样 的文章

 

随机推荐