<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 敲擊揚聲器震動(dòng)信號建模

敲擊揚聲器震動(dòng)信號建模

作者:卓晴 時(shí)間:2023-06-27 來(lái)源:TsinghuaJoking 收藏

揚聲器震動(dòng)的頻率特性可以通過(guò)敲擊它所獲得的沖激響應來(lái)分析。?原本驅動(dòng)揚聲器紙盆震動(dòng)的線(xiàn)圈此時(shí)可以用作震動(dòng)傳感器, 它將紙盆的震動(dòng)速度轉換成電壓信號。?通過(guò)示波器可以采集到這個(gè)信號, ?本文將對敲擊揚聲器所產(chǎn)生的震動(dòng)信號進(jìn)行觀(guān)察建模。

本文引用地址:http://dyxdggzs.com/article/202306/447984.htm

一、前言

揚聲器震動(dòng)的頻率特性可以通過(guò)敲擊它所獲得的沖激響應來(lái)分析。?原本驅動(dòng)揚聲器紙盆震動(dòng)的線(xiàn)圈此時(shí)可以用作震動(dòng)傳感器, 它將紙盆的震動(dòng)速度轉換成電壓信號。?通過(guò)示波器可以采集到這個(gè)信號, ?本文將對敲擊揚聲器所產(chǎn)生的震動(dòng)信號進(jìn)行觀(guān)察建模。

1.jpg

二、敲擊揚聲器

使用示波器連接揚聲器的引線(xiàn), 敲擊揚聲器可以看到振動(dòng)的波形。?不同的敲擊力度和部位, 對應的震動(dòng)還是有些區別。?示波器的探頭直接連接到揚聲器的音圈輸出端口, 中間沒(méi)有施加任何信號放大電路。?這樣采集到的電壓信號反映了揚聲器的單位沖激響應。

2.jpg

為了便于分析,使用小型改錐敲擊揚聲器紙盆中心,獲得了這樣一個(gè)簡(jiǎn)單衰減振蕩波形。?選擇其中三個(gè)周期過(guò)零點(diǎn),?查看它們之間的時(shí)間差,?大約為19.5毫秒,?它的倒數對應51.3Hz。?由于這是三個(gè)振蕩周期,所以原波形的振蕩頻率為153.9Hz。

1687751338231450.png

為了進(jìn)一步精確估計衰減振蕩波形參數, 通過(guò)Python編程,從示波器讀取波形數據。?這是對讀取數據顯示的波形。?對原始示波器采集到的數據進(jìn)行50個(gè)數據點(diǎn)的平均, 獲得更加光滑的信號波形。

#!/usr/local/bin/python

# -*- coding: gbk -*-

#******************************

# TEST1.PY                     -- by Dr. ZhuoQing 2023-03-01

#

# Note:

#******************************

from headm import *

from tsmodule.tsvisa        import *

mso24open()

x,y = mso24read(1)

tspsave('wave1', x=x, y=y)

plt.plot(x, y)

plt.xlabel("Time(s)")

plt.ylabel("Voltage(V)")

plt.grid(True)

plt.tight_layout()

plt.show()

#------------------------------------------------------------

#        END OF FILE : TEST1.PY

#******************************

1687751325376022.png

▲ 圖1.2.1 敲擊揚聲器中間獲得的波形

1687751316415239.png

▲ 圖1.2.2 50個(gè)數據進(jìn)行平滑之后的波形

三、信號建模

下面通過(guò)曲線(xiàn)擬合方式對揚聲器振動(dòng)信號進(jìn)行建模。?由于信號前面的波形受到敲擊的影響, 所以并不純粹是揚聲器自由響應。?截取時(shí)間大于7毫秒之后的波形進(jìn)行處理。?這是揚聲器在敲擊后7毫秒之后的震動(dòng)信號波形。?它是一個(gè)指數衰減振蕩信號。?可以使用一個(gè)帶有五個(gè)參數的函數表示。?通過(guò)Python編程, ?利用其中的曲線(xiàn)擬合工具來(lái)估計波形參數。?

