最近工作需要,要对wav文件中存储的声音信息进行分析处理。所以花了些时间收集了各种数学软件中处理wav 文件的方法。

Matlab

Matlab 是最方便的。甚至于不用写任何代码就能读取 wav 文件(我用的是matlab 7.1)。在当前路径窗口中双击wav 文件就自动将文件内容读入了。

图 1 当前路径窗口

双击后会自动弹出数据导入向导。data 中是波形文件(每一列对应一个声道),fs 存的是采样率。这两个变量名都可以按照自己的需要来修改。

图 2 数据导入向导

相应的函数是 wavread()。 有下面的几种调用格式。

[plain] view plaincopy
  1. y = wavread('filename')

这是最简单的形式,将wav 文件中的波形数据读入 y 中,波形的幅度范围在[-1, 1]。

[plain] view plaincopy
  1. [y,Fs,bits] = wavread('filename')

Fs  存的是采样率,单位 Hz , bits  是数据的位数。

[plain] view plaincopy
  1. [...] = wavread('filename',N)

只读取前 N  个数据点。

[plain] view plaincopy
  1. [...] = wavread('filename',[N1 N2])

只读取N1  到  N2  之间的数据。

[plain] view plaincopy
  1. siz = wavread('filename','size')

读取wav 文件有多少数据点, siz 为一个 1 行两列的向量。 siz = [samples channels]

wavfinfo() 用来获取wav文件的信息。

[plain] view plaincopy
  1. [m d] = wavfinfo(filename)

当 filename  是 wav 文件时  m  返回字符串 'Sound (WAV) file',否则返回空字符串。

d 返回包含wav 新的字符串,比如像这里给出的结果:’Sound (WAV) file containing: 41532 samples in 1 channel(s)’,如果filename 不是wav文件,则返回字符串'Not a WAVE file'。

wavwrite 函数可以生成一个 wav 文件,有三种基本的调用格式。

[plain] view plaincopy
  1. wavwrite(y,'filename')

将 y  中的数据写入 wav 文件,其中 y  的每一列对应一个声道。要求  y  中的数据在  [-1, 1] 。超出这个范围的都被截断。采样率默认为  8000Hz 。 16  位格式。

[plain] view plaincopy
  1. wavwrite(y,Fs,'filename')

Fs  用来设定采样率。

[plain] view plaincopy
  1. wavwrite(y,Fs,N,'filename')

N  指定数据的位数,可以为  8 、 16 、 24 和 32 。当  N  ! =32 时, wav 文件按照 PCM  码来存储。当 N=32 时,数据按照浮点数格式存储。这时也就不要求数据范围在 -1 到 1  之间了。

matlab 读取WAV文件相关推荐

  1. matlab读取wav文件

    matlab读取wav文件 wavread audioread [y,Fs,bits]=wavread('1.wav'); [y,Fs]=audioread('1.wav'); wavread mat ...

  2. matlab读取wav文件出错,MATLAB读取wav文件

    %读一个文件夹中的多个wav文件,然后拼接在一起 clc; clear all; folder = 'D:/FFOutput/xiami/'; files = dir([folder '*.wav'] ...

  3. matlab生成wav文件并用python验证

      在进行频谱分析时,发现MATLAB和python读取wav文件的波形不一致,导致不能得出正确结果,为了验证MATLAB和python哪部分有问题,于是有了这篇博客. 1.需求分析    用MATL ...

  4. java wav 波形_java读取wav文件(波形文件)并绘制波形图的方法

    本文实例讲述了java读取wav文件(波形文件)并绘制波形图的方法.分享给大家供大家参考.具体如下: 因为最近有不少网友询问我波形文件读写方面的问题,出于让大家更方便以及让代码能够得到更好的改进,我将 ...

  5. Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决

    Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决 参考文章: (1)Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决 (2)https://www.cn ...

  6. matlab将txt数据分类,MATLAB读取txt文件,txt里面有字符串和数值两种类型

    MATLAB读取txt文件,txt里面有字符串和数值两种类型 mip版  关注:96  答案:4  悬赏:30 解决时间 2021-01-29 08:48 已解决 2021-01-28 15:04 M ...

  7. matlab引用csv文件,如何用MATLAB读取csv文件

    如何使用Matlab读取csv文件 在Matlab中,有专门读取csv文件的函数:csvread().在Matlab的帮助文档中,有对这个函数的详细解释. csvread()函数有三种使用方法: 1. ...

  8. matlab 读取dbf文件

    前言 前几天需要对很多个ArcGIS输出的dbf文件做字段计算,但是!用模型构建器ArcGIS老是甭!崩得人心态都要都要崩了!后来师姐点醒了我!把它当作单纯的表格,在数组里算不就好了?! 一.直接用x ...

  9. matlab网页视频流,使用Matlab读取视频流文件

    Matlab中对图像和视频流的读取还是很方便的,但是由于不常用Matlab读取视频流(这家伙处理能力较OpenCV还是慢些)偶有小忘,这次有在工作中遇到特此记录一下,Matlab的help文档关于视频 ...

最新文章

  1. MySQL体系结构之物理文件
  2. python【力扣LeetCode算法题库】136-只出现一次的数字
  3. php usort strcmp,字符串函数演示和usort()进行二维数组排序(0827)
  4. php代码加注释_怎么在php中添加注释
  5. java phaser用法_第3章Phaser的使用-(java并发编程核心方法与框架)
  6. Tair持久存储系列技术解读
  7. jdbc url写法(集群)
  8. 用nifi把hdfs数据导到hive
  9. Java-LockSupport
  10. J - X and Beasts
  11. java 网络爬虫_使用Java实现网络爬虫
  12. 桌面共享工具(可以实现RTMP直播、K歌、投屏等功能)
  13. pxe装机原理_pxe网络安装操作系统 原理与详细过程
  14. vscode配置代理
  15. DICOM世界观·第二章:[2]像素操作
  16. 转铁蛋白(Tf)修饰去氢骆驼蓬碱磁纳米脂质体/香豆素-6脂质体/多柔比星脂质体
  17. 波恩大学Cyrill Stachniss SLAM课程
  18. python对月饼数据进行可视化,看看哪家最划算
  19. 【NOI2015】BZOJ4199品酒大会题解(SAM+树形DP)
  20. 【深度】被加班,狼性文化面纱下的奴性文化

热门文章

  1. 用WSE在Web服务中验证用户身份
  2. Linux基础笔记_01
  3. mysql group by using filesort优化
  4. CentOS6.5 缺少 libstdc++.so.6(GLIBCXX_3.4.15)
  5. 设计模式——工厂模式
  6. Node_MongoDB
  7. SDUT OJ[3109] 买买买 背包 dp
  8. dockone上2015.08 Docker有价值文章
  9. linux/CentOS 6忘记root密码解决办法
  10. ASP.NET 配置文件加密