如何对采样的音频信号进行频谱反转
将信号混合Fs/2
将交换高频率和低频率 - 考虑将单位圆周围的频谱旋转半圈。您可以通过将每个其他样本乘以-1来实现此旋转。
通过Fs/2
混合相当于通过exp(j*pi*n)
混合。如果x
是输入和y
输出,
y[n] = x[n] * exp(j*pi*n) = x[n] * [cos(pi*n) + j*sin(pi*n)]
这容易简化因为sin(pi*n)
是0,并且cos(pi*n)
是交替1,-1。
这么简单...令人难以置信 – 2010-09-08 10:31:04
这个技巧在DSP中出现了很多。例如,如果您要设计高通滤波器,通常设计一个具有所需截止比例的低通滤波器比较容易,然后围绕单位圆旋转它以使其达到高通。 – mtrw 2010-09-08 12:47:39
为了得到的东西,具有相同类型的时间结构与原来,你需要
- 创建频谱(有一些窗口大小)
- 挑选了一些上下频率界限,使你会翻转
- 翻转频谱图的强度的范围内
- 再合成与频率一致的声音信号
由于这是一个音频信号,因此相位都会混乱起来并不重要。无论如何,你一般都听不到它们。除了翻转部分,ARSS做谱图创建和声音再合成。否则,您可以采取FFT,反转组件的幅度,并进行逆FFT。但这基本上是荒谬的,因为它会完全扰乱声音的时间结构以及频率结构。
谢谢ARSS使用频率滤波器组,所以我所能做的只是反转频率分档。我想知道是否有一些数学处理能够“平滑地”反转频率(没有将频率划分为分箱)。 – 2010-08-20 17:46:33
您可以使用未明确归档的小波,但在您的情况下几乎不重要。低频声音变化比高频声音慢得多,所以翻转会改变光滑度。 – 2010-08-20 17:58:42
使用余弦没有多大意义。对于数字信号来说,在这里运行一个真正的ringmod并不是必需的,在nyquist的情况下反正是正方形。
所以你只需乘以* -1乘以所有其他样本,就完成了。
没有延迟,没有别名,没有任何东西。
这就是接受的答案所说的。 – 2016-08-23 03:27:52
什么是“频谱反转”?有趣的是,谷歌在这里首先揭示了你的问题。 你想要每个频率的相位和振幅的倒数?或者你只是想要一个IFFT?或者完全不同的东西? – zerm 2010-08-19 10:22:00
对不起我的不专业的词汇:我想要低频成为高频,反之亦然(直流偏移将成为一半采样频率的正弦)。 – 2010-08-19 10:30:45
现在我很好奇听到这听起来像什么...... – PeterAllenWebb 2010-08-19 16:38:07