AAC MDCT

AAC采用MDCT进行时频变换。

在编码端,以block为单位取出N个sample,乘以合适的window function后再进行MDCT.N通常为2048,256.

每个输入到MDCT的sample block与前一个block有50%的overlap。

假设有3个1024的frame(A,B,C),那第一个进行MDCT的input sample block为(A,B),第二个进行MDCT的input sample block为(B,C).两个input sample block overlap的部分为frame B,即50%的overlap.

关于input sample block在spec中描述如下:

MDCT计算出频谱系数X(i,k)公式如下:

不同的window sequence, N的取值如下:

对于long_sequence,overlap后的2048个sample进行MDCT,输出为1024个频谱系数。

window可以选择KBD或者sine:

在进行MDCT时,可能会遇得到window switch的情况,

 在解码端,对频谱系数进行IMDCT

MDCT与IMDCT并不可逆,即IMDCT变换后的结果并不是原始信号。

IMDCT的结果通过overlap + add后(当前frame的前半部分和前一个frame的后半部分相加),可还原出原始信号。

posted @ 2017-09-25 23:07  fellow_jing  阅读(1345)  评论(0编辑  收藏  举报