音频从 44100 上采样到 96000 Hz 和线性插值
Upsampling audio from 44100 to 96000 Hz and linear interpolation
我正在尝试将 44100 Hz 采样到 96000 Hz,我已经尝试过了。
sum1 = mPastWavBuffer[(int)mOffset];
sum2 = mPastWavBuffer[(int)mOffset+1];
double sum = (sum1 + (sum2-sum1)) * (mOffset-(int)mOffset);
mOffset 是一个双精度值,包含递增的步进因子,以在 44100 Hz 示例文件中移动并使其达到 96000 Hz。这个线性插值取自维基线性插值从两个已知点 但这并没有给我我想要的结果,这听起来很糟糕。
我在这里用错了还是如果这不是使用它的方式,我应该怎么做这个公式?
问候,摩根
这可能是因为线性插值并不是您真正想要的。 如果您只是将采样率加倍,它可能工作得很好,但是对于非整数因子,如果您获得良好的结果,我会感到惊讶。
我建议要么尝试高阶多项式插值,要么在频率空间中做一些事情(第一个比第二个更容易)。
编辑:从评论中我还注意到您的总和计算已关闭:
double sum = sum1 + (sum2-sum1) * (mOffset-(int)mOffset);
是你想要的。
相关文章:
- 向量上的线性搜索
- 二叉搜索如何比线性搜索更快?
- 线性丢番图方程 - 求给定区间内的解数和解
- 查找自动生成键并具有线性内存消耗的小型关联数组
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 线性优化目标函数中的绝对值
- 犰狳C++:带有模量计算的线性组合
- C++(线性搜索和排序)
- 一般采用可索引/可调用的线性组合
- C++线性搜索算法,确定数组中元素的数量
- 如何在 c++ 中线性搜索两个数组?
- 生成线性随机整数C++
- 使用本征求解线性方程组
- 在 SEAL 中重新线性化一个密文
- 如何在C++中实现线性探测?
- C++ 本征线性系统求解,数值问题?
- 曼哈顿距离比曼哈顿距离+线性冲突效果更好
- 变量未在此范围内声明 数组线性搜索
- 如何线性插值到不恒定的目的地
- 音频从 44100 上采样到 96000 Hz 和线性插值