搜索
bottom↓
回复: 99

mega 128可做FFT吗?

[复制链接]

出0入0汤圆

发表于 2005-8-12 13:28:51 | 显示全部楼层 |阅读模式
mega 128可做FFT吗







<font color=red>以下红色文字由版主:armok 于:2005-08-12,13:35:51 加入。




谢谢会员小俊上传的数字处理书:



点击此处打开armok0163126.pdf

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2005-8-12 14:05:20 | 显示全部楼层
可以是可以。

速度是问题。

出0入0汤圆

发表于 2005-8-12 14:51:19 | 显示全部楼层
用定点数来做,很快的

出0入0汤圆

发表于 2005-8-13 08:28:38 | 显示全部楼层
随便哪个都可以吧,只是算法和快慢的问题.

出0入0汤圆

发表于 2005-8-14 10:37:17 | 显示全部楼层
我在前几天在这求助一个FFT的定点算法程序,请问哪位大侠能帮一下小弟啊!我油箱是eighgun@yahoo.com.cn,或者是直接把程序贴上来让大家分享一下啊,先谢了!

出0入0汤圆

发表于 2005-8-14 14:02:00 | 显示全部楼层
我有一个pdf文件,里面有所有常用的数值计算和信号处理方法的C语言代码,不过在另一部电脑里面,稍后传上来。

出0入0汤圆

发表于 2005-8-15 23:26:47 | 显示全部楼层
点击此处打开armok0163126.pdf

出0入0汤圆

发表于 2005-9-18 06:24:27 | 显示全部楼层
路過順便把它收集起來..很寶貴的資料..謝謝

出0入0汤圆

发表于 2005-9-28 00:44:34 | 显示全部楼层
应该可以的。计算整型实数的FFT不会花太多时间。我前段时间做的MP3有一个32段EQ的显示,用的就是FFT,在ARM上实现的话,64点的FFT花了不到1毫秒(全部运算用长整型,以查表法算sin和cos)。

出0入0汤圆

发表于 2005-9-28 08:29:35 | 显示全部楼层
现在用不到,但是指不定以后会派上大用处,收藏了。感谢小q!

出0入0汤圆

发表于 2005-10-1 19:51:26 | 显示全部楼层
下载收藏

出0入0汤圆

发表于 2005-10-2 06:32:25 | 显示全部楼层
很有价值!!!

出0入0汤圆

发表于 2005-10-2 09:03:12 | 显示全部楼层
好像现在下不了了?

出0入0汤圆

发表于 2005-10-2 21:25:12 | 显示全部楼层
谢谢qwernet 小俊

出0入4汤圆

发表于 2005-10-9 13:42:23 | 显示全部楼层
我用mega8 16M晶振每秒可以计算20次128点定点fft

出0入0汤圆

发表于 2006-2-15 16:22:18 | 显示全部楼层
正漫天找FFT哪!可惜下不了!!WHY???

那位好心人给传一分.谢谢!!

email:dlzwp@tom.com

出0入0汤圆

发表于 2006-2-15 16:48:42 | 显示全部楼层
顶楼的PDF可以下,没问题。

只是文件比较大,5MB,最好用FLASHGET之类下载工具。

出0入0汤圆

发表于 2006-2-15 17:57:19 | 显示全部楼层
顶楼的PDF可以下,没问题。

只是文件比较大,5MB,最好用FLASHGET之类下载工具。

-------------------------------------------------------

谢谢!! 一个下午都没下来,下到46%附近就停啦!!

出0入0汤圆

发表于 2006-2-15 18:03:24 | 显示全部楼层
那是你的网络问题,爱莫能助。

出0入0汤圆

发表于 2006-2-15 18:12:52 | 显示全部楼层
简直就是天书

  俺完全不明啊

最好有例子

出0入8汤圆

发表于 2006-2-26 19:45:05 | 显示全部楼层
能下呀

出0入0汤圆

发表于 2006-3-21 15:25:28 | 显示全部楼层
收藏了,好东西啊!!

出0入0汤圆

发表于 2006-3-21 16:37:15 | 显示全部楼层
正好用到这个。好东西。

出0入0汤圆

发表于 2006-5-30 11:32:10 | 显示全部楼层
好东西!

谢谢!

出0入0汤圆

