吃斋饭的狼 发表于 2014-5-20 16:21

吸声系数测量的传递函数法-跪求大神指点

本帖最后由 吃斋饭的狼 于 2014-5-20 16:25 编辑

本人是做燃烧出身的,实在对声学不太了解,求各位大神指点。
我做时域数值仿真,得到了2个测点的压力时域信号,想模拟实验,通过传递函数法来反算吸声系数。
但是做出来的根本就不对啊,我故意做了一个验证算例,用一个两端开口的管子(没有吸声材料),计算得2个压力时域信号。
正常来说,应该吸声系数算出来就是0吧,但是我算的完全不对。

我觉得问题是出在传递函数法里对传递函数的求解上。
文献里写它H12=P2/P1,关键这个P1和P2的形式到底是什么?我现在用的是时域信号做fft后的复数(用的是origin软件做的fft)。但是结果似乎完全不对啊。
跪求大神指点问题出在哪?

westrongmc 发表于 2014-5-21 10:14

本帖最后由 westrongmc 于 2014-5-21 21:47 编辑

对于这个问题,你最好看一下国标,GB/T 18696.2-2002 eqv ISO 10534-2:1998(E)
声学 阻抗管中吸声系数和声阻抗的测量 第2部分:传递函数法【点击可下载】
下面摘录一点,供参考。
在这个标准中,定义了传递函数如何计算:



从你提供的验证算例的时域图形可以看出,这两个声压波形应该基本相同,不过是有一个时延。

至于为何结果似乎完全不对,可能的原因:
1)公式是否用错?请复查计算吸声系数的公式(参考标准中的公式18)。
2)求H12,不能简单地用P2,P1的FFT之比,要用上面提到的传递函数估计算子(有输入、输出噪声假设在里面)。
3)这个时域波形肯定有泄漏的影响,因为不符合FFT周期性采样的要求。(对于泄漏的意思,请查《数字信号处理》方面的书)
第2)、3)的影响肯定有。你再核查一下第1个原因。

至于如何避免3),实际噪声测量中,在FFT时,一般不可避免泄漏(可加hanning窗减少影响)。
但你仿真的这个算例,泄漏的影响更加严重。



吃斋饭的狼 发表于 2014-5-21 16:52

westrongmc 发表于 2014-5-21 10:14
对于这个问题,你最好看一下国标,GB/T 18696.2-2002 eqv ISO 10534-2:1998(E)
声学 阻抗管中吸声系数和声 ...

非常感谢,你说的几点我都不太清楚,先去查资料学习一下。

吃斋饭的狼 发表于 2014-5-21 22:43

westrongmc 发表于 2014-5-21 10:14
对于这个问题,你最好看一下国标,GB/T 18696.2-2002 eqv ISO 10534-2:1998(E)
声学 阻抗管中吸声系数和声 ...

大神,我按你说的又重新算了一下,传递函数用H12=S12/S11算的。算的H12还有吸声系数跟以前不一样了。麻烦再帮我看看吧。传递函数的样子对么?

吃斋饭的狼 发表于 2014-5-21 22:44

图在这里

westrongmc 发表于 2014-5-21 23:15

本帖最后由 westrongmc 于 2014-5-22 09:28 编辑

吃斋饭的狼 发表于 2014-5-21 22:44
图在这里
请不要显示实部,虚部。请显示 幅频/相频 曲线。


从你的这个时域曲线来看,将前面的过渡过程(大约0.001s)去掉,后面的稳态声压时域波形应该幅值基本一致,
不过是:1)时间上相差大约0.25ms(=>两个麦克相距约8.5cm?从图上大致读出来的,不一定特别准),2)是单频的信号,信号频率大约是1200Hz(??,从图上读出来的,不一定特别准)

从上面的分析可以看出,
传递函数应该是:
1) 幅值@1200Hz=1,
2)相位@1200Hz大约=2×PI×1200×0.25/1000=108度
(备注:时延在频域上会引入一个跟时延成正比的线性相位差,这个108度不一定很准,因为数值是从图上读出来的);

其他频率位置不应考虑(因为是单频信号)
至于为什么你算出来的不是这个值,主要有两个原因:
1.)前面的过渡过程有影响;
2.)不满足Fourier变换的周期性要求,有泄漏。



吃斋饭的狼 发表于 2014-5-21 23:33

westrongmc 发表于 2014-5-21 23:15
请不要显示实部,虚部。请显示 幅频/相频 曲线。

