| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:[求助][讨论][原创]声波的积分漂移
取消只看楼主 加入收藏
ALUCARD_1797
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-3-23
收藏
 问题点数:0 回复次数:0 
[求助][讨论][原创]声波的积分漂移

本人目前正在开发一种新的音频编码器,在滤波器上遇到了问题,希望懂信号处理方面的大侠帮小弟一把。

信号的图释 http://www.piccube.de/uploads/d650f8f2d2.gif http://www.piccube.de/uploads/cd0002d0e9.gif

信号频率范围(44100,10)HZ 信号振幅(-32768,+32767) 信号都是N个由未知振幅\频率\相位的正弦信号叠加而成的 N是有限数量,也许是10个也许是50个也许是2个 特别的是,信号的振幅不是固定不变的,也就是说在t1时刻是x1而在t2时刻是x2

图中红色的是原始声音信号,白色的是经过算法处理后的信号。原始信号是完全没问题的,声音信号是从CD里面

抓取的。

红色原始信号经过了积分后变成白色信号,原本在0的位置上下震荡的信号漂移到了n的位置。现在要把信号矫正

过来。绿色的线是0,有没有一种算法可以求出n。

相关的算法: 滤波公式http://www.piccube.de/uploads/ef462128ea.gif

double m_u_f=0; for(x=0;x<size;x++) { m_u_f=pBuffer[x]+m_u_f; pBuffer[x]=m_u_f; }

算法很简单,就是对信号进行累加,但是实际上信号是经过了一个积分的过程。 公式里面的X是时间,N是频率,a是初始时间。m_u_f里面的数值就是在x时刻等式右边的值。信号漂移的原因是N

*cos(a/N)(就是画红圈的)这个在滤波过程中的定值所引起的。实际上只要求出这个定值就可以解决漂移的问

题。但是N和a(a还包含了相位角的问题)在滤波之前是未知的,所以根本无发通过具体的参数来求出N*cos(a/n)

目前我可以想到的方法就是,对滤波后的信号(白色的)通过某种算法求出振荡中心位置。

有一点我要说明的,我的采样缓冲区长度不可能很长,只有1/10秒,就是4410个采样点。于是频率的范围是(10~

22050)HZ。这是编码器的外在条件。

若想联系本人请加QQ286726462,验证:声波的积分漂移

搜索更多相关主题的帖子: 积分 声波 漂移 
2005-03-23 11:11
快速回复:[求助][讨论][原创]声波的积分漂移
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026403 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved