在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            敲擊揚聲器震動信號建模

            作者:卓晴 時間:2023-06-27 來源:TsinghuaJoking 收藏

            揚聲器震動的頻率特性可以通過敲擊它所獲得的沖激響應(yīng)來分析。?原本驅(qū)動揚聲器紙盆震動的線圈此時可以用作震動傳感器, 它將紙盆的震動速度轉(zhuǎn)換成電壓信號。?通過示波器可以采集到這個信號, ?本文將對敲擊揚聲器所產(chǎn)生的震動信號進行觀察建模。

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

            一、前言

            揚聲器震動的頻率特性可以通過敲擊它所獲得的沖激響應(yīng)來分析。?原本驅(qū)動揚聲器紙盆震動的線圈此時可以用作震動傳感器, 它將紙盆的震動速度轉(zhuǎn)換成電壓信號。?通過示波器可以采集到這個信號, ?本文將對敲擊揚聲器所產(chǎn)生的震動信號進行觀察建模。

            1.jpg

            二、敲擊揚聲器

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

            2.jpg

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

            1687751338231450.png

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

            #!/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個數(shù)據(jù)進行平滑之后的波形

            三、信號建模

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

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

            這里將原始波形和擬合曲線波形繪制在一起, 可以看到擬合參數(shù)的有效性。?利用測量波形進行曲線擬合,所獲得的頻率值應(yīng)該比前面觀察到曲線過零點所獲得頻率更加準確。

            1687751301744108.png

            ▲ 圖1.2.3 曲線擬合后的結(jié)果

            1687751290495758.png

            ▲ 圖1.3.2 信號波形擬合函數(shù)以及對應(yīng)的參數(shù)

            #!/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 的內(nèi)容:

            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})

            總結(jié)

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

            作者:卓晴



            關(guān)鍵詞: TsinghuaJoking

            評論


            技術(shù)專區(qū)

            關(guān)閉