科学音频处理(三):如何使用 Octave 的高级数学技术处理音频文件

我们的数字音频处理技术第三部分涵盖了信号调制内容,将解释如何进行调幅Amplitude Modulation、颤音效果Tremolo Effect和频率变化Frequency Variation。

调制

调幅

正如它的名字暗示的那样, 影响正弦信号的振幅变化依据传递的信息而不断改变。正弦波因为承载着大量的信息被称作载波carrier。这种调制技术被用于许多的商业广播和市民信息传输波段(AM)。

为何要使用调幅技术?

调制发射

假设信道是免费资源,有天线就可以发射和接收信号。这要求有效的电磁信号发射天线,它的大小和要被发射的信号的波长应该是同一数量级。很多信号,包括音频成分,通常在 100 赫兹或更低。对于这些信号,如果直接发射,我们就需要建立长达 300 公里的天线。如果通过信号调制将信息加载到 100MHz 的高频载波中,那么天线仅仅需要 1 米(横向长度)。

集中调制与多通道

假设多个信号占用一个通道,调制可以将不同的信号不同频域位置,以便接收者选择该特定信号。使用集中调制(“复用”)的应用有遥感探测数据、立体声调频收音机和长途电话等。

克服设备限制的调制

信号处理设备,比如过滤器、放大器,以及可以用它们简单组成的设备,它们的性能依赖于信号在频域中的境况以及高频率和低频信号的关系。调制可以用于传递信号到频域中的更容易满足设计需求的位置。调制也可以将“宽带信号“(高频和低频的比例很大的信号)转换成”窄带“信号。

音频特效

许多音频特效由于引人注目和处理信号的便捷性使用了调幅技术。我们可以说出很多,比如颤音、合唱、镶边等等。这种实用性就是我们关注它的原因。

颤音效果

颤音效果是调幅最简单的应用,为实现这样的效果,我们会用周期信号改变(乘)音频信号,使用正弦或其他。


  1. >> tremolo='tremolo.ogg';
  2. >> fs=44100;
  3. >> t=0:1/fs:10;
  4. >> wo=2*pi*440*t;
  5. >> wa=2*pi*1.2*t;
  6. >> audiowrite(tremolo, cos(wa).*cos(wo),fs);

Tremolo

这将创造一个正弦形状的信号,它的效果就像‘颤音’。

Tremolo Shape

在真实音频文件中的颤音

现在我们将展示真实世界中的颤音效果。首先,我们使用之前记录过男性发声 ‘A’ 的音频文件。这个信号图就像下面这样:


  1. >> [y,fs]=audioread('A.ogg');
  2. >> plot(y);

Vocal

现在我们将创建一个完整的正弦信号,使用如下的参数:

  • 增幅 = 1
  • 频率= 1.5Hz
  • 相位 = 0

  1. >> t=0:1/fs:4.99999999;
  2. >> t=t(:);
  3. >> w=2*pi*1.5*t;
  4. >> q=cos(w);
  5. >> plot(q);

注意: 当我们创建一组时间值时,默认情况下,它是以列的格式呈现,如, 1x220500 的值。为了乘以这样的值,必须将其变成行的形式(220500x1)。这就是 t=t(:) 命令的作用。

Sinusodial

我们将创建第二份 ogg 音频格式的文件,它包含了如下的调制信号:


  1. >> tremolo='tremolo.ogg';
  2. >> audiowrite(tremolo, q.*y,fs);

Tremolo Signal

频率变化

我们可以改变频率实现一些有趣的音效,比如原音变形,电影音效,多人比赛。

正弦频率调制的影响

这是正弦调制频率变化的演示代码,根据方程:


  1. Y=Ac*Cos(wo*Cos(wo/k))

这里:

  • Ac = 增幅
  • wo = 基频
  • k = 标量除数

  1. >> fm='fm.ogg';
  2. >> fs=44100;
  3. >> t=0:1/fs:10;
  4. >> w=2*pi*442*t;
  5. >> audiowrite(fm, cos(cos(w/1500).*w), fs);
  6. >> [y,fs]=audioread('fm.ogg');
  7. >> figure (); plot (y);

信号图:

你可以使用几乎任何类型的周期函数频率调制。本例中,我们仅仅用了一个正弦函数。请大胆的改变函数频率,用复合函数,甚至改变函数的类型。

原文发布时间为:2017-10-30

本文来自合作伙伴“Linux中国”

时间: 2024-09-20 22:16:02

科学音频处理(三):如何使用 Octave 的高级数学技术处理音频文件的相关文章

Win7系统三步找回被删除并清空了的回收站文件

找回误删并清除了回收站的文档 步骤: 1.单击"开始--运行,然后输入regedit (打开注册表) 2.依次展开:HEKEY--LOCAL--MACHIME/SOFTWARE/microsoft/WINDOWS/ CURRENTVERSION/EXPLORER/DESKTOP/NAMESPACE 在左边空白外点击"新建",选择:"主键",把它命名为"645FFO40--5081--101B--9F08--00AA002F954E"再把

