输出音频文件所需函数为 audiowrite 。通过例程进行解释:

% 生成时间序列
fs = 5000; % [Hz] 信号采样频率
T = 1; % [s] 信号长度
x = 0:1/fs:T; % [s] 时间序列 % 生成信号序列
f = 440; % [Hz] 信号频率
y = 1*sin(2*pi*f*x); % 输出音频文件
fname = 'Asin1.wav'; % 设定文件名称 注意格式
audiowrite(fname,y,fs); % 输出文件 % 音频文件测试
clear y Fs % 初始化工作区
[y,Fs] = audioread(fname); % 读取音频文件
sound(y,Fs); % 收听音频

这里,我们设定第八行的幅度为1,也就是说信号的最高幅值为1。当然,也可以尝试其他的数比如 0.5、0.7、1、2、5、10,都可以试着听一下。不难发现,幅值小于1时,得到的是单频正弦信号;但当幅值大于1时,会出现其他频率的声音。这并不是因为扬声器失真,个人猜测可能是因为 Matlab 对幅度的截止造成的。一些博客里给出的幅度调整方案感觉并不适用于 2015 版本的 Matlab。

利用 if else 语句对之前的信号进行幅度剪裁,只保留 [-1,1] 区间内的值,绘图如下:

下面通过听音实验验证上述猜想:

% 生成时间序列
fs = 12000; % [Hz] 信号采样频率
T = 1; % [s] 信号长度
x = 0:1/fs:T; % [s] 时间序列 % 生成信号序列
f = 440; % [Hz] 信号频率
A = [0.5 0.7 1 2 5 10]; % 设了6个信号幅度
y1 = zeros(6,length(x)); % 未截断信号初始化
for n = 1:6
y1(n,:) = A(n)*sin(2*pi*f*x); % 未截断信号赋值
end
y2 = y1; % 截断信号初始化
for n = 1:6
for m = 1:length(x) % 截断信号赋值
if y1(n,m)>1
y2(n,m) = 1;
else if y1(n,m)<-1
y2(n,m) = -1;
end
end
end
end % 测试控制
k = 5; % 选择第k组进行听音比较,k取1至6
y = [y1(k,:),y2(k,:)]; % 生成目标信号 % 输出音频文件
fname = 'Asin2.wav'; % 设定文件名称 注意格式
audiowrite(fname,y,fs); % 输出文件 % 音频文件测试
clear y Fs % 初始化工作区
[y,Fs] = audioread(fname); % 读取音频文件
sound(y,Fs); % 收听音频

以上是关于 audiowrite 函数的讨论。最后列出一些相关博文,以及其他有趣的博文:

  来源: CSDN博客  作者:消防菊的博客(关于纯音、和弦)

   来源:Matlab(也可参原文档 help 或 doc)

   来源:网易博客  作者:个个


END

