[相关资料]关于FFT结果的意义,可以看一下圈圈以前写的**

[复制链接]
27827|88
liguligu886 发表于 2009-3-20 15:25 | 显示全部楼层

d

实际上,对音频频谱的显示,通常纵坐标是取对数,横坐标是按照<br />倍频关系来的,这里为了程序简单,都是用的线性关系。<br />
laoniu85 发表于 2009-3-21 12:55 | 显示全部楼层

偶也 我解放了 可以开始研究东西咯

先弄到圈圈的这个代码再说&nbsp;嘎嘎&nbsp;
armecos 发表于 2009-4-9 12:12 | 显示全部楼层

GPS导航的资料和思路这里有,ucgui里也有个例子,

**************************************************<br />*&nbsp;用EASYARM2200或SMARTARM2200玩电子地图和GPS导航&nbsp;*<br />**************************************************<br />&nbsp;&nbsp;&nbsp;&nbsp;2009/03/04&nbsp;&nbsp;asdjf@163.com&nbsp;&nbsp;www.armecos.com<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图1&nbsp;世界地图。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/200934114249576.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图2&nbsp;世界地图局部放大,点右键显示鼠标所在位置的经纬度。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/20093411436587.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图3&nbsp;世界地图局部再放大,点右键显示鼠标所在位置的经纬度。比例尺比较大,地理图形显示粗糙,换小比例尺地图数据库就可以显示细节,不过数据库比较大。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/200934114326127.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图4&nbsp;某公司使用ecos设计的GPS电子地图导航产品。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/200934114339877.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图5&nbsp;小比例尺地图,从其他地图库导入。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/20093412912651.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图6&nbsp;最短路径选择。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/20093412932805.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图7&nbsp;矢量图形(填充/空心):直线、折线、多边形、圆、圆弧、文字。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/2009310172530772.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图8&nbsp;位图放大,有锯齿现象。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/200931017263392.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图9&nbsp;矢量图放大,没有锯齿现象,放大多少都没问题,因为都是通过计算得到的。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/2009310172636795.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图10&nbsp;地图显示。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/2009310172654306.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图11&nbsp;矢量地图放大,可以看出就是由填充/空心的直线、折线、多边形、圆、圆弧、文字等基本元素构成。GUI只需要画出这些矢量图形即可</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/200931017279749.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>图12&nbsp;自行采集GPS数据,制作电子地图。全部线段绘制完成后,可转换为标准的电子地图。</b><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="https://bbs.21ic.com/upfiles/img/20093/2009310174441646.gif"><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />以下是关于ecos电子地图原理、制作、操作、算法。完全底层直接操作,比WINCE效率高。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<b>矢量图形</b><br />&nbsp;&nbsp;&nbsp;&nbsp;计算机绘图分为位图图像和矢量图形两大类:<br />&nbsp;&nbsp;&nbsp;&nbsp;1、位图图像<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位图图像也叫作栅格图像,由像素组成,每个像素都被分配一个特定位置和颜色值。位图图像与分辨率有关,即在一定面积的图像上包含有固定数量的像素。因此,如果在屏幕上以较大的倍数放大显示图像,或以过低的分辨率打印,位图图像会出现锯齿边缘。图8中可以清楚地看到将图7(以位图格式存储)放大2倍后的效果。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;矢量图形<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;矢量图形由矢量定义的直线和曲线组成,矢量图形根据轮廓的几何特性进行描述,数据量小。图形的轮廓画出后,被放在特定位置并填充颜色。移动、缩放或更改颜色不会降低图形的品质。矢量图形与分辨率无关,可以将它缩放到任意大小和以任意分辨率在输出设备上打印出来,都不会影响清晰度。因此,矢量图形是文字(尤其是小字)和线条图形(比如徽标)的最佳选择。图9显示了将图7(以矢量图形格式保存)放大4倍的效果。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;电子地图就是矢量图形,可以任意放大缩小而不失真。由图11可以看出构成电子地图的基本元素是:填充/空心的直线、折线、多边形、圆、圆弧、文字。通过这些元素表示道路、植被、区块、湖泊河流、地名等地理信息。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<b>GPS数据采集和电子地图制作</b><br />&nbsp;&nbsp;&nbsp;&nbsp;获得电子地图的途径主要有三种:一买二抄三制作。<br />&nbsp;&nbsp;&nbsp;&nbsp;1、购买现成的地图数据库,转换为自己需要的格式。<br />&nbsp;&nbsp;&nbsp;&nbsp;2、扫描公开发行的纸质地图,在mapinfo软件中打开,作为背景图(底层),给出三个地点的准确经纬度坐标进行配准(三点定面),然后手工抄录,再转换为标准格式保存,就可以得到电子地图。<br />&nbsp;&nbsp;&nbsp;&nbsp;3、使用GPS采集实际路段数据,转换成mapinfo可以识别的格式,增加路段号、路段名称、路段类型和长度等属性,其他属性信息的添加可在Mapinfo界面中完成,然后创建方格网的标准Mif图。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<b>地图操作</b><br />&nbsp;&nbsp;&nbsp;&nbsp;显示、放大、缩小、漫游、鹰眼、距离测量、地图旋转等操作。还可附加语音导航、GPS定位、路径跟踪、关键字搜索和区域搜索及其定位等功能。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<b>导航算法</b><br />&nbsp;&nbsp;&nbsp;&nbsp;略
 楼主| computer00 发表于 2009-4-9 12:23 | 显示全部楼层

