How to insert a segment of noise to music file
如何向音频文件中插入噪声
为了研究噪声和音乐对EEG
的的影响,实验前需要准备一段夹杂噪声的音乐。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Program to insert the white Gaussian noise into muisc
%y 音乐数据
%Fs 采样率
%bits 采样位,默认为16位
%wgn(m,n,p) 获取m * n、噪声强度为p的高斯白噪声
% author: Andy Wu
% date: 6/10/2009
% modify: 9/10/2009
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%打开一个名为“请选择背景音乐”的对话框,显示指定路径下所有的.wav文件
[file_name,file_path]=uigetfile('F:\MatlabProgram\*.wav','请选择背景音乐');
sound_path=strcat(file_path,file_name);
%将选中的音乐文件的数据和采样率读到sound_data和Fs
[sound_data,Fs,bits]=wavread(sound_path);
sound_length=length(sound_data);
%求出音乐的播放时间长度
sound_time=sound_length/Fs;
fprintf(1,'背景音乐播放长度 %6.2f(秒)\n',sound_time);
%检查是否定义噪声时间, 否则输入噪声时间
if ~exist('noise_time')
noise_time=input('请输入噪声长度(秒):');
end
noise_length=noise_time*Fs;
%输出一个噪声强度为1dBw,noise_length x 1的高斯白噪声矩阵数据
noise_data=wgn(noise_length,1,1);
%检查是否输入插入噪声的起始时间
if ~exist('noise_start_time')
noise_start_time=input('请输入您要设置的噪声起始时间(秒):');
end
%计算噪声数据插入位置
noise_position=noise_start_time*Fs;
%插入噪声数据
sound_data(noise_position:noise_position+noise_length-1)=noise_data;
%dlmwrite('F:\notify.txt',y); %将插入噪声后的音乐数据写入文本文件
%soundData=csvread('F:\notify.txt'); %读出音乐数据至soundData
object= analogoutput('winsound'); %建立硬件对象
addchannel(object,[1 2]); %创建声音输出通道
set(object,'SampleRate',Fs) %设置采样率
data1 =sound_data(:,1); %双声道
data2 =sound_data(:,1);
putdata(object,[data1 data2]); %往声卡输送音乐数据
%start(object); %开始输出音乐
%stop(object) %停止输出音乐
How to insert a segment of noise to music file的更多相关文章
- 源码浅析:MySQL一条insert操作,会写哪些文件?包括UNDO相关的文件吗?
DML操作的大致流程 在解答上述疑惑之前,我们来梳理一下DML操作的大致流程: 1.语法解析.语义解析 2.生成执行计划 3.事务修改阶段 1) 激活事务,事务状态由not_active变为activ ...
- 【UISegmentedControl】- 分段控件
一.初始化 二.常见的属性 1.segmentedControlStyle属性:设置基本的样式 2.momentary属性:设置在点击后是否恢复原样 . 3.numberOfSegments属性:只读 ...
- UI--普通控件总结1--控件使用
本文目录 0.UIView常用的属性和操作 0_1.UIView常见的属性 0_2.UIView状态 0_3.UIView常用的方法 1.文本框UITextField和文本视图UITextView 1 ...
- 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)
目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...
- 【mysql】关于IO/内存方面的一些优化
这里使用的是mysql Ver 14.14 Distrib 5.6.19, for Linux (i686) using EditLine wrapper 一.mysql目录文件 ibdata1: ...
- TOYS - POJ 2318(计算几何,叉积判断)
题目大意:给你一个矩形的左上角和右下角的坐标,然后这个矩形有 N 个隔板分割成 N+1 个区域,下面有 M 组坐标,求出来每个区域包含的坐标数. 分析:做的第一道计算几何题目....使用叉积判断方 ...
- lucene原理及源码解析--核心类
马云说:大家还没搞清PC时代的时候,移动互联网来了,还没搞清移动互联网的时候,大数据时代来了. 然而,我看到的是:在PC时代搞PC的,移动互联网时代搞移动互联网的,大数据时代搞大数据的,都是同一伙儿人 ...
- InnoDB存储引擎介绍-(7) Innodb数据页结构
数据页结构 File Header 总共38 Bytes,记录页的头信息 名称 大小(Bytes) 描述 FIL_PAGE_SPACE 4 该页的checksum值 FIL_PAGE_OFFSET 4 ...
- 学习笔记:The Best of MySQL Forum
http://mysql.rjweb.org/bestof.html I have tagged many of the better forum threads. 'Better' is based ...
随机推荐
- BZOJ 1216 操作系统(堆)
用堆模拟题目中的操作即可. # include <cstdio> # include <cstring> # include <cstdlib> # include ...
- BZOJ5074 小B的数字
对bi取log,则相当于Σbi<=min{bi*ai}.注意到值域很小,那么如果有解,使其成立的最小的Σbi不会很大,大胆猜想不超过Σai.然而一点也不会(xiang)证.暴力枚举就好了. #i ...
- 【比赛】HNOI2018 毒瘤
虚树+dp 直接看zlttttt的强大题解 zlttttt的题解看这里 #include<bits/stdc++.h> #define ui unsigned int #define ll ...
- Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1)
A 模拟 B 发现对于每个连通块,只有为完全图才成立,然后就dfs C 构造 想了20分钟才会,一开始想偏了,以为要利用相邻NO YES的关系再枚举,其实不难.. 考虑对于顺序枚举每一个NO/YES, ...
- Redis的List链表类型命令
List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.list类型其实就是一个每个子元素都是string类型的双向链表.我们可以通过push.po ...
- MySQL中文全文检索demoSQL
一.概述 MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度. 二.语法 MATCH (col1,col2,...) AGAINS ...
- CentOS 7.0 作为服务器注意事项
配置防火墙,开启80端口.3306端口: CentOS 7.0默认使用的是firewall作为防火墙 关闭firewall: systemctl stop firewalld.service #停止 ...
- Android开发技术重要参考资料
只言片语 有的时候看不懂别人的代码,觉得自己笨:其实,你想多了,看不懂不是因为你蠢而是别人的代码写得烂:所以,别那么宽容别人却苛责自己. 参考资料 郭霖 way 爱哥 有心 胡凯 robin trin ...
- LibreOJ #541. 「LibreOJ NOIP Round #1」七曜圣贤(单调队列)
被以前自己瞎YY的东西坑了T T...单调队列的确是可以维护这种操作的.... 显然这题可以转化成维护不在车上的东西的最小值, 支持插入和删去最早出现的值,然后就可以用单调队列了T T #includ ...
- 排座位&&Little Elephant And Permutation——排列dp的处理
排列的问题,就是要把序列排个序,使之达到某种最优值或者统计方案数 dp可以解决部分排列问题. 通常的解决方案是,按照编号(优先级)排序决策,从左到右决策两种. 这里主要是第一个. 排座位• 有