Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15483797
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2009-07-13 20:47:16

:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://kware.blogbus.com/logs/30705261.html

1. 基本公式
   图3展示了 Rothweiler 建议的 MPEG 音频编码过滤器组是怎样的结构,作为比较,图4 则展示了同样的 ISO
   MPEG音频标准的过滤器组的流程图。

   通过结合等式和流程图中的步骤,人们便会推出如下过滤器组输出的公式:

     St[i] = Sum(k=0..63, Sum(j=0..7, M[i][k] * (C[k+64j] * x[k+64j]))                        (1)

   其中:
     i       是子带编号,范围从 0 到 31;
     st[i]   是第 i 个过滤器在时间 t 时样条输出值, t 是一个 32 个音频样条的间隔的整数倍;
     C[n]    是标准中定义的分析窗口的 512 个系数之一;
     x[n]    是音频输入样条值,而
     M[i][k] = cos[(2*i+1)*(k-16)*pi/64] 是分析系数矩阵;

2. 算法分析
   以上等式已进行部分优化以减少计算的数量。因为括号内的函数与 i 值无关, 而 M[i][k] 与 j 无关,因此
   32 过滤器组实际上只需要 512 + 32*64 = 2,560 次乘法和 64*7+32*63 = 2,464 次加法, 大致每个滤波器
   输出需要 80 次乘法和加法。进一步充分的简化还是可能的,如快速 FDCT[9,10] 或 FFT[11]。

   注意:该过滤器组实施是紧急采样的,每 32 个输入样条,过滤器组产生 32 个输出样条。实际上,32个子带
   滤波器中的每一个都子采样它的输出(by 32)以对每 32 个新的音频采样仅产生一个输出样条。

3. 算法卷绕形式与分析
   人们可从 (1) 式转化为熟知的过滤器卷绕等式:

     St[i] = Sum(n=0..511, x[t-n]*Hi[n])                                                      (2)

   其中:
     x[t]     是时间 t 的音频采样数据,而:
     Hi[n]    = h[n]*cos[(2*i+1)*(n-16)*pi/64],其中:
     h[n]     = -C[n], 如果 (n/64) 的整数部分是奇数,
              =  C[n]  否则,n = 0 to 511。

   在这种形式中,每个子带有它自己的带通(band-pass)滤波响应 Hi[n], 尽管该种形式分析起来容易一些,很
   显然它不是一个有效率的方案:该形式的直接实施需要 32 * 512 = 16,384 次乘法和 32* 511 = 16,352 次
   加法才能计算出 32 个滤波器的输出。


收藏到:Del.icio.us
阅读(2414) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~