俺没钱买大一点的屏,只能玩1602或者12864之类的,

只好用文本显示了。而且大的屏拿着不方便。就使用这个NOKIA的屏显示也不错~~~~~
armecos 发表于 2009-4-11 02:03 | 显示全部楼层

呵呵,可以用软件虚拟屏幕,不花钱。当然,虚拟的屏太大

  
 楼主| computer00 发表于 2009-4-11 23:23 | 显示全部楼层

不懂你的意思,连个大屏幕都没有,如何软件虚拟啊?晕死

软件虚拟的屏幕能看得到吗?照你这样说,我只买台电脑主机就行了,然后用软件虚拟一个10000*10000的屏幕,那我岂不是爽死了?还省了一堆钱????
armecos 发表于 2009-4-12 00:53 | 显示全部楼层

就是利用你的电脑主机的屏幕显示,

通过网络把显存中的数据发送到主机服务器,由服务器负责解析并把图像数据显示出来。只传输和显示变动的部分,这样效率高。<br /><br />屏幕、键盘、鼠标、触摸屏一下子都可以解决了,不会增加任何费用,特别适合开发阶段。分辨率取决与你的网络带宽和色深。<br /><br />其实,你现在已经有条件玩GUI了,2210上都能玩了,你却还在等LCD硬件,有这时间,早就把minigui、mirceowindows、ucgui、QT......玩个遍了。当然前提是要有TCP/IP协议栈和OS。
 楼主| computer00 发表于 2009-4-12 02:09 | 显示全部楼层

我无语……既然用了电脑的显示屏了,那我干脆直接写个上

通过USB传输数据,在应用软件上显示地图就行了,何必还多此一举去搞什么虚拟屏幕?<br /><br />难道我每次出去都要背个电脑我的GPS才能使用???<br /><br />如果有电脑可以用了,我何必还要去想使用文本LCD显示………………
古道热肠 发表于 2009-4-12 13:57 | 显示全部楼层

哈哈,比较实用的就是在PC机上做个图形控制面板,与底层联机

就象将PC当超级终端用一样,如果能整个图形超级终端,通过USB来通讯,根本不需要什么OS还有网络,搞那么复杂,AT91SAM7S64就那点Flash,根本玩不起来.<br />ZLG就曾经开发过一个.不过是串口通讯的.
 楼主| computer00 发表于 2009-4-12 23:19 | 显示全部楼层

俺现在的问题是没屏幕……而且还要便携,不能用电脑。

  
xwj 发表于 2009-4-13 11:45 | 显示全部楼层

与圈圈同感

其实,也不用太“便携”,一般DIY只要做成个完整点的东东(设备)即可<br />要想拿得出手的话那去找软盘盒、光盘盒、磁带盒等装一下,有时做个纸盒也好过没有:-)<br />还要跟好看点那就去找更好的盒子或者自己DIY<br /><br />其实,俺大多的东西都是裸板,试过、玩过就扔箱子里不管了,从没想过什么“便携”或啥的...
 楼主| computer00 发表于 2009-4-13 12:48 | 显示全部楼层

你就知道同感,也不帮忙做一个。

  
xwj 发表于 2009-4-13 13:03 | 显示全部楼层

嗯,下午开工,把上次准备发的界面程序再整理下

  
armecos 发表于 2009-4-13 17:35 | 显示全部楼层

虚拟屏和上位机仿真还是有区别的,

