音频信号的硬件处理及软件算法.docx
《音频信号的硬件处理及软件算法.docx》由会员分享,可在线阅读,更多相关《音频信号的硬件处理及软件算法.docx(18页珍藏版)》请在冰豆网上搜索。
音频信号的硬件处理及软件算法
从模拟到数字
音频信号的硬件处理及软件算法
杨森
上海交通大学
电子信息与电器工程学院
仪器科学与工程系
上篇:
音频信号的硬件处理
放大电路概述
放大电路(AMPLIFICATIONCIRCUIT)能够将一个微弱的交流小信号(叠加在直流工作点上),2通过一个装置(核心为三极管、场效应管),得到一个波形相似(不失真),但幅值却大很多的交流大信号的输出。
实际的放大电路通常是由信号源、晶体三极管构成的放大器及负载组成。
根据放大电路的作用可以将其分为:
电压放大电路、电流放大电路和功率放大电路。
根据放大电路的组成元件可以分为晶体管放大电路和场效应管放大电路。
晶体管放大电路的基本形式有三种:
共射放大电路,共基放大电路和共集放大电路;场效应管放大电路基本形式有两种:
共源放大电路,共漏放大电路。
在构成多级放大器时,这几种电路常常需要相互组合使用。
Figure1三极管的三种基本放大电路
放大电路功能
1.增益
放大电路的放大倍数又称增益,它是衡量放大电路放大能力的指标。
根据需要处理的输入和输出量的不同,放大倍数有电压、电流、互阻、互导和功率放大倍数等,其中电压放大倍数应用最多。
在实际电路运用中,诸如音量的放大,音色的调整等等操作,都是通过改变放大电路增益来实现的。
2.滤波
滤波是对波进行过滤的操作。
“波”是一个非常广泛的物理概念,在电子技术领域,“波”被狭义地局限于特指描述各种物理量的取值随时间起伏变化的过程。
该过程通过各类传感器的作用,被转换为电压或电流的时间函数,称之为各种物理量的时间波形,或者称之为信号。
经典滤波的概念,是根据傅立叶分析和变换提出的一个工程概念。
根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。
换句话说,就是工程信号是不同频率的正弦波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。
只允许一定频率范围内的信号成分正常通过,而阻止另一部分频率成分通过的电路,叫做经典滤波器或滤波电路。
实际上,任何一个电子系统都具有自己的频带宽度(对信号最高频率的限制),频率特性反映出了电子系统的这个基本特点。
而滤波器,则是根据电路参数对电路频带宽度的影响而设计出来的工程应用电路。
滤波器按所处理的信号模拟滤波器和数字滤波器两种。
按所通过信号的频段分为低通、高通、带通和带阻滤波器四种。
四种理想滤波器的特性如下:
Figure2理想低通、高通、带通、带阻滤波器
其特征为:
当信号频率大于或小于截止频率后,瞬间衰减到无穷小。
实际电路中的滤波器特性只能趋近于理论值。
以低通滤波器中的巴特沃斯,切比雪夫和贝塞尔滤波器为例,其特性如下图:
Figure3几种低阶滤波器的幅频特性曲线
可以看到,巴特沃斯滤波器具有最平坦的通带,但过渡带不够陡峭。
切比雪夫滤波器带内有起伏,但过渡带比较陡峭。
贝塞尔滤波器过渡带宽而不陡,但具有线性相频特性。
椭圆滤波器不仅通带内有起伏,阻带内也有起伏,而且过渡带陡峭。
一阶和二阶滤波器是比较常用的滤波器,高阶滤波器可由一阶和二阶组合而成。
3.运算
利用晶体管集成而成的运算放大器,可搭建出运算电路,完成多输入电压的加、减、除及积分、微分甚至傅里叶变换的运算。
以下是几种基本运算电路:
Figure4反、同向加法电路
Figure5积分、微分运算电路
放大电路效果器
●音量放大:
使用电压放大电路或功率放大电路(简称功放),实现输入声音电信号的线性放大,以失真小者为优。
下图为运用集成运算放大器LM386芯片搭建的简易功放电路,通过调节左侧的电位器可改变喇叭音量。
Figure6基于LM386芯片的运放电路
●噪声门:
使用滤波器将设定的噪声频率过滤后得到较为清晰的声音。
●均衡器:
使用多个滤波器将原信号滤波后分别输入放大电路施加增益。
对于自然界的各种声音,由于其由不同频率的声波混合而成,因此可以改变音色。
●延时器:
使用延时器可以使输入信号相位改变,因此输出信号为输入信号延后一个时间t后的输出。
延时器可以产生回音效果,产生模拟立体声,丰富听觉体验。
Figure7基于CS4224芯片的延时器电路
●失真器:
使用特殊的放大电路,使三极管或场效应管等放大特性元件工作在饱和区而非放大区,造成信号失真放大,改变源信号波形,寻求特殊的音色变化。
Figure8三极管的伏安特性曲线
Figure9三极管的失真状态
Figure10饱和失真波形
Figure11交越失真波形
●变调器:
使用调频电路对输入信号进行等幅调制,即不改变信号振幅仅调制频率。
由于震动频率改变,所以音调会相应发生改变。
下篇:
音频信号的软件算法
数字信号处理概述
数字信号处理是用数值计算的方式对信号进行加工的理论和技术,英文简称为DSP:
DigitalSignalProcessing或DigitalSignalProcessor(数字信号处理器,它是集成专用计算机的一种芯片,只有一枚硬币那么大)。
有时人们也将DSP看作是一门应用技术,称为DSP技术与应用。
数字信号处理软件
1.MatLab
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
使用Matlab中的特定函数,可完成前文述及的各类模拟电路信号处理,结果精确、成本低廉。
常用滤波器及算法命令如下:
abs(求幅值)angle(求相角)conv(求卷积)freqz(数字滤波器频率响应)impz(数字滤波器的冲击响应)zplane(数字系统零极点图)IIR滤波器设计:
butter(巴特沃思数字滤波器)cheby1(切比雪夫I型)cheby2(切比雪夫II型)maxflat(最平滤波器)ellip(椭圆滤波器)yulewalk(递归数字滤波器)bilinear(双线性变换)impinvar(冲激响应不变法)FIR滤波器设计:
triang(三角窗)blackman(布莱克曼窗)boxcar(矩形窗)hamming(海明窗)hanning(汉宁窗)kaiser(凯塞窗)fir1(基于窗函数法)fir2(基于频率抽样法)firrcos(上升余弦FIR滤波器设计法)intfilt(内插FIR滤波器设计法)kaiserord(用Kaiser窗设计FIR滤波器的参数估计)各种变换:
czt(线性调频Z变换)dct(离散余弦变换)fft(一维快速傅里叶变换)fft2(二维快速傅里叶变换)idct(逆离散余弦变换)ifft(一维逆快速傅里叶变换)ifft2(二维逆快速傅里叶变换)hilbert(Hilbert变换)
下文引入用Matlab编程语言完成的数字巴特沃斯高通IIR滤波器:
fp=400;fs=300;
Rp=1;%通带最大衰减Rp=1dB
Rs=20;%阻带最小衰减Rs=20dB
wp=fp*2*pi;%把数字域滤波器特征换成模拟滤波器特征
ws=fs*2*pi;
FS=1000;T=1/FS
%归一化数字频率
Wp=wp/(FS);
Ws=ws/(FS);
%频率预畸变:
数字域频率
wp2=2*tan(Wp/2)/T;%预畸变求滤波器通带临界频率
ws2=2*tan(Ws/2)/T;%预畸变求滤波器阻带临界频率
%设计模拟滤波器
[N,Wn]=buttord(wp2,ws2,Rp,Rs,'s')
[z,p,k]=buttap(N);%创建Buttord低通滤波器原型
[Bap,Aap]=zp2tf(z,p,k);%由零极点转换为传递函数的形式
figure
(1)
freqs(Bap,Aap);%模拟低通滤波器的频率响应
title('模拟滤波器(低通原型)的频率响应')
[Bbs,Abs]=lp2hp(Bap,Aap,Wn);%模拟低通变高通
figure
(2)
freqs(Bbs,Abs);
title('模拟滤波器的频率响应')
%用双线性不变法变换成数字滤波器
[Bbz,Abz]=bilinear(Bbs,Abs,FS);%双线性变换
%求其频率响应
figure(3)
freqz(Bbz,Abz,512,FS);
title('数字滤波器的频率响应')
%详细显示数字滤波器的幅频响应
[hw,w]=freqz(Bbz,Abz,512);
figure(4)
plot(w/pi,20*log10(abs(hw)));
grid
axis([0,1,-200,10])
title('ButterworthTypeHighpassDigitalFilter')
xlabel('w/pi');
ylabel('幅度(dB)');
%下面将笔算的结果仿真
wp=0.8*pi;
ws=0.6*pi;
OmegaP=2*1000*tan(wp/2);
OmegaS=2*1000*tan(ws/2);
lamdas=OmegaP/OmegaS;
N=0.5*log10((10.^(20/10)-1)/(10.^(1/10)-1))/log10(lamdas);
%笔算的结果为N=3.6947;故取N=4
%此处为计算高通的传递函数
Wn=4.8890e+003
az=[00001];
bz=[12.6133.414,2.613,1];
[Bbs,Abs]=lp2hp(az,bz,Wn)
%用双线性不变法处理í
[Bbz,Abz]=bilinear(Bbs,Abs,1000);
%画图
[hw,w]=freqz(Bbz,Abz,512);
figure(5)
plot(w/pi,20*log10(abs(hw)));
grid
axis([0,1,-200,10])
set(gca,'XTickMode','manual','XTick',[0,Ws/(pi),Wp/(pi),1]);grid
set(gca,'YTickMode','manual','YTick',[-200,-Rs,-Rp,10]);grid
title('理论计算的滤波器的幅频响应')
xlabel('w/pi');
ylabel('幅度(dB)')
可以看出,只要熟悉Matlab的各种命令,编译出信号处理的软件程序无需焊接过多的硬件,避免了很多麻烦,且结果更加精确稳定。
对于高阶电路的仿真意义非凡!
Figure12Matlab
2.LabVIEW
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
使用LabVIEW自带的椭圆函数滤波器可以搭建出数字均衡器。
只要结合硬件前端(声卡和调理电路)完成采样,所有的数字处理工作都由计算机软件完成,省去了以往模拟电路硬件不易携带、电磁干扰、布线困难和散热等问题。
Figure13滤波前和滤波后的波形(100HZ附近波形明显不同)
Figure14笔者基于LabVIEW搭建的EQ均衡器
Figure15自制均衡器用户界面
专业音频处理软件导览
●Audition
AdobeAudition是一个专业音频编辑和混合环境,原名为CoolEditPro。
被Adobe公司收购后,改名为为AdobeAudition。
Audition专为在照相室、广播设备和后期制作设备方面工作的音频和视频专业人员设计,可提供先进的音频混合、编辑、控制和效果处理功能。
最多混合128个声道,可编辑单个音频文件,创建回路并可使用45种以上的数字信号处理效果。
Audition是一个完善的多声道录音室,可提供灵活的工作流程并且使用简便。
无论是要录制音乐、无线电广播,还是为录像配音,Audition中的恰到好处的工具均可为您提供充足动力,以创造可能的最高质量的丰富、细微音响。
Figure16AdobeAudition软件
Figure17Auditon工作界面
●Nuendo
Figure18Nuendo软件
Nuendo是音乐创作和制作软件工具的最新产品。
Steinberg积累了近15年的发展经验,将音乐家的所有需要和最新技术都浓缩到了最先进的nuendo之中。
有了nuendo,用户不再需要任何其它昂贵的音频硬件设备、不再需要频繁更新音频硬件设备就能获得非常强大的音频工作站。
nuendo不仅是一种系统,它远比单一的系统更全面且更灵活,比如由nuendo所支持的VSTSystemLink技术,使得用户能够通过多台计算机的相互联接以形成庞大的系统工程,从而可以完成巨量数据的Project任务。
此外,由nuendo提供了许多强大的功能,比如支持VST2.0Plug-ins、虚拟Instrument以及ASIO2.0兼容音频硬件的智能化自动MIX处理;非常灵活多样的无限级Undo/Redo操作、能够以Undo记录的任何步骤来取消或修改所作的任何音频编辑处理操作;支持SurroundSound并能为其它系统SurroundSound处理提供更多的声音处理方案。
Figure19Nuendo工作界面
参考文献:
《模拟电子技术》
《数字信号处理》
XX百科:
●滤波器
●数字信号处理
●Matlab
●LabVIEW
●Auditon
●Nuendo
鸣谢:
感谢胡慈洲老师对于本课程的讲解。