你好!欢迎来到深圳市品慧电子有限公司!
语言
当前位置:首页 >> 技术中心 >> 通用技术 >> 敲击扬声器震动信号建模

敲击扬声器震动信号建模


【导读】扬声器震动的频率特性可以通过敲击它所获得的冲激响应来分析。?原本驱动扬声器纸盆震动的线圈此时可以用作震动传感器, 它将纸盆的震动速度转换成电压信号。?通过示波器可以采集到这个信号, ?本文将对敲击扬声器所产生的震动信号进行观察建模。


一、前言


扬声器震动的频率特性可以通过敲击它所获得的冲激响应来分析。?原本驱动扬声器纸盆震动的线圈此时可以用作震动传感器, 它将纸盆的震动速度转换成电压信号。?通过示波器可以采集到这个信号, ?本文将对敲击扬声器所产生的震动信号进行观察建模。


1.jpg


二、敲击扬声器

??

使用示波器连接扬声器的引线, 敲击扬声器可以看到振动的波形。?不同的敲击力度和部位, 对应的震动还是有些区别。?示波器的探头直接连接到扬声器的音圈输出端口, 中间没有施加任何信号放大电路。?这样采集到的电压信号反映了扬声器的单位冲激响应。


2.jpg

??

为了便于分析,使用小型改锥敲击扬声器纸盆中心,获得了这样一个简单衰减振荡波形。?选择其中三个周期过零点,?查看它们之间的时间差,?大约为19.5毫秒,?它的倒数对应51.3Hz。?由于这是三个振荡周期,所以原波形的振荡频率为153.9Hz。


1687751338231450.png

??

为了进一步精确估计衰减振荡波形参数, 通过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

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


1687751325376022.png

▲ 图1.2.1 敲击扬声器中间获得的波形


1687751316415239.png

▲ 图1.2.2 50个数据进行平滑之后的波形


三、信号建模

??

下面通过曲线拟合方式对扬声器振动信号进行建模。?由于信号前面的波形受到敲击的影响, 所以并不纯粹是扬声器自由响应。?截取时间大于7毫秒之后的波形进行处理。?这是扬声器在敲击后7毫秒之后的震动信号波形。?它是一个指数衰减振荡信号。?可以使用一个带有五个参数的函数表示。?通过Python编程, ?利用其中的曲线拟合工具来估计波形参数。?


下面是程序拟合过程。?定义带有五个参数的指数衰减函数,?根据观察到的波形,初步估计函数的五个参数的初始值,调用曲线拟合函数,?显示获得拟合参数。?利用这些参数计算出拟合曲线,并进行绘制。?下面分析一下拟合结果。?这是五个信号参数拟合数值,?其中参数C代表着振荡角频率。?通过它,?可以计算出振荡频率 f0。?f0 等于 161.2 赫兹。?


这里将原始波形和拟合曲线波形绘制在一起, 可以看到拟合参数的有效性。?利用测量波形进行曲线拟合,所获得的频率值应该比前面观察到曲线过零点所获得频率更加准确。


1687751301744108.png

▲ 图1.2.3 曲线拟合后的结果


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:\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进入商用阶段

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

用于SiC MOSFET的隔离栅极驱动器使用指南

产线能否持续运转?这个低调的器件说了算!

相关文章

    用户评论

    发评论送积分,参与就有奖励!

    发表评论

    评论内容:发表评论不能请不要超过250字;发表评论请自觉遵守互联网相关政策法规。

    深圳市品慧电子有限公司