文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用Octave处理音频

2023-06-27 12:00

关注

本篇内容介绍了“怎么用Octave处理音频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Octave 是一个类似于 Linux 上的 Matlab 的软件,它拥有数量众多的函数和命令,支持声音采集、记录、回放以及音频信号的数字化处理,用于娱乐应用、研究、医学以及其它科学领域。

怎么用Octave处理音频

信号叠加

两个信号 S1(t)和 S2(t)相加形成一个新的信号 R(t),这个信号在任何瞬间的值等于构成它的两个信号在那个时刻的值之和。就像下面这样:

R(t) = S1(t) + S2(t)

我们将用 Octave 重新产生两个信号的和并通过图表看达到的效果。首先,我们生成两个不同频率的信号,看一看它们的叠加信号是什么样的。

第一步:产生两个不同频率的信号(oog 文件)

>> sig1='cos440.ogg';                  %creating the audio file @440 Hz>> sig2='cos880.ogg';                  %creating the audio file @880 Hz>> fs=44100;                           %generating the parameters values (Period, sampling frequency and angular frequency)>> t=0:1/fs:0.02;>> w1=2*pi*440*t;>> w2=2*pi*880*t;>> audiowrite(sig1,cos(w1),fs);        %writing the function cos(w) on the files created>> audiowrite(sig2,cos(w2),fs);

然后我们绘制出两个信号的图像。

信号 1 的图像(440 赫兹)

>> [y1, fs] = audioread(sig1);>> plot(y1)
怎么用Octave处理音频

信号 2 的图像(880 赫兹)

>> [y2, fs] = audioread(sig2);>> plot(y2)
怎么用Octave处理音频

第二步:把两个信号叠加

现在我们展示一下前面步骤中产生的两个信号的和。

>> sumres=y1+y2;>> plot(sumres)

叠加信号的图像和信号的图像Octaver 中的效果

怎么用Octave处理音频

在 Octaver 中,这个效果产生的声音是独特的,因为它可以仿真音乐家弹奏的低八度或者高八度音符(取决于内部程序设计),仿真音符和原始音符成对,也就是两个音符发出相同的声音。

第三步:把两个真实的信号相加(比如两首音乐歌曲)

为了实现这个目的,我们使用格列高利圣咏(Gregorian Chants)中的两首歌曲(声音采样)。

圣母颂曲(Avemaria Track)

首先,我们看一下圣母颂曲并绘出它的图像:

>> [y1,fs]=audioread('avemaria_.ogg');>> plot(y1)
怎么用Octave处理音频

圣母歌曲

赞美诗曲(Hymnus Track)

现在我们看一下赞美诗曲并绘出它的图像。

>> [y2,fs]=audioread('hymnus.ogg');>> plot(y2)
怎么用Octave处理音频

赞美诗曲

圣母颂曲 + 赞美诗曲

>> y='avehymnus.ogg';>> audiowrite(y, y1+y2, fs);>> [y, fs]=audioread('avehymnus.ogg');>> plot(y)
怎么用Octave处理音频

圣母歌曲 + 赞美诗曲

结果,从音频的角度来看,两个声音信号混合在了一起。

两个信号的乘积

对于求两个信号的乘积,我们可以使用类似求和的方法。我们使用之前生成的相同文件。

R(t) = S1(t) * S2(t)  >> sig1='cos440.ogg';                  %creating the audio file @440 Hz>> sig2='cos880.ogg';                  %creating the audio file @880 Hz>> product='prod.ogg';                 %creating the audio file for product>> fs=44100;                           %generating the parameters values (Period, sampling frequency and angular frequency)>> t=0:1/fs:0.02;>> w1=2*pi*440*t;>> w2=2*pi*880*t;>> audiowrite(sig1, cos(w1), fs);      %writing the function cos(w) on the files created>> audiowrite(sig2, cos(w2), fs);>> [y1,fs]=audioread(sig1);>> [y2,fs]=audioread(sig2);>> audiowrite(product, y1.*y2, fs);    %performing the product>> [yprod,fs]=audioread(product);>> plot(yprod);                        %plotting the product

注意:我们必须使用操作符 ‘.*’,因为在参数文件中,这个乘积是值与值相乘。更多信息,请参考 Octave 矩阵操作产品手册。

乘积生成信号的图像

怎么用Octave处理音频

两个基本频率相差很大的信号相乘后的图表效果(调制原理)

第一步:

生成两个频率为 220 赫兹的声音信号。

>> fs=44100;>> t=0:1/fs:0.03;>> w=2*pi*220*t;>> y1=cos(w);>> plot(y1);

载波

怎么用Octave处理音频

第二步:

生成一个 22000 赫兹的高频调制信号。

>> y2=cos(100*w);>> plot(y2);

调试中

怎么用Octave处理音频

第三步:

把两个信号相乘并绘出图像

>> plot(y1.*y2);

调制后的信号

怎么用Octave处理音频

一个信号和一个标量相乘

一个函数和一个标量相乘的效果等于更改它的值域,在某些情况下,更改的是相标志。给定一个标量 K ,一个函数 F(t) 和这个标量相乘定义为:

R(t) = K*F(t)>> [y,fs]=audioread('cos440.ogg');        %creating the work files>> res1='coslow.ogg';                >> res2='coshigh.ogg';>> res3='cosinverted.ogg';>> K1=0.2;                                %values of the scalars>> K2=0.5;>> K3=-1;>> audiowrite(res1, K1*y, fs);            %product function-scalar>> audiowrite(res2, K2*y, fs);>> audiowrite(res3, K3*y, fs);

原始信号的图像

>> plot(y)
怎么用Octave处理音频

信号振幅减为原始信号振幅的 0.2 倍后的图像

>> plot(res1)
怎么用Octave处理音频

低余弦

信号振幅减为原始振幅的 0.5 倍后的图像

>> plot(res2)
怎么用Octave处理音频

高余弦

倒相后的信号图像

>> plot(res3)
怎么用Octave处理音频

倒相余弦

“怎么用Octave处理音频”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