转自:http://www.cnblogs.com/lxy2017/p/4049124.html

1.什么是汉明窗?

语音信号一般在10ms到30ms之间,我们可以把它看成是平稳的。为了处理语音信号,我们要对语音信号进行加窗,也就是一次仅处理窗中的数据。因为实际的语音信号是很长的,我们不能也不必对非常长的数据进行一次性处理。明智的解决办法就是每次取一段数据,进行分析,然后再取下一段数据,再进行分析。

怎么仅取一段数据呢?一种方式就是构造一个函数。这个函数在某一区间有非零值,而在其余区间皆为0.汉明窗就是这样的一种函数。它主要部分的形状像sin(x)在0到pi区间的形状,而其余部分都是0.这样的函数乘上其他任何一个函数f,f只有一部分有非零值。

为什么汉明窗这样取呢?因为之后我们会对汉明窗中的数据进行FFT,它假设一个窗内的信号是代表一个周期的信号。(也就是说窗的左端和右端应该大致能连在一起)而通常一小段音频数据没有明显的周期性,加上汉明窗后,数据形状就有点周期的感觉了。

因为加上汉明窗,只有中间的数据体现出来了,两边的数据信息丢失了,所以等会移窗的时候,只会移1/3或1/2窗,这样被前一帧或二帧丢失的数据又重新得到了体现。

简单的说汉明窗就是个函数,它的形状像窗,所以类似的函数都叫做窗函数。

2.加Hanmming窗的作用

现在在看G.723.1,对语音编码刚入门,

发现在对信号进行LPC分析前,对信号乘以一个Hamming 窗,

典型的窗口大小是25ms,帧移是10ms。汉明窗函数为

W(n,α ) = (1 -α ) - α cos(2*PI*n/(N-1)),0≦n≦N-1

一般情况下,α取0.46 。

转自:https://ww2.mathworks.cn/help/signal/ref/hamming.html

用法:

hamming

Hamming window

collapse all in page

Syntax

w = hamming(L)
w = hamming(L,sflag)
 

Description

example

w = hamming(L)                returns an L-point symmetric Hamming window.

w = hamming(L,sflag)                returns a Hamming window using the window sampling specified by                     sflag.

 

Examples

collapse all

Hamming Window

Create a 64-point Hamming window. Display the result using wvtool.

L = 64;
wvtool(hamming(L))

 
 

Input Arguments

collapse all

L — Window length positive integer

Window length, specified as a positive integer.

Data Types: single | double

sflag — Window sampling 'symmetric' (default) | 'periodic'

Window sampling, specified as one of the following:

  • 'symmetric' — Use this option when using                                    windows for filter design.

  • 'periodic' — This option is useful for                                    spectral analysis because it enables a windowed signal to have                                    the perfect periodic extension implicit in the discrete Fourier                                    transform. When 'periodic' is specified,                                         hamming computes a window of length                                         L + 1 and returns the first                                         L points.

Output Arguments

collapse all

w — Hamming window column vector

Hamming window, returned as a column vector.

Algorithms

The following equation generates the coefficients of a Hamming window:

w(n)=0.54−0.46cos(2πnN),0≤n≤N.

The window length L = N + 1.

References