Matlab_audiowrite_音频生成的更多相关文章

  1. C#调用FFMPEG实现桌面录制(视频+音频+生成本地文件)

    不得不说FFMPEG真是个神奇的玩意,所接触的部分不过万一.网上有个很火的例子是c++方面的,当然这个功能还是用c++来实现比较妥当. 然而我不会c++ 因为我的功能需求比较简单,只要实现基本的录制就 ...

  2. WaveNet: 原始音频生成模型

    官方博客 WaveNet: A Generative Model for Raw Audio paper地址:paper Abstract WaveNet是probabilistic and auto ...

  3. 文本转音频(百度语音合成api)(python)(原创)

    应之前的一家小学教育培训机构的要求设计的一款 将文字转音频的程序.(注:后面应该是生成音频才对,没有改过来) 技术难点: ①语音合成,如果没有现在这么多的云服务-百度云语音合成,我估计这个程序会费很大 ...

  4. 生成对抗网络(GAN)相关链接汇总

    1.基础知识 创始人的介绍: “GANs之父”Goodfellow 38分钟视频亲授:如何完善生成对抗网络?(上) “GAN之父”Goodfellow与网友互动:关于GAN的11个问题(附视频) 进一 ...

  5. AliIAC 智能音频编解码器:在有限带宽条件下带来更高质量的音频通话体验

    随着信息技术的发展,人们对实时通信的需求不断增加,并逐渐成为工作生活中不可或缺的一部分.每年海量的音视频通话分钟数对互联网基础设施提出了巨大的挑战.尽管目前全球的互联网用户绝大多数均处于良好的网络状况 ...

  6. HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界

    从单声道.立体声.环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音.其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界.凭借这个技术 ...

  7. Audio Unit 基础

    如图所示,所有 iOS 音频技术都是基于 audio units.此处显示的更高级别的技术,如 Media Player,AV Foundation,OpenAL,AudioToolbox,是对 au ...

  8. python做语音信号处理

    音频信号的读写.播放及录音 标准的python已经支持WAV格式的书写,而实时的声音输入输出需要安装pyAudio(http://people.csail.mit.edu/hubert/pyaudio ...

  9. Audio Bit Depth Super-Resolution with Neural Networks

    Audio Bit Depth Super-Resolution with Neural Networks 作者:Thomas Liu.Taylor Lundy.William Qi 摘要 Audio ...

随机推荐

  1. h5 的localStorage和sessionStorage存到缓存里面的值是string类型

    localStorage永久存在,不手动清除永远存在:sessionStorage 一次会话的浏览器关闭就自动清除 h5 的localStorage和sessionStorage 存到缓存里面的值都是 ...

  2. springMVC学习之路4-最后的征程:整合hibernate

    今天小编很开心,因为学习springMVC基础的路终于走到了尽头,也成功搭建了一个SSH框架,暗自在心里默默地开心了1秒钟. 好了,回归正题:整合Hibernate.上一节,我为大家分享我整合spri ...

  3. 一文理解 Java NIO 核心组件

    同步.异步.阻塞.非阻塞 首先,这几个概念非常容易搞混淆,但NIO中又有涉及,所以总结一下[1]. 同步:API调用返回时调用者就知道操作的结果如何了(实际读取/写入了多少字节). 异步:相对于同步, ...

  4. Sci_DRead_ParaBuzzerDriver_st_BuzzerSoundOpening1

    extern uint16 Sci_DRead_ParaMotorGroupB_u16_Motor1CinchDoneCurrent1(); * \violation 1503 The functio ...

  5. nginx 高并发优化参数

    关于内核参数的优化: net.ipv4.tcp_max_tw_buckets = 6000timewait的数量,默认是180000.net.ipv4.ip_local_port_range = 10 ...

  6. Python GIL锁

    GIL全局解释器锁:为了解决多线程修改同一块数据. python的线程是调用操作系统的源生线程,启动时就是调用C语言的C源生接口,python调用C语言接口的线程去执行任务时,必须上下文对应关系传给C ...

  7. ubuntu 16.04 tip

    参考 1. 安装 python3.6 sudo add-apt-repository ppa:jonathonf/python-3.6  sudo apt-get update sudo apt-ge ...

  8. 使用redis做分布式锁

    1.使用setnx命令.先看下官方文档http://redis.cn/commands/setnx.html 2.使用getset命令.先获取,再set 实现案例: * create 2018-12- ...

  9. 在 jupyter 中添加菜单和自动完成功能

    在 jupyter 中添加菜单和自动完成功能 参考文档http://www.360doc.com/content/17/1103/14/1489589_700569828.shtmlhttp://to ...

  10. Ubuntu 16.04上搭建CDH5.16.1集群

    本文参考自:<Ubuntu16.04上搭建CDH5.14集群> 1.准备三台(CDH默认配置为三台)安装Ubuntu 16.04.4 LTS系统的服务器,假设ip地址分布为 192.168 ...