Wikipedia上面的MDCT公式有错?
2013-05-27 14:59
134 查看
wikipedia上关于MDCT的公式
http://en.wikipedia.org/wiki/MDCT
As a lapped transform, the MDCT is a bit unusual compared to other Fourier-related transforms in that it has half as many outputs as inputs (instead of the same number). In particular, it is alinear function
(where R denotes the set of real numbers). The 2N real numbers x0, ..., x2N-1 are transformed into the N real numbers X0, ..., XN-1 according to the formula:
(The normalization coefficient in front of this transform, here unity, is an arbitrary convention and differs between treatments. Only the product of the normalizations of the MDCT and the IMDCT, below, is constrained.)
The IMDCT transforms N real numbers X0, ..., XN-1 into 2N real numbers y0, ..., y2N-1 according to the formula:
(Like for the DCT-IV, an orthogonal transform, the inverse has the same form as the forward transform.)
In the case of a windowed MDCT with the usual window normalization (see below), the normalization coefficient in front of the IMDCT should be multiplied by 2 (i.e., becoming 2/N).
直接实现会发现能量不守恒,编码输入是解码输出的2倍。
参考斯坦福大学JOS的公式
https://ccrma.stanford.edu/~jos/bosse/Modified_Discrete_Cosine_Transform.html
MDCT is critically sampled, which means that though it is 50% overlapped, a sequence data represented with MDCT coefficients takes equally much space as the original data. This means, that a single block of IMDCT data does not correspond to the original block, on which the MDCT was performed, but rather to the odd part of that. When subsequent blocks of inverse transformed data are added (still using 50% overlap), the errors introduced by the transform cancels out
TDAC. Thanks to the overlapping feature, the MDCT is very useful for quantization. It effectively removes the otherwise easily detectable blocking artifact between transform blocks. The used definition of MDCT is (a slight modification from [5]) is:
and the IMDCT:
注意解码部分4/n比wki的公式多了2倍,就守恒了。
再参考AAC标准13818-7的公式
MDCT
IMDCT:
发现MDCT公式又多乘了2
结论:变换的公式要守恒,但是系数乘在哪里不重要。实际都是归一化的值。
只有比较的相对意义。
但是wiki上对应公式应该守恒处理。
http://en.wikipedia.org/wiki/MDCT
As a lapped transform, the MDCT is a bit unusual compared to other Fourier-related transforms in that it has half as many outputs as inputs (instead of the same number). In particular, it is alinear function
(where R denotes the set of real numbers). The 2N real numbers x0, ..., x2N-1 are transformed into the N real numbers X0, ..., XN-1 according to the formula:
(The normalization coefficient in front of this transform, here unity, is an arbitrary convention and differs between treatments. Only the product of the normalizations of the MDCT and the IMDCT, below, is constrained.)
Inverse transform [edit]
The inverse MDCT is known as the IMDCT. Because there are different numbers of inputs and outputs, at first glance it might seem that the MDCT should not be invertible. However, perfect invertibility is achieved by adding the overlapped IMDCTs of subsequent overlapping blocks, causing the errors to cancel and the original data to be retrieved; this technique is known as time-domain aliasing cancellation (TDAC).The IMDCT transforms N real numbers X0, ..., XN-1 into 2N real numbers y0, ..., y2N-1 according to the formula:
(Like for the DCT-IV, an orthogonal transform, the inverse has the same form as the forward transform.)
In the case of a windowed MDCT with the usual window normalization (see below), the normalization coefficient in front of the IMDCT should be multiplied by 2 (i.e., becoming 2/N).
直接实现会发现能量不守恒,编码输入是解码输出的2倍。
参考斯坦福大学JOS的公式
https://ccrma.stanford.edu/~jos/bosse/Modified_Discrete_Cosine_Transform.html
Modified Discrete Cosine Transform (MDCT)
The MDCT is a linear orthogonal lapped transform, based on the idea of time domain aliasing cancellation (TDAC). It was first introduced in [3], and further developed in [4].MDCT is critically sampled, which means that though it is 50% overlapped, a sequence data represented with MDCT coefficients takes equally much space as the original data. This means, that a single block of IMDCT data does not correspond to the original block, on which the MDCT was performed, but rather to the odd part of that. When subsequent blocks of inverse transformed data are added (still using 50% overlap), the errors introduced by the transform cancels out
TDAC. Thanks to the overlapping feature, the MDCT is very useful for quantization. It effectively removes the otherwise easily detectable blocking artifact between transform blocks. The used definition of MDCT is (a slight modification from [5]) is:
(20) |
(21) |
再参考AAC标准13818-7的公式
MDCT
IMDCT:
发现MDCT公式又多乘了2
结论:变换的公式要守恒,但是系数乘在哪里不重要。实际都是归一化的值。
只有比较的相对意义。
但是wiki上对应公式应该守恒处理。
相关文章推荐
- 贝叶斯(Bayes)公式,将上面公式中的A换成“规律”,B换成“现象”,这个公式就一目了然
- Wikipedia上面关于Method stub的说明
- 我重写的Excel 净现值和内部回报率的公式
- windows下eclipse操作hdfs上面的文件
- 关于ckeditor和webeq结合插入在线公式的回复
- 第三十一讲项目2.1-公式pi/4=1-1/3+1/5-1/7+...的近似值
- 一个小公式帮你轻松将IP地址从10进制转到2进制
- 数学之美~(01)最伟大的数学公式!
- EXCEL中公式 VLOOKUP 的使用
- Latex数学公式中的空格
- Excel用公式找出出现次数最多的数据
- aws上面dcoc测试的一个问题
- RC充放电时间计算公式
- 怎么给MathType调整公式边框粗细
- 字符串公式的计算(有兴趣可以研究…
- 利用JavaScript计算引擎进行字符串公式运算
- 一组媒体不敢刊发的照片,令人心酸!(希望有爱心的朋友都行动起来!!!将本文转载到更多网络上面...)
- ViewPager的一个应用,用fragment来当页面,可以左右滑动,上面有一条线,来分隔
- 窗口始终浮在上面的图钉按钮示例程序(详细编程)
- Linux上面搭建SVN服务器