国产一区二区三区三州86295_视频一区二区国产_国产日韩综合导航_日韩亚洲大尺度高清

你的位置:首頁 > 測試測量 > 正文

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

發(fā)布時(shí)間:2023-07-27 來源:TsinghuaJoking 責(zé)任編輯:wenwei

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


一、前言


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


1.jpg


二、敲擊揚(yáng)聲器

??

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


2.jpg

??

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


1687751338231450.png

??

為了進(jìn)一步精確估計(jì)衰減振蕩波形參數(shù), 通過Python編程,從示波器讀取波形數(shù)據(jù)。?這是對讀取數(shù)據(jù)顯示的波形。?對原始示波器采集到的數(shù)據(jù)進(jìn)行50個(gè)數(shù)據(jù)點(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 敲擊揚(yáng)聲器中間獲得的波形


1687751316415239.png

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


三、信號建模

??

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


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


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


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:\python\teasoft')

STDFILE = open(r'd:\python\std.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)聲器敲擊信號。該信號反映了揚(yáng)聲器的沖激響應(yīng)。?后面通過信號擬合進(jìn)行數(shù)學(xué)建模,?為之后對揚(yáng)聲器的頻率特性進(jìn)一步分析打下基礎(chǔ)。


作者:卓晴



免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理。


推薦閱讀:


輔助駕駛毫米波雷達(dá)信號處理流程詳解

中國移動(dòng)李晗:今年底將集采400G,推動(dòng)400G進(jìn)入商用階段

支持高速高精度控制和EtherCAT通信的RZ/T2L MPU

用于SiC MOSFET的隔離柵極驅(qū)動(dòng)器使用指南

產(chǎn)線能否持續(xù)運(yùn)轉(zhuǎn)?這個(gè)低調(diào)的器件說了算!

特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
LED驅(qū)動(dòng)IC LED驅(qū)動(dòng)模塊 LED散熱 LED數(shù)碼管 LED數(shù)字調(diào)光 LED顯示 LED顯示屏 LED照明 LED照明設(shè)計(jì) Lightning Linear Litepoint Littelfuse LTC LTE LTE功放 LTE基帶 Marvell Maxim MCU MediaTek MEMS MEMS傳感器 MEMS麥克風(fēng) MEMS振蕩器 MHL Micrel Microchip Micron Mic連接器
?

關(guān)閉

?

關(guān)閉