敲擊揚聲器震動信號建模
發布時間:2023-07-27 來源:TsinghuaJoking 責任編輯:wenwei
【導讀】揚聲器震動的頻率特性可以通過敲擊它所獲得的衝激響應來分析。 原本驅動揚聲器紙盆震動的線圈此時可以用作震動傳感器, 它將紙盆的震動速度轉換成電壓信號。 通過示波器可以采集到這個信號, 本文將對敲擊揚聲器所產生的震動信號進行觀察建模。
一、前言
揚聲器震動的頻率特性可以通過敲擊它所獲得的衝激響應來分析。 原本驅動揚聲器紙盆震動的線圈此時可以用作震動傳感器, 它將紙盆的震動速度轉換成電壓信號。 通過示波器可以采集到這個信號, 本文將對敲擊揚聲器所產生的震動信號進行觀察建模。
二、敲擊揚聲器
使用示波器連接揚聲器的引線, 敲擊揚聲器可以看到振動的波形。 不同的敲擊力度和部位, 對應的震動還是有些區別。 示波器的探頭直接連接到揚聲器的音圈輸出端口, 中間沒有施加任何信號放大電路。 這樣采集到的電壓信號反映了揚聲器的單位衝激響應。
為了便於分析,使用小型改錐敲擊揚聲器紙盆中心,獲得了這樣一個簡單衰減振蕩波形。 選擇其中三個周期過零點, 查看它們之間的時間差, 大約為19.5毫秒, 它的倒數對應51.3Hz。 由於這是三個振蕩周期,所以原波形的振蕩頻率為153.9Hz。
為了進一步精確估計衰減振蕩波形參數, 通過Python編程,從示波器讀取波形數據。 這是對讀取數據顯示的波形。 對原始示波器采集到的數據進行50個數據點的平均, 獲得更加光滑的信號波形。
#!/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
#******************************
▲ 圖1.2.1 敲擊揚聲器中間獲得的波形
▲ 圖1.2.2 50個數據進行平滑之後的波形
三、信號建模
下麵通過曲線擬合方式對揚聲器振動信號進行建模。 由於信號前麵的波形受到敲擊的影響, 所以並不純粹是揚聲器自由響應。 截取時間大於7毫秒之後的波形進行處理。 這是揚聲器在敲擊後7毫秒之後的震動信號波形。 它是一個指數衰減振蕩信號。 可以使用一個帶有五個參數的函數表示。 通過Python編程, 利用其中的曲線擬合工具來估計波形參數。
下麵是程序擬合過程。 定義帶有五個參數的指數衰減函數, 根據觀察到的波形,初步估計函數的五個參數的初始值,調用曲線擬合函數, 顯示獲得擬合參數。 利用這些參數計算出擬合曲線,並進行繪製。 下麵分析一下擬合結果。 這是五個信號參數擬合數值, 其中參數C代表著振蕩角頻率。 通過它, 可以計算出振蕩頻率 f0。 f0 等於 161.2 赫茲。
這裏將原始波形和擬合曲線波形繪製在一起, 可以看到擬合參數的有效性。 利用測量波形進行曲線擬合,所獲得的頻率值應該比前麵觀察到曲線過零點所獲得頻率更加準確。
▲ 圖1.2.3 曲線擬合後的結果
▲ 圖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:\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})
總結
本文通過示波器觀察並獲取了一種小型揚聲器敲擊信號。該信號反映了揚聲器的衝激響應。 後麵通過信號擬合進行數學建模, 為之後對揚聲器的頻率特性進一步分析打下基礎。
作者:卓晴
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
中國移動李晗:今年底將集采400G,推動400G進入商用階段
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 1200餘家企業齊聚深圳,CITE2026打造電子信息產業創新盛宴
- 掌握 Gemini 3.1 Pro 參數調優的藝術
- 築牢安全防線:電池擠壓試驗機如何為新能源產業護航?
- Grok 4.1 API 實戰:構建 X 平台實時輿情監控 Agent
- 電源芯片國產化新選擇:MUN3CAD03-SF助力物聯網終端“芯”升級
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall





