Phase Sensitive Filter

2023-11-19

复数转换

如下图复数Z=a+bi,由于a=rcos\Theta, b=rsin\Theta,所以Z=r(cos\Theta +isin\Theta),这个就是复数的三角形式

这里r=\sqrt{a^2+b^2},是模,\Theta=arctan(\frac{b}{a}),是辅角。在讨论音频频域,即stft变换后的复数时,分别称为幅值和相位。

根据欧拉公式e^{ix}=cosx+isinx(其中i是虚数符号),可得Z=re^{i\Theta},这个公式可以方便地把幅值和相位还原回复数,进而做istft,将频域信息转回到时域,即wave波形。

PSF推导

参考论文:PHASE-SENSITIVE AND RECOGNITION-BOOSTED SPEECH SEPARATION USING DEEP RECURRENT NEURAL NETWORKS

记clean(论文里叫做speech)的fft结果为s,是复数域;记noisy(即clean加noise)的fft结果为y,是复数域。

则可以定义如下filter(或者叫mask):

mask/filter formula(指网络的输出。把网络的输出和y做点乘,得到estimated s,即\hat{s};或者把输出和|y|做点乘法,得到estimated |s|,即|\hat{s}|。其中\hat{s}包含相位,|\hat{s}|使用y的相位)
ideal amplitude filter a^{iaf}=\tfrac{|s|}{|y|}
ideal complex filter a^{icf}=\tfrac{s}{y}
phase sensitive filter a^{psf}=\tfrac{|s|}{|y|}cos(\Theta ),推导过程如下

a^{psf}其实是a^{icf}的实部(这样模型输出的就是实数,而不是复数,可以简化模型,因为当前pytorch不支持复数域的反向求导),因此用法和a^{psf}一样,即把网络输出的filter与y的实部虚部分别点乘。

a^{psf}的推导过程:a^{psf}=Re(a^{icf})=Re(\tfrac{s}{y})。根据上文的公式Z=r(cos\Theta +isin\Theta),可得s=r_s(cos\Theta_s +isin\Theta_s),y=r_y(cos\Theta_y +isin\Theta_y),因此\tfrac{s}{y}=\tfrac{r_s}{r_y}\tfrac{cos\Theta_s+isin\Theta_s}{cos\Theta_y+isin\Theta_y}=\tfrac{r_s}{r_y}\tfrac{e^{i\Theta_s}}{e^{i\Theta_y}}。这里r就是复数的模,因此\tfrac{s}{y}=\tfrac{|s|}{|y|}\tfrac{e^{i\Theta_s}}{e^{i\Theta_y}}=\tfrac{|s|}{|y|}e^{i(\Theta_s-\Theta_y)},记\Theta=\Theta_s-\Theta_y,则\tfrac{s}{y}=\tfrac{|s|}{|y|}e^{i\Theta}=\tfrac{|s|}{|y|}(cos\Theta+isin\Theta),因此a^{psf}=Re(\tfrac{s}{y})=Re(\tfrac{|s|}{|y|}(cos\Theta+isin\Theta))=\tfrac{|s|}{|y|}cos\Theta

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Phase Sensitive Filter 的相关文章

  • Qt实现Excel读写

    QtXlsx 是 第三方的Qt库 为Qt程序提供读写Excel的接口 不单单是Microsoft Excel 它可以用于任何Qt支持的平台 相比Qt官方的QAxObject QtXlsx提供的接口封装层次更高 使用更加简便 github主页
  • LeetCode 933. 最近的请求次数

    写一个 RecentCounter 类来计算特定时间范围内最近的请求 请你实现 RecentCounter 类 RecentCounter 初始化计数器 请求数为 0 int ping int t 在时间 t 添加一个新请求 其中 t 表示

