12位ADC2048 fft 采样带宽数值,2048个2048 fft 采样带宽点进行定点FFT频谱分析,谁会定点FFT的程序,用的16位芯片。有奖励,谢谢

网站已改版,请使用新地址访问:
AudioO_FFT 通过stm32 adc采样音频信号进行fft频谱分析 ARM-PowerPC-ColdFire-MIPS 微处理器开发 270万源代码下载- www.pudn.com
&文件名称: AudioO_FFT& & [
& & & & &&]
&&所属分类:
&&开发工具: Visual C++
&&文件大小: 158 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:通过stm32 adc采样音频信号进行fft频谱分析-Fft spectrum analysis performed by sampling the audio signal stm32 adc
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&DOC\Instruction.txt&&INC\core_cm3.c&&...\core_cm3.h&&...\startup_stm32f10x_md.s&&...\stm32f10x.h&&...\system_stm32f10x.c&&...\system_stm32f10x.h&&OUTPUT\OBJ\mine.hex&&SRC\DSP.c&&...\DSP.h&&...\font.h&&...\IvanFFT.s&&...\IvanMag.s&&...\IvanWindow.s&&...\LcdDisplay.c&&...\LcdDriver.c&&...\LcdDriver.h&&USER\main.c&&....\mine.uvproj&&....\stm32f10x_conf.h&&....\stm32f10x_it.c&&....\stm32f10x_it.h&&LIB\inc&&...\src&&OUTPUT\LIST&&......\OBJ&&DOC&&INC&&LIB&&OUTPUT&&SRC&&USER
&输入关键字,在本站270万海量源码库中尽情搜索:查看: 21116|回复: 18
STM32F407 DSP库的使用 2048点FFT ADC+DMA
主题帖子精华
新手入门, 积分 44, 距离下一级还需 -24 积分
在线时间0 小时
&&&&& 基于STM32F407VGT6,是官方的discovery板子。
&&&&& 官方给的DSP库中有不少现成的函数,包括复数函数,滤波函数等等,都是对FPU运算优化过的,网上说可以比普通的浮点运算快10倍至百倍,大家可以试一试。
&&&&&& 这里上传我的一个工程,基于IAR EWARM6.4 ,主要功能是40KHz的AD采样,数据由DMA传输至数组,调用库中函数进行FFT变换,我对结果进行了简单处理,大家在仿真界面下添加FFT.c中的graphic数组,graphic[0]到graphic[15]代表了0~20Khz的频率范围,用函数信号发生器作为输入信号,效果不错。
以下是工程
1、编译会有很多整型赋值给浮点的警告,不用理会,因为ADC采样值是整型,而做FFT需使用浮点
2、如果编译说找不到文件,从工程中重新添加即可。
08:34 上传
点击文件名下载附件
3.54 MB, 下载次数: 33005
主题帖子精华
新手入门, 积分 22, 距离下一级还需 -2 积分
在线时间0 小时
原子哥,我最近也用DSP库进行FFT运算,是用ADC+TIM+DMA,为什么我算出来后用matlab画出幅频响应图,为什么和直接用matlab对采样序列进行FFT变换不一样呢?
我用的是arm_cfft_radix2_f32()对采样序列进行FFT,然后用arm_cmplx_mag_f32()算出幅值,将它用matlab画出来的时候,对应的频率不一样,比如我输入的是75hz的正弦信号,但幅频特性显示的是在150hz处有最大幅度,这是为什么啊?
主题帖子精华
新手入门, 积分 44, 距离下一级还需 -24 积分
在线时间0 小时
再奉上一个DSP库使用说明
08:37 上传
点击文件名下载附件
92.13 KB, 下载次数: 6662
主题帖子精华
金钱123009
在线时间1017 小时
主题帖子精华
初级会员, 积分 109, 距离下一级还需 91 积分
在线时间0 小时
回复【楼主位】iyzyh:
---------------------------------
楼主下载不了啊
STM32 学习中
主题帖子精华
新手入门, 积分 44, 距离下一级还需 -24 积分
在线时间0 小时
回复【4楼】xc1989:
---------------------------------
我刚试了一下,可以呀~
主题帖子精华
初级会员, 积分 109, 距离下一级还需 91 积分
在线时间0 小时
回复【5楼】iyzyh:
---------------------------------
0.48&KB/S&附件1.。。。。。。。
STM32 学习中
主题帖子精华
初级会员, 积分 109, 距离下一级还需 91 积分
在线时间0 小时
回复【5楼】iyzyh:
---------------------------------
我去实验室试试吧&应该不是网速问题
STM32 学习中
主题帖子精华
初级会员, 积分 130, 距离下一级还需 70 积分
在线时间3 小时
回复【楼主位】iyzyh:
---------------------------------
效果不错是看着不错,还是经过公式算过,实际的数据与理论比较符合?
主题帖子精华
新手入门, 积分 44, 距离下一级还需 -24 积分
在线时间0 小时
回复【8楼】KC_CEC:
---------------------------------
拿函数信号发生器频率由低到高变化,由频率算一下该落到graphic[16]所分成的15个区间中的哪一个,再看一下实际仿真中数组的峰值在哪,在这个精度下我测得是吻合的~理论上数组分得越细误差越小,不过实际精度到底会有多少我没有测过。
主题帖子精华
新手入门, 积分 22, 距离下一级还需 -2 积分
在线时间0 小时
楼主&删掉自己的帖子吧&看了一下程序&问题大大的&你根本没搞清楚FFT&&基4&FFT&是基2FFT所需要内存空间的两倍&&你这个只是1024点的FFT&何谈2048&&还有你DMA到输入数组之间的数据传递&没有补零
主题帖子精华
新手入门, 积分 30, 距离下一级还需 -10 积分
在线时间1 小时
回复【10楼】wlf:
---------------------------------
大神你修改修改,贡献出来看看啊,别光说啊,呵呵,期待哦
主题帖子精华
新手入门, 积分 22, 距离下一级还需 -2 积分
在线时间0 小时
回复【11楼】zhanyanqiang:
---------------------------------
其实&&我也不会&&我总觉得&这玩意&应该再说的详细一点&&不要曲解官方的&意思&&事实上&补零&之后&确实能够增加精度&&我的东西&只是限制于成本的问题&&还用不了&像STm32&这么高级的东西
主题帖子精华
新手入门, 积分 46, 距离下一级还需 -26 积分
在线时间0 小时
谢谢楼主分享~~
主题帖子精华
新手入门, 积分 22, 距离下一级还需 -2 积分
在线时间0 小时
楼主求指教。。这个问题纠结了好久了
主题帖子精华
新手入门, 积分 21, 距离下一级还需 -1 积分
在线时间0 小时
谢谢分享谢谢分享谢谢分享谢谢分享
主题帖子精华
初级会员, 积分 123, 距离下一级还需 77 积分
在线时间17 小时
正要用一下
主题帖子精华
初级会员, 积分 88, 距离下一级还需 112 积分
在线时间15 小时
你这是1024点的FFT哦
主题帖子精华
金牌会员, 积分 1735, 距离下一级还需 1265 积分
在线时间189 小时
mark,学习!
Powered by豆丁微信公众号
君,已阅读到文档的结尾了呢~~
定点fft dsp fft ti dsp fft fft实现 dsp定点化 定点dsp c语言实现fft fftpascal实现 2048 实现 iir滤波器的dsp实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
2048点FFT在定点DSP上的实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口STM32F0 ADC采样128点进行FFT,转换结果分析 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 1318|回复: 8
STM32F0 ADC采样128点进行FFT,转换结果分析
在线时间11 小时
该用户从未签到主题帖子精华
初级会员, 积分 129, 距离下一级还需 71 积分
& && &各位高手,现在用STM32F0的ADC采样一组不规则信号,128个点,200HZ采样;采样数据经过MTLAB验证,FFT转换结果跟keil运行输出结果一致,说明FFT程序正确。现在经过FFT转换输出的128个模数(x[i].real=sqrt(x[i].real*x[i].real+x[i].img*x[i].img);),取了64个数据转换功率来分析(根据FFT对称性),把64个功率数据由串口输出,从串口数据来看,在不规则信号幅度低的时候,输出数据如下:(35 10 15 18 20 0F 00 0C 19 1F 15 12 10 0F 06 0C 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00);
在不规则信号幅度高的时候,输出数据如下:(35 1C 25 19 29 23 19 16 1B 26 2B 28 2D 29 20 28 13 22 24 18 21 10 21 1B 1C 24 1A 19 1F 13 1A 17 17 18 18 18 1A 14 13 15 17 1A 19 1B 14 13 16 15 16 0D 09 10 14 15 0C 1A 17 10 13 0C 09 06 09);
& &&&观察数据发现:输入信号幅度低时,在64个点对应频率0-25HZ以后,各个频点对应功率全部为0;而信号强的输出数据,64个频点对应的功率都大于0。 对于这64个数据,是不是输入信号幅度越高,FFT转换后的对于功率就越大?要分析原始波形的幅度,是不是看这64点功率就可以一一对应判断了?对这64个数据还需要进行什么分析才知道原始波形高点的频率和幅度?
//5ms采1个点,128个点,采样频率F=200Hz
//FFT结果的128个数据对应频率点是:0,1*200Hz/128,2*200Hz/128,3*200Hz/128, 。。。 ,127*200Hz/128 (0-&127)
//频率点表:
//& && && & 0.00-&&&1.5625 -&&&3.125- &&&4.6875 -&&&6.25 -&&&7.8125 -&&&9.375 -& 10.9375-& //8PCS
//& && && & 12.5 -& 14.0625-& 15.625-& 17.1875-& 18.75-& 20.3125-& 21.875-& 23.4375-& //8pcs
//& && && & 25.00-& 25.5626-& 28.125-& 29.6875-& 31.25-& 32.8125-& 34.375-& 35.9375-& //8PCS
//& && && & 37.5 -& 39.0625-& 40.625-& 42.1875-& 43.75-& 45.3125-& 46.875-& 48.4375-& //8pcs
在线时间11 小时
该用户从未签到主题帖子精华
初级会员, 积分 129, 距离下一级还需 71 积分
请问高频信号,经FFT后,得到的模值和频点,怎么处理才知道原始信号的相关参数?
在线时间11 小时
该用户从未签到主题帖子精华
初级会员, 积分 129, 距离下一级还需 71 积分
% MTLAB 显示出ADC采样128个点对应波形
%---------------------------------------------------------------------------------
& &&&%128点ADC采样最大幅度波形
fs=200;& && &&&%采样频率
N=128;& && && &%采样数据点数
n=0:N-1;& && & %采样序列(0-&128)
t=n/& && &&&%时间序列(0-&128/200)
%---------------------------------------------------------------------------------
xn=[729 729 728 732 733 727 729 727 727 728 730 730&&76 2 1 1 729 729 730 727 726 726 727 728 727 708 ...
319 3 1 403 730 597 0 1 2 1 18 1 1 0 0 0 454 727 729 733 734 728 729 723 727 732 643 3 2 3 0 0 2 564 ...
729 726 729 727 729 730 731 730 730 730 729 645 2 0 0 0 0 0 1 0 0 4 0 1 1 1 2 4 730 729&&730 730 728 ...
728 727 729 724 726 725 728 726 727 726 728 732 729 724 727 728 730 729 723 726 728 729 727 729 728 ...
729 728 727 732 731 281 1 1 1 0];
%---------------------------------------------------------------------------------
subplot(2,2,1),plot(t,xn);& &%绘出原始信号图
xlabel('时间/sec');& && && & % x轴为时间
title('最大幅度原始信号');& & %标题:最大幅度原始信号图
y=fft(xn);& && && && &%对输入信号做 FFT 变换
mag=abs(y);& && && &&&%求 FFT 转换结果的模值,即振幅
Ayy = mag/(N/2);& && &%模换算成实际的幅度=该点复数的模值除以N/2
f=(0:N-1)*fs/N;& && & %真实频率
subplot(2,2,3),plot(f,Ayy);& &%绘出FFT转换后实际的幅度图
xlabel('频率/Hz');& && && && &% x轴为频率
title('FFT转换后的实际幅度');&&%标题:FFT转换后的实际幅度图
%---------------------------------------------------------------------------------
%%%%%%%% 128点ADC采样小型幅度波形
yn=[449 449 443 444 443 444 443 444 444 434 426 420 420 426 435 443 453 473 491 508 516 526 540 558 574 ...
577 574 571 574 582 588 605 613 611 604 587 569 548 527 507 472 429 388 351 312 284 276 283 298 318 332 ...
345 362 383 410 446 471 484 484 486 501 525 547 564 573 576 573 570 576 588 600 608 598 589 565 544 534 ...
537 562 583 595 587 558 533 509 493 482 482 481 487 493 508 522 541 549 547 543 545 550 551 554 554 565 ...
579 597 602 604 599 594 583 568 545 530 514 501 503 512 524 532 541 536 537 538 537 544 545 538 534];
%---------------------------------------------------------------------------------
subplot(2,2,2),plot(t,yn);& &%绘出原始信号图
xlabel('时间/sec');& && && & % x轴为时间
title('小型幅度原始信号');& &%标题:小型幅度原始信号图
z=fft(yn);& && && && &%对输入信号做 FFT 变换
maf=abs(z);& && && &&&%求 FFT 转换结果的模值,即振幅
Byy = maf/(N/2);& && &%模换算成实际的幅度=该点复数的模值除以N/2
f=(0:N-1)*fs/N;& && & %真实频率
subplot(2,2,4),plot(f,Byy);& &%绘出FFT转换后实际的幅度图
xlabel('频率/Hz');& && && && &% x轴为频率
title('FFT转换后的实际幅度');&&%标题:FFT转换后的实际幅度图
(34.41 KB, 下载次数: 0)
13:34 上传
在线时间11 小时
该用户从未签到主题帖子精华
初级会员, 积分 129, 距离下一级还需 71 积分
请各位不吝赐教,在此感谢
在线时间223 小时
ST金币3814
该用户从未签到主题帖子精华
金牌会员, 积分 4245, 距离下一级还需 755 积分
不知道楼主有没有对采样数据*2呢?
因为,采样频率要大于信号频率的两倍,才能恢复出实际波形。
以下提供圈圈大神的详细解释:
在线时间223 小时
ST金币3814
该用户从未签到主题帖子精华
金牌会员, 积分 4245, 距离下一级还需 755 积分
本帖最后由 无薪税绵 于
11:42 编辑
不知道楼主有没有对采样数据*2呢?
因为,采样频率要大于信号频率的两倍,才能恢复出实际波形。
以下提供圈圈大神的详细解释:
再提供一份:FFT后的物理意义
刚发现,这个解释才牛:
在线时间1 小时
该用户从未签到主题帖子精华
新手上路, 积分 16, 距离下一级还需 34 积分
请问楼主是用DSP库的吗?STM32F0的DSP库在哪里可以下载?
在线时间23 小时
该用户从未签到主题帖子精华
中级会员, 积分 375, 距离下一级还需 125 积分
楼主讲得详细
在线时间7 小时
该用户从未签到主题帖子精华
初级会员, 积分 111, 距离下一级还需 89 积分
可能现在都是一些菜鸟在逛论坛了,没人回复了
楼主解决问题了,和大家共享一下经验啊
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by【读懂通信】- 如何理解OFDM中的FFT以及IFFT
&通信技术基础&--&&&--&OFDM&&&&如何理解OFDM中的FFT以及IFFT&&&&&&LTE学习大使孙宇彤()&1&&&&11-12-21&&&&11-12-27&&从OFDM的学习过程中,我们知道IFFT在数学上的逆运算是FFT,也就是原始数据经过IFFT处理后,理想条件下用FFT可以无损恢复原始数据,那么反过来,数学上FFT的逆运算是IFFT,我们能不能用FFT处理原始数据,再用IFFT来无损恢复呢?
&&答案是无法实现无损恢复的。这要从FFT的物理意义谈起,因为FFT就是将原始信号分解为各次谐波的叠加,由于条件的限制,一方面由于FFT采样点的数量,另外由于信道的特性,我们无法传递原始信号上的所有谐波,这样当滤除高阶谐波后,IFFT处理后得到的波形与原始信号之间是有差距的,差异的程度与原始信号高阶谐波的比例相关。也就是说,对原始信号而言,这样的处理过程相当于经过了一个低通滤波器。
&&不过,FFT-IFFT的处理过程并不只是数学游戏而已,而是可以作为一种数字滤波器的实现方式。这类似以前组合音响中的十段均衡器,只是采用FFT-IFFT的处理过程后,段可以分得更细了。MP3播放软件以及播放器中的均衡器应该就是基于FFT-IFFT的处理过程。
&& &2&&&&11-12-21&&&&17-01-04&&IFFT的采样点是IFFT运算时的波形幅度表中的取值点的数量,与子载波的阶数是相关的:采样点数量等于子载波最高阶数的2倍。这是基于奈奎斯特定理,一个子载波至少需要两个采样点。而子载波分为sin和cos两种,因此子载波的数量与采样点数量是一样的。
&&在LTE中,带宽与采样点的数量是一一对应的,因此子载波的数量与带宽也是一一对应的。
&&频点带宽&&采样点的数量
&&1.4M 128
&&3M &&&&&&&&256
&&5M &&&&&& 512
&&10M &&&&&& 1024
&&20M&&&&&& 2048
&&(注意:这是早期的理解,请翻到第4页,查看最新的理解)&3&&&&11-12-21&&&&17-01-04&&这里再分析一下FFT的采样点,原始信号可以看成一段波形,根据奈奎斯特定理,分析一个波形至少需要2个采样点,也就是原始信号的每个符号,都需要至少两个采样点。不过为了保证FFT的分析精度,通常每个符号至少要6个采样点。
&&不过OFDM中的FFT并不是用来分析信号,而是用来还原信号,因此其采样点的数量需要与IFFT保持一致。
&&(注意:这是早期的理解,请翻到第4页,查看最新的理解)&4&&&&15-11-09&&&&17-01-04&&以上是初学的一些心得,不过现在看来,太肤浅,人云亦云,没有点出OFDM中IFFT的作用。
&&关于OFDM中的IFFT,目前的理解是这是一种在数学上可以快速实现子载波叠加的方式,是多载波合路的捷径。当然能这样做的原因是这里的多载波是特殊的载波,称为正交子载波,因此才可以套用IFFT算法。
&&至于采样点,在一书中已经写得很明确了,这并不是一个好的术语,非常容易带来误解,只是由于应用太多,所以没有办法拨乱反正。总之,看到IFFT中的采样点,千万不要联想到A/D转换中的采样。
&&在《LTE教程:原理与实现》的第2版中,已经将OFDM中的采样点改为了出样点。导 读 【定义】
【OFDM解惑】
【推荐教材】
&&深入讲解OFDM技术的原理以及实现方式
【推荐培训】
&& 最透彻的中文OFDM课程,深入理解LTE和WiFi的钥匙
【相关术语】
【扩展阅读】

我要回帖

更多关于 502048 的文章

 

随机推荐