数字信号处理B - 图文

发布时间 : 星期一 文章数字信号处理B - 图文更新完毕开始阅读

《数字信号处理B》课程项目

实施报告

题目(1): 数字音效处理器 组 号: 50 任课教师: 黄青华、朱雯君 组 长: 11124641 刘鸣宇 成 员: 11124640 唐志豪 成 员: 11124679 王旭东 成 员: 11124681 袁 屹 成 员: 11124693 万圆圆 联系方式: 13681915562

二零 一三 年 拾月 十八日

一.数字音效简介

数字音效,英文是Digital Audio Effects,广义上包含音频增强,音频变

换和虚拟音频三大类,音频增强包含诸如噪音去除等在内的音频修正功能,而音频变换则包含混响,回声,EQ,变速,变调等等针对音频时域或频域的内容变换。虚拟音频则包括虚拟乐器和虚拟声。数字音效简称EQ模式,即MP3不同的声音播放效果,不同的EQ模式带给听使用者不同的声音播放效果,同时EQ模式也是最能突出个人个性的地方,给使用者带来更多的音乐享受。

二.数字音效处理器的设计要求

设计一个数字音效处理器,能够实现语音信号的各种音效处理。要求:

(1) 输入语音信号源为实际环境采集语音; (2) 至少实现3种音效处理功能;

(3) 用人机交互界面操控、扬声器/耳机输出音效。

三.数字音效处理器的设计思想与指标

我们组使用windows自带的录音软件进行录音后得到.wav文件,然后用matlab软件对音频进行导入,对其实施

三种效果的操作,分别是回声,消除人声与声音升调。对于回声,我们的思路是将时域中的声音波形矩阵通过一定量的衰减后搬移到时间t后的时域中来实现回声效果。对于消除人声,我们发现在两声道的音乐中,制作音乐的人或录制音乐的软件经常将人声一分为二,从左右声道分别放出人声。所以我们的思路是将音波矩阵中的左右声道波形相减,这样若是听音乐只会有伴奏而没有人声。第三种升调 在人机交互界面我们设想用matlab自带的gui来设计,来实现读取文件,保存与播放改变后的文件,坐标轴的放大与缩小,三个效果的按钮。界面设计目标简洁清晰明了,将两个声道的波形实时表示。

我们对三种音效的设定指标是

(1)回声:回声清晰,延时恰当不影响原声的美感。

(2)消除人声:经过处理后的人声分量低于原人声分量的1/10.

(3)升调:离散的频域音波变量经过搬移变化还原回时域后,时域音波完整连续无杂音。信噪比在80db以上。正常人声变化后音频范围在人的辨识度内。

四.系统设计

首先先创建gui结构,定义

gui_Name'gui_Singleton','gui_OpeningFcn','gui_OutputFcn','gui_LayoutFcn','gui_Callback',依次为名字,次数,功能,功放,布局,召回功能。在创建两个axes函数,依次为左右声道坐标轴。定义processedData;fs;bits;numChannels;numData;(数据函数,频率,比特率,声道数,数据矩阵)全局变量。用file=uigetfile('*.wav')来打开文件分别将这些数据导入。设置各个按键(open,save,play,zoom in,zoom out, effect1-3)的作用,在3个effect函数调用时分别刷新axes函数来刷新图形界面。在执行对象的创建过程中,完成设置后,定义所有数据的属性。接下来就是主要的三个效果函数的设计。

(1).回声:

将原先的声音进行衰减,然后加以一点延迟,然后与原来的声音相加,即可得到回声效果。

消除人声:

通常录制唱片的时候,我们都是采取以下的方式:先将人声录制到一个单声道的音轨当中,在将这个音轨插入到立体声的歌曲伴奏中,这样便形成了一首完整的歌曲。在混缩录音的时候,我们通常人声的轨迹平均混合到歌曲伴奏中,也就是说,人声的声波波形在歌曲的两个声道是相同或者相似的,因此,我们可以采取两个声道相减的办法来消除立体声歌曲中的人声。

但是,这样做有时会损失歌曲中的低音。这里的低音是指400Hz以下的频段。有的歌曲的低音部分主要有鼓或者贝司组成,由于鼓或者贝司的低音部分在左右声道的波形基本相同,所以在消除人声的时候也会消除音乐的低音部分,因此,我们需要对低音进行补偿。

(2)变调:

我们通过改变播放的采样率来实现声音的升调。这实际上与硬件实现方法相类似。我们通过提高采样率,使得文件播放速度加快,播放时间缩短,产生升调的结果。依据这个原理,相对的,如果我们将文件的播放速度降低,播放时间拖长,也就随之产生了降调的效果。而为了保证播放时间不变,需要把音频数据分成若干帧。对于升调,则要把每镇最后一部分复制并不到该帧之后;对于降调,则是把每帧数据最后部分删除。

常用的变调方法及其比较:

一种实现变调的方法是改变WAV文件的头文件信息,改变播放的采样率。这实际上与硬件实现变调的方法相类似。采样率提高,则WAV文件的播放速度加快,播放时间缩短,产生升调的效果;采样率降低,则WAV文件的播放速度降低,播放时间拖长,产生降调的效果。为了保持播放时间不变,需要把音频数据分成若干帧。对于升调,则要把每帧最后一部分复制并补到该帧之后;对于降调,则把每帧数据最后部分删除。这个方法的不足之处在于:升调时每帧之间是连续的,但在帧内由于补上了一段数据,在帧内会出现一处不连续。降调时帧内的数据是连续的,但每帧之间由于有部分数据被删除导致不连续。另一种方法是在频域上用线性内插的方法来实现频率的提高与降低,从而实现声调的变化。这个方法的缺点在于:内插的方法会引入不需要的频率。特别是在某些能量大的频点,假设要升2倍频,将会引入一些能量为原频点能量一半的频率分量。这些频率分量会大大影响音频的音质。而且这些频率分量与原来有用的频率贴得很近,若要进行滤波也较麻烦。另外,这种方法需要进行傅里叶变换及其反变换,运算量较大。还有一种方法是频域搬移法。与上一种方法相比,该方法不会引入新的频率分量。但是,该方法实现的变调效果会带有金属声。原因在于频率的搬移并不是频率的线性变化。 实现方法:

将带采样的数据分割成若干部分,一次对每一部分进行离散傅里叶变换,然后构造一个m行1列的零矩阵,将通过对离散变换后的函数抽样的结果存入零矩阵中,有数值的则将零替换,没有数值的则用零填充,使得时间上保持了恒定。之后再对抽样过的数据进行反变换,覆盖原先的数据。为了使时间上的连续,我们选取m/2步长,区间长为m进行来逐段分析。

而要保持播放时间不变,我们也采取了相应的办法。例如,以升调为例,升调会使原数据变短。先将经变调处理后的数据分成一个个帧,在每一帧后面补上该帧最后一部分数据;反之,若是降调,则需要删除最后的一部分数据。如图:

(3)声音渐变:

我们的声音渐变利用的是将声音采样后与一个由自然数列组成的矩阵相乘。

联系合同范文客服:xxxxx#qq.com(#替换为@)