随机推荐

  • 存储计划:自动kill掉死锁进程id

    CREATE PROCEDURE dbo sp who lock1116 AS exec sp who lock1116 begin declare spid int bl int intTransactionCountOnEntry in
  • 结构体封装(C语言)

    转自 http blog jobbole com 57822 我也不理会失不失落 只是对结构体封装技术感兴趣 目录 1 谁该阅读这篇文章 2 我为什么写这篇文章 3 对齐要求 4 填充 5 结构体对齐及填充 6 结构体重排序 7 难以处理的
  • suggest ajax,高仿google suggest ajax示例

    搜索提示框 var obj div 提示层对象 var obj input 输入框对象 var main delay 判断值变化延迟对象 var ajax delay ajax延迟搜索对象 var updown delay 方向键延迟对象
  • 13. 机器人正运动学---雅克比矩阵(1)

    目录 1 引言 2 雅克比矩阵 3 机器人雅克比矩阵 4 求解雅克比矩阵 4 1 几何法 1 引言 前面的一些文章我们一直对机器人进行静态分析 也就是给定一组关节角求机器人末端位姿 这篇文章我们来分析一下关节角的运动将怎样影响机器人末端的位
  • 全国大学生算法设计与编程挑战赛 (秋季赛)——正式赛

    染方块 color Description 现在有一个 n times nn n 的方格 每一个格子是红块 X 绿块 O 或者空白块 而你可以把空白块染成红色 在你对你想染色的空白块进行染色之后 方格会有这样的变化 如果一个绿色块上下左右都
  • Java调用kettle实现ETL功能:使用mysql8.0.x版本的驱动

    来个目录吧 背景 实现 效果 附录 参考文档 背景 最近项目上需要java调用kettle实现ETL逻辑 所以找度娘看了看kettle相关的知识 刚开始写了个demo项目 见参考文档 在demo上能正常调用ktr文件 所以就转移到了项目中
  • v-model绑定导致的element UI文本框输入第一次值后被绑定,导致空文本框无法再输入文字

    在工作岗位上 上边分配一个任务 创建一个页面 从0 1 全部自己搭建 也没有啥模版 就这么来 那就直接来吧 没办法 那就直接上手 开发过程中 我使用了v model对输入文本框的值进行双向绑定 这样可以直接使用用户输入文本框的值 同时 后端
  • arm64汇编b带条件跳转指令和bl跳转带返回ret指令

    文章目录 ret返回指令 B 跳转指令 BL 带返回的跳转指令 B指令可以接上后缀 用来和cmp比较后待条件的跳转 ret返回指令 cpu遇到ret之后 会把lr赋值给pc 这样cpu执行了pc里的地址的指令 就是执行调用这个函数的下一条指
  • fork之后子进程到底复制了父进程什么

    fork之后子进程到底复制了父进程什么 发表于2015 4 3 9 54 08 2161人阅读 分类 操作系统 include
  • 从大学E-R图分析ER图中单线、双线、带箭头线表达的意思

    我们将从下面这张图开始讲起 1 双线 带箭头线 观察上图满足双线 带箭头线的有 course和department course和course dept之间有一条双线 表示course在course dept中全部参与 即每个课程必须和一个
  • 握手2倍速率进,一倍速率出[verilog]

    module two to one parameter WORD LEN 33 input clk input arst input 2 WORD LEN 1 0 i din input i din valid output o din r
  • 【顺序表图书管理】

    一 实验目的 掌握顺序存储的线性表的创建 查找 插入 删除和输出操作 二 实验内容 实现一个存放图书信息的顺序表 三 实验要求 图书的基本信息有图书编号 例如 1 2 3 4等 书名和价格等 对图书的顺序表进行查找 插入 删除和输出操作 3
  • 一些关于dagger2的理解(一)

    转自 http blog csdn net shareye1992 article details 51398554 首先 真实的原理我不准 但是我还是提供我的理解 阅读这篇文章希望读者能满足一个假设 不管懂不懂 看过一些其他关于dagge
  • tshark命令小结

    基本语法 tshark a
  • centos7安装kubeadm

    安装配置docker v1 9 0版本推荐使用docker v1 12 v1 11 v1 13 17 03也可以使用 再高 版本的docker可能无法正常使用 测试发现17 09无法正常使用 不能使用资源限制 内存CPU 安装docker
  • 制作词云(纯代码)

    词云技术是一种将单词数据可视化的技术 通常将单词按照出现频率在一个图形中显示 单词在图形中的大小表示其出现的频率 词云技术最初是为了数据挖掘和文本分析而开发的 但现在它已经成为了一种常见的数据可视化方式 常用于展示文章 调查问卷 舆情分析等
  • 建站系列(四)--- Web服务器之Apache、Nginx

    目录 相关系列文章 前言 一 简介 二 Apache与Nginx 1 Apache与Nginx的区别 2 Nginx相对于Apache的优点 3 Apache相对于Nginx 的优点 4 选择 三 反向代理与正向代理 相关系列文章 建站系列
  • Flutter可滚动Widgets-ListView

    ListView 先看下如下截图 以上效果图的代码 是从 flutter官方demo flutter gallery内copy的部分代码 首先 首先定义一个列表 代码如下 List
  • 攻防世界web---新手练习区

    查看网页源代码 根据提示 查看网页源代码 发生了什么 鼠标右键不管用了 F12看到了什么 哈哈哈哈哈 robots协议 也太简单了吧哈哈哈 备份文件 打开御剑扫描后台 cookie 没什么发现 抓包看看 看看cookie php 看http
  • Phase Sensitive Filter

    复数转换 如下图复数 由于 所以 这个就是复数的三角形式 这里 是模 是辅角 在讨论音频频域 即stft变换后的复数时 分别称为幅值和相位 根据欧拉公式 其中i是虚数符号 可得 这个公式可以方便地把幅值和相位还原回复数 进而做istft 将