浏览量:

1,154

(在苹果系统下,如果文章中的图片不能正常显示,请升级Safari浏览器到最新版本,或者使用Chrome、Firefox浏览器打开。)

在数字信号的处理中,我们在研究一些问题的时候,经常会用到噪音,甚至有时候专门产生噪音并添加到某些信号中来研究一些问题。比如,图像和语音识别等任务中添加一些不同的噪音来测试机器学习模型在有噪音环境下的识别率。我们就需要使用一些方法来产生噪音并且添加到原信号中去。

噪声从物理角度上看,是声波的频率、强弱变化无规律、杂乱无章的声音。[1] 白噪声,是一种功率谱密度为常数的随机信号或随机过程。“白色”仅意味着信号是不相关的,白噪声定义要求其均值为零,但没有对信号应当服从哪种概率分布作出任何假设。如果某白噪声过程服从高斯分布,则它是“高斯白噪声”。类似的,还有泊松白噪声、柯西白噪声等。[2]

所以,我们可以使用随机函数来产生分布在 (-1,1)区间内的噪音信号,在MATLAB中,可以使用rand()和randi()等函数来产生。下面我将简单介绍两种白噪音。

均匀分布的白噪音

均匀分布的白噪音在取值区间上,信号值服从均匀分布。在(-1,1)区间内的均匀分布期望值为0。我们通过随机函数产生白噪音后,再将原信号和噪音信号按比例混淆,即加权平均。MATLAB实现过程如下:

%为语音序列添加白噪音

[wav,fs]=audioread('audio.wav'); %读入声音文件

noisewav(1:size(wav))=0;

for i=1:size(wav)

noisewav(i)=rand*(-1)^randi(1:2); %使用随机数对每一帧生成均匀分布的白噪音

end

wav2 = (wav(:)*0.95 + noisewav(:)*0.05); %按一定比例添加噪音,0.05的噪音已经足够了

player=audioplayer(wav2,ps);

player.play %播放

正态分布的白噪音

服从正态分布的白噪音也叫高斯白噪音。[3] 正态分布在该区间内期望为0,方差为sigma的平方。然后,我们只需要将上述的代码中随机函数部分换成能产生正态分布的随机函数。

我们可以使用MATLAB中的normrnd()函数来产生。

R = normrnd (MU ,SIGMA ,m ,n)

生成m×n形式的正态分布的随机数矩阵,其中MU是期望值,SIGMA是标准差。

在这里我们将期望设为0,标准差可以设置为0.2,m和n则根据需要设定。

参考文献:

[1] 维基百科. 噪音 2016.07.13. https://zh.wikipedia.org/wiki/%E5%99%AA%E9%9F%B3

[2] 维基百科. 白噪音 2016.10.17.  https://zh.wikipedia.org/wiki/%E7%99%BD%E9%9B%9C%E8%A8%8A

[3] 维基百科. 加性高斯白噪音  2016.08.13. https://zh.wikipedia.org/wiki/%E5%8A%A0%E6%80%A7%E9%AB%98%E6%96%AF%E7%99%BD%E5%99%AA%E5%A3%B0

写在最后:

鉴于本人水平有限,如果文章中有什么错误之处,欢迎指正,非常感谢。

版权声明本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。本文地址: https://blog.ailemon.me/2017/04/08/add-white-noise-to-sound-files/ All articles are under Attribution-NonCommercial-ShareAlike 4.0

关注“AI柠檬博客”微信公众号,及时获取你最需要的干货。

