音频信号的数字滤波处理.docx

上传人:b****6 文档编号:4700771 上传时间:2022-12-07 格式:DOCX 页数:12 大小:130.33KB
下载 相关 举报
音频信号的数字滤波处理.docx_第1页
第1页 / 共12页
音频信号的数字滤波处理.docx_第2页
第2页 / 共12页
音频信号的数字滤波处理.docx_第3页
第3页 / 共12页
音频信号的数字滤波处理.docx_第4页
第4页 / 共12页
音频信号的数字滤波处理.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

音频信号的数字滤波处理.docx

《音频信号的数字滤波处理.docx》由会员分享,可在线阅读,更多相关《音频信号的数字滤波处理.docx(12页珍藏版)》请在冰豆网上搜索。

音频信号的数字滤波处理.docx

音频信号的数字滤波处理

 

西南科技大学

课程设计报告

 

课程名称:

数字通信课程设计

设计名称:

音频信号的数字滤波处理

*****

学号:

********

班级:

通信0802

指导教师:

李艳(老师)

起止日期:

2011.6.28—2011.7.4

 

西南科技大学信息工程学院制

课程设计任务书

学生班级:

通信0802学生姓名:

刘雄学号:

********

设计名称:

音频信号的数字滤波处理

起止日期:

2011.6.28—2011.7.4指导教师:

李艳(老师)

设计要求:

●录制一段音频信号,并对信号进行采样。

●使用MATLAB将时域音频信号转换为频域信号,对其频域特点进行分析。

●对20-120HZ频率的声音信号进行加强,得到新的语音信号,并对其频域进行分析。

●播放处理后的声音信号,比较处理前的声音效果。

●根据自己喜好,重新确定滤波器的设计方案,对音频信号进行处理,进行主客观评价。

课程设计学生日志

时间

设计内容

2011.6.28

查阅相关资料,理解要求,确定方案

2011.6.29

设计总体方案

2011.6.30

根据设计要求,计算要求参数

2011.7.1

根据要求模块化编写程序

2011.7.2

整理程序,并进行调试

2011.7.2

检查各项指标是否符合要求,并进行分析结果

2010.7.3

书写程序设计报告

2010.7.4

准备答辩

课程设计考勤表

星期一

星期二

星期三

星期四

星期五

 

课程设计评语表

指导教师评语:

 

 

成绩:

指导教师:

年月日

音频信号的数字滤波处理

一、设计目的和意义

语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。

通过语言相互传递信息是人类最重要的基本功能之一。

语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。

语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。

二、设计原理

1、实验原理系统方框图

图1系统方框图

2、设计IIR数字滤波器:

设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。

数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。

IIR滤波器的特征是,具有无限持续时间冲激响应。

这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。

FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。

IIR数字滤波器是一种离散时间系统,其系统函数为

(1)

假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。

IIR数字滤波器的设计实际上是求解滤波器的系数

,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。

如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。

设计流程如图所示:

图2IIR滤波器的间接法设计

3、功率谱密度分析

通信中,调制信号通常是平稳随机过程。

其功率谱密度与自相关函数之间是一对傅氏变换关系。

这样就可以先找到信号的自相关函数,然后通过付氏变换来实现信号的功率谱密度。

4、白噪声的产生

白噪声就是频谱为常数,协方差函数在delay=0时不为0,在delay不为0时等于0,即样本点互不相关。

当随机的从高斯分布中获取采样值时,采样点所组成的随机过程就是“高斯白噪声”。

而MATLAB中的函数y=randn(1.length(t))是一个产生length(t)随机数的函数,它可以用来产生高斯白噪声。

三、详细设计步骤

1.录制一段视频,使用系统自带的录音机完成;

我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。

(开始—程序—附件—娱乐—录音机,文件—属性—立即转换)或其他软件,将话筒输入计算机的语音输入插口上,启动录音机,录制一段自音乐。

2.语音的录入与打开;