[四天学会ajax] 学习Ajax教程第三天,Ajax 中的高级请求和响应

ajax|高级|教程|请求|响应 对于很多 Web 开发人员来说,只需要生成简单的请求并接收简单的响应即可:但是对于希望掌握 Ajax 的开发人员来说,必须要全面理解 HTTP 状态代码.就绪状态和 XMLHttpRequest 对象.在本文中,Brett McLaughlin 将向您介绍各种状态代码,并展示浏览器如何对其进行处理,本文还给出了在 Ajax 中使用的比较少见的 HTTP 请求. 在本系列的 上篇文章 中,我们将详细介绍 XMLHttpRequest 对象,它是 Ajax 应用程序

看用友的“三把火”怎么样照暖ERP技术行业

问题描述 有幸参加了用友软件8月29号在成都开的2009"经营与管理创新年度峰会",也就是新闻上说的用友年会.虽然我以前也参加过其他厂商的年会,但都比不上这次的分量.感受最深的首先是大牌云集,四川省副省长李成云.经济学家樊纲.希望集团总裁刘永好.大连万达集团董事长王健林等等VIP悉数到场,看来行业老大的号召力确实不一样:第二是年会的内容:上午的"重塑企业核心能力"主题论坛和下午的13个分论坛基本上覆盖了ERP行业焦点,各路嘉宾的演讲内容也颇为出彩.而我个人最感兴趣的

三大运营商全面参与“GNTC全球网络技术大会” 共议网络重构

12月7日-9日,"GNTC全球网络技术大会"即将在北京喜来登长城饭店召开,世界范围内的网络架构重构是本次大会最主要的议程之一.作为推动网络基础技术发展的中坚力量,中国三大运营商--中国移动.中国联通.中国电信已确认全面参与到GNTC全球网络技术大会中,分享其重构新网络的蓝图. 中国移动 此前,中国移动发布"中国移动技术愿景2020+白皮书",展现了"连接无线可能"的美好愿景,旨在提供万物互联的数字化服务.此次大会中,中国移动将全面分享其在各个技

谈在线网站服务器监控(三)之使用的高级功能要求

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 俗语说"人心不足蛇吞象",在上篇满足基本要求后,需要满足更高级的功能要求. 1.多个地点和线路同时监控 多个监控地点是指同时在不同地方对网站和服务器进行监控,如在广州.北京.重庆等多个点同时进行监控,任何一个点监控到故障都会告警.多线路是指用不同线路(电信.联通.铁通等)同时进行监控.地点和线路是组合一起使用,如广州电信.

《数据科学:R语言实现》——2.3 读取和写入CSV文件

2.3 读取和写入CSV文件 在之前的教程中,我们从雅虎财经下载了标普500历史价格数据.现在我们可以读取数据,并加载到R进程中,以备后续查看和操作.在本教程中,我们会介绍如何使用R函数读取文件. 准备工作 在本教程中,你需要完成之前的教程,并把标普500历史价格文本文件下载到当前目录. 实现步骤 执行下列步骤,从CSV文件中读取文本数据. 1.首先,使用getwd确定当前目录,使用list.files查看文件的位置: 2.然后,使用函数read.table指定逗号为分隔符,读取数据: 3.接着

(一三二)类的三种常见技术

重载<<.>>运算符: 例如:ostream& operator<<(ostream&, const Player& name); 其中: ①ostream类表示cout等,也支持写入文件的ofstream类.同理,也可以换位istream.ifstream类(但要把重载运算符也换为>>):   ②Player&表示类对象的引用,之所以用const进行限定,原因在于为了即可以支持被const限定的对象,也可以防止传递的引用被修

IOS音频播放(三)

第三部分转载自: 码农人生 前言 本来说好是要在第三篇中讲AudioFileStream和AudioQueue,但写着写着发现光AudioFileStream就好多内容,最后还是决定分篇介绍,这篇先来说一下AudioFileStream,下一篇计划说一下和AudioFileStream类似的AudioFile,下下篇再来说AudioQueue.   本篇将会提到计算音频时长duration和音频seek的方法,这些方法对于CBR编码形式的音频文件可以做到比较精确,而对于VBR编码形式的会存在较大

大数据到底怎么学:数据科学概论与大数据学习误区

"数据科学家走在通往无所不知的路上,走到尽头才发现,自己一无所知."-Will Cukierski,Head of Competitions & Data Scientist at Kaggle 最近不少网友向我咨询如何学习大数据技术?大数据怎么入门?怎么做大数据分析?数据科学需要学习那些技术?大数据的应用前景等等问题.由于大数据技术涉及内容太庞杂,大数据应用领域广泛,而且各领域和方向采用的关键技术差异性也会较大,难以三言两语说清楚,本文从数据科学和大数据关键技术体系角度,来说