音频信号重采样知识

目录

  • 前言
    • 为何要对音频信号进行重采样
    • 音频信号重采样
      • 上采样及频谱镜像
      • 下采样及频谱混叠
    • 代码实现的相关思路

前言

因为接下来的毕设将要实现wav文件采样率修改的任务。故此需要学习有关音频信号重采样的有关知识。

为何要对音频信号进行重采样

我觉得这是个很重要的问题,你为什么需要这个功能。
我在网上查到了一位大佬的回答,如下:
这个很简单,比如说语音识别,需要很低的采样率就可以了,高了增加了数据量,毫无用处。
采样你可以拿图片的分辨率类比。
比如说照相机拍出来的照片是4000x3000,12Mp的分辨率。
你现在要上传到csdn,说图片太大了,怎么办?你得把图片转换成800x600的,这个降低(其实是改变,也可以是插值升高)分辨率的过程,就很类似重采样。

大佬举了个简单例子,图片的重采样,我们上传图片时如果不需要那么大,可以通过下采样的方式,去除不需要的部分

音频信号重采样

音频重采样作为一个独立模块蕴含了数字信号处理理论的多方面内容,综合起来其物理原理及滤波器的实现优化可以作为一个独立的项目做较深入的研究,可谓是一门学问。

音频重采样分为上采样下采样,即插值抽取
在实现有理数级重采样时,则是将上采样和下采样做结合(例如48kHz 转 44.1kHz时,将44.1kHz近似为44kHz,将48kHz下采样到4kHz,再上采样至44kHz来实现)。

由数字信号处理中,时域信号和频域信号的时-频对偶特性可知:时域的抽取,对应频域的延拓;时域的插值,对应频域的压缩。如果对信号的频率成分不做限制的话,频域的延拓可能会引发频谱混叠;频域的压缩来引起频谱镜像相应。
因此在下采样前,要经过滤波器滤波来防止混迭,即抗混迭(antialiasing filter)滤波;上采样后也要经过滤波处理,即抗镜像(anti-image filter)滤波。

上采样及频谱镜像

对于上采样中会出现频谱镜像做出一定解释。
音频信号重采样知识_第1张图片
上图中虚线处,一般是镜像频谱。也就是和原本信号频谱的的复制。

上采样过程
(1)上采样的插零操作,相当于时域拉伸,对应于频谱压缩,造成镜像;
(2)通过低通滤波器滤除镜像。(PS:通过低通滤波器相当于进行了一次卷积,这会对我们后面的编程起到作用
音频信号重采样知识_第2张图片
原始信号-pi~pi,重复出现。

压缩N倍,则 原始信号 -piN~piN, 压缩到 -pi*pi;

有效带宽 -w~w;则压缩后变成了, -w/N~-w/N, -pi~pi压缩成 -pi/N~pi/N;其它镜像通过低通滤波器滤除掉。

截止频率为 pi/N。

内插值的过程,相当于低通滤波。

下采样及频谱混叠

对于下采样中会出现的频谱混叠现象,在此做出一定的解释。
简单的说,也就是当采样频率(fs)小于信号的最高频率的两倍时,就会发生频谱混叠的现象。当进行下采样操作的时候,每秒的采样值减少,由F=1/T的公式知道,T减小了,F则会变大,然后采样率fs又变小了,所以需要一个抗混迭(antialiasing filter)滤波来进行滤波操作。

下采样过程
(1)抽取,相当于时域压缩,傅里叶变换对应于频域拉伸P倍。
(2) 原始离散信号截止频率, -w0~w0, 扩展后 -w0p~w0p; w0*p <=pi;
滤波器截止频率:w0<= pi/P; 对原始信号进行提前滤波操作。

PS:先低通滤波后采样的这种方法能最大限度地减低频谱的丢失,从而降低信号失真。

代码实现的相关思路

对于采样率为Fs,长度为M个采样点的音频信号x[n],,通过采样因子P/Q进行重采样后,这个信号的样本数可以增大或者减小。该过程可以分为如下三个步骤:

(1)上采样:在原信号相邻两点内插入P-1个零点,即创建一个有P (M-1)+1个采样点的信号xu[n],当n=1,2,…,M时,xu[P(n-1)+1] = x[n];否则,xu[n]=0。

(2)插值:xu[n]和一个低通插值滤波器h[n]作卷积:xi[n]= xu[n]h[n]。

(3)下采样:每隔Q-1个点抽取一个点,即创建有Q个点的信号xd[n],当n=1,2,…,+1时,xd[n]=xi[1+Q (n-1)],则重采样信号y[n]=xd[n]。(符号表示向下取整数)

不同类型的重采样算法都可以分为上述三个过程,它们的唯一的区别就在于步骤2中所采用的插值滤波器的不同。其中,线性插值是最简单的插值算法。另外,常见的插值还包括样条插值、三次方插值等。

参考文章:
参考1
参考2

你可能感兴趣的:(毕业设计,wav文件,wave)