从你的这个时域曲线来看,将前面的过渡过程(大约0.0 ...

你说的泄漏是什么意思啊?我问了他们搞信号的人,说是也不清楚。我查了信号处理的书,没有发现讲这个概念的。另外不满足傅里叶周期性是为什么?时域信号不是有那么多个周期么?(没有学过信号处理,实在不好意思啊)

westrongmc 发表于 2014-5-21 23:39

本帖最后由 westrongmc 于 2014-5-21 23:41 编辑

吃斋饭的狼 发表于 2014-5-21 23:33
你说的泄漏是什么意思啊?我问了他们搞信号的人,说是也不清楚。我查了信号处理的书,没有发现讲这个概念 ...
你在百度中,搜一下 “FFT 泄漏”,有很多介绍的链接,例如下面的这个:
http://www.doc88.com/p-28474888842.html
或者在google里面搜一下“FFT aliasing”,也有很多介绍链接,例如下面的这个:
http://ocw.usu.edu/Electrical_and_Computer_Engineering/Communication_Systems_I/sampling_sinusoids.pdf

吃斋饭的狼 发表于 2014-5-21 23:43

westrongmc 发表于 2014-5-21 23:39
你在百度中,搜一下 “FFT 泄漏”,有很多介绍的链接,例如下面的这个:
http://www.doc88.com/p-2847488 ...

好的,非常感谢,我去研究下

westrongmc 发表于 2014-5-22 09:18

吃斋饭的狼 发表于 2014-5-21 23:43
好的,非常感谢,我去研究下

这个仿真的算例,如果希望算出来,可以采取下面的措施:
1)既然是仿真并且是单频,信号频率已知(在本例中,是1200Hz?),那么在仿真时,可以有意地整周期采样。
      举个例子,假设采样率SamplingFreq = 8192Hz,FFT分析点数 N_fft = 4096, 则有频率分辨率deltaFreq = 8192/4096 = 2Hz
   在这种采样参数下,应该是整周期采样(压谱线测量),没有泄漏影响。

2)将仿真数据的初始过渡过程去掉,只保留后面的稳态响应。

既然是单频信号,那么结果应该只对你设定的频率有效。

吃斋饭的狼 发表于 2014-5-22 16:33

westrongmc 发表于 2014-5-22 09:18
这个仿真的算例,如果希望算出来,可以采取下面的措施:
1)既然是仿真并且是单频,信号频率已知(在本 ...

大神,我按照你说的,把时域信号截取了4个周期,前面的部分去掉了,尽量保证没有波形泄露。

算出来的吸声系数如下:
结果里明显表现出1200Hz处的不同。原始的时域信号确实是单频1200Hz的。问题是吸声系数应该是0-1的范围,我这明显不对。而且我在这个算例里没有给任何吸声材料,吸声系数我觉得应该都是0。大概还是求吸声系数的公式里面的量有用的不对的地方。我把我使用的过程详细说一下,麻烦你给我看看,看不能找出问题所在。
吸声系数的求法如下:
反射因数r的求法如下:
求r时,里面有几个量H12,HI,HR,k0,x1。
x1就是距离量,k0等于2pai·f,这里我忽略了衰减常数,假设k0就是实数。
HI的求法如下:
HR的求法如下:
HI和HR也都是通过k0和距离量求出来的。
H12求法如下:
互谱S12和自谱S11的求法如下:
其中的p1和p2都是用origin对时域信号做fft后得到的复数:

不知道到底是哪出错了,劳烦大神再指点一下,感激不尽!

westrongmc 发表于 2014-5-22 17:11

本帖最后由 westrongmc 于 2014-5-22 17:34 编辑

请说明一下仿真的参数:
1. 采样频率,也就是每秒时域上有多少点?
2. s=?
3. origin做fft时,取的分析点数。
4. 1200Hz时,算出来的传递函数的幅值,相位分别是多少?
5. 确认,前面的过渡过程去掉,不是简单地置零。而是分析时,只分析保留的波形.
6. 如果只保留了四个周期的波形,则频率分辨率 deltaF = 1/(4个周期的时间) = 1/(1/1200×4)=300Hz?是这样吗?7. k0取多少?


8. 我看了你提供的表格内的数据,deltaF = 300.10701Hz。
         而与1200Hz最接近的频率是 1200.42802Hz,这时还是有泄漏的。算得还不准确。
         后面的实部(-10716.824),虚部的值很大(-214.695),(实际上,@12000Hz时,这个复数的模应该是接近1)
         说明你没有除以FFT分析点数N_fft。
         请看一下,origin对于fft是如何定义的。
   算得不对就很正常了。



补充内容 (2014-6-13 15:18):
修改文中笔误:(实际上,@1200Hz时,...)
页: [1]
查看完整版本: 吸声系数测量的传递函数法-跪求大神指点