发表于 2006-5-30 12:14:26 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2006-7-9 13:58:01 | 显示全部楼层
路过,打开看了看。很深奥。

出0入0汤圆

发表于 2006-9-11 16:48:34 | 显示全部楼层
好东西,顶一下

出0入0汤圆

发表于 2006-9-11 17:04:47 | 显示全部楼层
不错不错,顶一顶。

出0入0汤圆

发表于 2007-2-3 08:10:53 | 显示全部楼层

出0入0汤圆

发表于 2007-2-3 12:48:18 | 显示全部楼层
谢谢小俊

出0入0汤圆

发表于 2007-2-3 15:52:47 | 显示全部楼层
我以前用M16做过,晶振7.3728M,但256点的转换大约要1秒.

出0入0汤圆

发表于 2007-5-4 18:32:13 | 显示全部楼层
好谢谢

出0入0汤圆

发表于 2007-5-23 21:31:55 | 显示全部楼层
M16上实现128点16位定点FFT,用了6.6ms@16Mhz

出0入0汤圆

发表于 2007-5-23 21:32:06 | 显示全部楼层
M16上实现128点16位定点FFT,用了6.6ms@16Mhz

出0入0汤圆

发表于 2007-5-29 08:03:35 | 显示全部楼层
最近正在看这方面的资料,帮你顶一个!

不知道那128个点需不需要在过零点开始采样??如果需要是不是还要在单片机外边作一个过零信号!!

还没有来的急看资料,先问问!

出0入0汤圆

发表于 2007-5-29 09:59:46 | 显示全部楼层
为什么128 16au的要比8au的便宜呢?

出0入0汤圆

发表于 2007-7-30 20:42:54 | 显示全部楼层
正好用到这个。好东西

出0入0汤圆

发表于 2007-8-9 16:52:21 | 显示全部楼层
正是及时雨啊,

出0入0汤圆

发表于 2007-8-9 20:49:38 | 显示全部楼层
收来看看

出0入0汤圆

发表于 2007-8-19 21:15:29 | 显示全部楼层
日本人的没看明白

出0入0汤圆

发表于 2007-8-20 02:47:36 | 显示全部楼层
日本人那个很好用,超棒!

出0入0汤圆

发表于 2007-8-20 18:29:10 | 显示全部楼层
我刚做过,128点的,浮点,旋转因子和窗函数都用查表的方法,速度很可观

出0入0汤圆

发表于 2007-8-20 21:46:05 | 显示全部楼层
多学习,总没坏事!

出0入0汤圆

发表于 2007-8-20 22:07:17 | 显示全部楼层
好东西,下载罗

出0入0汤圆

发表于 2007-8-20 22:09:17 | 显示全部楼层
不知道 zhonghua_li蓝色天空 做fft的方法如何 ,我自己在m16上做128点fft@16mhz 用时22.2ms ,实部,虚部,正,余弦表用16bit精度存放。蝶形算法时将实部,虚部,正余弦表转为32bit精度,再做32bit * 32bit。全部都用WinAVR-20060421版本的gcc写的。

出0入0汤圆

发表于 2007-8-21 14:40:23 | 显示全部楼层
一定要学

出0入0汤圆

发表于 2007-8-21 15:39:05 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-21 15:39:15 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-21 15:39:37 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-21 15:39:37 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-21 15:39:51 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-21 15:40:01 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-21 15:40:01 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-21 15:40:11 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2007-8-24 11:40:51 | 显示全部楼层
我用M32,4M晶震,做64点,需要86MS啊

出0入0汤圆

发表于 2007-8-24 23:01:41 | 显示全部楼层
我是FFT的初学者,还真不知道对信号FFT后得到的是什么?比如我把视频信号FFT变换后,得到的时什么呢?

出0入0汤圆

发表于 2007-9-29 16:14:07 | 显示全部楼层
收下  还没看  还是谢谢搂主

出0入0汤圆

发表于 2007-10-1 11:46:55 | 显示全部楼层
好书啊,先收了

出0入0汤圆

发表于 2007-10-2 10:55:43 | 显示全部楼层
收下了

出0入0汤圆

发表于 2007-10-4 09:25:23 | 显示全部楼层
这里,慢慢研究吧
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=753686&bbs_page_no=1&search_mode=3&search_text=zhonghua_li&bbs_id=9999

