• 扬声器的单位冲激响应信号建模

扬声器的单位冲激响应

01 单位冲激响应


一、前言

  在短片“ 扬声器敲击信号 ”中,使用改锥敲击的方法来获得扬声器的单位冲激响应信号。 但由于受的敲击的影响, 所获得的单位冲激响应波形并不完美。 敲击不同的部位和力度,所采集到的音圈电压波形相差很大。 例如这是另外一次敲击对应的波形。 这是小心翼翼敲击扬声器中心所产生的衰减振荡的信号波形。  看似比较完美,但实际上前面5毫秒的波形是敲击所造成的强迫相应。 下面准备通过使用电源激励的方式, 来获得扬声器比较完美的单位冲激响应信号。

二、直流电数据

1、测量方法

  对于待测动圈式扬声器, 使用一台直流稳压电源, 输出直流3V电压施加在扬声器上。 利用开关控制电流的通断。 一开始的时候通电, 扬声器流过一个直流电流。 将开关断开, 电流出现一个阶跃变化。 利用示波器测量测量扬声器震动的电压信号。


  由于扬声器音频线圈输出电压正比于运动速度, 也就是正比于线圈位置变量的导数。 阶跃电压激励后的震动信号与振膜的冲激响应是相同的。 由于没有敲击过程,所以可以获得比较完美的单位冲激响应。

  下面展示一下测量的实际过程。  

(1)读取数据波形程序

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

(2)曲线拟合程序

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>0.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()

2、测量结果

  这是测量得到的一次震动结果,看起来非常完美。 这是利用之前实验的Python程序, 获得该指数衰减振荡波形参数。 其中包括有五个参数。 参数C对应着振荡角频率。 可以计算出扬声器纸盆自由振荡频率为158.3赫兹。 这个频率更加接近于实际波形过零点对应的振荡频率。

▲ 图1.3.1 采集到的一次数据波形

▲ 对滤波后的波形进行滤波拟合后的结果

y ( t ) = a ⋅ exp ⁡ ( − b t ) ⋅ sin ⁡ ( c ⋅ t + d ) + e y\left( t \right) = a \cdot \exp \left( { - bt} \right) \cdot \sin \left( {c \cdot t + d} \right) + e y(t)=aexp(bt)sin(ct+d)+e

a=-4.76475410e-01
b=8.99951149e+01
c=9.94697547e+02
d=-4.15701647e-02
e=2.45613284e-03

3、大扬声器测量结果

  下面更换一个大型的扬声器, 同样利用阶跃电压测量得到它对应的单位冲激响应。 利用联网的MSO24示波器, 读取它测量得到的电压波形。 利用函数拟合方法, 可以获得该信号衰减振荡参数。 可以看到它所对应的振荡角频率比小型扬声器小了三倍左右。

▲ 图1.3.3 大扬声器测量结果

▲ 图1.3.4 拟合数据结果

  衰减振荡波形函数拟合后的参数为:

a=2.24774883e+00
b=5.22678402e+01
c=3.00658559e+02
d=3.13728636e+00
e=2.69832694e-03

三、敲击大喇叭

  为了对比, 下面通过敲击测量扬声器的冲击信号。可以看到所能够获得的波形不太完整。 这是另外一次敲击的波形, 效果有所改进。 尽量使得敲击短促,可以减少敲击的影响。 下面多试几次, 争取尽可能获得比较完美的衰减振荡波形。

▲ 图1.4.1 敲击扬声器所获得到波形

  这是一次比较完美的敲击波形。 可以看到前面部分的波形明显受到敲击的影响, 不太像自由振动的样子。 后面这部分则呈现出比较光滑的自由二阶震动的波形模样。 通过曲线拟合, 整体效果还是不错的。 这说明大扬声器使用直接敲击也可以同样获得比较精确的单位冲激响应信号。

▲ 图1.4.2 敲击大喇叭对应的波形

▲ 图1.4.3 拟合后的曲线

※ 总  结 ※


  本文通过给扬声器施加阶跃电压, 获得了扬声器的单位冲激响应。 这种方法不受敲击的影响,所得到的单位冲激响应接近于完美。

▲ 图2.1 大型扬声器敲击后的波形以及拟合参数


■ 相关文献链接:

  • 扬声器的单位冲激响应信号建模

● 相关图表链接:

  • 图1.3.1 采集到的一次数据波形
  • 对滤波后的波形进行滤波拟合后的结果
  • 图1.3.3 大扬声器测量结果
  • 图1.3.4 拟合数据结果
  • 图1.4.1 敲击扬声器所获得到波形
  • 图1.4.2 敲击大喇叭对应的波形
  • 图1.4.3 拟合后的曲线
  • 图2.1 大型扬声器敲击后的波形以及拟合参数

