喜歡vb ,可惜人已經老,眼也化,精力差了,只能搞個小件玩玩而已。
想用vb ,采集電腦的喇叭波形,經ttf 轉換成頻譜,取出指定頻段的強度。
'論壇的FFT變換4 *** 成功案例。20180522,tjw
'Dim xr(128) As Double
'Dim xi(128) As Double
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
' Timer1.Enabled = True '原來的
'Timer1.Interval = 10
' Picture1.AutoRedraw = True
Timer2.Enabled = True '作為練習,畫sin 函式的,共3行
Timer2.Interval = 10
Picture1.AutoRedraw = True
End Sub
Private Sub Timer1_Timer() ' 原來抄,用亂數。沒用,供參考
Dim value As Integer, i As Integer
Dim pr() As Double
Dim pi() As Double
Dim fr() As Double
Dim fi() As Double
Randomize
value = Int(200 * Rnd + (-100))
List1.AddItem value
If List1.ListCount > 0 And (List1.ListCount Mod 128 = 0) Then
Picture1.Cls
For i = List1.ListCount - 128 To List1.ListCount - 1
xr(128 - (List1.ListCount - i)) = Val(List1.List(i))
xi(128 - (List1.ListCount
uj5u.com熱心網友回復:
附不上壓縮的程式檔案。不懂。請教。uj5u.com熱心網友回復:
此論壇不支持“附件”,目前比較適用的方式,是用百度網盤的分享鏈接。
其它很多網盤,好像都是要有相應賬號登錄后才能下載的,會帶來“麻煩”。
當然只要無需登錄就能下載,任何網盤的都可以。
你的主貼代碼不全吧?難道這次改版后,主貼的內容也限制為“1000字符”了?
MD,究竟是“吃屎都難”的管理層腦殼被驢踢了,還是那群實習生是SB???
uj5u.com熱心網友回復:
模塊代碼
Option Explicit
'*模塊********************************************************
'FFT0 陣列下標以0開始 FFT1 陣列下標以1開始
'AR() 資料實部 AI() 資料虛部
'N 資料點數,為2的整數次冪
'NI 變換方向 1為正變換,-1為反變換
'*************************************************************
Public Const Pi = 3.1415926
Public Function FFT0(AR() As Double, AI() As Double, N As Integer, ni As Integer)
Dim i As Integer, j As Integer, k As Integer, L As Integer, M As Integer
Dim IP As Integer, LE As Integer
Dim L1 As Integer, N1 As Integer, N2 As Integer
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)
uj5u.com熱心網友回復:
艸!!!!!!沒法玩了,只能貼這么一點代碼?
uj5u.com熱心網友回復:
三貼之內沒法貼完代碼了,發個效果截圖解饞吧。紅色是資料,藍色是計算出來的頻域。下面是測驗資料的生成代碼。
For i = 0 To 128
xr(i) = 50 * (Sin(i) + 2 * Sin(2 * i) + 1.2 * Sin(0.2 * i)) '生成幾個不同頻率的疊加資料
xi(i) = 0
Next

另,到站務區吐了個槽
https://bbs.csdn.net/topics/392404374
uj5u.com熱心網友回復:
長代碼只能分幾貼上了,不過ffft都是用公開的,就不貼了。樓上的效果滿意。
有空在電腦繼續
謝謝
uj5u.com熱心網友回復:
脆皮大雪糕:前輩,我用的fftt的內容好像跟你的不一樣,麻煩把你上面這個效果的 vb 檔案發到我郵箱學習行嗎。?謝謝。
[email protected]
uj5u.com熱心網友回復:
大雪糕去吐槽了之后,有版主反饋了。
已經調整可輸入字符量為1萬,絕大多數代碼都可以一貼貼完了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/45281.html
標籤:VB基礎類
上一篇:mysql的表欄位名顯示中文,但是vb里datagrid的欄位名顯示亂碼,怎么辦?
下一篇:如何用vb獲取虎牙彈幕?
