Phase Sensitive Filter

news/2024/11/29 8:04:15/

复数转换

如下图复数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/filterformula(指网络的输出。把网络的输出和y做点乘,得到estimated s,即\hat{s};或者把输出和|y|做点乘法,得到estimated |s|,即|\hat{s}|。其中\hat{s}包含相位,|\hat{s}|使用y的相位)
ideal amplitude filtera^{iaf}=\tfrac{|s|}{|y|}
ideal complex filtera^{icf}=\tfrac{s}{y}
phase sensitive filtera^{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


http://www.ppmy.cn/news/380598.html

相关文章

Total Phase Data Center介绍

有一个 Beagle™ USB 480 Protocol Analyzer 协议分析工具 (https://www.totalphase.com/media/datasheet/TP_Beagle_USB_480_Protocol_Analyzer-Datasheet.pdf),可以抓取USB总线上的数据。配合Data Center Software可以抓取分析USB总线上的数据。 软件下载地址 h…

关于seq中的starting_phase

1. starting_phase是什么?作用是什么? starting_phase是sequence中的一个变量,uvm_phase类型。sequencer自动将phase传给req变量的startiing_phase。(req指向sequencer发送的sequence),starting_phase用来…

CSAPP Lab2 实验记录 ---- Bomb Lab(Phase 1 - Phase 6详细解答 + Secret Phase彩蛋解析)

文章目录 Lab 总结博客链接实验前提引子实验需要指令及准备Phase 1Phase 2Phase 3Phase 4Phase 5Phase 6Phase Secret(彩蛋Phase) Lab 总结博客链接 CSAPP Lab入门系统安装摸索Lab 博客链接 实验前提引子 这部分是我在大一寒假的时候写的 那个时候只写了…

数据库|TiDB灾备切换实践-部署

刘昊 | 数据库工程师 最近手头有个系统,有需要搭建灾备库的需求(RTO要求4小时内,根据实际情况计算)。考虑到生产系统是5版本,TiCDC存在一些兼容性问题,且TiDB Binlog已经有实践案例及经验可供参考&#xf…

UVM中phase的执行顺序

1 UVM中引入phase的原因 代码的书写顺序会影响代码的实现(代码之间存在依赖关系,如代码B依赖于代码A),所以区分出build_phase、connect_phase等,让被依赖的phase(代码A)先执行,依赖…

(七)phase机制

一、phase机制 1、简述 UVM中phase分两类,一类是function phase,不耗费仿真时间;另一类是task phase,消耗仿真时间。见下图,灰色是task phase,其他为function phase。 说明: run-time phase指run_phase包…

05、UVM的phase机制

目录 一、概述 二、9个phase执行机制 三、12个分支phase 四、UVM编译和运行顺序 UVM仿真开始 UVM仿真结束 一、概述 SV的验证环境构建中,传统的硬件设计模型在仿真开始前,已经完成例化和连接了,而SV的软件部分对象例化则需要在仿真开始…

Clock and Jitter Phase Noise

1、Jitter定义 定义1(SONET规范):抖动可以定义为数字信号在重要时点上偏离理想时间位置的短期变化。 2、Total Jitter表征方式 2.1、周期抖动(Period Jitter),与理想时钟无关,不累积 Period j…