在MATLAB中,[y,fs,bits]=wavread('Blip',[N1N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。

[N1N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。

sound(x,fs,bits);用于对声音的回放。

向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。

3.语音信号的频谱分析

首先画出语音信号的时域波形,然后对语音信号进行频谱分析。

在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。

n=length(y);%求出语音信号的长度

Y=fft(y,n);%快速傅里叶变换

Mag=abs(Y);

4.产生加性高斯白噪声,画出时域波形及频谱;

在MATLAB中的函数y=randn(1,length(t))是一个产生length(t)个随机数的函数,即从高斯分布中获取样值并集合采样点的随机过程,所以它可以用来产生高斯白噪声。

5.设计滤波器,画出幅频响应图;

●设计内容:

本设计中需要使用一个带通滤波器和低通滤波器,在Matlab中可以直接调用函数来产生低通和高通滤波器,但是没有直接产生带通滤波器的函数,所以我采用一个低通滤波器和一个高通滤波的组合来构成一个带通滤波器。

●设计步骤

1)给出滤波器的参数,包括滤波器的阶数和截止频率。

2)使用Matlab带有的函数来产生滤波器butter()。

3)绘制滤波器的幅频响应,看是否满足要求。

6.使用滤波器对高斯白噪声进行处理,产生一个20~120Hz的信号;

由截止频率为120Hz的高通滤波器和截止频率为20Hz的低通滤波组成的带通滤波器;使用该带通滤波器对高斯白噪声进行滤波处理就可以产生一个20~120Hz的信号。

7.将产生的20~120Hz的信号叠加到音频信号上,并绘制处理后的音频信号的频谱;

8.设计滤波器,对叠加噪声的音频信号进行处理,并绘制处理后的音频信号的频谱,最后播放处理后的音频信号。

用与步骤4相同的方法设计一个滤波器,对步骤6产生的音频信号进行滤波处理,再通过sound(x,fs,bits)函数播放。

四、设计结果及分析

图3读入的语音信号时域波形及频谱

图4原始语音经低通滤波后波形及频谱

图5音频信号经高通滤波器后的波形

图6将滤波后的音频叠加到原始音频信号上

图7音频信号经滤波后的信号

在设计中使用带通滤波器对原始音频信号进行滤波,在放大之后叠加音频信号上,使用sound()函数播放叠加后的音乐,发现声音明显浑厚了一些.这样正好能基本反映叠加的效果。

因为20~120Hz是低频分量,在这段分量的幅度明显增加之后,声音自然就浑厚一些了。

最后设计一个滤波器,使音频信号的播放效果与以前没有处理时基本相同,但是在实际设计过程中,应该我是滤波器的特性不够好,导致最后播放的声音中有些许噪声。

五、体会

1、试验中遇到的问题

1)加入噪声信号的过程中,必须保证假如噪声的矩阵维数与输入的音频信号的维数相同,否则会报以下错误:

Errorusing==>plus

Matrixdimensionsmustagree.

Errorin==>Untitled4at4

s=y+noise;%噪声信号的叠加

解决方法:

后来将噪声信号的采样范围改为N行1列(即与音频信号的维数相同后)以后,就得到了正确的结果。

2)使用[x]=wavread('m.wav');sound(x);播放出的音频噪声太多,不清楚。

解决方法:

通过使用matlab中的帮助命令和网上查到了一些相关资料后,如果要把音频播放出来,则需要这样调用函数:

sound(x,fs,bits);用于对声音的回放。

向量y则就代表了一个信号,也就是说可以像处理一个信号表达式一样处理这个声音信号。

最后,改为以下调用方式以后,就可以正常播放了

[x,fs,nbits]=wavread('m.wav');sound(x,fs,bits);

2、实验体会

本设计圆满的完成了对语音信号的读取与打开,与课题的要求十分相符;本设计也较好的完成了对语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;在滤波这一块,课题主要是从巴特沃斯滤波器入手来设计滤波器,也从这一方面基本实现了滤波;同时通过对噪声信号的处理来获得20~120Hz的信号。