matlab白噪音wav,为声音文件添加白噪音相关推荐

  1. MATLAB实现键盘输入转换为声音文件,读取之后解调还原

    将从键盘输入的任何数据,通过dec2bin函数将其转换为二进制流之后通过2ASK调制,再通过sound函数将其通过pc自带的蜂鸣器发声,最后保存为声音文件. clear all clc %****** ...

  2. MATLAB 声音文件处理

    由于最近的Project要做声音分析,需要用到MATLAB,之前一直没怎么接触过,所以乘着做Project学习下.真的用了才知道MATLAB真是神器啊,呵呵~~~其强大的函数库和数学运算能力彻底让我折 ...

  3. MATLAB 声音文件分析、处理。

    转自:http://blog.csdn.net/wubo9935/article/details/6655408 由于最近的Project要做声音分析,需要用到MATLAB,之前一直没怎么接触过,所以 ...

  4. 在pb中实现声音文件的播放

    一个商业软件不仅要功能强大,而且界面也要美观,如果加入适量声音会增强软件的人机交互性,让软件给人更为深刻的印象.pb作为客户/服务器的客户端开发工具,在数据库管理上有强大的功能,但pb中本身没有播放声 ...

  5. matlab解析出声音文件的频率

    因为matlab工具集成了很多算法.记录学习了用matlab来解析声音频率. ff.wav 是一段频率为17640HZ的已知声音文件 贴上代码: 1 %1.%[X,Fs,Bit]=wavread('d ...

  6. BlackBerry 10:Qt中使用OpenAL播放wav声音文件

    BlackBerry 10/PlayBook OS 2.0里面都内置OpenAL的类库,所以在程序中使用OpenAL类库播放声音是很方便的. BlackBerry 10开发者网站上提供的例子程序Cow ...

  7. 给自己的Unity添加声音文件

    下面说明一下,在Unity 里是怎么样加载声音文件的. Unity同时支持单声道和立体声音频资产. Unity支持导入以下音频文件格式:.aif, .wav, .mp3, 和 .ogg,和以下音轨模块 ...

  8. NSIS 打包文件添加防火墙白名单

    概述 如果应用程序使用网络,担心被防火墙拦截的话,通常有两种解决方案,第一种是直接关闭电脑防火墙,但是会比较麻烦,每台电脑安装软件后都需要设置防火墙状态, 并且关闭防火墙电脑会不安全:第二种方式就是添 ...

  9. python不用模块调用麦克风_python调用pyaudio使用麦克风录制wav声音文件的教程

    python的pyaudio可以进行录音,播放,生成wav文件等等,WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为WAV,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种.在我 ...

  10. 在XNA 3.0 项目添加声音——播放MP3或WMA声音文件

    问题 你想在XNA游戏中播放一个MP3或WMA声音文件. 解决方案 XNA可以使用默认内容管道将MP3或WMA声音文件加载到一个Song对象中,加载之后,就可以使用静态的MediaPlayer类播放S ...

最新文章

  1. eclipse opengl java_OpenGL 之 Eclipse 开发环境搭建 | 学步园
  2. Innodb Buffer Pool的三种Page和链表
  3. 认识高清视频编码(MPEG、H.264、WMV-HD、RMVB)
  4. spring 优越性实践
  5. 李猛:从MongoDB迁移到ES后,我们减少了80%的服务器
  6. Java 设计模式 之 访问者模式
  7. BERT模型—3.BERT模型在ner任务上的微调
  8. 企业之haproxy
  9. xcode 可以打开xmind_思维导图,原来Xmind这么强大
  10. 微信小程序开发(1)—— 微信开发者工具
  11. python语言是不是多模型语言_Python模型转换为Modelica模型的方法与流程
  12. C/C++犯二程度计算
  13. 如何批量查询百度指数
  14. linux twm 窗口调节,CENTOS5.1怎样在命令行模式下改变X窗口启动的方式(TWM)
  15. 2020 DEMO CHINA创新中国春季峰会暨企业创新与企业创投峰会举行
  16. 连英文都不懂怎么学python_在英语完全不懂的情况下如何学编程?
  17. vue实现导出表格数据
  18. int类型数据范围 - 学习
  19. 测试开发 | 接口测试之HTTP 协议讲解
  20. 物联网中常提到的M2M究竟是什么?

热门文章

  1. 以后咱家客厅就得装修成这样!
  2. DM 关键字、屏蔽关键字
  3. 愚人节html源码,开源中国愚人节网页变模糊的js blur代码
  4. 口算训练 HDU - 6287
  5. 基于CList链表类的故障树分析算法的实现
  6. java获取法定节假日
  7. 一次Full GC分析
  8. 小程序跳转至企业微信客服wx.openCustomerServiceChat
  9. es 的 refresh 策略设置
  10. android webview软键盘监听删除键、回车键、其他键