QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2793|回复: 1
打印 上一主题 下一主题

[求助][讨论][原创]声波的积分漂移

[复制链接]
字体大小: 正常 放大

3

主题

0

听众

41

积分

升级  37.89%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2005-3-23 13:04 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本人目前正在开发一种新的音频编码器,在滤波器上遇到了问题,希望懂信号处理方面的大侠帮小弟一把。; R8 V1 Y% l+ f4 _
信号的图释, k# x" s" u! u* @) g' P
http://www.piccube.de/uploads/d650f8f2d2.gif: o) E/ t* f% ]
  H9 T; R/ X* {' `1 L9 P9 c
http://www.piccube.de/uploads/cd0002d0e9.gif
! A2 o& b$ m0 M( T+ g7 I
9 F( n8 R1 E- X# l- t信号频率范围(44100,10)HZ
% T6 g" w' G5 q信号振幅(-32768,+32767), l& X' \" z" W6 d' R
信号都是N个由未知振幅\频率\相位的正弦信号叠加而成的
1 F1 X3 ]) w! L, ]8 dN是有限数量,也许是10个也许是50个也许是2个" r0 m) ~4 d( `5 E! l
特别的是,信号的振幅不是固定不变的,也就是说在t1时刻是x1而在t2时刻是x2
( q3 V8 N" Y% y# L) ^; R图中红色的是原始声音信号,白色的是经过算法处理后的信号。原始信号是完全没问题的,声音信号是从CD里面抓取的。
; M9 S4 y" c# W3 y$ X红色原始信号经过了积分后变成白色信号,原本在0的位置上下震荡的信号漂移到了n的位置。现在要把信号矫正过来。绿色的线是0,有没有一种算法可以求出n。) z. n7 k( R% L9 [
相关的算法:. o$ M5 ^, G  s/ k/ f2 t& ]
滤波公式http://www.piccube.de/uploads/ef462128ea.gif
: L' T& k" U, W! r  U7 N
4 U: A0 k' L' zdouble m_u_f=0;7 K5 E) Q0 k, a; v) ^
for(x=0;x<size;x++)
( D/ g4 Z0 |, i: Q8 w" f{! ]; Z4 V, C7 F8 Z
m_u_f=pBuffer[x]+m_u_f;. p* F' J# u" J
pBuffer[x]=m_u_f;
0 ]$ I: B& S8 _" [6 t3 J( i}
5 j7 y, [2 A% f5 [$ `算法很简单,就是对信号进行累加,但是实际上信号是经过了一个积分的过程。
: @- i( h4 v9 O1 S- M) \公式里面的X是时间,N是频率,a是初始时间。m_u_f里面的数值就是在x时刻等式右边的值。信号漂移的原因是N*cos(a/N)(就是画红圈的)这个在滤波过程中的定值所引起的。实际上只要求出这个定值就可以解决漂移的问题。但是N和a(a还包含了相位角的问题)在滤波之前是未知的,所以根本无发通过具体的参数来求出N*cos(a/n)。
" U5 L  m) y! c3 J目前我可以想到的方法就是,对滤波后的信号(白色的)通过某种算法求出振荡中心位置。4 e1 W6 w4 {% i! [
有一点我要说明的,我的采样缓冲区长度不可能很长,只有1/10秒,就是4410个采样点。于是频率的范围是(10~22050)HZ。这是编码器的外在条件。
( ~1 S4 {9 [# W8 w+ e% N/ A若想联系本人请加QQ286726462,验证:声波的积分漂移
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

2

主题

2

听众

49

积分

升级  46.32%

该用户从未签到

新人进步奖

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-6-12 16:08 , Processed in 0.370115 second(s), 62 queries .

回顶部