zoukankan      html  css  js  c++  java
  • 语音信号处理入门系列(2)——信号处理中的几个关键概念

    数字信号

      信号是信息的物理载体,信息是信号的具体内容。

    连续时间信号:在连续时间范围内定义的信号,信号的幅度可以是连续的(模拟信号),也可以是离散的

    离散时间信号时间为离散变量的信号,即独立变量时间被量化了,而幅度仍是连续变化的

    数字信号时间离散而幅度量化的信号

    从模拟信号到数字信号

    我们经常处理语音的时候会发现两个常用的格式:“pcm”和“wav”,这两种格式其实本质上是一样的,pam是脉冲编码调制(pulse code modulation)的一个缩写,pcm的实质就是这三个步骤:采样量化编码。

    数字信号基本运算

    移位:设某一序列x(n),当m>0 时,x(n-m) 表示序列x(n) 逐项依次延时(右移)m 位。(左加右减)

    翻褶:设某一序列x(n),则x(-n) 是以n=0 的纵轴为对称轴将x(n) 加以翻褶。

    :$z(n)=x(n)+y(n)$

    :$z(n)=x(n)·y(n)$

    累加:$y(n)=sum_{k=-infty}^{n}x(k)$

    差分 (一阶):$y(n)=x(n)-x(n-1)$

    尺度变换:对于序列$x(n)$, 形如x(mn)或者x(frac{n}{m})(m为正整数)的序列为$x(n)$的尺度变换序列。

    以$x(2n)$为例,是以低一倍的抽样频率从x(n)中每隔两点取一点,这种运算称为抽取,常用于语音信号的下采样,通常在抽取之前要加入一个防混叠的滤波器。

    类似的,$x(frac{n}{2})$ 称为插值,在语音信号每两个点之间插入一个值,因为我们不知道这个插入的值是多少,一般插0,本身信息并没有增加,通常在插值之后我们还需要一个平滑,也就是在插入这些零点之后,后接一个平滑滤波器,利用相邻采样点之间的取值,把插入的值算出来,常用于语音升采样。

    线性卷积 (linear convolution) : $y(n)=sum_{m=-infty}^{infty} x(m) h(n-m)=x(n) * h(n)$

    由卷积的定义可知,卷积在图形表示上可分为四步:翻褶、移位、相乘、相加。

    $x_n$的长度为$N_1$,$h(n)$的长度为$N_2$,卷积之后信号$y(n)$的长度为$N_1+N_2-1$

    线性卷积的应用:模拟远场数据

      近讲纯净语音信号卷积一个房间冲击响应(RIR)=远场语音信号(带有混响)

    圆周移位 (circular shift) :$x_{m}(n)=x((n+m))_{N} R_{N}(n)$

      其中,$x((n+m))_N$表示$x(n)$经过周期( N )延拓后的序列,再移位$m$,$R_N(n)$为取主值序列$R_{N}(n)=left{egin{array}{ll}1 & 0 leqslant n leqslant N-1 \0 & ext { other } nend{array} ight.$

    圆周卷积 (circular convolution)

    如果$x_1(n)$和$x_2(n)$都是长度为 N 的有限长序列$0leq nleq N-1$,并且

    $left{egin{matrix}D F Tleft[x_{1}(n) ight]=X_{1}(k)\ D F Tleft[x_{2}(n) ight]=X_{2}(k)end{matrix} ight.$==》$Y(k)=X_{1}(k) X_{2}(k)$

    则$x_1(n)$和$x_2(n)$的圆周卷积定义为

    $$egin{aligned}
    y(n)=I D F T[Y(k)] &=left[sum_{m=0}^{N-1} x_{1}(m) x_{2}((n-m))_{N} ight] R_{N}(n) \
    &=left[sum_{m=0}^{N-1} x_{2}(m) x_{1}((n-m))_{N} ight] R_{N}(n)
    end{aligned}$$

    结论:在时域的圆周卷积相当于在频域这两个傅里叶变换的乘积

    注意:与线性卷积相比,圆周卷积多了 周期延拓 和 取主值序列 两个步骤。因此必须指定圆周卷积的点数 N 。

    圆周卷积和线性卷积的关系

    圆周卷积

    $$egin{aligned}
    y(n)=I D F T[Y(k)] &=left[sum_{m=0}^{N-1} x_{1}(m) x_{2}((n-m))_{N} ight] R_{N}(n) \
    &=left[sum_{m=0}^{N-1} x_{2}(m) x_{1}((n-m))_{N} ight] R_{N}(n)
    end{aligned}$$

    线性卷积

    $$y(n)=sum_{m=-infty}^{infty} x(m) h(n-m)=x(n) * h(n)$$

    给定两个有限长序列$x_1(n)$和$x_2(n)$,他们的长度分别为:$N_1=5$,$N_2=3$。相应的取值如下图,我们重点研究$0leq nleq N-1$这个区间内,线性卷积和圆周卷积的关系。

     

    一般的,如果两个有限长序列的长度为$N_1$和$N_2$,且满足$N_1geq N_2$,则圆周卷积的N_1-N_2+1个点,与线性卷积的结果一致。

    线性相关(linear correlation) :$r_{x y}(m)=sum_{n=-infty}^{infty} x(n) y^{*}(n-m)$

    圆周相关(circular correlation)

    如果:$R_{x y}(k)=X(k) Y^{*}(k)$

    则$x(n)$和$y(n)$的圆周相关定义为:

    $$r_{x y}(m)=I D F Tleft[R_{x y}(k) ight]=sum_{n=0}^{N-1} y^{*}(n) x((n+m))_{N} R_{N}(m)=sum_{n=0}^{N-1} x(n) y^{*}((n-m))_{N} R_{N}(m)$$

    圆周相关和线性相关的关系线:一般的,如果两个有限长序列的长度为$N_1$和$N_2$,且满足$N_1geq N_2$,则有圆周相关的前$N_1-N_2+1$个点,与线性相关的结果一致。

    采样定理

    模拟信号的采样:

     

    采样:利用周期性冲激函数序列,从连续信号$x_a(t)$中抽取一系列的离散值,得到采样信号,即离散时间信号 $hat{x}_a(t)$。

    冲激函数序列:$公式2.1:delta_{T}(t)=sum_{m=-infty}^{infty} delta(t-m T)$

    则,采样信号:$公式2.2:hat{x}_{a}(t)=x_{a}(t) cdot delta_{T}(t)$

    将(2.1)代入(2.2),得:$hat{x}_{a}(t)=sum_{m=-infty}^{infty} x_{a}(t) delta(t-m T)$

    由于$delta(t-mT)$只在$t=mT$处于不为零,因此:

    $$hat{x}_{a}(t)=sum_{m=-infty}^{infty} x_{a}(m T) delta(t-m T)$$

    采样后信号频谱的变化

    $$hat{x}_{a}(t)=x_{a}(t) cdot delta_{T}(t)$$

    等式两端取DTFT之后

    $$hat{X}_{a}(j Omega)=frac{1}{2 pi}left[Delta_{T}(j Omega) * X_{a}(j Omega) ight]=frac{1}{T} sum_{k=-infty}^{infty} X_{a}left(jleft(Omega-k Omega_{s} ight) ight)$$

    其中$Delta_{T}(j Omega)=D T F Tleft[delta_{T}(t) ight]$

    结论:频谱产生了周期延拓 ,周期为$Omega_s$。因此,只要各延拓分量与原频谱分量不发生频率交叠,则可以恢复原信号。

    公式推导

    $$hat{X}_{a}(j Omega)=frac{1}{2 pi}left[Delta_{T}(j Omega) * X_{a}(j Omega) ight]=frac{1}{T} sum_{k=-infty}^{infty} X_{a}left(jleft(Omega-k Omega_{s} ight) ight)$$

    其中$Delta_{T}(j Omega)=D T F Tleft[delta_{T}(t) ight]$,由于$delta_T(t)$是周期信号(周期为 T ),则可以表示成傅里叶级数

    $$delta_{T}(t)=sum_{k=-infty}^{infty} A_{k} e^{j k Omega_{s} t}$$

    其中$Omega_{s}=frac{2 pi}{T}$为采样频率,

    $$egin{aligned}
    A_{k} &=frac{1}{T} int_{T} delta_{T}(t) e^{-j k Omega_{d} t} d t=frac{1}{T} int_{T} sum_{m=-infty}^{infty} delta(t-m T) e^{-j k Omega_{c} t} d t \
    &=frac{1}{T} int_{T} delta(t) e^{-j k Omega_{s} t} d t=frac{1}{T}
    end{aligned}$$

    因为在一个积分区间T$[-frac{T}{2}, frac{T}{2}]$内,只有一个冲激函数。

    奈奎斯特采样定理

    要想采样后能够无失真的还原出原信号,则采样频率必须大于两倍信号谱的最高频率。

    $$f_{s}>2 f_{h}$$

    空间“采样定理

      频域 空域
    采样 冲激函数序列 麦克风
    采样率 $f_s$ $d$
    信号的最高频率 $f_h$ $lambda_{min}$
    防混叠条件 $f_s>2f_h$ $d<frac{lambda_{min}}{2}$

    时频分析与傅里叶变换

    变换是一种常用的数学工具

    其中$e_x$和$e_y$构成标准正交基 ,满足如下条件前

    $$left{egin{array}{c}
    left|mathbf{e}_{x} ight|=left|mathbf{e}_{y} ight|=1 \
    leftlanglemathbf{e}_{x}, mathbf{e}_{y} ight angle=0
    end{array} ight.$$

    前面的系数表示平面中的点在这个基向量方向上有多少个单位长度。

    利用正弦波模拟方波

    何为“频域”?

    傅里叶级数 (Fourier Series)

      如果$x(t)$是一个周期为$T_0$的周期性连续函数,则$x(t)$可展开成傅里叶级数:

    $$egin{array}{l}
    x(t)=sum_{k=-infty}^{infty} Xleft(j k Omega_{0} ight) e^{j k Omega_{0} t} \
    Xleft(j k Omega_{0} ight)=frac{1}{T_{0}} int_{-T_{0} / 2}^{T_{0} / 2} x(t) e^{-j k Omega_{0} t} d t
    end{array}$$

    解读:$Omega_{0}=2 pi F=frac{2 pi}{T_{0}}$傅里叶级数系数的计算,实质上是通过内积的方式,“抽取”对应频率分量的系数。

    连续傅里叶变换 (Fourier Transform)

      连续非周期信号$x(t)$的傅里叶变换可以表示为:

    $$egin{array}{l}
    X(j Omega)=int_{-infty}^{infty} x(t) e^{-j Omega t} d t \
    x(t)=frac{1}{2 pi} int_{-infty}^{infty} X(j Omega) e^{j Omega t} d Omega
    end{array}$$

    解读:这应该是大家在“信号与系统”里学到的第一个傅里叶变换公式。它仍然是通过内积的方式,“抽取”对应频率分量的系数。与傅里叶级数不同的是,由于时域信号非周期,因此频域中是连续谱。

    离散时间傅里叶变换 (Discrete Time Fourier Transform)

      离散非周期信号 x(n) 的 DTFT 可以表示为:

    $$egin{array}{l}
    Xleft(e^{j omega} ight)=sum_{n=-infty}^{infty} x(n) e^{-j omega n} \
    x(n)=frac{1}{2 pi} int_{-pi}^{pi} Xleft(e^{j omega} ight) e^{j omega n} d omega
    end{array}$$

    解读:DTFT 与傅里叶级数互为正反变换。

    离散傅里叶变换 (Discrete Fourier Transform)

      离散周期信号 x(n) 的 DFT 可以表示为:

    $$egin{array}{l}
    X(k)=sum_{n=0}^{N-1} x(n) e^{-j frac{2 pi}{N} n k}=sum_{n=0}^{N-1} x(n) W_{N}^{n k} \
    x(n)=frac{1}{N} sum_{k=0}^{N-1} X(k) e^{j frac{2 pi}{N} n k}=frac{1}{N} sum_{k=0}^{N-1} X(k) W_{n}^{-n k}
    end{array}$$

    其中$W_{N}=e^{-j frac{2 pi}{N}}$

    解读:DFT 只针对有限长序列或周期序列。

    DFT相当于对 DTFT 中的正变换加以采样,造成时域信号的周期性,因此时域信号应限制在一个周期内。 凡是用到离散傅里叶变换的时候,有限长序列都是作为周期序列的一个周期来表示的,都隐含有周期性意义

    离散傅里叶变换的矩阵形式

    定义Fourier 矩阵:

    $$mathbf{F}=left[egin{array}{ccccc}
    1 & 1 & 1 & ldots & 1 \
    1 & W_{N} & W_{N}^{2} & ldots & W_{N}^{N-1} \
    vdots & vdots & vdots & vdots & vdots \
    1 & W_{N}^{N-1} & W_{N}^{2(N-1)} & ldots & W_{N}^{(N-1)(N-1)}
    end{array} ight] quad W_{N=e^{-j frac{2 pi}{N}}}$$

    Fourier矩阵的性质:$mathbf{F}^{H} mathbf{F}=mathbf{F} mathbf{F}^{H}=N mathbf{I}$--->$mathbf{F}^{-1}=frac{1}{N} mathbf{F}^{H}$

    $$egin{array}{l}
    mathbf{X}(k)=mathbf{F x}(n) \
    mathbf{x}(n)=mathbf{F}^{-1} mathbf{X}(k)
    end{array}$$

    傅里叶变换的四种形式

      时间函数 正变换 反变换 频率函数

    Fourier
    Transform

    连续
    非周期

    $X(j Omega)=int_{-infty}^{infty} x(t) e^{-j Omega} d t$ $x(t)=frac{1}{2 pi} int_{-infty}^{infty} X(j Omega) e^{i Omega t} d Omega$

    非周期
    连续

    Fourier
    Series

    连续
    周期

    $Xleft(j k Omega_{0} ight)=frac{1}{T_{0}} int_{-T_{0} / 2}^{T_{0} / 2} x(t) e^{-j k Omega_{0} t} d t$ $x(t)=sum_{k=-infty}^{infty} Xleft(j k Omega_{0} ight) e^{j k Omega_{0} t}$

    非周期
    离散

    DTFT

    离散
    非周期

    $Xleft(e^{j omega} ight)=sum_{n=-infty}^{infty} x(n) e^{-j omega n}$ $x(n)=frac{1}{2 pi} int_{-pi}^{pi} Xleft(e^{j omega} ight) e^{j omega n} d omega$

    周期
    连续

    DFT

    离散
    周期

    $X(k)=sum_{n=0}^{N-1} x(n) W_{N}^{n k}$ $x(n)=frac{1}{N} sum_{k=0}^{N-1} X(k) W_{n}^{-n k}$

    周期
    离散

    离散傅里叶变换的几个问题

    频谱泄漏

    频谱泄漏是指由于信号截断造成的原始信号频谱扩散现象。

    产生频谱泄漏的原因是对信号的截断 。信号的截断相当于在原始信号$x(n)$与一个窗函数$w(n)$相乘,在频域中相当于各自频谱的卷积过程。卷积的结果造成原始信号频谱的“扩散”(或拖尾、变宽),这就是频谱泄漏。

    减少频率泄露的方法:

    • 加窗,选择合适的窗函数
    • 选择更长的窗长

    栅栏效应

      因为DFT 计算频谱只限制在离散点上的频谱,也就是$F_0$的整数倍处的谱,而无法看到连续频谱函数,这就像通过一个“栅栏”观看景象一样,只能在离散点的地方看到真实景象。这种现象称为“栅栏效应”。

      减小栅栏效应的方法就是要是频域抽样更密,即增加频域抽样点数,就好像距离“栅栏”的距离边远一些。在不改变时域信号的情况下,必然是在时域信号末端 补零 。补零后的时域数据,在频谱中的谱线更密,原来看不到的谱分量就有可能看到了。

    语音信号DFT的共轭对称性

      时域中的语音信号,经过离散傅里叶变换DFT后的频谱是共轭对称的。

  • 相关阅读:
    pandas
    简单的图片滑动&标签页的前进后退
    xpath 语法&元素交互操作&选项卡操作
    Selenium请求库-day5下午
    初始python
    异步多线程下载网页爬取的视频
    python学习-day4上午
    爬虫初试
    爬虫
    内置模块--又称为常用模块
  • 原文地址:https://www.cnblogs.com/LXP-Never/p/14165699.html
Copyright © 2011-2022 走看看