Revertable STFT
最近在做利用深度学习去噪的工作,大部分的工作都是利用spectrogram特征来做的,这就需要用到STFT, 本次利用的是python的scipy.signal模块。
在做去噪的时候,首先需要先将输入信号x利用stft转换成spectrogram:
ff, tt, yyx = scipy.signal.stft(test_noise_, fs=48000, nperseg = N, noverlap = N//2)
其中N表示的是fft的窗口长度(这里因为没有设置nfft,所以默认取nfft = nperseg), noverlap取的是N//2,表示有一半的信号重复计算。取N = 256 - 1, 那么得出来的yyx的shape就是128*128了,这样就能方便的使用一些基于图像的算法了。可以利用下面的代码来显示spectrogram (用imshow也可以,但是看得不是很明显,通过改cmap也许可行,但是不好找到跟下面图片一样的色彩配置):
plt.figure()
Pxx, freqs, bins, im = plt.specgram(test_noise_, NFFT=N, Fs=48000, noverlap=N//2)
plt.show()
在实际的操作中,往往取yyx的幅值,即np.abs(yyx),即将np.abs(yyx)来做为网络的输入(注意把信号归一化到-1~1之间要好得一些,图像它们的操作一般都会这么做),经过处理后会得到一些干净的spectrogram, 这个时候要还原成原始信号才能听得出差别来。而还原是要用到phase的,所以前面的步骤得把phase保存下来(注意在train的时候是不需要的, 在test的时候需要听出差别来,就要得到时域信号)。可以参与下面的操作来还完:
yyx_mag = np.abs(yyx) / np.max(np.abs(yyx)) * 2
yyx_phi = np.angle(yyx)xxx = np.multiply(yyx_mag, np.cos(yyx_phi)) + np.multiply(yyx_mag, np.sin(yyx_phi)) *1j
这里得到的xxx就是还原的时域信号,可以用plt.spectrogram得到其频谱:
这里跟上面不完全一样是因为在转换的过程中存在精度损失。
Revertable STFT相关推荐
- tf.signal.stft() 短时傅里叶变换的示例
import tensorflow as tf import numpy as np a1 = np.arange(5) print(a1) [0 1 2 3 4] a2 = a1.astype(np ...
- librosa.stft() 短时傅里叶变换
librosa 短时傅里叶变换 import numpy as np # pip install numpy import librosa # pip install librosa y, sr = ...
- mfcc中的fft操作_简化音频数据:FFT,STFT和MFCC
mfcc中的fft操作 What we should know about sound. Sound is produced when there's an object that vibrates ...
- MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法
在Matlab中,做短时傅里叶变换需要使用函数spectrogram,而在Matlab2019中,引入了一个新的函数stft,下面我们就来看下这两个函数都如何使用. 短时傅里叶变换的基本原理就是将数据 ...
- matlab STFT从时频图找异常噪声的频率
%%%%%%傅里叶变换/逆变换/短时傅里叶变换%%%%%% [y,Fs]=wavread('Noise.wav'); %读出信号,采样率和采样位数. %sound(y,Fs); y=y(:,1); % ...
- stft isar成像 matlab,基于STFT和FRFT的运动目标雷达三维成像方法与流程
本发明属于数字信号处理技术领域,特别涉及一种运动目标雷达三维成像方方法,可 用于对运动目标识别时,雷达ISAR对其三维成像. 背景技术: 逆合成孔径雷达ISAR是一种全天候.全天时的远程探测手段,具有 ...
- 傅里叶变换@(stft和istft)
一.窗函数之短时傅里叶变换stft 前提: 傅里叶变换是针对平稳信号的,但是很多实际应用中的信号都是非平稳的,如果要计算其傅里叶变换,需要假设其周期无限长,然后对这个无限长的信号做变换分析.但是这种无 ...
- stft isar成像 matlab,基于时频分析的ISAR成像
1引言雷达目标的回波具有时变性,因此常用的频域或时域处理方法往往力不从心.解决该问题的主要工具联合时频技术应运而生.逆合成孔径雷达(ISAR)成像的基本方法为距离一多普勒法,距离一多普勒法采用DFT对 ...
- matlab 时频分析(短时傅里叶变换、STFT)
短时傅里叶变换,short-time fourier transformation,有时也叫加窗傅里叶变换,时间窗口使得信号只在某一小区间内有效,这就避免了传统的傅里叶变换在时频局部表达能力上的不足, ...
- 常见的变换总结与代码:DCT,STFT,K-L变换等
文章目录 前言 一.从DFT到DCT 二.从CTFT到STFT 三.K-L变换与降维思想 四.K-L变换实例:人脸识别(含代码和详细注释) 五.参考资料 前言 之前学信号和DSP的时候,除了常见的 ...
最新文章
- 从FTP服务器进行文件的上传和下载
- 发现在创建云服务器ecs实例的磁盘快照时_【New Feature】阿里云快照服务技术解析...
- cuda7.0安装(嵌入式)
- MountFlags of reg
- 用Remastersys定制自己的Ubuntu安装光盘
- 新手常见的python报错及解决方案
- ps cs6 磨皮插件_DR5插件加强版 for Mac(ps磨皮滤镜)
- python守护线程_Python之守护线程与锁
- 如何通过XMind 实践OKR 工作法
- mysql所选路径已经存在_5分钟安装好MySQL数据库(建议收藏)
- 显示器不能全屏及开机慢解决方案
- 电视机计算机无法退出,怎么强制退出恢复模式-各大主流智能电视强制恢复出厂汇总!轻松解决疑难杂症...
- 微擎支付返回商户单号_扫码枪轻轻一扫,瞬间扣款,支付背后的原理原来这么简单...
- macbook pro 连接无线鼠标卡顿问题解决
- EasyX 图片透明设置
- sublime3怎么设置中文很简单
- 2.Select操作
- hdu5056 oring count
- 百度地图自定义图标icon 添加本地图片无法显示问题解决
- 全志 H6 Orange Pi Lite 2 Android 7.0 蓝牙配置
热门文章
- UiPath常用元素识别
- mysql数据库的简单查询一般是查询什么,MySQL的简单查询语句(十五)
- 【Tensorflow2.0】8、tensorflow2.0_hdf5_savedmodel_pb模型转换[1]
- windows11鼠标滚轮反向
- 步进电机、伺服电机、舵机的区别与控制(角度、转速)
- 通过举例彻底搞懂Matlab中max函数和min函数的用法(求最大值和最小值)
- java实现对接建行支付及其回调
- 2021年中国大企业创新百强排行榜:华为位居榜首,北京上榜企业最多(附年榜TOP100详单)
- maccms10自动播放下一集
- 基于多输入模型及句法结构的中文评论情感分析方法