本设计是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音的处理。

作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。

在设计中用到了处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。

本设计将语音看作了一个向量,于是语音数字化了,则可以完全利用数字信号处理的知识来解决。

我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。

在设计的过程中我还是遇到不少的问题的,比如刚开始,要处理的是WAV格式的语音信号,可是我发现并不是所有的WAV文件都可以用WAVREAD函数读取的,这才了解到WAV文件之间也是有区别的,并且如果格式不对的话,我们要把格式转换成WAV格式。

刚开始由于对滤波器的滤波原理并不是很了解,于是我又翻出学过的数字信号处理课本,认真研究起各种滤波器了,这才使我明白了大多数滤波器是如何工作地,不再单单只是懂理论,理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论。

总的来说,通过这次的课程设计我对语音信号有了全面的认识,对数字信号处理的知识又有了深刻的理解,让我感受到只有在充分理解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维。

这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。

同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助!

六、参考文献

[1]曹志刚,钱亚生.现代通信原理.清华大学出版社,2009年9月

[2]张威.MATLAB基础与编程入门(第二版).西安电子科技大学出版社,2008年1月

[3]程佩青.数字信号处理教程(第三版).清华大学出版社,2009年11月

[4]刘树棠.信号与系统(第二版).西安交通大学出版社,2008年8月

[5]杨述斌,李永全.数字信号处理实践教程.华中科技大学出版社,2007年1月

[6]陈怀琛,数字信号处理教程——MATLAB释义与实现.电子工业出版社,2004年12月

 

程序附录:

[x,fs,bits]=wavread('ss.wav');

%sound(x,fs,bits);

n=length(x);

X=fft(x,n);

figure

(1)

subplot(211);plot(x);title('原始音频信号波形');

subplot(212);plot(abs(X));title('原始信号频谱幅值');

axis([0,40000,0,500]);

N=6;wc=120/4000;

[b,a]=butter(N,wc,'low');

[h,w]=freqz(b,a);%绘出频率响应曲线

figure

(2);

subplot(3,1,1);

plot(w*8000*0.5/pi,abs(h));

axis([0,500,0,2]);

y=fftfilt(b,x);

Y=fft(y);

subplot(312);plot(y);title('FIR滤波后信号的波形');

subplot(313);plot(abs(Y));title('FIR滤波后信号的频谱幅值');

axis([0,40000,0,500]);

N=6;wc=20/4000;

[b,a]=butter(N,wc,'high');

[h,w]=freqz(b,a);%绘出频率响应曲线

figure(3);

subplot(3,1,1);

plot(w*8000*0.5/pi,abs(h));

axis([0,500,0,2]);

y=fftfilt(b,y);

Y=fft(y);

subplot(312);plot(y);title('FIR滤波后信号的波形');

subplot(313);plot(abs(Y));title('FIR滤波后信号的频谱幅值');

axis([0,40000,0,500]);

y=1000*y;

s=x+y;

S=fft(s,n);

figure(4)

subplot(211);plot(s);title('叠加噪音之后的音频信号波形');

subplot(212);plot(abs(S));title('叠加噪音之后的信号频谱幅值');

axis([0,40000,0,500]);

%sound(s,fs,bits);

%N=6;wc=[300*pi/8000,0.99];

%[b,a]=butter(N,wc,'stop');

N=6;wc=120/4000;

[b,a]=butter(N,wc,'high');

[h,w]=freqz(b,a);%绘出频率响应曲线

figure(5);

subplot(311);

plot(w*8000*0.5/pi,abs(h));

axis([0,500,0,2]);

y=fftfilt(b,s);

Y=fft(y);

subplot(312);plot(y);title('FIR滤波后信号的波形');

subplot(313);plot(abs(Y));title('FIR滤波后信号的频谱幅值');

axis([0,40000,0,4000]);

sound(y,fs,bits);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1