当前位置:网站首页>PV-TSM原理及matlab仿真
PV-TSM原理及matlab仿真
2022-04-22 02:22:00 【ManiacLook】
1.概述
WSOLA 能够保持输入信号中最显著的周期性,即基频,见WSOLA原理及仿真.。提高 TSM 信号质量的下一步是保留所有信号分量的周期性。 这是频域 TSM 程序的主要思想,它将每个分析帧解释为具有已知频率和相位的正弦分量的加权和。 基于这些参数,这些组件中的每一个都被单独处理,以避免在重建信号中的所有频率上出现相位跳跃。
输入信号频率分析的基本工具是短时傅立叶变换。然而,根据所选的离散化参数,结果频率估计可能不准确。 为此,相位声码器(虽然术语“相位声码器”指的是一种用于估计瞬时频率的特定技术,但它在文献中也经常用作 TSM 程序本身的名称)技术用于通过导出正弦分量的瞬时频率来改进短时傅立叶变换的粗略频率估计。 在基于相位声码器 (PV-TSM) 的 TSM 程序中,这些改进的估计用于在相位传播的过程中更新输入信号的正弦分量的相位。
2.短时傅里叶变换STFT
PV-TSM 最重要的工具是短时傅里叶变换 (STFT),它将傅里叶变换应用于给定输入信号的每个分析帧。 信号 x 的 STFT X 由下式给出
X(m,k) = ∑ − N / 2 N / 2 x m ( x ) w ( r ) e x p ( − 2 π i k r / N ) \sum_{-N/2}^{N/2}x_m(x)w(r)exp(-2πikr/N) ∑−N/2N/2xm(x)w(r)exp(−2πikr/N) (1)
其中 m ∈ Z 是帧索引,k ∈ [0 : N − 1] 是频率索引,N 是帧长度,xm 是等式 (1) 中定义的 x 的第 m 个分析帧,w 是一个窗口函数。 给定输入信号的采样率 Fs,X(m, k) 的帧索引 m 与物理时间相关联
T c o e f ( m ) = m H a F s T_{coef}(m)=\frac{mH_a}{F_s} Tcoef(m)=FsmHa (2)
上式以秒为单位,频率索引 k 对应于物理频率
F c o e f ( k ) = k F s N F_{coef}(k)=\frac{kF_s}{N} Fcoef(k)=NkFs (3)
上式以 Hz 为单位。 复数 X(m, k),也称为时频仓,表示第 m 个分析帧的第 k 个傅立叶系数。它可以用幅度 |X(m, k)| ∈ R+ 和相位 ϕ(m, k) ∈ [0, 1) 表示为
X ( m , k ) = 丨 X ( m , k ) 丨 e x p ( 2 π i φ ( m , k ) ) X(m,k)=丨X(m,k)丨exp(2πi\varphi(m,k)) X(m,k)=丨X(m,k)丨exp(2πiφ(m,k)) (4)
STFT X 的幅度也称为频谱图,用 Y 表示 :
Y = 丨 X 丨 Y=丨X丨 Y=丨X丨 (5)
在 PV-TSM 的背景下,有必要从修改后的 STFT X M o d X^{Mod} XMod重建输出信号 y。 请注意,修改后的 STFT 通常是不可逆的。 换句话说,可能不存在信号 y 将 X M o d X^{Mod} XMod 作为其 STFT。 然而,存在旨在从 X M o d X^{Mod} XMod 重建信号 y 的方法,其 STFT 就某些距离度量而言接近 X M o d X^{Mod} XMod。 我们首先使用傅立叶变换逆变换计算时域帧 X m M o d X_m^{Mod} XmMod
X m M o d ( r ) = 1 N ∑ k = 0 N − 1 X M o d ( m , k ) e x p ( 2 π i k r / N ) X_m^{Mod}(r)=\frac{1}{N}\sum_{k=0}^{N-1}X^{Mod}(m,k)exp(2πikr/N) XmMod(r)=N1∑k=0N−1XMod(m,k)exp(2πikr/N) (6)
从这些帧中,我们得出合成帧
y m ( r ) = w ( r ) x m M o d ( r ) ∑ n ∈ Z w ( r − n H s ) 2 y_m(r)=\frac{w(r)x_m^{Mod}(r)}{\sum_{n\in Z}w(r-nH_s)^2} ym(r)=∑n∈Zw(r−nHs)2w(r)xmMod(r) (7)
并通过等式 (8) 重构输出信号 y。 可以看出,当通过等式(7)计算合成帧时,y 的 STFT(选择 H a H_a Ha = H s H_s Hs 时)可以将平方误差距离最小化。
y ( r ) = ∑ m ∈ Z y m ( r − m H s ) y(r)=\sum_{m\in Z}y_m(r-mH_s) y(r)=∑m∈Zym(r−mHs) (8)
3.相位声码器
STFT 的每个时频区间 X(m, k) 可以解释为对于输入信号 x 的第 m 个分析帧,幅度为 |X(m, k)| ,相位为 ϕ(m, k) 的正弦分量。 然而,傅立叶变换只是在频率轴上线性采样产生一组离散频率系数,参见等式 (3)。 因此,STFT 的频率分辨率不足以为该正弦分量分配精确的频率值。 相位声码器是一种通过利用给定的相位信息来细化 STFT 的粗略频率估计的技术。(会发生相位跳跃)