出0入0汤圆

发表于 2007-10-4 09:50:22 | 显示全部楼层
好东西,一定收藏!

出0入0汤圆

发表于 2007-10-5 00:22:01 | 显示全部楼层
6.6ms有点长,16点嘛

出0入0汤圆

发表于 2008-1-18 10:52:39 | 显示全部楼层
qwernet 小俊,感谢您的无私,我终于找到了我想要的资料,万分感谢您!!!!!!!!!!!!!!想它想了好久了!!!!!!!

出0入0汤圆

发表于 2008-1-22 19:42:10 | 显示全部楼层
我用BASCOM做的16384点的FFT,定点也要15秒以上,郁闷

出0入0汤圆

发表于 2008-1-22 19:44:58 | 显示全部楼层
用2片512K X8 的SRAM做缓存,现在做下来,数据和VB做的有出入,不知道什么问题,大家帮我看看是什么原因:

$regfile = "m128def.dat"                                    ' specify the used micro
$crystal = 16000000
$baud = 9600
$baud1 = 9600
Config Portd = Output
Config Porte.6 = Output

'Config Watchdog = 2048
Config Adc = Single , Prescaler = Auto
Config Timer0 = Timer , Prescale = 256
Config Timer1 = Timer , Prescale = 1024
On Ovf0 Tim1_isr
On Ovf1 Tim1_isr1

Stop Timer0
Stop Timer1

Dim I As Word , Ii As Word , L As Word , J As Word , Jj As Word , K As Word , P As Word , P2 As Word
Dim Tr As Long , Ti As Long , Sin_tab As Long , Cos_tab As Long
Dim B As Word , F As Double , F2 As Double , I1 As Long , I2 As Long , I3 As Long , I4 As Long
Dim Pp(16384) As Xram Integer At &H1100 Overlay

Dim Ad As Integer , Ad_ok As Byte , Ad_num As Word
Dim Pg As Byte , Pg_1 As Byte , Pg_2 As Byte , Pg_0 As Byte

Declare Sub Page(byval Pn As Byte)
Declare Sub Fft()


Open "com2:" For Binary As #2
'Start Watchdog
Print #2 , "init..."

'calc sin_tab,inv_tab
Portd.0 = 0
Portd.1 = 1

F = 0
Page 0
For I = 1 To 16384
   F2 = Sin(f)
   F2 = F2 * 8192
   Tr = F2
   Pp(i) = Tr
   F = F + 0.000383494873
Next

Page 1
For I = 1 To 16384
   P = 0
   For J = 0 To 13
      K = 2 ^ J
      Ii = I - 1
      K = Ii And K
      If K > 0 Then
         L = 13 - J
         L = 2 ^ L
         P = P + L
      End If
   Next
   Pp(i) = P
Next

Pg = 0
Pg_1 = 2
Pg_2 = 3
Ad_ok = 0
Ad_num = 1


Enable Adc
Enable Interrupts
Enable Ovf0
Enable Ovf1

Load Timer0 , 100
Start Timer0
'Load Timer1 , 20000
'Start Timer1
Print #2 , "done."

Do
   If Ad_ok = 1 Then
      If Pg = 0 Then
         Pg_1 = 2
         Pg_2 = 3
      Else
         Pg_1 = 4
         Pg_2 = 5
      End If
      Ad_ok = 0
      Fft
   End If
   Waitms 100
Loop

End

Tim1_isr:
'Stop Timer0
Ad = Getadc(0)

If Pg = 0 Then
   Portd.5 = 1
   Portd.6 = 0
   Portd.7 = 1
Else
   Portd.5 = 1
   Portd.6 = 1
   Portd.7 = 0
End If
Jj = Ad_num Mod 4
If Jj = 1 Then Ad = 1000 Else Ad = 0

Pp(ad_num) = Ad

Ad_num = Ad_num + 1
If Ad_num >= 16385 Then

   If Pg = 0 Then Pg = 1 Else Pg = 0
   Ad_num = 1
   Ad_ok = 1
   Print #2 , "pg=" ; Pg

End If
Portd.5 = Pg_0.0
Portd.6 = Pg_0.1
Portd.7 = Pg_0.2
Load Timer0 , 100
'Start Timer0
Return

