合成简单的声音波形(一)

简介: 合成简单的声音波形(一) 收藏       半年前刚开始研究音频文件时,为了对音频文件有个感性的认识,做了一个合成简单波形的小程序。今天回顾一下这个程序,也算是为后面写音频分析的总结开个头吧。本文将简单的介绍一下Wave文件,并合成三个简单的波形,试图通过这种方式,对音频有个初步的感性认识。

合成简单的声音波形(一) 收藏
      半年前刚开始研究音频文件时,为了对音频文件有个感性的认识,做了一个合成简单波形的小程序。今天回顾一下这个程序,也算是为后面写音频分析的总结开个头吧。本文将简单的介绍一下Wave文件,并合成三个简单的波形,试图通过这种方式,对音频有个初步的感性认识。

      在此之前,你是否想过老式的黑白电视机在收不到信号的时候,为什么会发出那么难听的声音呢?又是为什么要用那种刺耳的声音做为老式电话的铃声呢?下文将会让你对此有近一步的认识。

      我们第一个要合成的是正弦信号的声音。根据傅叶变换的原理,绝大多数的信号都可以表示成正弦信号叠加的形式。首先就来听听组成其它丰富多采的声音的基本元素是什么样的吧。点击下面的播放按钮播放音频文件。

感觉如何,单调,刺耳,并不好听是吗?

      第二个要合成的是矩形波。在这里合成的波形不是相同的矩形单调的重复,这样做为的是合成有意思的声音。因为如果只是简单的重复,我们就只能得到单调的声音。这段波形由两个矩形合成,其中一个矩形波的周期是另外一个的两倍,每隔600个采样切换一次  。点击下面的播放按钮播放音频文件。


是不是感觉很熟悉呢?对了,就是电话铃声。也就是说老式的电话铃声就是矩形波。至于为什么要用矩形波呢?我个人觉得是因为容易实现。电话中发出铃声的部分是电子元件,而它处理的是连续信号,只要简单的改变这个元件电平的持继时间,就可以很容易的合成我们所听到电话铃声。

      上面两个波形都是有规律的,那么随机生成的信号又会是什么样子的呢?实现生成随机信号的代码很简单,就是往音频数据中随机的填充震幅。点击下面的播放按钮播放音频文件。

是不是感觉很熟悉?在电视机收不到信号时会发这样的声音,确切的说不是收不到信号,而是没收到电台发出的信号,收到了随机的信号。不过现在的彩电就好了,会判断一下接收到的是否是随机信号,如果是就不播放声音,你也就不会听到这么刺耳的声音了。

      点击这里下载本文中合成Wave文件的代码,代码使用C语言编写,在win xp+vs.net 2003环境下编译通过。编译并运行后,会在当前目录下生成四个Wave文件,分别是rand.wav、ring.wav、sine.wav和triangle.wav。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/thinkport/archive/2008/04/05/2253363.aspx

相关文章
|
5月前
|
数据采集 存储 数据处理
LabVIEW利用旋转编码器脉冲触发数据采集
LabVIEW利用旋转编码器脉冲触发数据采集
93 0
|
6月前
声音合成器 1 基本噪音
声音合成器 1 基本噪音
|
7月前
|
传感器 编解码 算法
LabVIEW计算相机图像传感器分辨率以及镜头焦距
LabVIEW计算相机图像传感器分辨率以及镜头焦距
61 0
|
7月前
|
算法
基于DSP的音频信号降噪技术
基于DSP的音频信号降噪技术
289 4
|
机器学习/深度学习 传感器 调度
【语音信号显示】麦克风实时时域和频域图matlab实现
【语音信号显示】麦克风实时时域和频域图matlab实现
|
算法 数据安全/隐私保护
通过扩频和DCT变换算法将图像水印嵌入到音频信号中并提取水印matlab仿真
通过扩频和DCT变换算法将图像水印嵌入到音频信号中并提取水印matlab仿真
222 0
通过扩频和DCT变换算法将图像水印嵌入到音频信号中并提取水印matlab仿真
|
传感器
红外热成像仪 红外图像伪彩色编码
什么是红外成像伪彩编码 红外成像的最终目的是用图像来表现温度变化,并且可以通过颜色来区分出不同热量的物体轮廓和形状。那么,到底用什么颜色来表示什么温度呢?是否有什么标准规范呢?
红外热成像仪  红外图像伪彩色编码
|
机器学习/深度学习 传感器 算法
【语音去噪】基于切比雪夫+椭圆形低通滤波器语音去噪附GUI界面
【语音去噪】基于切比雪夫+椭圆形低通滤波器语音去噪附GUI界面
|
前端开发 定位技术 C++
3D激光SLAM:ALOAM---帧间里程计代码解读
A-LOAM的cpp有四个,其中 kittiHelper.cpp 的作用是将kitti数据集转为rosbag 剩下的三个是作为 slam 的 部分,分别是: - laserMappin.cpp ++++ 当前帧到地图的优化 - laserOdometry.cpp ++++ 帧间里程计 - scanRegistration.cpp ++++ 前端lidar点预处理及特征提取
3D激光SLAM:ALOAM---帧间里程计代码解读
【音频处理】乐器音符播放时电流处理 ( 使用均衡器调节低频 )
【音频处理】乐器音符播放时电流处理 ( 使用均衡器调节低频 )
140 0
【音频处理】乐器音符播放时电流处理 ( 使用均衡器调节低频 )