如何向音频文件中插入噪声

为了研究噪声和音乐对EEG的的影响,实验前需要准备一段夹杂噪声的音乐。

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. % Program to insert the white Gaussian noise into muisc
  3. %y 音乐数据
  4. %Fs 采样率
  5. %bits 采样位,默认为16位
  6. %wgn(m,n,p) 获取m * n、噪声强度为p的高斯白噪声
  7. % author: Andy Wu
  8. % date: 6/10/2009
  9. % modify: 9/10/2009
  10. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  11. %打开一个名为“请选择背景音乐”的对话框,显示指定路径下所有的.wav文件
  12. [file_name,file_path]=uigetfile('F:\MatlabProgram\*.wav','请选择背景音乐');
  13. sound_path=strcat(file_path,file_name);
  14. %将选中的音乐文件的数据和采样率读到sound_data和Fs
  15. [sound_data,Fs,bits]=wavread(sound_path);
  16. sound_length=length(sound_data);
  17. %求出音乐的播放时间长度
  18. sound_time=sound_length/Fs;
  19. fprintf(1,'背景音乐播放长度 %6.2f(秒)\n',sound_time);
  20. %检查是否定义噪声时间, 否则输入噪声时间
  21. if ~exist('noise_time')
  22. noise_time=input('请输入噪声长度(秒):');
  23. end
  24. noise_length=noise_time*Fs;
  25. %输出一个噪声强度为1dBw,noise_length x 1的高斯白噪声矩阵数据
  26. noise_data=wgn(noise_length,1,1);
  27. %检查是否输入插入噪声的起始时间
  28. if ~exist('noise_start_time')
  29. noise_start_time=input('请输入您要设置的噪声起始时间(秒):');
  30. end
  31. %计算噪声数据插入位置
  32. noise_position=noise_start_time*Fs;
  33. %插入噪声数据
  34. sound_data(noise_position:noise_position+noise_length-1)=noise_data;
  35. %dlmwrite('F:\notify.txt',y); %将插入噪声后的音乐数据写入文本文件
  36. %soundData=csvread('F:\notify.txt'); %读出音乐数据至soundData
  37. object= analogoutput('winsound'); %建立硬件对象
  38. addchannel(object,[1 2]); %创建声音输出通道
  39. set(object,'SampleRate',Fs) %设置采样率
  40. data1 =sound_data(:,1); %双声道
  41. data2 =sound_data(:,1);
  42. putdata(object,[data1 data2]); %往声卡输送音乐数据
  43. %start(object); %开始输出音乐
  44. %stop(object) %停止输出音乐

How to insert a segment of noise to music file的更多相关文章

  1. 源码浅析:MySQL一条insert操作,会写哪些文件?包括UNDO相关的文件吗?

    DML操作的大致流程 在解答上述疑惑之前,我们来梳理一下DML操作的大致流程: 1.语法解析.语义解析 2.生成执行计划 3.事务修改阶段 1) 激活事务,事务状态由not_active变为activ ...

  2. 【UISegmentedControl】-  分段控件

    一.初始化 二.常见的属性 1.segmentedControlStyle属性:设置基本的样式 2.momentary属性:设置在点击后是否恢复原样 . 3.numberOfSegments属性:只读 ...

  3. UI--普通控件总结1--控件使用

    本文目录 0.UIView常用的属性和操作 0_1.UIView常见的属性 0_2.UIView状态 0_3.UIView常用的方法 1.文本框UITextField和文本视图UITextView 1 ...

  4. 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)

      目标架构如上图   一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...

  5. 【mysql】关于IO/内存方面的一些优化

    这里使用的是mysql  Ver 14.14 Distrib 5.6.19, for Linux (i686) using  EditLine wrapper 一.mysql目录文件 ibdata1: ...

  6. TOYS - POJ 2318(计算几何,叉积判断)

    题目大意:给你一个矩形的左上角和右下角的坐标,然后这个矩形有 N 个隔板分割成 N+1 个区域,下面有 M 组坐标,求出来每个区域包含的坐标数.   分析:做的第一道计算几何题目....使用叉积判断方 ...

  7. lucene原理及源码解析--核心类

    马云说:大家还没搞清PC时代的时候,移动互联网来了,还没搞清移动互联网的时候,大数据时代来了. 然而,我看到的是:在PC时代搞PC的,移动互联网时代搞移动互联网的,大数据时代搞大数据的,都是同一伙儿人 ...

  8. InnoDB存储引擎介绍-(7) Innodb数据页结构

    数据页结构 File Header 总共38 Bytes,记录页的头信息 名称 大小(Bytes) 描述 FIL_PAGE_SPACE 4 该页的checksum值 FIL_PAGE_OFFSET 4 ...

  9. 学习笔记:The Best of MySQL Forum

    http://mysql.rjweb.org/bestof.html I have tagged many of the better forum threads. 'Better' is based ...

随机推荐

  1. BZOJ4883 棋盘上的守卫(环套树+最小生成树)

    容易想到网络流之类的东西,虽然范围看起来不太可做,不过这提供了一种想法,即将行列分别看做点.那么我们需要找一种连n+m条边的方案,使得可以从每条边中选一个点以覆盖所有点.显然每个点至少要连一条边.于是 ...

  2. Contest 7

    A:搜索好难啊根本不会啊. B:原题都能写挂没救了啊.考虑求出每个数作为最小值时能向左向右扩展到的最远位置,那么这段区间里的所有数就不可能作为唯一的最小值成为最优解了,否则假设可以的话这段区间里的数都 ...

  3. a++ 和 ++a 的区别

    a++ 和 ++a 的区别 1)首先说左值和右值的定义:        变量和文字常量都有存储区,并且有相关的类型.区别在于变量是可寻址的(addressable)对于每一个变量都有两个值与其相联:  ...

  4. nvidia 无显示选项怎么设置全屏游戏

    转自:2楼   http://nbbbs.zol.com.cn/41/218_408871.html 网上搜的方法: 1.按键盘上那个windows键+R,输入regedit 2.然后就是下面的步骤了 ...

  5. 【JQuery】文档操作

    一.前言 接着上一章的内容,接着JQuery的学习 二.内容 addClass 向被选元素添加一个或多个类 $(selector).addClass(class) $(selector).addCla ...

  6. 【BZOJ2763】飞行路线(最短路)

    [BZOJ2763]飞行路线(最短路) 题面 BZOJ Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标 ...

  7. [大数据可视化]-saiku的源码打包运行/二次开发构建

    Saiku构建好之后,会将项目的各个模块达成jar包,整个项目也会打成war包 saiku目录结构:   我们选中saiku-server/target/ 下面的zip压缩包.这是个打包后的文件,进行 ...

  8. 在Eclipse中开发使用Spring IOC的JUnit/TestNG测试用例之详解

    转载自:http://blog.csdn.net/radic_feng/article/details/6740438 我们期望能像在产品代码中一样,在测试用例中使用的bean也由Spring Con ...

  9. 【转】手摸手,带你用vue撸后台 系列二(登录权限篇)

    前言 拖更有点严重,过了半个月才写了第二篇教程.无奈自己是一个业务猿,每天被我司的产品虐的死去活来,之前又病了一下休息了几天,大家见谅. 进入正题,做后台项目区别于做其它的项目,权限验证与安全性是非常 ...

  10. VC6完整项目代码升级到VS2010

    VC6完整项目代码升级到VS2010,有需要请联系我,专业C++开发,邮箱153786575@qq.com