江伟欢
(广东省建设工程质量安全检测总站有限公司,广州 510500)
扩声特性指标是反映各类扩声系统扩声性能的一组指标参数。扩声系统包括会议类、文艺演出类、广播类、会议电视会场类等七大类系统。扩声特性指标包括最大声压级(峰值)、传输频率特性、传声增益、稳态声场不均匀度、语言传输指数(STIPA)、系统总噪声级、总噪声级、早后期声能比(可选项)。其中,最大声压级、语言传输指数等指标参数的测量数据较少,计算过程也较简单,可以用计算器等简单的计算工具进行计算;但传输频率特性、声场不均匀度、传声增益、系统总噪声级等参数的测量数据多,计算还需要画曲线图对测量结果进行表示,过程复杂,因此一般是使用Excel辅助完成数据的处理而非人工处理,但使用Excel进行辅助分析时,又存在工作量大、费时、人员工作负担重、容易出现因主观疏忽导致的错误,以及不能现场处理数据、不能现场指导整改等问题。为了解决这些问题,本文提出了使用计算机软件技术设计数据处理软件用于扩声特性测量数据的处理,可实现数据的自动处理。
(1)使用ASP.NET 4.0作为技术支撑平台进行开发,使用Visual Studio作为开发平台,采用C#作为编程语言。(2)根据功能需要开发数据导入模块、数据处理模块、绘图模块、分析判定模块、Word操作模块、报告生成导出模块等。(3)综合分析各标准规范对各类系统的扩声特性指标的要求,建立统一的模型对各类系统的判定依据进行数据化,实现自动判定;将判定依据保存在文件中,使用一个文件保存一类系统的判定依据。(4)使用GDI+技术实现曲线图形绘制。(5)导出的报告文件格式使用Word格式,通过载入Office组件,调用Microsoft Word 应用程序提供的接口实现文档的创建和数据、表格、图形的写入,生成报告。
扩声特性指标数据处理软件需要包括数据导入模块、数据处理模块、分析判定模块、绘图模块、报告模块和数据呈现模块六个模块和测量数据对象、判定标准对象两个数据对象。
(1)用户执行导入操作时,调用数据导入模块从文件中提取测量数据,调用数据处理模块对测量数据进行处理得到处理结果,分析判断模块根据处理结果,结合判定依据数据判定指标等级,绘图模块将处理结果和指标等级的数据进行曲线绘制。(2)通过调用数据呈现模块的功能将相关数据和图形在软件界面显示。(3)需要导出报告时,执行导出操作,程序调用报告生成模块将测量数据、处理结果、分析判定结果和曲线等写入Word文档形成报告;Word文档的生成通过调用Microsoft Word 应用程序提供的接口实现文档的创建和数据写入。在各个流程中通过数据对象对数据进行保存和传递。软件结构如图1所示。
图1 软件结构示意图
测量数据类型是保存测量数据的公共对象,包括传输频率特性等指标参数的测量数据、处理结果数据、分析判定数据和曲线图形数据,其类型结构如图2所示。
图2 测量数据类型
(1)判定标准对象:包含系统类型、判定方法、判定标准等信息。(2)传输频率特性数据对象:包含传输频率特性的测点数、测量数据、处理结果、判定结果等信息。(3)传声增益数据对象:包含传声增益的测点数、测量数据、处理结果、判定结果等信息。(4)系统总噪声级数据对象:包含系统总噪声级的测点数、测量数据、处理结果、判定结果等信息。(5)曲线图形对象:包含曲线图形数据。
判定标准数据类型用于表示判定标准数据,其类型结构如图3所示。
图3 判定标准数据类型
(1)判定标准对象:包含系统类型、判定方法、判定标准等信息。(2)传输频率特性判定对象:包含传输频率特性频点、各级指标的上下限等信息。(3)声场不均度判定对象:包含声场不均度频点、各级指标的上下限等信息。(4)传声增益判定对象:包含传声增益频点、各级指标的上下限等信息。(5)系统总噪声级判定对象:包含系统总噪声级频点、各级指标的上下限等信息。
该模块提供通过分析从测量仪器导出的数据文件格式特点,从中提取测量数据,并将数据保存到测量数据对象中的对应变量中的功能。从仪器导出的数据文件包含每个测点的测量数据,即该测点所有频率范围内声压级,包括从6.3Hz到20 000.0Hz 所有1/3倍频程的36组数据,根据文件内容的特点编程实现自动从中提取测量数据。
数据处理模块提供对四个指标参数的测量数据进行处理计算得到指标值的功能。包括四个指标的数据处理功能。
(1)传输频率特性数据的处理
传输频率特性的计算需根据式(1)使用各频段在各测量点的声压值计算各频段的综合声压。
(1)
(2)声场不均匀度数据的处理
声场不均匀度可以和传输频率特性共用测量数据,需要分别计算1 000Hz,2 000Hz和4 000Hz等频段在各测量点中的最大值和最小值之差即声场不均匀度。计算如式(2)~(3)所示:
Δf1k=L1kmax-L1kmin
(2)
Δf4k=L4kmax-L4kmin
(3)
(3)传声增益数据处理功能
传声增益的数据包括传声器处测得的一组各频段的声压值,及在听众区的若干个测点分别测得的各频段的声压值。
首先使用传声器处的测量值根据公式(4)计算传声器处的宽频声压Lw1。
(4)
式中,Lw为宽频声压;Lf1…LfM为各频段声压值;M为频段数。
再计算听众区的综合宽频声压,首先利用公式(1)计算各频段的综合声压,这个过程与传输频率特性的计算过程类似,再将综合声压数据代入公式(4)计算听众区的综合宽频声压,则传声增益计算式如式(5)所示为:
Z=Lw2-Lw1
(5)
(4)系统总噪声级数据处理功能
系统总噪声级指标使用噪声评价参数NR的值表示。该指标的测量数据是在若干测量点测得的1/1倍频程各频段的声压值,首先需要使用式(1)计算各频段的综合声压,噪声评价参数NR和各频段的综合声压的关系如式(6)所示。各频段计算的最大NR值即系统总噪声级指标值。
(6)
式中,NFf为在频段f的噪声评价参数;Lf为频段f的声压值;a, b常数与各频段的关系如表1所示。
噪声评价参数计算常数和频带的关系表 表1
该模块提供通过指标等级要求和数据处理结果判定各参数达到的指标等级的功能。GB 50526-2010《公共广播系统工程技术规范》对各种广播系统(包括业务广播系统、背景广播系统和紧急广播系统)的扩声特性指标进行了规定;GB 50635-2010《会议电视会场系统工程设计规范》对会议电视会场系统的扩声特性指标作了规定;GB/T 28049-2011《厅堂、体育场馆扩声系统设计规范》、JGJ/T 131-2012《体育场馆声学设计及测量规程》对多功能类系统、文艺演出类系统、会议类系统、体育场扩声系统的扩声特性指标作了规定。表2是标准对会议系统的扩声特性指标要求。
根据各指标参数处理结果判断各参数达到的指标等级,取各个参数的指标等级中最小者为该对象扩声特性的综合等级。
为了能用一致的方法进行调用,实现自动判定,综合分析各个相关的标准对各类系统的扩声特性指标的要求,基于文本文件设计了统一的模型对各类系统的判定标准进行数据化,图4是部分判定标准数据模型,其中“ ”表示制表符。
图4 部分判定标准数据模型
设计时,将在软件目录下建立判定依据文件夹,将判定依据保存在文件中,使用一个文件保存一类系统的判定依据,软件启动时,自动识别各系统类型,增加到类别列表。
会议类扩声特性指标要求 表2
绘图模块主要是提供绘制传输频率特性的数据曲线图的功能。绘制的内容包括坐标轴及其刻度和值、网格线、传输频率特性曲线、达到的指标等级的上下限界线,如图5所示。
图5 绘制的传输频率特性曲线
绘图功能主要使用GDI+技术实现。GDI+提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维的图形和图像,使用DirectX处理三维的图形图像。图形图像处理用到的主要命名空间是System.Drawing,提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等。使用GDI+需要使用命名空间:using System.Drawing。
(1)画板的创建
要画图首先要有画板,画板可以通过Graphics这个类来创建。创建一个画板主要有3种方式:1)在窗体或控件的Paint事件中直接引用Graphics对象。2)利用窗体或某个控件的CreateGraphics方法。3)从继承自图像的任何对象创建Graphics对象。如在Paint事件中创建画板:Graphics g=e.Graphics;使用CreateGraphics方法创建画:板Graphics g=this.CreateGraphics()。
(2)画笔的创建
有了画板之后,还需要画笔,画笔使用Pen类定义,创建画笔时可以同时指定画笔颜色和画笔宽度,如创建一支蓝色、画痕宽度为2像素的画笔:Pen p=new Pen(Color.Blue, 2);定义画笔的线型样式,本软件主要使用两种线型:短划虚线、长短划虚线和实线。其中,短划虚线画笔设定:p.DashStyle=DashStyle.Dot。长短划虚线画笔设定:float[] dashValues={4,4,12,4}; //即短划长度为4,长划长度为12,间隔是都4,p.DashPattern=dashValues;实线画笔设定:p.DashStyle=DashStyle.Solid。
(3)图形绘制
有了画板和画笔后就可进行图形的绘制,本软件需要绘制的曲线图形可以由直线、曲线(曲线可由多段直线表面)、矩形、圆和点(点可由小直径的圆表达)等图形单元组成。
画直线:g.DrawLine(p, 10, 10, 100, 100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)。画矩形:g.DrawRectangle(p, 10, 10, 100, 100);//在画板上画矩形,起始坐标为(10,10),宽为100,高为100。画圆形:g.DrawEllipse(p, 10, 10, 100, 100);//在画板上画椭圆,起始坐标为(10,10),外接矩形的宽为100,高为100。
该模块提供将各参数的测量数据、处理结果、分析判定结果和曲线等写入Word文档形成报告;Word文档的生成通过调用Microsoft Word 应用程序提供的接口实现文档的创建和数据写入。主要函数接口如下所示。
应用对象建立:
private Microsoft.Office.Interop.Word.Application _wordApplication;
_wordApplication=new Microsoft.Office.Interop.Word.ApplicationClass();
word对象建立:
pivate Microsoft.Office.Interop.Word.Document _wordDocument;
_wordDocument=_wordApplication.Documents.Open(ref fileobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);
添加文本:
_wordApplication.Selection.TypeText(string text);
添加图片:
_wordApplication.Selection.InlineShapes.AddPicture(string pic, ref missing, ref missing, ref missing);
添加表格:
_wordApplication.ActiveDocument.Tables.Add(_wordApplication.Selection.Range, 2, 2, ref missing, ref missing);
保存文件:
_wordDocument.SaveAs(ref myFileName, ref myWordFormatDocument, ref myLockd, ref myPassword, ref myAddto, ref myPassword, ref myLockd, ref myLockd, ref myLockd, ref myLockd, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
软件界面如图6所示。界面分为顶部的操作区和下面的数据显示区。操作区又分为导入数据、判定设置和导出报告三个操作区。导入数据区提供对各个指标参数测量数据的导入操作。判定设置区提供判定标准和判定方式的设定。判定标准可以选择判定依据的标准和系统类型。判定方式包括自动和手动判定。自动判定模式下,软件自动判定系统能达的最高等级;手动判定模式下,需要设定等级指标,软件自动判定系统是否达到指定等级指标要求。导出区提供导出内容的选择及报告导出操作。
图6 软件主界面