Tim1_isr1:
'Print #2 , Ad_num ; "," ; Pg
'Load Timer1 , 20000
Return

Sub Fft()
Set Porte.6
Print #2 , "Invert Sequence."
Page 0
Print #2 , Pp(10)
For I = 1 To 16384
   Page 1
   J = Pp(i)
   If I = 10 Then Print #2 , J
   J = J + 1
   Page Pg_2
   J = Pp(j)
   Page Pg_1
   Pp(i) = J
Next
Page Pg_2
For I = 1 To 16384
   Pp(i) = 0
Next

Print #2 , "FFT."
For L = 1 To 14
   J = L - 1
   B = 2 ^ J
   I = B - 1
   For J = 0 To I
      K = 14 - L
      P = 2 ^ K
      P = P * J
      P2 = P + 4097
      If P2 > 16384 Then P2 = P2 - 16384
      Ii = B * 2
      B = B + 1

      For K = J To 16383 Step Ii
         Page 0
         Sin_tab = Pp(p + 1)
         Cos_tab = Pp(p2)

         Page Pg_2
         Ti = Pp(k + 1)
         Page Pg_1
         Tr = Pp(k + 1)

         'dr(k + b) * cos_tab(p)/32768
         I1 = Pp(k + B)
         I1 = I1 * Cos_tab
         I1 = I1 / 8192
         'Shift I1 , Right , 13

         'dr(k + b) * sin_tab(p)/32768
         I3 = Pp(k + B)
         I3 = I3 * Sin_tab
         I3 = I3 / 8192
         'Shift I3 , Right , 13

         'di(k + b) * sin_tab(p)/32768
         Page Pg_2
         I2 = Pp(k + B)
         I2 = I2 * Sin_tab
         I2 = I2 / 8192
         'Shift I2 , Right , 13

         'di(k + b) * cos_tab(p)/32768
         I4 = Pp(k + B)
         I4 = I4 * Cos_tab
         I4 = I4 / 8192
         'Shift I4 , Right , 13

         'dr(k) = dr(k) + i1 + i2
         'di(k) = di(k) - i3 + i4
         'dr(k + b) = tr - i1 - i2
         'Di(k + B) = Ti + I3 - I4

         'If L = 4 And J = 0 And K = 2640 Then Print #2 , "i1=" ; I1 ; "i2=" ; I2 ; "i3=" ; I3 ; "i4=" ; I4 ; "TR=" ; Tr ; "ti=" ; Ti

         Page Pg_1
         Sin_tab = Tr
         Sin_tab = Sin_tab + I1
         Sin_tab = Sin_tab + I2
         'Shift Sin_tab , Right , 4
         Pp(k + 1) = Sin_tab


         Sin_tab = Tr
         Sin_tab = Sin_tab - I1
         Sin_tab = Sin_tab - I2
         'Shift Sin_tab , Right , 4
         Pp(k + B) = Sin_tab

         Page Pg_2
         Cos_tab = Ti
         Cos_tab = Cos_tab - I3
         Cos_tab = Cos_tab + I4
         'Shift Cos_tab , Right , 4
         Pp(k + 1) = Cos_tab

         Cos_tab = Ti
         Cos_tab = Cos_tab + I3
         Cos_tab = Cos_tab - I4
         'Shift Cos_tab , Right , 4
         Pp(k + B) = Cos_tab
      Next
   Next
Next

Print #2 , "calc sqr"
For I = 1 To 16384
Page Pg_2
Cos_tab = Pp(i)
Cos_tab = Cos_tab ^ 2
Page Pg_1
Sin_tab = Pp(i)
Sin_tab = Sin_tab ^ 2
F = Sin_tab + Cos_tab
'If Sin_tab > 0 Then Print #2 , I ; "=" ; Sin_tab
'Pp(i) = Sqr(f)
Next

'Print #2 , "calc max"
'B = 0
'P = 0
'For I = 0 To 127
'   L = 0
'   Page Pg_1
'   For J = 0 To 63
'   K = I * 64
'   K = K + J
'   L = L + Pp(k + 1)
'   Next
'   L = L / 64
'   Page Pg_2
'   Pp(i + 1) = L
'
'   If L > B Then B = L : P = I
'Next