[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck.                 Discrete-Time Signal Processing. Upper Saddle River, NJ:            Prentice Hall, 1999.

Extended Capabilities

C/C++ Code Generation Generate C and C++ code using MATLAB Coder.

See Also

Apps

Functions

Introduced before R2006a

Matlab中加汉明窗 ahmming 作用的更多相关文章

  1. Matlab中函数句柄@的作用及介绍

    问:f=@(x)acos(x)表示什么意思?其中@代表什么?答:表示f为函数句柄,@是定义句柄的运算符.f=@(x)acos(x) 相当于建立了一个函数文件:% f.mfunction  y=f(x) ...

  2. SQL语句中加中括号[ ]的作用

    有些可能是SQL里面的保留字,但是你又用了它做字段名 比如Action,用[Action] 就可以避免这个问题,如果直接Action SQL就要报错了. 解决较长的中文名表名可能会被不识别的问题.

  3. [转] Matlab中给信号加高斯白噪声的方法

    MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声. 1. WGN:产生高斯白噪声 y = ...

  4. php中函数前加&符号的作用分解

    这篇文章主要介绍了php中的函数前加&符号的作用分解,其作用叫做引用返回,有点抽象,详细解释请看本文内容,需要的朋友可以参考下  (转载) php变量前面加&符号是什么意思就不用多说了 ...

  5. MATLAB中eig的作用

    MATLAB中eig的作用 eig Find eigenvalues and eigenvectors  返回矩阵的特征值和特征向量;  [V,D] = eig(A)  D是特征值  V特征向量  例 ...

  6. Matlab中的一些小技巧

    (转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...

  7. matlab中图片数据类型转换uint8与double

    matlab中处理图像像素点数据: img1=double(imread('lenna.bmp')); matlab中imshow图片,要先转换成uint8: subplot(1,2,1),imsho ...

  8. MATLAB中的函数句柄及其应用

    1.函数句柄的创建 函数句柄(function handle)是MATLAB中的一类特殊的数据结构,它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++), ...

  9. matlab中矩阵的表示与简单操作

    原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间 ...

随机推荐

  1. unimrcp plugin 分析

    摘要: unimrcp 访问媒体资源是通过插件实现,社区的代码给出了demo plugin,但是距离一个生产插件还是有一段的距离.这边文章介绍插件的整个逻辑过程,以及如何实现我们自己的插件.

  2. 你懂RocketMQ 的架构原理吗?

    前言 前面我们跟大家聊了聊什么是消息中间件,以及哪些场景使用哪些消息中间件更加合适. 我们了解到RocketMQ是java语言开发的,我们能更深入的阅读源码了解它的底层原理,而且它具有优秀的消息中间件 ...

  3. 【Android】Android开发小功能,倒计时的实现。时间计时器倒计时功能。

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  4. Java拷贝——深拷贝与浅拷贝

    深拷贝和浅拷贝 值类型 vs 引用类型 在Java中,像数组.类Class.枚举Enum.Integer包装类等等,就是典型的引用类型,所以操作时一般来说采用的也是引用传递的方式: 但是Java的语言 ...

  5. OpenJ_Bailian - 2995-登山(两遍最长上升子序列+枚举顶点)

    五一到了,PKU-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号.同时队员们还有另一个登山习惯,就是不连续 ...

  6. web前端常见安全问题

    1,SQL注入 2,XSS 3,CSRF 4.文件上传漏洞 1,SQL注入:这个比较常见,可能大家也听说过,就是URL里面如果有对数据库进行操作的参数时,要做一下特殊的处理,否则被别有用心的人利用的话 ...

  7. vue-element-admin改造接入后台,搭建有来商城youlai-mall后台前端管理平台

    一. 前言 本篇基于有来商城youlai-mall微服务项目,搭建后台前端管理平台,技术选型希望通过本篇文章你可以,技术解决方案选择了vue-element-admin.希望通过本篇文章你可以vue- ...

  8. 【Oracle】SQL对某字段模糊查询,哪种方案最快?

    问题:有一张表hy_test,查找其字段name中包含ufo的记录数,下面哪种方案最快? A.select count(*) from hy_test where name like '%ufo%' ...

  9. 原生JDK网络编程- Buffer

    Buffer用于和NIO通道进行交互.数据是从通道读入缓冲区,从缓冲区写入到通道中的.以写为例,应用程序都是将数据写入缓冲,再通过通道把缓冲的数据发送出去,读也是一样,数据总是先从通道读到缓冲,应用程 ...

  10. wfuzz 安装

    wfuzz 安装 win10 下的wfuzz安装 fuzz下载 https://github.com/xmendez/wfuzz 安装遇到的问题 0x1报错 解决方法: 更新pip python -m ...