数字均衡器(matlab).doc

上传人:cn****1 文档编号:560177407 上传时间:2023-04-06 格式:DOC 页数:12 大小:432.01KB
返回 下载 相关 举报
数字均衡器(matlab).doc_第1页
第1页 / 共12页
数字均衡器(matlab).doc_第2页
第2页 / 共12页
数字均衡器(matlab).doc_第3页
第3页 / 共12页
数字均衡器(matlab).doc_第4页
第4页 / 共12页
数字均衡器(matlab).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《数字均衡器(matlab).doc》由会员分享,可在线阅读,更多相关《数字均衡器(matlab).doc(12页珍藏版)》请在金锄头文库上搜索。

1、工程数字信号处理与实践摘要本文的数字均衡器以MATLAB为设计平台,有.wav文件的获取、滤波、保存和播放功能。在对声音文件进行基本波形分析和频率分析的基础上,增加了高通、低通、带通和带阻滤波的功能,并有8段均衡器可对声音信号进行调节后保存播放。关键词:滤波器、数字均衡器、傅立叶反变换1第一章 概述1.1 均衡器简介均衡器是一种用来对频响曲线进行调节的音频设备,换名话说,均衡器能对不同频率的声音信号中过多的频率成分。因此,它能补偿由于各种原因造成的信号欠缺的频率成分,也能抑制信号中过多的频率成分。例如,均衡器可以抑制频率为60250Hz的低频交流声,也可以抑制频率为612kHz的高频噪声;利用

2、均衡器还可以进行音调调节和音色加工。均衡器的原意是将传输系统中不平衡的频率特性用相反的特性曲线进行频率均衡,在此基础上增加了音色加工和美化的功能。均衡器的作用主要如下。 校正各种音频设备产生的频率失真,以获得平坦响应。 改善室内声场,改善由于房间共振特性或吸声特性不均匀而造成的传输增益(频率)失真,确保其频率特性平直。 抑制声反馈,提高系统传声增益,改善扩声音质。 提高语言清晰度和自然度。 在音响艺术创作中,用于刻画乐器和演员的音色个性,提高音响艺术的表现效果。 均衡器的种类很多,但基本上工作原理都是相同的。它们都是将音频信号的全频带(20Hz20kHz)或全频带的主要部分,按一定的规律分成几

3、个甚至几十个频点(也称频段),再利用LC串联谐振的选频特性,分别进行提升或衰减,从而获得所希望的频率校正曲线。运用数字滤波器组成的均衡器称为数字均衡器,数字均衡器即可作成图示EQ,有可做成参量EQ,还可以做成两者兼有的EQ,它不仅各项性能指标优异,操作方便,而且还可同时储存多种用途的频响均衡特性,供不同节目要求选用,可多至储存99种频响特性曲线。SONY的SRP-E300是一款多功能2通道的数字均衡器具有10段参量均衡和29段图示均衡,可同时或独立工作,带有限制器和噪声门功能,高精度的48kHz取样,20比特线性模数/数模转换;带有模拟和数字输入/输出;RS-232C C接口,可用于外部遥控,

4、它的出现会逐步淘汰普通的模拟均衡器,是一款专业音频扩声领域具有极高性价比的产品。另在网上搜得多款数字均衡器,比较典型的有一款型号为xb-66012的数字均衡器,如图1-1所示。它的性能特点如下:微电脑控制,轻触式操作;14段数控图示均衡;5种均衡模式记忆;内置噪声门及压限器;电平指示,一目了然。图1-1 xb-66012数字均衡器另外,我们经常用的还有wimap播放器,以及千千静听等常用音乐播放软件都有均衡器的功能,界面如图1-2所示。图1-2 千千静听播放器中的均衡器1.2 数字均衡器的设计要求本设计是以MATLAB为开发平台,要实现的目的是:1、 WAV声音信号获取;2、 八段数字均衡器的

5、设定;3、 对声音信号进行滤波;4、 对声音信号进行保存;5、 播放声音信号。八段滤波器能够对以下几个频率段进行滤波,的音感特征如下所示:30100Hz(沉重);100200Hz(丰满);200500Hz(力度);5001KHz(明朗);1K2KHz(透亮);2K4Kz(尖锐);4K8Kz(清脆);8K16Kz(纤细)。可以调出不同的音效,有很广泛的应用。第二章 技术路线2.1 相关原理2.1.1 数字滤波器的基本概念数字滤波器(Digital Filter,简称DF)是数字信号处理的重要基础,在对信号的过滤、检测与参数估计等处理过程中,它是使用最为广泛的一种线性系统。数字滤波器是指完成信号滤

6、波处理功能的、用有限精度算法实现的离散时间线性非时变系统。其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过数字变换的另一组数字量。数字滤波具有稳定性高、精度高、灵活性大等突出优点。数字滤波器的数学运算通常有两种实现方式。一种是频域法,即利用FFT快速运算办法对输入信号进行离散傅立叶变换,分析其频谱,然后根据所希望的频率特性进行滤波,再利用傅立叶反变换恢复出时域信号。这种方法具有较好的频域选择性和灵活性,并且由于信号频率与所希望的频谱特性是简单的相乘关系,所以它比计算等价的时域卷积要快得多。另一种方法是时域法,这种方法是通过对离散抽样数据做差分数学运算来达到滤波目的的。本文用的是前一种