下面是程序擬合過(guò)程。?定義帶有五個(gè)參數的指數衰減函數,?根據觀(guān)察到的波形,初步估計函數的五個(gè)參數的初始值,調用曲線(xiàn)擬合函數,?顯示獲得擬合參數。?利用這些參數計算出擬合曲線(xiàn),并進(jìn)行繪制。?下面分析一下擬合結果。?這是五個(gè)信號參數擬合數值,?其中參數C代表著(zhù)振蕩角頻率。?通過(guò)它,?可以計算出振蕩頻率 f0。?f0 等于 161.2 赫茲。?

這里將原始波形和擬合曲線(xiàn)波形繪制在一起, 可以看到擬合參數的有效性。?利用測量波形進(jìn)行曲線(xiàn)擬合,所獲得的頻率值應該比前面觀(guān)察到曲線(xiàn)過(guò)零點(diǎn)所獲得頻率更加準確。

1687751301744108.png

▲ 圖1.2.3 曲線(xiàn)擬合后的結果

1687751290495758.png

▲ 圖1.3.2 信號波形擬合函數以及對應的參數

#!/usr/local/bin/python

# -*- coding: gbk -*-

#******************************

# TEST2.PY                     -- by Dr. ZhuoQing 2023-03-01

#

# Note:

#******************************

from headm import *

from scipy.optimize        import curve_fit

x, y = tspload('wave1', 'x', 'y')

printf(len(x), len(y))

AVERAGE_NUM = 50

DATA_LENGTH = len(x)//AVERAGE_NUM

xx = array([sum(x[i*AVERAGE_NUM:i*AVERAGE_NUM+AVERAGE_NUM])/AVERAGE_NUM*1e3 for i in range(DATA_LENGTH)])

yy = array([sum(y[i*AVERAGE_NUM:i*AVERAGE_NUM+AVERAGE_NUM])/AVERAGE_NUM for i in range(DATA_LENGTH)])

c = where(xx>5)

xxx = xx[c]/1000

yyy = yy[c]

tspsave('wave11', xxx=xxx, yyy=yyy)

#------------------------------------------------------------

'''

plt.plot(xxx, yyy)

plt.xlabel("Time(s)")

plt.ylabel("Voltage(V)")

plt.grid(True)

plt.tight_layout()

plt.show()

'''

#------------------------------------------------------------

def fun(x,a,b,c,d,e):

    return a*exp(-b*x)*sin(c*x+d)+e

param = (1, 50, 2*pi*150, 0, 0)

param, conv = curve_fit(fun, xxx, yyy, p0=param)

printf(param)

ysim = fun(xxx, *param)

plt.plot(xxx, yyy, linewidth=3, label='Origin')

plt.plot(xxx, ysim, label='Fit')

plt.xlabel("Time(s)")

plt.ylabel("Voltage(V)")

plt.grid(True)

plt.legend(loc="upper right")

plt.tight_layout()

plt.show()

#------------------------------------------------------------

#        END OF FILE : TEST2.PY

#******************************

下面是文件 headm.py 的內容:

import sys, os

sys.path.append(r'd:pythonteasoft')

STDFILE = open(r'd:pythonstd.txt', 'a', 1)

sysstderr = sys.stderr

sysstdout = sys.stdout

sys.stderr = STDFILE

sys.stdout = STDFILE

from threading import Thread

import time, math, winsound, clipboard, random

from numpy import *

from tsmodule.tspdata   import *

from tsmodule.tspyt     import *

from tsmodule.tscmd     import *

from tsmodule.tsdopop   import *

from tsmodule.tsdraw    import *

import tsmodule.tsconfig

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(10,80*10/128))

plt.get_current_fig_manager().window.wm_geometry("+1950+300")

plt.rcParams.update({'font.size':14})

總結

本文通過(guò)示波器觀(guān)察并獲取了一種小型揚聲器敲擊信號。該信號反映了揚聲器的沖激響應。?后面通過(guò)信號擬合進(jìn)行數學(xué)建模,?為之后對揚聲器的頻率特性進(jìn)一步分析打下基礎。

作者:卓晴



關(guān)鍵詞: TsinghuaJoking

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>