日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在VB中运用FFT

發布時間:2024/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在VB中运用FFT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

窗體上放一個picturebox,名稱改為picI_FFT。
在窗體中輸入以下代碼

Option?Explicit ?? '*模塊******************************************************** 'FFT0?數組下標以0開始 'AR()?數據實部?????????AI()?數據虛部 'N?數據點數,為2的整數次冪 'NI?變換方向?1為正變換,-1為反變換 '*************************************************************** Const?fftIn?=?128 Const?Pi?=?3.1415926 Public?Function?FFT0(AR()?As?Double,?AI()?As?Double,?N?As?Long,?ni?As?Long) ????Dim?i?As?Long,?j?As?Long,?k?As?Long,?L?As?Long,?M?As?Long ????Dim?IP?As?Long,?LE?As?Long ????Dim?L1?As?Long,?N1?As?Long,?N2?As?Long ????Dim?SN?As?Double,?TR?As?Double,?TI?As?Double,?WR?As?Double,?WI?As?Double ????Dim?UR?As?Double,?UI?As?Double,?US?As?Double ????M?=?NTOM(N) ????N2?=?N?/?2 ????N1?=?N?-?1 ????SN?=?ni ????j?=?1 ????For?i?=?1?To?N1 ????????If?i?<?j?Then ????????????TR?=?AR(j?-?1) ????????????AR(j?-?1)?=?AR(i?-?1) ????????????AR(i?-?1)?=?TR ????????????TI?=?AI(j?-?1) ????????????AI(j?-?1)?=?AI(i?-?1) ????????????AI(i?-?1)?=?TI ????????End?If ????????k?=?N2 ????????While?(k?<?j) ????????????j?=?j?-?k ????????????k?=?k?/?2 ????????Wend ????????j?=?j?+?k ????Next?i ????For?L?=?1?To?M ????????LE?=?2?^?L ????????L1?=?LE?/?2 ????????UR?=?1# ????????UI?=?0# ????????WR?=?Cos(Pi?/?L1) ????????WI?=?SN?*?Sin(Pi?/?L1) ????????For?j?=?1?To?L1 ????????????For?i?=?j?To?N?Step?LE ????????????????IP?=?i?+?L1 ????????????????TR?=?AR(IP?-?1)?*?UR?-?AI(IP?-?1)?*?UI ????????????????TI?=?AI(IP?-?1)?*?UR?+?AR(IP?-?1)?*?UI ????????????????AR(IP?-?1)?=?AR(i?-?1)?-?TR ????????????????AI(IP?-?1)?=?AI(i?-?1)?-?TI ????????????????AR(i?-?1)?=?AR(i?-?1)?+?TR ????????????????AI(i?-?1)?=?AI(i?-?1)?+?TI ????????????Next?i ????????????US?=?UR ????????????UR?=?US?*?WR?-?UI?*?WI ????????????UI?=?UI?*?WR?+?US?*?WI ????????Next?j ????Next?L ????If?SN?<>?-1?Then ????????For?i?=?1?To?N ????????????AR(i?-?1)?=?AR(i?-?1)?/?N ????????????AI(i?-?1)?=?AI(i?-?1)?/?N ????????Next?i ????End?If End?Function ?? Private?Function?NTOM(N?As?Long)?As?Long ????Dim?ND?As?Single ????ND?=?N ????NTOM?=?0 ????While?(ND?>?1) ????????ND?=?ND?/?2 ????????NTOM?=?NTOM?+?1 ????Wend End?Function Private?Sub?Form_Load() '*使用********** ????Dim?i?As?Integer ????Dim?xr(128)?As?Double ????Dim?xi(128)?As?Double ????Dim?IaIn(128)?As?Double '賦值,IaIn(i)是采得的數據。 ????For?i?=?0?To?128 ????????IaIn(i)?=?Sin(i)?+?0.5?*?Sin(10?*?i) ????????xr(i)?=?100?*?IaIn(i) ????????xi(i)?=?0 ????Next ?? 'FFT變換 ????Call?FFT0(xr(),?xi(),?128,?1) ?? '繪圖 ????picI_FFT.Scale?(0,?100)-(fftIn?-?1,?-10) ????picI_FFT.DrawWidth?=?2 ????For?i?=?0?To?fftIn?-?1 ????????picI_FFT.Line?(i,?Abs(xr(i)))-(i?+?1,?Abs(xr(i?+?1))),?vbRed '????????picI_FFT.Line?(i,?Abs(xi(i)))-(i?+?1,?Abs(xi(i?+?1))),?vbBlue '????????picI_FFT.Line?(i,?(xr(i)?*?xr(i)?+?xi(i)?*?xi(i))?\?128)-(i?+?1,?(xr(i?+?1)?*?xr(i?+?1)?+?xi(i?+?1)?*?xi(i?+?1))?\?128),?vbBlack ????Next?i End?Sub

<Linker : http://bbs.csdn.net/topics/390241865>

轉載于:https://www.cnblogs.com/MMLoveMeMM/articles/3025396.html

總結

以上是生活随笔為你收集整理的在VB中运用FFT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。