程序在目标机上跑,可以验证硬件效果。而上位机是纯软件仿真,无法了解目标硬件性能。<br /><br />你用虚拟屏调试开发非常方便省钱,可以灵活设置屏的色深、分辨率,当你真正想便携时,只要把驱动改成相应屏的即可。如果直接用真实屏,那你就要针对各种情况各自准备出一块。万一不合适只能换屏而虚拟屏只要改参数,明白?
 楼主| computer00 发表于 2009-4-13 18:39 | 显示全部楼层

不明白。如果我都打算用真实的屏了,何必又要去虚拟?

万一虚拟的行了,换成现实的又不行那不是死翘翘?要干就真刀实枪的干,要不就不搞。<br /><br />总之我是打算搞个想12864那样就能用GPS的系统,谁也不能动摇俺的决心。只有简单的、廉价的,才是DIY能够搞得起的。
mxinfa 发表于 2009-4-15 19:04 | 显示全部楼层

那个FFT代码

圈圈的那个FFT代码是不是只要修改FFT.h中的LENGTH和bL就可以用在更多点数的fft运算中?当然还要添加相应点数的正弦和余弦表。先不管运算时间的事情。<br />谢谢了
 楼主| computer00 发表于 2009-4-15 19:32 | 显示全部楼层

是的。已经有很多表可以用了。

当然你也可以改成不用表格的,改成临时计算,这个删掉那个用表的宏即可。
nz122911 发表于 2009-7-12 15:56 | 显示全部楼层

用00的FFT试了下,好像结果不正确啊