7、方法。2.1.2 滤波器的原理滤波器就是对系统的输入信号进行滤波。输入x(n)和输出y(n)之间的关系是脉冲响应h(n),即 公式2-1如果滤波器的输入输出都为离散信号,那么该滤波器的脉冲响应也应该是离散信号,这样滤波器就成为了数字滤波器。上面的系统为时域离散系统时,其频域特性为 公式2-2其中、分别是数字滤波器的输出序列和输入序列的频域特性,是数字滤波器的频域响应。可以看出,输入序列的频谱经过滤波后变成了;因此按照输入信号频谱的特点和处理信号的目的适当选择,使得滤波后的满足设计性能要求。在MATLAB中主要有Filter函数、Filtfilt函数等滤波函数。重点介绍一下Filter函数,在本

8、设计中有较多的应用。Filter函数该滤波器的标准差分方程为 公式2-3如果不为1,那么滤波器的系数将用进行归一化处理,即各系数同除以。2.2 数字均衡器功能简介本设计是建立在MATLAB基础上的数字均衡器,有三个图形窗口,可以分别显示波形、频谱和滤波后的频谱。有三个模块可分别对WAV文件进行基础分析、均衡滤波和一般性滤波(高通、低通、带通和带阻滤波)。其界面如图2-1所示。图2-1 数字均衡滤波器界面主要分为4个模块:模块一:图形显示模块:有三个图形显示窗,可对声音信号波形、频谱和滤波后的频谱进行显示。模块二:基本分析模块:有打开文件、播放文件并进行频谱分析的基本分析功能。模块三:均衡器模块

9、:通过8个滚动条对8个频率段进行控制,并可以保存调整好的文件显示波形并播放。模块四:滤波器模块:有低通、高通、带通和带阻4种滤波功能,并在图形模块里显示和原频谱图对比。下面将详细介绍各个模块的功能和技术线路关键。2.3 技术线路关键2.3.1 基本分析模块模块功能:可实现打开WAV文件播放,并对文件进行时域和频域分析。该模块界面如图2-2所示图2-2 基本分析模块调用函数name,file = uigetfile(*.wav,select);打开WAV文件,读取波形数据以后把数据保存在一个全局变量cash 里,可在后面反复调用。图2-3 文件选择2.3.2 均衡器模块模块功能:可对8个频率段的

10、频率进行调节,以改变音频效果。打开文件后处理前波形和频率如图2-4(a)所示,然后从滚动条上获得一个系数值对声音进行变换,效果如图2-4(b)所示。 (a) (b)(c)图2-4 声音信号的处理对比8个滚动条分别对8个频率段进行处理,每个滚动条的值都是从0到1,初始值为0.5。这一部分的原理是将采样点N分成0()和N两部分,两部分之间对应相等。然后对滚动条上的值进行对应处理,实现程序如下:global cash; y=cash; 获得全局变量值Fs=22000;t=str2double(get(handles.time,String);N=2ceil(log2(Fs*t); 获得采样点的值P=

11、fft(y,N);Pyy=2*sqrt(P.*conj(P)/N;f=Fs*(0:N/2-1)/N;f(N/2+1:N)=f(N/2:-1:1); 采样点分段n=8;fmax=max(f); 在频率值中寻找最大值if fmax30s=get(handles.s1,Value); 从滚动条1获得一个0-1之间的值,但只能缩小该频段声音信号 a=find(f=30 & f100 对100-200Hz信号的处理 s=get(handles.s3,Value); a=find(f=100 & f200 对200-500Hz信号的处理 s=get(handles.s4,Value); a=find(f=

12、200& f=500); b=(s*2)n; Pyy(a)=Pyy(a)*b;P(a)=(P(a).*b).*b;end(下略)信号处理完后,可点击“均衡调节”按钮,将调整好的信号反变换到波形中去。然后点击“保存”按钮,调用uiputfile将文件保存到指定路径里。global save; %save是变换后的波形wavwrite(save,save.wav);file,path = uiputfile(save.wav,Save file name);点击“播放”按钮即可将调整后的WAV文件进行播放。2.3.3 滤波器模块模块功能:可实现信号的低通、高通、带通和带阻滤波。通过调用函数butt

13、er和filter来实现不同的滤波功能。以低通为例,程序如下:global cash;x=cash;Fs=22000;t=str2double(get(handles.time,String);N=2ceil(log2(Fs*t);Fc=str2double(get(handles.edit1,String);n=8;Wn=Fc/(Fs/2);b,a=butter(n,Wn,low);y=filter(b,a,x);P=fft(y,N);Pyy=2*sqrt(P.*conj(P)/N;f=linspace(0,Fs/2,N/2);plot(f,Pyy(1:N/2);高通滤波将b,a=butter(n,Wn,low);里的low改成high即可,带通和带阻中的Wn为一个二元数组Wn=Fc1/(Fs/2),Fc2/(Fs/2);Fc1和Fc2分别从两个文本框中获得,然后再将butter里设为bandpass和stop。各滤波后的频率如图2-5所示。 (a)低通滤波 (b)高通滤波

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号