'Print #2 , "max=" ; B ; ",index=" ; P
Reset Porte.6
End Sub


Sub Page(byval Pn As Byte)
Pg_0 = Pn
Portd.5 = Pn.0
Portd.6 = Pn.1
Portd.7 = Pn.2
'If Pn.3 = 0 Then
'   Portd.0 = 0
'   Portd.1 = 1
'Else
'   Portd.0 = 1
'   Portd.1 = 0
'End If
End Sub

出0入0汤圆

发表于 2008-1-22 19:49:36 | 显示全部楼层
sub page子程序是设置内存页的,64K一页,

0: SIN表
1:倒序表
2:(A面)实部
3:(A面)需部
4:(B面)实部
5:(B面)需部

现在调试下来到FFT计算这里出错,数据和VB做的程序有出入,前面的都对的

欢迎大家和我讨论

出0入0汤圆

发表于 2008-5-17 10:08:07 | 显示全部楼层
谢谢大家的共享!

出0入0汤圆

发表于 2008-8-18 11:10:31 | 显示全部楼层
收藏了,感谢分享!!

出0入0汤圆

发表于 2008-8-18 12:19:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-10-25 07:13:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-10-25 13:41:58 | 显示全部楼层
顶一个

出0入0汤圆

发表于 2008-10-29 14:04:13 | 显示全部楼层
打不开的PDF

出0入0汤圆

发表于 2008-10-29 15:23:52 | 显示全部楼层
我想问下大家做一个信号的FFt后,如果我取一,二次谐波的话,我怎么还原到时域里面去呢?

出0入0汤圆

发表于 2008-10-29 16:00:36 | 显示全部楼层
谢了

出0入0汤圆

发表于 2008-12-7 16:20:48 | 显示全部楼层
先收藏了

出0入0汤圆

发表于 2008-12-7 19:49:38 | 显示全部楼层
Mark

出0入0汤圆

发表于 2008-12-8 09:13:04 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-1-16 14:06:15 | 显示全部楼层
好像我们这里M128是640dots/S@8M,程序看不懂

出0入0汤圆

发表于 2009-8-23 20:55:58 | 显示全部楼层
感谢资料
狂顶!

出0入0汤圆

发表于 2009-8-23 21:22:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-10-15 20:09:11 | 显示全部楼层
好东西 谢谢分享

出0入0汤圆

发表于 2009-10-29 03:28:34 | 显示全部楼层
好东西 顶顶

出0入0汤圆

发表于 2009-12-14 16:54:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-14 17:34:19 | 显示全部楼层
下载收藏

出0入0汤圆

发表于 2010-3-30 10:20:35 | 显示全部楼层
宝贝呀

出0入0汤圆

发表于 2010-4-20 13:58:36 | 显示全部楼层
收藏了

出0入0汤圆

发表于 2010-4-20 14:19:28 | 显示全部楼层
不错

出0入0汤圆

发表于 2010-4-26 11:39:34 | 显示全部楼层
呵呵,来学习了

出0入0汤圆

发表于 2010-4-26 23:26:49 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-4-27 22:52:41 | 显示全部楼层
回复【楼主位】smartter
-----------------------------------------------------------------------

十分感谢!

出0入0汤圆

发表于 2011-5-29 21:20:10 | 显示全部楼层
搜来搜去有回到这里来,顶下.收获颇丰啊.

出0入0汤圆

发表于 2011-7-16 10:38:42 | 显示全部楼层
收藏了,慢慢学习……

出0入0汤圆

发表于 2011-7-26 18:13:07 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-8-6 21:23:03 | 显示全部楼层
好东西,值得学习,现在想做一个电流检测,不知道要AVR单片机做FFT可行不,单片机选型中,纠结

出0入0汤圆

发表于 2011-8-6 21:25:53 | 显示全部楼层
感觉用AVR做FFT太慢了

出0入0汤圆

发表于 2011-11-17 22:12:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-3 09:12:15 | 显示全部楼层
mark markmark mark

出0入0汤圆

发表于 2012-4-6 21:01:54 | 显示全部楼层
怎么打不开呢?

出0入0汤圆

发表于 2012-4-6 21:10:54 | 显示全部楼层
好资料!谢谢!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 23:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表