为了理解相位声码器,让我们看一下图 8 中所示的场景。假设我们当时给出了两个相位估计 ϕ1 = ϕ(m, k) 和 ϕ2 = ϕ(m + 1, k),是由时间实例 t1 = Tcoef(m) 和 t2 = Tcoef(m + 1) 的正弦分量中给出的,这个正弦分量中我们只有粗略的频率估计 ω = Fcoef(k)。我们的目标是估计正弦曲线的“真实”瞬时频率 IF(ω)。图 8 显示了这个正弦分量(灰色)以及两个频率为 ω(红色和绿色)的正弦曲线。此外,我们还看到时间实例 t1 和 t2 的相位表示。红色正弦曲线在 t1 处的相位为 ϕ1,绿色正弦曲线在 t2 处的相位为 ϕ2。可以看到,红色和绿色正弦波的频率 ω 略低于灰色正弦波的频率。直观地说,虽然灰色和红色正弦曲线的相位在 t1 处匹配,但它们随着时间的推移而发散,我们可以在 ∆t = t2 − t1 秒(蓝色椭圆)后观察到相当大的差异。由于我们知道红色正弦曲线的频率,我们可以计算其展开的相位超前,即在 ∆t 秒的过程中发生的振荡次数:
w Δ t w\Delta t wΔt (9)
知道它在 t1 的相位是 ϕ1,我们可以预测它在 ∆t 秒后的相位:
φ P r e d = φ i + w Δ t \varphi^{Pred}=\varphi_i+w\Delta t φPred=φi+wΔt (10)
在 t2 处,我们再次获得了灰色正弦曲线的精确相位估计 ϕ2。 因此,当假设频率为 ω 时,我们可以计算在 t2 处实际测量的相位与预测相位之间的相位误差 ϕ Err(也称为外差相位增量):
φ E r r = Φ ( φ 2 − φ P r e d ) \varphi^{Err}=\Phi(\varphi_2-\varphi^{Pred}) φErr=Φ(φ2−φPred) (11)
其中 Ψ 是将给定相位映射到 [−0.5, 0.5] 范围内的主要参数函数。 请注意,通过将 ϕ Err 映射到该范围,我们假设灰色和红色正弦曲线的振荡次数最多相差半个周期。 在瞬时频率估计的情况下,这意味着粗略的频率估计 ω 需要接近正弦波的实际频率,并且间隔 Δt 应该很小。 然后,可以通过频率为 ω(红色螺旋箭头)的红色正弦曲线的展开相位超前与相位误差(蓝色弯曲箭头)之和来计算灰色正弦曲线的展开相位超前:
w Δ t + φ E r r w\Delta t+\varphi^{Err} wΔt+φErr (12)
这给了我们在 ∆t 秒过程中灰色正弦曲线的振荡次数。 由此我们可以推导出灰色正弦曲线的瞬时频率为
I F ( w ) = w Δ t + φ E r r Δ t = w + φ E r r Δ t IF(w)=\frac{w\Delta t+\varphi^{Err}}{\Delta t}=w+\frac{\varphi^{Err}}{\Delta t} IF(w)=ΔtwΔt+φErr=w+ΔtφErr (13)
频率 ϕ Err / ∆t 可以解释为灰色正弦实际频率与粗略频率估计 ω 的小偏移。
我们可以使用这种方法,通过计算对于所有时频箱 X(m, k) 的瞬时频率估计 F c o e f I F ( m , k ) F_{coef}^{IF}(m,k) FcoefIF(m,k) 来细化 STFT 的粗略频率分辨率:
F c o e f I F ( m , k ) = I F ( w ) = w + Φ ( φ 2 − ( w Δ t ) ) Δ t F_{coef}^{IF}(m,k)=IF(w)=w+\frac{\Phi(\varphi_2-(w\Delta t))}{\Delta t} FcoefIF(m,k)=IF(w)=w+ΔtΦ(φ2−(wΔt)) (14)
其中 ω = F c o e f F_{coef} Fcoef(k),∆t = Ha / Fs(以秒为单位给出的分析跳跃大小),ϕ1 = ϕ(m, k),ϕ2 = ϕ(m + 1, k)。
4.PV-TSM
PV-TSM 的原理如下图所示。给定输入音频信号 x,PV-TSM 的第一步是计算 STFT X。下图 a 描绘了第 m 个和第 (m + 1) 个两个分析帧的连续频谱,分别用 X(m) 和 X(m + 1) 表示(这里,一个帧的傅立叶频谱被可视化为一组正弦曲线,代表在时间-频率仓中捕获的正弦分量)。我们的目标是用调整相位 ϕ M o d ϕ^{Mod} ϕMod 计算修改后的 STFT X M o d X^{Mod} XMod,我们可以从中重建时域修正信号而没有相位跳跃:
φ M o d ( m + 1 , k ) = φ M o d ( m , k ) + F c o e f I F ( m , k ) H s F s \varphi^{Mod}(m+1,k)=\varphi^{Mod}(m,k)+F_{coef}^{IF}(m,k)\frac{H_s}{F_s} φMod(m+1,k)=φMod(m,k)+FcoefIF(m,k)FsHs (15)
对于 k ∈ [0 : N − 1]。 假设瞬时频率 F c o e f I F F^{IF}_{coef} FcoefIF 的估计是正确的,当以 Hs 间隔重叠修改后的频谱时,不再有相位跳跃(图c)。 在实践中,我们以帧索引 m = 0 开始迭代相位传播并设置
φ M o d ( 0 , k ) = φ ( 0 , k ) \varphi^{Mod}(0,k)=\varphi(0,k) φMod(0,k)=φ(0,k) (16)
对于所有 k ∈ [0 : N − 1]。 最后,可以使用第 2 节中描述的信号重建程序计算输出信号 y(图d)

