首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FFT窗口消除浮点到短波转换引起的噪声

FFT窗口消除浮点到短波转换引起的噪声
EN

Stack Overflow用户
提问于 2019-09-22 00:33:19
回答 1查看 153关注 0票数 1

由于大多数音频是使用短格式,一些高频噪声引入由于浮点到短转换!

下面的代码模拟了这样的场景:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack

fs = 96000
N = 96000//2
T = 1.0/fs
x = np.arange(0,N*T,T) + T/8
y = 32767*np.sin(2*np.pi*100.0*x)
y = np.short(y)
y = y*np.hanning(len(y))

yf = np.abs(scipy.fftpack.fft(y))
yf = 20*np.log10(yf*2/N)/32767
xf = scipy.fftpack.fftfreq(N,T)

fig,ax = plt.subplots(2,1,figsize=(12,12))
ax[0].plot(x,y)
ax[1].plot(xf[:N//2],yf[:N//2])
ax[1].set_xscale('log')
plt.show()

输出如下所示:

如果我去掉短的转换线,结果是好的。如何去除高频噪声?也许可以对原始信号应用一个特殊的窗口?

EN

回答 1

Stack Overflow用户

发布于 2019-09-28 04:49:25

这是量化噪声,或通过舍入或截断采样数据以适应较小的目标数据类型而引入的噪声。窗口不会有帮助,因为数据仍然是量化的。您通常无法消除量化噪声,但您可以将其分散开来,使其不那么明显。两种可能的技术是noise shapingdithering。噪声整形将舍入误差分散到周围,以减少可能的累积和偏差,可能会将大量噪声移动到频谱中不太明显的部分。抖动添加了少量的噪声,以减少周期性极限环、带状、频谱尖峰/音调和其他噪声伪像,这些噪声伪像比无模式随机性更可见或可听。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58042163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档