stft的窗函数设计要求和方法(COLA)
在语音处理进行短时傅里叶变换的时候,对窗函数是有一定要求的,这篇文章将对这方面的问题进行简单的阐述。
一、背景描述
常用的语音处理需要进行这样处理:
stft分帧会对信号产生截断,为尽可能避免这种影响,应考虑考虑加合适的窗
这种方法叫 overlap and add ,或者 OLA
由上图可以看到,信号需要经过两次加窗(分析窗和合成窗,一般用一样的),另外加窗处理之后还要能重建,则需要对窗函数有特殊要求,这种要求叫 COLA compliance ,全称 Constant Overlap-Add (COLA) Constraint
一些特殊的窗,加上特殊的hopsize(or overlap),才可能达到。也从上面可以给出结论:
至少要保证1/2及以上的重叠才能达到完美重建目的
二、Matlab中的例子
matlab里面专门有个函数 iscola,用来判断所设计的窗是否满足条件。举一个例子,窗长是120,每次hop 是一半:
window = sqrt(hann(120,'periodic')); %开方式因为每次操作会经过两遍一样的窗
noverlap = 60;
[tf,m,maxDeviation] = iscola(window,noverlap)
我们通过作图来看看是否符合要求
这里可以做一个简单的推导证明:hann窗如下
注意到原始分析窗(or合成窗)是开方了的,所以经过两遍加窗,信号实际乘的窗还是回到w(n)
在0到N/2 这段(其它段以次类推),两部分窗由于叠加,他们的和是
0.5(1-cos(2*pi*n/N) (上图蓝色部分) + 0.5(1-cos(2*pi*(n+N/2)/N) (上图红色部分平移到0-N/2)
= 0.5-0.5*cos(2*pi*n/N) + 0.5 - 0.5*cos(2*pi*n/N+pi)
=1-0.5*cos(2*pi*n/N)+ 0.5*cos(2*pi*n/N)[这边对上80后的统一暗号,纵变横不变,符号看象限!]
=1
对于1/2 overlap(用的最多)
在分析窗时,填充新数据在尾部,再乘以窗函数,合成时候,踢出前半段和保留数据做和,尾部橙色部分保留等下次再输出
三、一般长度的窗设计
如果我只有160个点输入,但是想用256点的加速FFT运算,那么需要怎么设计这个窗呢?
(当然也可以考虑补零到256,但是ifft回来之后怎么得到160个点?)
这种情况下,overlap = 256-160=96,可以设计 2*overlap的窗,对半劈开拉远,然后中间补1
具体代码如下:
nwin = 2*overlap; fftsize =256;
win = sqrt(hann(nwin,'periodic'));
nwin = length(win);
win1 = [win(1:0.5*nwin);ones(fftsize-noverlap*2,1);win(0.5*nwin+1:end)];
plot(win1);
tf = iscola(win1,noverlap);
设计一个256长的buffer,每次从尾部更新160个数据,要保留96个数据为下次使用
合成窗需要一个96的outbuffer用来做预输出,每次和加完窗之后的数据做和
stft的窗函数设计要求和方法(COLA)相关推荐
- 【DSP库窗函数】ARM官方最新DSP库中窗函数的使用方法
文章目录 Ⅰ.DSP库更新介绍及下载 Ⅱ.DSP库移植 Ⅲ.DSP库窗函数使用示例 Ⅰ.DSP库更新介绍及下载 ARM官方最近更新的DSP库版本V1.14.3中新加入了许多窗函数供用户使用,提高了对于 ...
- stft isar成像 matlab,基于STFT和FRFT的运动目标雷达三维成像方法与流程
本发明属于数字信号处理技术领域,特别涉及一种运动目标雷达三维成像方方法,可 用于对运动目标识别时,雷达ISAR对其三维成像. 背景技术: 逆合成孔径雷达ISAR是一种全天候.全天时的远程探测手段,具有 ...
- STFT的综合分析--滤波器组求和(FBS)和叠相相加(OLA)
STFT 固定频率时的两种解释 第一种解释 STFT的公式可以表示为: X(n,w)=∑n=−∞n=∞x(m)w(n−m)e−jwmX(n,w)=\sum_{n=-\infty}^{n=\infty} ...
- 窗函数性能分析——MATLAB
一.实验目的 1.掌握Matlah由各种窗数序列的生成方法; 2.掌握窗函数序列频率特性的计算与画图方法; 3.掌握窗函数的相关参数对窗函数频域性能的影响; 4.了解混合窗函数的定义.生成方法和频域性 ...
- 数字IC验证方法的分类
验证方法的分类 验证的方法大体可以分为两类:动态验证和静态验证 动态验证 动态验证也叫仿真,是指从电路的描述提取模型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部的激励信号作用下的实时响 ...
- 电能质量分析方法与控制技术探讨
0引言 随着国民经济的发展,科学技术的进步和生产过程的高度自动化,电网中各种非线性负荷及用户不断增长:各种复杂的.精密的,对电能质量敏感的用电设备越来越多.上述两方面的矛盾越来越突出,用户对电能质量的 ...
- FIR滤波器、单位冲激响应、线性相位、窗函数法
1.FIR滤波器 (1.)有限脉冲响应滤波器,也就是该系统的单位脉冲响应h(n)的长度是有限的,而不是两边无限延伸. 线性时不变系统的输出:y(n)=x(n)与h(n)的卷积,其中h(n)为单位取样脉 ...
- emd断点效应matlab,EMD端点效应抑制方法
引言EMD是由Huang等[1]于1998年提出的一种自适应的信号处理算法,其分解得到的IMF分量具有真实的物理意义,并且因其具有较好的自适应性.正交性.完备性和IMF分量的调制性等优点,而被广泛地应 ...
- 论文研究 | 基于机器视觉的汽车精密零件表面缺陷自动检测方法
0 引言 略. 1 汽车精密零件表面缺陷的机器视觉采样和预处理 1.1表面缺陷的机器视觉采样 为了实现基于机器视觉的汽车精密零件表面缺陷 自动检测,结合工件材料的应力参数分析和光学视觉特 征采集方法, ...
最新文章
- Android APK反编译得到Java源代码或资源文件
- 016_CSS选择器列表
- python校园网登录_python实现校园网自动登录的示例讲解
- python发送文件到钉钉群_iOS python 自动化打包,并在钉钉群里发通知
- Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题
- 10.17 linux 文件权限
- 视频豪横时代,应用如何快速构建视频点播能力?
- Java 8th 函数式编程:lambda 表达式
- java gui 连接mysql数据库
- 服务端解决跨域问题的方案(二)
- X Window Messing With The Mouse Cursor
- 【文本分类】 特征抽取之信息增益
- 【莓闻】芮成钢专访黑莓CEO巴尔西利
- 【Matlab优化预测】贝叶斯网络优化LSTM预测【含源码 1158期】
- Unity3D 官方资源包Standard Assets导入
- H5 微信分享显示标题和图标
- Java计算机毕业设计水果购物商城源码+系统+数据库+lw文档
- css3 移动端video视频全屏,横屏展示,适配微信/打包成app
- 机器学习做二元分类问题(二)
- 4字节 经纬度_北京54坐标系转经纬度坐标系教程
热门文章
- iphone13价格多少 iphone13系列内存规格
- 来给自己充电!推荐给程序员们的设计书目
- 如何判断对方列表里是不是好友_对方QQ是否把我删了不确定是否还在他的好友列表里...
- 【模型检测学习笔记】9:Binary Decision Diagrams
- 3分钟快速搭建ngrok服务器
- C++ zoj1962 How Many Fibs?
- C语言刷题训练营-自我补全
- 制药业CRM如何“对症下药”?
- 第七代英特尔处理器安装Windows7提示“不支持的硬件”的解决方法
- [附源码]Python计算机毕业设计Sketch2Mod网站Django(程序+LW)