基于相位声码器 (PV-TSM) 的 TSM 原理
(a) STFT X(时频箱由正弦曲线可视化);
(b) 在合成间隔 Hs(蓝色椭圆)处重叠帧时,使用 X(m + 1, k) 的原始相位会导致相位跳跃;
( c ) (c) (c) 通过相位传播更新正弦波的相位。 相位跳跃从而减少(蓝色椭圆形);
(d) 来自修改后的 STFT X M o d X^{Mod} XMod 的信号重建,转换为时域
5.matlab仿真
版权声明
本文为[ManiacLook]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ManiacLook/article/details/119863020
边栏推荐
- Oracle表关联发散
- 《k3s 源码解析2 ----master逻辑源码分析》
- Leetcode 386. Number of dictionary rows
- Uniapp realizes the effect of birth date / time selection
- 风控产品定额的陷阱都有哪些?
- Leetcode 733, image rendering
- The flitter does not use the navigation bar of the status bar
- 8种MySQL常见SQL错误用法详解
- Information Security Overview
- 面试题:用程序实现两个线程交替打印 0~100 的奇偶数
猜你喜欢

49 pages enterprise digital transformation cases and common tools enterprise digital transformation ideas

K3s source code analysis 2 - Master Logic source code analysis

2022 software designer examination knowledge points: linear table

Page 49 information planning and digital transformation of petroleum and petrochemical industry

uniapp实现出生日期/时间选择效果

Unity Game Optimization - Third Edition 阅读笔记 Chapter 1 分析性能问题

语义分割之FCN网络详解 全卷积网络

Zuo Chengyun - Dachang brushing class - laying bricks

Development trend of Internet of things security in 2022

102 page master plan for new generation digital transformation and informatization
随机推荐
Unity Game Optimization - Third Edition 阅读笔记 Chapter 1 分析性能问题
OpenCV计算图像的梯度特征
How to select the appropriate neo4j Version (2022)
【项目】小帽外卖(七)
Window7 activation phone activation notes;
Leetcode 21. Merge two ordered linked lists
Method for extracting middle layer output of CNN model
微软新工具准确率达80%?程序员:我谢谢您
互联网行业为什么能吸引越来越多的年轻人?尤其是程序员……
Zuo Chengyun - Dachang brushing class - laying bricks
2022 software designer examination knowledge points: linear table
3D album template (size can be changed)
[timing] reformer: local sensitive hash (LSH) to achieve efficient transformer paper notes
Detailed explanation of spark SQL underlying execution process
头歌 DHCP服务配置
XSS跨站脚本攻击学习记录
Advanced formula 43 of C language: the meaning of function
Page 49 information planning and digital transformation of petroleum and petrochemical industry
Use Wx The showactionsheet selection box modifies the information in the database. Why does it report an error that data is not defined
[check which package provides the installed packages and commands]