如何获得扬声器完美的单位冲激响应?相关推荐

  1. 模拟滤波器的单位冲激响应+单位阶跃响应+斜坡响应+抛物线响应matlab实现(转载+整理)

    有人会纠结: 单位冲激响应和单位脉冲响应到底是不是一个东西? 参考zhihu回答: 该回答已被删除 - 知乎 自动控制原理 第四版(胡寿松)-P77 ------------------------- ...

  2. FIR和IIR的区别+差分方程的单位冲激响应(matlab图解)

    有限脉冲响应滤波器:FIR 无限脉冲响应滤波器:IIR 好了,有限脉冲响应和无限脉冲响应到底什么区别? 先来看下<信号与系统>下册怎么说: 根据书上提示,翻回去看下相关例子: 滤波器 相关 ...

  3. 差分方程MATLAB求冲激响应,用matlab求解某已知的差分方程的单位冲激响应全过程...

    用matlab求解某已知的差分方程的单位冲激响应全过程 2018-11-24 (2008-11-24 20:39:56) 转载▼ 标签:冲激响应 差分方程 matlab z变换 教育 ⅰ.设计题目: ...

  4. 求解单位冲激响应的笔记

    求解单位冲激响应的笔记 冲激响应的定义 求解方式 正常的方式 另一种方法 再看下一个例子

  5. 单位冲激响应和单位阶跃响应

    请参考: 计算下式的单位冲激响应和单位阶跃响应: y(n)+0.7y(n-1)-0.45y(n-2)-0.6y(n-3)=0.8x(n)-0.44x(n-1)+0.36x(n-2)+0.02x(n-3 ...

  6. 无限长单位冲激响应(IIR)数字滤波器设计方法

    无限长单位冲激响应(IIR)数字滤波器设计方法) 一.数字滤波器的基本概念 二.数字滤波器的技术指标 三.全通滤波器 1.定义 2.一阶全通系统 3.二阶全通系统 4.N阶数字全通滤波器 5.全通系统 ...

  7. FIR滤波器、单位冲激响应、线性相位、窗函数法

    1.FIR滤波器 (1.)有限脉冲响应滤波器,也就是该系统的单位脉冲响应h(n)的长度是有限的,而不是两边无限延伸. 线性时不变系统的输出:y(n)=x(n)与h(n)的卷积,其中h(n)为单位取样脉 ...

  8. 第二章:2.6 LTI系统特性与单位冲击信号的关系

    单位脉冲响应又称之为单位冲击响应,我们先放一个总图,然后分别进行介绍 记忆系统与无记忆系统 我们可以总结出规律,对无记忆系统而言,它对应的单位冲激响应信号应该是带有一个比例系统的单位冲击信号. 可逆系 ...

  9. matlab求滤波器的冲激响应,在TMS320C5410上用MATLAB实现有限冲激响应滤波器

    在TMS320C5410上用MATLAB实现有限冲激响应滤波 器 许辉;许红 [期刊名称]<计算机应用与软件> [年(卷),期]2003(020)007 [摘要]介绍在TMS320C541 ...

最新文章

  1. php输出数据安行,PHP对文本数据库的基本操作方法
  2. 第五章 常用Lua开发库1-redis、mysql、http客户端
  3. SpringDataJpa报错: Table 'XX.hibernate_sequence' doesn't exist
  4. 前端学习(936):缓动动画原理
  5. C++ 对象关系映射(ORM)介绍
  6. linux中nmcli命令使用及网络配置
  7. SEC0000007-Unable to locate security server?
  8. EditPlus3.1工具以及Js插件(打包下载)
  9. 免费获得卡巴斯基key的方法
  10. oracle加索引 oracle,Oracle索引创建及管理
  11. android微信朋友圈相册背景,Android 仿微信朋友圈图片拖拽返回
  12. web测试抓包基本功——使用Google的F12
  13. linux ssh pem 登陆,Linux 生成pem文件 用于免密登录
  14. OpenGL着色器程序解析--初识着色器
  15. 2021爱智先行者—人体存在感传感器
  16. arm linux 汇编.text .global 是什么意思?
  17. 万物互联之~网络编程基础篇
  18. 18位身份证号验证算法的原理以及C#实现和在管理系统的应用
  19. HDU 1422 重温世界杯 【C++练习题】
  20. Nginx+keepalived 高可用双机热备(主从模式/双主模式)

热门文章

  1. folly库安装(4)folly依赖的重要组件安装:double-conversion, google-gflags, glog, fmt, googletest, boost等
  2. predict函数在回归分析中的应用
  3. NBD(Network Block Device)简介及基本使用
  4. centos7 nbd 挂在qcow2或qcow,raw,虚机镜像,virsh,virt,使用qemu-nbd挂载qcow2镜像文件
  5. 苹果iphone 12它只是一个电话
  6. oracle escape关键字用法
  7. 数据仓库、数据集市和数据湖有什么区别?
  8. 人工智能数学课高等数学线性微积分数学教程笔记(1. 数学内容概述)
  9. 怎么用python抓取网页数据
  10. NPOI实现Word删除表格