试验为&nbsp;256点FFT<br />用的数组为STM32版面里么“小试256点fft,望圈圈、lut1lut、香版主指教”<br />https://bbs.21ic.com/club/bbs/list.asp?boardid=49&t=3286380&tp=%u8FD9%u4E2A%u4FFA%u5C31%u4E0D%u6E05%u695A%u4E86%u54E6%u2026%u2026%u6CA1%u7528%u8FC7%u8FD9%u4E2A%u5E93%u7684FFT%u2026%u2026%u6211%u7528%u7684%u662F%u81EA%u5DF1%u7684FFT<br /><br />用STM32的汇编代码,得到结果确实符合00**里说的<br />0点、50点、75点<br />2&nbsp;&nbsp;&nbsp;:&nbsp;3&nbsp;&nbsp;:1.5<br /><br />但用00的代码,结果第50点和第75点都是Not&nbsp;a&nbsp;Number<br />还麻烦00帮忙看下哪里有问题呢,主要部分代码:<br />IN_TYPE&nbsp;InBuffer0[LENGTH]&nbsp;=&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4708,&nbsp;2910&nbsp;,&nbsp;&nbsp;1756&nbsp;,&nbsp;36&nbsp;&nbsp;&nbsp;,&nbsp;-294&nbsp;,&nbsp;4118&nbsp;,6191&nbsp;,918&nbsp;&nbsp;,&nbsp;-2275,&nbsp;&nbsp;1807&nbsp;,&nbsp;4805&nbsp;,&nbsp;3353&nbsp;,&nbsp;1998&nbsp;,527&nbsp;&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-656&nbsp;,&nbsp;2851&nbsp;,&nbsp;&nbsp;6434&nbsp;,&nbsp;2487&nbsp;,&nbsp;-2270,&nbsp;534&nbsp;&nbsp;,4594&nbsp;,3844&nbsp;,&nbsp;2228&nbsp;,&nbsp;&nbsp;998&nbsp;&nbsp;,&nbsp;-689&nbsp;,&nbsp;1616&nbsp;,&nbsp;6150&nbsp;,3999&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-1732&nbsp;,&nbsp;-675&nbsp;,&nbsp;&nbsp;4038&nbsp;,&nbsp;4313&nbsp;,&nbsp;2498&nbsp;,&nbsp;1397&nbsp;,-454&nbsp;,563&nbsp;&nbsp;,&nbsp;5403&nbsp;,&nbsp;&nbsp;5255&nbsp;,&nbsp;-712&nbsp;,&nbsp;-1645,&nbsp;3154&nbsp;,4668&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2844&nbsp;,&nbsp;1711&nbsp;,&nbsp;&nbsp;-43&nbsp;&nbsp;,&nbsp;-200&nbsp;,&nbsp;4320&nbsp;,&nbsp;6098&nbsp;,&nbsp;665&nbsp;,-2225,&nbsp;2014&nbsp;,&nbsp;&nbsp;4808&nbsp;,&nbsp;3275&nbsp;,&nbsp;1960&nbsp;,&nbsp;445&nbsp;&nbsp;,-620&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3065&nbsp;,&nbsp;6431&nbsp;,&nbsp;&nbsp;2224&nbsp;,&nbsp;-2308,&nbsp;747&nbsp;&nbsp;,&nbsp;4653&nbsp;,3761&nbsp;,2188&nbsp;,&nbsp;924&nbsp;&nbsp;,&nbsp;&nbsp;-704&nbsp;,&nbsp;1813&nbsp;,&nbsp;6232&nbsp;,&nbsp;3760&nbsp;,-1857,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-485&nbsp;,&nbsp;4155&nbsp;,&nbsp;&nbsp;4240&nbsp;,&nbsp;2448&nbsp;,&nbsp;1337&nbsp;,&nbsp;-508&nbsp;,&nbsp;720&nbsp;,5555&nbsp;,&nbsp;5071&nbsp;,&nbsp;&nbsp;-911&nbsp;,&nbsp;-1507,&nbsp;3321&nbsp;,&nbsp;4621&nbsp;,&nbsp;2780,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1664&nbsp;,&nbsp;-119&nbsp;,&nbsp;&nbsp;-96&nbsp;&nbsp;,&nbsp;4517&nbsp;,&nbsp;5992&nbsp;,&nbsp;418&nbsp;&nbsp;,-2160,2217&nbsp;,&nbsp;4804&nbsp;,&nbsp;&nbsp;3198&nbsp;,1921&nbsp;&nbsp;,&nbsp;362&nbsp;&nbsp;,&nbsp;-574&nbsp;,3278&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6413&nbsp;,1960&nbsp;&nbsp;,&nbsp;&nbsp;-2331,&nbsp;960&nbsp;&nbsp;,&nbsp;4702&nbsp;,&nbsp;3679&nbsp;,2149&nbsp;,847&nbsp;&nbsp;,&nbsp;-712&nbsp;,&nbsp;&nbsp;2014&nbsp;,6301&nbsp;&nbsp;,&nbsp;3514&nbsp;,&nbsp;-1968,-290&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4262&nbsp;,4165&nbsp;&nbsp;,&nbsp;&nbsp;2401&nbsp;,&nbsp;1274&nbsp;,&nbsp;-557&nbsp;,&nbsp;886&nbsp;&nbsp;,5696&nbsp;,4876&nbsp;,-1099&nbsp;,&nbsp;&nbsp;-1359,&nbsp;3482&nbsp;,&nbsp;4568&nbsp;,&nbsp;2719&nbsp;,&nbsp;1615,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-193&nbsp;,18&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;&nbsp;4708&nbsp;,&nbsp;5871&nbsp;,&nbsp;176&nbsp;&nbsp;,-2083&nbsp;,2415&nbsp;,4791&nbsp;,&nbsp;3123&nbsp;,&nbsp;&nbsp;1881&nbsp;,&nbsp;279&nbsp;&nbsp;,&nbsp;-519&nbsp;,&nbsp;3491&nbsp;,&nbsp;6380,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1697&nbsp;,&nbsp;-2339,&nbsp;&nbsp;1174&nbsp;,&nbsp;4741&nbsp;,&nbsp;3596&nbsp;,&nbsp;2111&nbsp;,769&nbsp;&nbsp;,-711&nbsp;,&nbsp;2219&nbsp;,&nbsp;&nbsp;6356&nbsp;,&nbsp;3263&nbsp;,&nbsp;-2066,&nbsp;-90&nbsp;&nbsp;,&nbsp;4360,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4087&nbsp;,&nbsp;2355&nbsp;,&nbsp;&nbsp;1208&nbsp;,&nbsp;-600&nbsp;,&nbsp;1058&nbsp;,&nbsp;5827&nbsp;,4670&nbsp;,-1276,&nbsp;-1200,&nbsp;&nbsp;3634&nbsp;,&nbsp;4511&nbsp;,&nbsp;2660&nbsp;,&nbsp;1564&nbsp;,&nbsp;-264,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;141&nbsp;,4894&nbsp;&nbsp;,&nbsp;&nbsp;5736&nbsp;,&nbsp;-58&nbsp;&nbsp;,&nbsp;-1992,&nbsp;2609&nbsp;,4770&nbsp;,3050&nbsp;,1841&nbsp;&nbsp;,&nbsp;&nbsp;197&nbsp;&nbsp;,&nbsp;-454&nbsp;,&nbsp;3703&nbsp;,&nbsp;6332&nbsp;,&nbsp;1434,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-2332&nbsp;,1387&nbsp;&nbsp;,&nbsp;4771&nbsp;&nbsp;,&nbsp;3514&nbsp;,&nbsp;2073&nbsp;,&nbsp;690&nbsp;&nbsp;,&nbsp;-702,2428&nbsp;,6396&nbsp;&nbsp;,&nbsp;&nbsp;3008&nbsp;,&nbsp;-2148,&nbsp;&nbsp;115&nbsp;,&nbsp;4448&nbsp;,&nbsp;4007,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2311&nbsp;,1140&nbsp;&nbsp;,&nbsp;-636&nbsp;&nbsp;,&nbsp;1238&nbsp;,&nbsp;5947&nbsp;,&nbsp;4455&nbsp;,-1441,-1033,3778&nbsp;&nbsp;,&nbsp;&nbsp;4449&nbsp;,&nbsp;2604&nbsp;,&nbsp;1511&nbsp;,&nbsp;-332&nbsp;,&nbsp;&nbsp;273,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5072&nbsp;,5589&nbsp;&nbsp;,&nbsp;-285&nbsp;&nbsp;,&nbsp;-1888,&nbsp;2797&nbsp;,&nbsp;4743&nbsp;,&nbsp;2979,1799&nbsp;,116&nbsp;&nbsp;&nbsp;,&nbsp;&nbsp;-379&nbsp;,&nbsp;3912&nbsp;,&nbsp;6269&nbsp;,&nbsp;1174&nbsp;,&nbsp;-2311,&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1598&nbsp;,4793&nbsp;&nbsp;,&nbsp;3433&nbsp;&nbsp;,&nbsp;2035&nbsp;,&nbsp;609&nbsp;&nbsp;,&nbsp;-683&nbsp;,&nbsp;2639,6423&nbsp;,2749&nbsp;&nbsp;,&nbsp;-2216&nbsp;,&nbsp;323&nbsp;&nbsp;,&nbsp;4526&nbsp;,&nbsp;3926&nbsp;,&nbsp;&nbsp;2269,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1070&nbsp;,-666&nbsp;&nbsp;,&nbsp;1424&nbsp;&nbsp;,&nbsp;6055&nbsp;,&nbsp;4231&nbsp;,&nbsp;-1593,&nbsp;-858,3912&nbsp;,4383&nbsp;&nbsp;,&nbsp;&nbsp;&nbsp;2550,&nbsp;&nbsp;1455,&nbsp;-395&nbsp;,&nbsp;413&nbsp;&nbsp;,&nbsp;5242&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5428&nbsp;,-503&nbsp;&nbsp;,&nbsp;-1773&nbsp;,&nbsp;2978};<br />float&nbsp;y[LENGTH/2]&nbsp;=&nbsp;{0};<br /><br />int&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;u16&nbsp;i&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitBitRev();&nbsp;&nbsp;//初始化FFT用的位反转用的表格<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FftInput(InBuffer0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//位倒序<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FftExe(InBuffer0,Re,Im);&nbsp;&nbsp;&nbsp;//做FFT运算<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y[0]=sqrt(Re[0]*Re[0]+Im[0]*Im[0])/LENGTH;&nbsp;&nbsp;&nbsp;//计算模值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=1;i&ltLENGTH/2;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y=2*sqrt(Re*Re+Im*Im)/LENGTH;&nbsp;&nbsp;&nbsp;//计算模值&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}
 楼主| computer00 发表于 2009-7-12 20:03 | 显示全部楼层

是不是因为溢出了?

  
nz122911 发表于 2009-7-13 08:50 | 显示全部楼层

确实应该是数据溢出了

寝室没网上,今天跑回实验室查看了一下。<br /><br />Re[]和Im[]这两个数组都是long&nbsp;int&nbsp;类型的范围应该是<br />-2147483647——2147483647<br />运行后查看Re[]的值,并没有溢出,但在取模时应该是溢出了<br /><br />后来试验将试验数组里的数都缩小10倍,然后运算,得出<br />第50点,&nbsp;70点确实3&nbsp;:&nbsp;1.5的关系了,但第0点又变成Not&nbsp;a&nbsp;Number了。<br />查看Re[0],其值为52371,取模时先平方就为2742721641,超过了long&nbsp;int&nbsp;的范围<br />所以应该是这个问题吧<br />然后试验将&nbsp;long&nbsp;int&nbsp;&nbsp;改为&nbsp;long&nbsp;long&nbsp;类型,得到正确结果,符合比例。<br /><br />多谢00提醒<br /><br />顺便请问下00:这个FFT程序的话<br />一般AD精度如果是12位的话,采到的数据传入做FFT,也会溢出啊<br />请教00怎么处理这个问题呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部