用DFT对语音信号进行压缩

用DFT对语音信号进行压缩

ID:38797906

大小:132.71 KB

页数:7页

时间:2019-06-19

用DFT对语音信号进行压缩_第1页
用DFT对语音信号进行压缩_第2页
用DFT对语音信号进行压缩_第3页
用DFT对语音信号进行压缩_第4页
用DFT对语音信号进行压缩_第5页
资源描述:

《用DFT对语音信号进行压缩》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用DFT对语音信号进行压缩处理学生姓名:XXX学号:XXXXX指导老师:XXXXX摘要:本文要解决的问题是如何对音频文件(本文仅研究了wav格式的文件)进行微失真压缩,文中使用DFT算法将对音频信号中部分对声音影响较小的部分给去除,以实现音频压缩的目的。关键词:DFT,音频压缩。1.DFT原理:对于一个有限长信号,我们可以使用DTFT算法得到其频谱,但是一个有限长的信号,其频谱都是无限长的:但是对于人耳而言,能听到的频率在10Hz到44,1KHz之间,这样频谱中大部分的成分都是不需要的,而且对

2、于计算机而言,无法模拟出一段连续的频谱。这时候我们只能对频谱进行采样,在保证最大程度不失真的程度上模拟出频谱,但是对频谱进行采样后,对得到的频谱信号进行IDTFT,得到的语音信号被周期话,成为一个无限长的序列,这样计算机还是无法模拟。DFT算法就很好的解决了这个问题,时域中的N点序列x[n]的DFT定义为:,k=0,1,…N-1一个有限长信号序列,通过DFT变换后得到的频谱为:由上式可知n个点的DFT仍是n点,这时候我们可以对得到的频谱序列进行裁剪,搬移等操作,得到我们所需要的频谱上的语音信号。

3、而对得到的频谱做IDFT得到的信号不会成为无限长的一个序列,n个点的IDFT仍是n点。这样我们就可以在计算机中得到自己想要的频段上的语音信号了。本文中所实现的就是这样的一个过程。2.音频压缩的基本原理Wav文件保存音频信息的基本原理为将音频信号的每一个采样点的时域数值用1个16bit数记录下来,对应的采样频率越高单位时内记录的数据就越多,音质也就越高。所以在不改变wav文件记录音频文件的基本格式的前提下只有降低采样频率才能实现文件的压缩,当然对采样频率的降低就会带来音质的损耗,所以该类压缩方法不

4、是无失真的压缩方法。在尽量保证源文件的音质效果的前提下有以下两种压缩思路:1.在源文件的时域序列上间隔取点,再将取点之后的新序列以与取点间隔相对应的采样频率重新写制成为wav文件,以达到压缩的目的。2.将源文件的时域序列进行DFT后得到频谱,将频谱中能量较低的成分删除,在按照新的频谱的长度做IDFT得到新的较源文件更短的时域序列,同样以相应的采样频率重新写制wav文件。2.1时域间隔采样法在时域的间隔采样等效于将频谱中高频成分向低频搬移,而将低频成分去掉。可以用MATLAB读取一段wav文件并将

5、其间隔1点采样后作DFT得到频谱与源文件的频谱比较如图2-1.MATLAB代码如下:[time1fs1bits1]=wavread('monsterkill.wav');freq1=fft(time1);m1=length(time1)fori=1:m1/2time2(i)=time1(2*i);endfreq2=fft(time2);subplot(2,1,1);plot(abs(freq1));subplot(2,1,2);plot(abs(freq2));图2-1读取源文件时域序列将时域序

6、列进行DFT变换将DFT得到的频谱进行更少点的IDFT以与IDFT相对应点数的频率进行重写wav文件可以明显的看到高频成分向序列中段靠拢而幅值则缩小了一半,由此可以得到时域间隔采样的DFT压缩基本流程:以压缩一半为例,MATLAB代码如下:[time1fs1bits1]=wavread('monsterkill.wav');freq1=fft(time1);m1=length(time1);time2=real(ifft(freq1,m1/2));wavwrite(time2,fs1/2,'mo

7、nsterkill2-1.wav');freq2=fft(time2);figure(1);subplot(2,1,1);plot(abs(freq1));subplot(2,1,2);plot(abs(freq2));title('频谱成分');figure(2);subplot(2,1,1);plot(time1);subplot(2,1,2);plot(time2);title('时域序列');图2-2运行结果如(图2-2)、(图2-3)。实际得到新wav文件见附件monsterkill2

8、-1.wav图2-4图2-5图2-3该种方法的优点在于操作方便易于实现,并且能够较好的保留源文件的音质特点。但在压缩比例较大或者源音频文件以中低音为主时将会很大的破坏音质,失真度很高。2.2去除低能频点法频谱上各频点对应值的模长表示能量的分布,将能量较小的部分忽略掉即可以达到压缩的目的,其基本压缩流程如下:读取源文件时域序列将时域序列进行DFT变换选取能量较小的值删除掉,构成新的频谱序列以与新频谱相对应点数的频率进行重写wav文件以去掉小于平均能量20倍的频点为例MATLAB代码如下:[time

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。