基于DSP平台的小波去噪技术优化涡街流量计测量精度的深度剖析_第1页
基于DSP平台的小波去噪技术优化涡街流量计测量精度的深度剖析_第2页
基于DSP平台的小波去噪技术优化涡街流量计测量精度的深度剖析_第3页
基于DSP平台的小波去噪技术优化涡街流量计测量精度的深度剖析_第4页
基于DSP平台的小波去噪技术优化涡街流量计测量精度的深度剖析_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于DSP平台的小波去噪技术优化涡街流量计测量精度的深度剖析一、引言1.1研究背景与意义在现代工业生产中,精确的流量测量对于保障生产流程的高效运行、优化资源利用以及确保产品质量起着关键作用。涡街流量计作为一种基于卡门涡街原理的速度式流量测量仪表,自20世纪70年代在我国发展起来后,凭借其性能可靠、无传动部件、量程比宽、适用范围广、压力损失小等诸多优点,在石油、化工、冶金、电力、食品和饮料等众多行业得到了广泛应用。在石油化工行业,它用于精确测量各种原料和产品的流量,确保化学反应的精准控制和产品质量的稳定性;在能源领域,无论是石油、天然气的开采输送,还是发电厂蒸汽和冷却水的流量监测,涡街流量计都发挥着不可或缺的作用,为能源的合理分配和高效利用提供关键数据支持。然而,在实际工业应用环境中,涡街流量计的测量精度常常受到多种噪声的严重干扰。工业现场存在大量的机械设备,这些设备的运转会产生强烈的机械振动,当管道振动的频率与涡街信号的频率接近时,就会对涡街信号产生干扰,甚至完全淹没有用信号;流场的不稳定也是一个常见问题,例如管道内的流速不均匀、存在涡流等,都会导致涡街流量计输出信号的波动,从而影响测量精度;电磁干扰同样不可忽视,现代工业中广泛使用的电气设备、通信设备等都会产生电磁场,这些电磁场可能会耦合到涡街流量计的信号传输线路中,引入噪声干扰。这些噪声的存在使得涡街流量计输出信号中含有不可忽略的高频、低频和随机干扰成分,严重影响了信号的质量和测量的准确性。特别是在测量小流量时,由于产生的信号本身就比较微弱,噪声的影响更加显著,常常难以将有用信号与噪声区分开来,给测量带来极大的困难,导致实际测量精度难以达到指标规定的要求,进而影响生产过程的精确控制和产品质量的稳定,增加生产成本,降低生产效率。为了有效解决噪声对涡街流量计测量精度的影响,小波去噪技术和数字信号处理器(DSP)技术应运而生并逐渐应用于涡街流量计的信号处理中。小波去噪技术作为数字信号处理领域的先进技术,具有多分辨率分析的特点,能够对信号进行不同尺度的分解,从而有效地分离出信号中的噪声成分,在保留有用信号特征的同时去除噪声,提高信号的信噪比。将小波去噪技术应用于涡街流量计信号处理,能够显著提高信号的质量,为准确测量流量提供可靠的数据基础。DSP技术则具有高速运算和实时处理能力,能够快速对采集到的涡街信号进行处理和分析。利用DSP强大的计算能力,可以实时实现复杂的小波去噪算法,保证信号处理的实时性,满足工业现场对流量测量实时性的要求。通过将小波去噪技术与DSP技术相结合,不仅可以提高涡街流量计的测量精度,还能扩大量程范围,增强其在复杂工业环境中的适应性和可靠性,为工业生产过程的精准控制和优化提供有力支持,对于提高工业生产效率、降低生产成本、保障产品质量具有重要的现实意义。1.2国内外研究现状在涡街流量计信号处理方面,国内外学者和研究机构开展了大量的研究工作。早期的研究主要集中在对涡街信号的基本特性分析以及简单的滤波处理上,旨在去除一些明显的噪声干扰。随着工业生产对测量精度要求的不断提高,研究逐渐深入到对复杂噪声环境下涡街信号的处理方法探索。一些研究通过建立涡街信号的数学模型,深入分析信号在不同工况下的特征,为后续的信号处理提供理论基础。针对周期性脉动流时产生的“锁定现象”,有研究采用自适应陷波方法来跟踪涡街信号频率,利用解调原理计算脉动频率,并建立噪声模板判定涡街信号中的噪声情况,取得了一定的效果。在小波去噪技术应用于涡街流量计方面,国外起步相对较早,一些研究提出了多种小波阈值选取方法,并通过实验验证了小波去噪在提高涡街信号质量和测量精度方面的有效性。国内学者也在这一领域进行了积极探索,在常规软、硬阈值方法的基础上提出了一系列改进的小波阈值选取方法,通过MATLAB软件仿真实验表明,这些方法对涡街信号提取和噪声去除效果良好,有利于扩大涡街流量计的量程范围,提高测量精度。有研究提出一种基于小波变换和奇异值分解的联合去噪方法,将两者的优势相结合,进一步提高了去噪效果。在DSP应用于涡街流量计信号处理方面,国内外均取得了显著进展。国外一些先进的涡街流量计产品已经广泛采用DSP技术,实现了信号的快速处理和实时传输,同时集成了智能化功能,如自诊断、远程监控和数据记录等,提高了设备的可靠性和便捷性。国内也在不断加大对DSP技术在涡街流量计中应用的研究和开发力度,通过设计基于DSP的硬件系统和相应的软件算法,实现了对涡街信号的高效处理和精确测量。有研究设计了基于TMS320F2812DSP的数字涡街流量计,采用双通道处理方式,将低流量下数字信号处理的频谱分析功能和正常流量范围内智能涡街的计频功能有机结合,有效降低了涡街的流量下限,扩展了量程比,并通过实验验证了其抗振性能在同类仪表中具有一定优势。目前,涡街流量计信号处理、小波去噪及DSP应用的研究呈现出多技术融合、智能化和高精度的发展趋势。未来的研究将更加注重在复杂工况下提高涡街流量计的测量精度和可靠性,进一步优化小波去噪算法和DSP处理流程,实现更加智能化的信号处理和流量测量,同时加强与物联网、大数据等新兴技术的融合,为工业生产提供更加全面、准确的流量监测和分析服务。1.3研究内容与方法本研究旨在深入探究基于DSP的小波去噪在涡街流量计中的应用,以提高涡街流量计在复杂工业环境下的测量精度和可靠性。具体研究内容包括以下几个方面:涡街流量计工作原理与信号特性分析:详细阐述涡街流量计的工作原理,基于卡门涡街原理,当流体流经旋涡发生体时产生交替的旋涡,其频率与流速成正比,从而通过检测旋涡频率计算流量。深入分析涡街传感器输出信号在理想和实际工况下的特性,研究在管道振动、流场不稳定和电磁干扰等因素影响下,信号中高频、低频和随机干扰的产生机制和表现形式。小波分析基本理论与去噪算法研究:系统研究小波分析的基本理论,包括傅里叶分析与小波分析的对比,小波变换(连续小波变换、离散小波变换)的原理和特点,多分辨率分析及Mallat算法的实现过程。重点研究小波阈值去噪法,包括去噪基本原理,对信号进行小波分解后,通过设定阈值对小波系数进行处理,去除噪声对应的小波系数,再进行小波重构得到去噪后的信号;研究阈值处理方法及改进方案,分析传统软、硬阈值方法的优缺点,并在其基础上提出适合涡街信号的改进阈值选取方法。基于DSP的硬件系统设计:选择合适的DSP芯片,如TMS320LF2407,详细介绍其功能结构、存储器和I/O空间。设计基于DSP的涡街变送器硬件系统,包括电源模块,为整个系统提供稳定的电源;前置放大器,对传感器输出的微弱信号进行放大;时钟与复位电路,确保系统的时钟同步和正常复位;键盘电路,用于参数设置和操作控制;LCD显示电路,实时显示流量等测量数据;DAC,将数字信号转换为模拟信号;外扩数据/程序RAM,增加系统的数据存储和程序运行空间;串行EEPROM接口电路,用于存储重要参数和数据;串行通信电路和CAN通信接口电路,实现与上位机或其他设备的数据通信。基于DSP的软件系统设计:设计基于DSP的涡街变送器软件系统,明确程序软件总体设计思路。编写中断服务子程序,包括系统初始化,对DSP的寄存器、外设等进行初始化设置;定时器1周期中断子程序,用于定时采集信号和处理数据;采样子程序,实现对涡街信号的高速采集;键盘程序设计,响应按键操作,实现参数修改等功能;串口通信子程序,实现与上位机的数据传输;LCD显示程序,将处理后的数据显示在LCD屏幕上;去噪算法子程序,实现小波去噪算法对采集到的信号进行处理;电流环输出子程序,输出标准的电流信号用于工业控制。通过实验对软件系统进行测试和优化,确保其稳定性和可靠性。系统实验与结果分析:搭建实验平台,将设计的基于DSP的涡街流量计系统应用于实际流量测量场景中,模拟不同的工业工况,包括不同的流量范围、管道振动强度、电磁干扰程度等。对实验数据进行详细记录和分析,对比小波去噪前后涡街流量计的测量精度和性能指标,验证基于DSP的小波去噪在涡街流量计中应用的有效性和优越性,分析不同因素对测量结果的影响,为进一步优化系统提供依据。本研究采用理论分析、仿真实验与实际测试相结合的研究方法:理论分析:通过对涡街流量计工作原理、信号特性、小波分析理论和DSP技术的深入研究,建立数学模型,为系统设计和算法研究提供理论基础,从理论上分析各种因素对测量精度的影响机制,推导相关公式和算法步骤。仿真实验:利用MATLAB等软件平台,对小波去噪算法进行仿真实验。构建模拟的涡街信号,添加不同类型和强度的噪声,通过仿真验证改进的小波阈值去噪方法的有效性,对比不同算法参数下的去噪效果,优化算法参数。对基于DSP的硬件系统进行功能仿真,验证硬件电路设计的合理性和正确性,提前发现潜在问题并进行改进。实际测试:在实际工业环境或模拟工业环境中,对设计的基于DSP的涡街流量计系统进行实际测试,获取真实的测量数据,与理论分析和仿真结果进行对比验证,进一步优化系统的性能,确保其能够满足工业生产中对流量测量的实际需求。二、涡街流量计工作原理与信号特征2.1工作原理涡街流量计是一种基于卡曼涡街原理的速度式流量测量仪表。其工作原理是,当流体以足够大的流速流过垂直于流体流向的非流线型物体(即旋涡发生体,也称为阻流体或钝体)时,若该物体的几何尺寸适当,在物体的下游两侧会产生两列有规则的、交替的旋涡,这些旋涡被称为卡曼旋涡,由它们所构成的涡列则被称为卡曼涡街,这一现象由德国力学家冯・卡门(TheodorevonKármán)最先深入分析,并因此得名。在旋涡发生体下游,旋涡列呈现出交替有规律的排列。设旋涡的发生频率为f,被测介质来流的平均速度为V,旋涡发生体迎流面宽度为d,根据卡曼涡街原理,它们之间存在如下关系式:f=\frac{StV}{d}其中,St为斯特劳哈尔数(Strouhalnumber),它是一个无量纲数,其值与旋涡发生体的形状、雷诺数(Re)等因素有关。在一定的雷诺数范围内,St的值基本保持恒定。例如,当Re处于2\times10^{4}到7\times10^{4}的区间时,对于常见的旋涡发生体形状,St的值约为0.17。由上述公式可知,当旋涡发生体的宽度d和斯特劳哈尔数St确定后,旋涡的脱落频率f与流体的平均流速V成正比。通过检测旋涡的脱落频率f,就可以计算出流体的流速V。再根据管道的截面积A,就能够进一步计算出流体的体积流量Q,计算公式为:Q=VA在实际应用中,涡街流量计通常还会涉及到仪表常数K,它表示所测得的脉冲数与体积量之比,其计算公式为:K=\frac{3600f}{Q}通过仪表常数K,可以更方便地根据检测到的脉冲频率f计算出体积流量Q,实现对流体流量的精确测量。2.2信号特征分析在理想情况下,涡街流量计输出的信号是一个与旋涡脱落频率严格对应的、规则的正弦波信号。当流体稳定流过旋涡发生体时,旋涡有规律地交替脱落,每脱落一个旋涡,就会在检测元件上产生一个相应的电信号,这些信号的频率与旋涡脱落频率一致,且信号的幅值相对稳定,波形纯净,没有其他干扰成分,其频率f与流体流速V严格满足卡曼涡街原理公式f=\frac{StV}{d},这为准确测量流量提供了理想的信号基础。然而,在实际工业应用中,涡街流量计输出的信号往往会受到多种因素的干扰,与理想信号存在较大差异。管道振动是一个常见的干扰因素,工业现场存在大量的机械设备,如泵、压缩机等,它们的运转会引起管道的振动。当管道振动的频率与涡街信号的频率接近时,就会产生共振现象,使得涡街信号中混入强烈的振动噪声,导致信号波形发生严重畸变,出现不规则的波动和毛刺,使信号的频率和幅值都变得不稳定,难以准确检测出涡街信号的真实频率。流场不稳定也会对涡街信号产生显著影响。管道内的流速分布不均匀、存在涡流或湍流等情况,都会导致旋涡的脱落变得不规则,使得涡街信号的频率和幅值出现波动。在管道的弯头、阀门附近,流场会发生剧烈变化,此时涡街流量计输出的信号可能会出现较大的偏差,无法准确反映实际的流量情况。电磁干扰同样不可忽视。现代工业环境中存在着大量的电气设备、通信设备等,它们都会产生电磁场。当涡街流量计的信号传输线路处于这些电磁场中时,就可能会耦合到电磁干扰信号,使涡街信号中混入高频或低频的电磁噪声,影响信号的质量和准确性。这些噪声可能会掩盖涡街信号的真实特征,导致测量误差增大,甚至使流量计无法正常工作。这些噪声的存在严重影响了涡街流量计的测量精度。在小流量测量时,由于涡街信号本身就比较微弱,噪声的干扰更加明显,有用信号很容易被噪声淹没,使得检测到的信号频率和幅值与实际值相差较大,从而导致流量测量误差增大,难以满足工业生产对高精度测量的要求。噪声还可能导致流量计的输出信号不稳定,出现波动和跳变,影响生产过程的控制和调节,给工业生产带来潜在的风险和损失。因此,有效地去除噪声,提高涡街信号的质量,对于提高涡街流量计的测量精度和可靠性具有至关重要的意义。三、小波分析理论基础3.1傅里叶分析与小波分析对比傅里叶分析作为经典的信号处理工具,在信号处理领域有着广泛的应用。其核心思想是将任何周期函数或信号表示为不同频率的正弦波和余弦波的叠加。对于一个连续的信号f(t),其傅里叶变换F(\omega)定义为:F(\omega)=\int_{-\infty}^{\infty}f(t)e^{-j\omegat}dt其中,j是虚数单位,\omega是角频率,t是时间变量。傅里叶变换能够将时域信号转换到频域,通过分析信号的频率成分,我们可以了解信号中包含哪些频率以及这些频率成分的能量分布,在频谱分析、信号滤波与恢复等方面发挥着重要作用。在声音分析中,傅里叶变换可以揭示不同频率的声音强度,这对于音乐制作、语音识别等应用至关重要;在信号滤波中,通过傅里叶变换将时域信号转换到频域,区分出低频和高频成分,从而设计滤波器去除不需要的信号成分,实现信号的滤波与恢复。然而,傅里叶分析在处理非平稳信号时存在一定的局限性。非平稳信号是指其统计特性(如均值、方差或自相关函数)随时间变化的信号。由于傅里叶变换是对整个时间区间内的信号进行积分变换,它不能同时精确地提供时间信息和频率信息,无法捕捉信号频率随时间的变化情况。这就是著名的海森堡不确定性原理在信号处理领域的体现,即信号在时域和频域的分辨率不能同时达到最优。对于瞬态信号或快速变化的信号成分,傅里叶变换可能无法提供足够的细节,限制了对这些信号的深入分析。在分析语音信号时,语音中的不同音素具有不同的频率特征且随时间快速变化,傅里叶变换难以准确地反映这些时变特征,导致对语音信号的分析不够精确。小波分析正是为了解决傅里叶分析在处理非平稳信号时的局限性而发展起来的一种新的信号处理方法。小波分析的核心思想是用一族函数来逼近或表示一个函数或信号,这些函数称作小波函数,是由一个基本小波函数通过平移和缩放得到的。与傅里叶分析使用的正弦波和余弦波不同,小波函数具有局部性和时频自适应特点,能够在时域和频域同时对信号进行局部化分析,提供信号的局部时间信息和局部频率信息。在时频分辨率方面,小波分析具有明显的优势。小波变换通过尺度函数和小波函数的选择,能够根据信号的局部特征自动调整时频分辨率。在高频段,小波函数的尺度较小,对应较短的时间窗口,从而具有较高的时间分辨率,能够精确地捕捉信号的快速变化;在低频段,小波函数的尺度较大,对应较长的时间窗口,具有较高的频率分辨率,能够准确地分析信号的缓慢变化。这种多分辨率分析的特性使得小波分析在处理非平稳信号时能够更加灵活地适应信号的时变特性,提供更丰富的信号细节信息。在分析心电信号时,心电信号中的不同波形(如P波、QRS波群等)具有不同的频率和时间特征,小波分析能够通过多分辨率分析有效地提取这些特征,准确地识别心电信号中的各种成分,而傅里叶分析则难以做到这一点。小波分析在处理突变信号方面也表现出色。由于小波函数具有局部性,当信号中存在突变时,小波变换能够在突变点附近产生明显的系数变化,从而准确地检测到突变的位置和特征。而傅里叶分析由于是对整个信号进行全局变换,对于突变信号的检测能力较弱,容易受到信号其他部分的干扰,导致对突变点的检测不准确。在检测图像边缘时,图像边缘是一种突变信号,小波分析能够有效地检测出图像的边缘,而傅里叶分析则难以准确地定位图像边缘。3.2小波变换基本概念小波变换的核心在于小波函数,它是一种具有特殊性质的函数。一个函数\psi(t)若要成为小波函数,通常需要满足以下条件:可积性:小波函数在实数范围内是可积的,即\int_{-\infty}^{\infty}|\psi(t)|dt<\infty,这保证了小波函数在整个定义域上的能量是有限的。零均值:小波函数的积分为零,即\int_{-\infty}^{\infty}\psi(t)dt=0,这意味着小波函数必须是振荡的,具有正负交替的部分,能够有效地捕捉信号中的细节和变化。衰减性:随着自变量增大,小波函数的绝对值迅速衰减至零,即当|t|\to\infty时,\psi(t)\to0,这使得小波函数具有局部性,能够集中在信号的局部区域进行分析。数学上,由基本小波函数\psi(t)通过尺度参数a和平移参数b得到的小波函数族\psi_{a,b}(t)定义为:\psi_{a,b}(t)=\frac{1}{\sqrt{|a|}}\psi\left(\frac{t-b}{a}\right)其中,a\neq0是尺度参数,它控制小波函数的伸缩,a越大,小波函数在时间轴上拉伸得越宽,频率越低;a越小,小波函数在时间轴上压缩得越窄,频率越高。b是平移参数,它控制小波函数在时间轴上的位置,通过改变b,可以使小波函数在不同的时间位置上对信号进行分析。基于小波函数族,连续小波变换(ContinuousWaveletTransform,CWT)定义为:CWT(a,b)=\frac{1}{\sqrt{|a|}}\int_{-\infty}^{\infty}f(t)\psi^*\left(\frac{t-b}{a}\right)dt其中,f(t)是待分析的信号,\psi^*(t)表示\psi(t)的复共轭。连续小波变换通过将信号f(t)与不同尺度和平移的小波函数进行内积运算,得到小波变换系数CWT(a,b),这些系数反映了信号在不同尺度和位置上的局部特征。连续小波变换能够提供信号在不同尺度和位置上的详细信息,对于分析信号的局部细节非常有效,常用于时频联合分析,但由于其参数a和b是连续变化的,计算复杂度较高。在实际应用中,特别是在计算机处理时,需要对连续小波变换进行离散化,得到离散小波变换(DiscreteWaveletTransform,DWT)。通常对尺度参数a和平移参数b进行离散化处理,一般取a=2^j,b=k\cdot2^j(其中j,k\in\mathbb{Z},\mathbb{Z}为整数集),此时离散小波变换定义为:DWT(j,k)=\frac{1}{\sqrt{2^j}}\int_{-\infty}^{\infty}f(t)\psi\left(\frac{t-k\cdot2^j}{2^j}\right)dt离散小波变换通过选取特定的离散尺度和平移参数,减少了计算量,提高了计算效率。它通过多分辨率分析(MRA)实现信号的分层分解,将信号分解为不同频带的子信号,并且每个子信号具有不同的采样率,非常适合于信号的压缩和去噪等应用,在实际工程中得到了广泛的应用。3.3多分辨率分析及Mallat算法多分辨率分析(MultiresolutionAnalysis,MRA)是小波分析中的一个重要概念,它为小波变换的实现提供了一种有效的框架。多分辨率分析的基本思想是对信号进行逐级逼近和分解,通过不同分辨率的近似来描述信号的特征。在多分辨率分析中,一个信号可以被看作是由不同分辨率的分量组成的。从粗到细,分辨率逐渐提高,每个分辨率下的信号近似包含了信号在该尺度下的主要特征。随着分辨率的提高,信号的细节信息逐渐增加。可以将一幅图像看作是由不同分辨率的图像层组成,低分辨率层包含了图像的大致轮廓和主要结构,高分辨率层则包含了图像的细节信息,如纹理、边缘等。通过多分辨率分析,可以对图像进行分层处理,在不同分辨率下对图像的特征进行分析和处理。多分辨率分析通过一系列嵌套的子空间来实现。设\{V_j\}_{j\in\mathbb{Z}}是一组嵌套的闭子空间,满足以下性质:单调性:V_j\subsetV_{j+1},即随着分辨率的增加,子空间包含的信息越来越多,信号的近似程度越来越好。逼近性:\overline{\bigcup_{j=-\infty}^{\infty}V_j}=L^2(R),\bigcap_{j=-\infty}^{\infty}V_j=\{0\},这意味着通过不断增加分辨率,可以无限逼近原信号空间L^2(R),而当分辨率无限降低时,子空间只包含零信号。伸缩性:f(t)\inV_j当且仅当f(2t)\inV_{j+1},即信号在不同分辨率下的伸缩关系是一致的,反映了多分辨率分析的尺度不变性。平移不变性:若f(t)\inV_j,则f(t-k)\inV_j,k\in\mathbb{Z},这表明信号在同一分辨率下的平移不改变其所属的子空间,体现了多分辨率分析对信号位置的不变性。在多分辨率分析中,尺度函数\varphi(t)起着关键作用。尺度函数\varphi(t)是V_0空间的一个基函数,满足\varphi(t)\inV_0,且\{\varphi(t-k)\}_{k\in\mathbb{Z}}构成V_0空间的一组正交基。通过对尺度函数进行伸缩和平移,可以得到不同分辨率下的基函数,即\varphi_{j,k}(t)=2^{\frac{j}{2}}\varphi(2^jt-k),\{\varphi_{j,k}(t)\}_{k\in\mathbb{Z}}构成V_j空间的一组正交基。基于多分辨率分析,Mallat算法提供了一种快速计算离散小波变换和重构的方法。Mallat算法的核心思想是通过一组正交的低通滤波器h(n)和高通滤波器g(n)对信号进行分解和重构。在信号分解过程中,首先将原始信号x(n)与低通滤波器h(n)和高通滤波器g(n)进行卷积运算,然后进行下采样(每隔一个点取一个值),得到低频近似系数a_{j+1}(k)和高频细节系数d_{j+1}(k),具体计算公式如下:a_{j+1}(k)=\sum_{n=-\infty}^{\infty}h(n-2k)a_j(n)d_{j+1}(k)=\sum_{n=-\infty}^{\infty}g(n-2k)a_j(n)其中,a_j(n)是第j层的近似系数,初始时a_0(n)=x(n)。通过不断重复上述过程,可以将信号逐级分解为不同分辨率下的低频近似系数和高频细节系数,实现信号的多分辨率分解。在信号重构过程中,需要根据分解得到的低频近似系数和高频细节系数,通过逆运算恢复原始信号。重构过程使用与分解过程相同的滤波器,但顺序相反,并且需要进行上采样(在相邻点之间插入零值)。具体计算公式如下:a_j(n)=\sum_{k=-\infty}^{\infty}h(n-2k)a_{j+1}(k)+\sum_{k=-\infty}^{\infty}g(n-2k)d_{j+1}(k)通过逐级重构,可以从最底层的低频近似系数和高频细节系数逐步恢复出原始信号。Mallat算法的计算效率高,其复杂度为O(N),其中N是信号的长度。这使得Mallat算法在实际应用中非常实用,广泛应用于信号处理、图像处理、数据压缩等领域。在图像压缩中,利用Mallat算法对图像进行小波分解,将图像分解为不同频率的子带,然后对高频子带进行量化和编码,可以有效地去除图像中的冗余信息,实现图像的压缩;在信号去噪中,通过Mallat算法对含噪信号进行分解,然后对高频细节系数进行阈值处理,去除噪声对应的高频成分,再进行重构,从而实现信号的去噪。四、小波去噪原理与方法4.1小波去噪基本原理小波去噪的基本原理是基于信号和噪声在小波变换下呈现出的不同特性。在实际的信号采集过程中,噪声往往是不可避免的,这些噪声会干扰我们对原始信号的准确分析和理解。小波变换作为一种强大的时频分析工具,能够将信号分解为不同频率和尺度的成分,为我们分离信号和噪声提供了有效的手段。从信号的特性来看,有用信号通常具有一定的规律性和相对集中的能量分布。在时域上,它可能表现为具有特定的波形和周期;在频域上,其能量主要集中在某些特定的频率范围内。对于一个表示温度变化的信号,它会随着时间的推移呈现出相对稳定的变化趋势,其能量在对应的频率范围内相对集中。而噪声则具有随机性和较宽的频谱分布。噪声的产生来源广泛,如电子设备的热噪声、环境中的电磁干扰等,这些噪声在时域上表现为无规则的波动,在频域上,其能量几乎均匀地分布在整个频率范围内。白噪声就是一种典型的噪声,它的功率谱密度在整个频率轴上是均匀分布的,这意味着在任何频率段都可能存在噪声的干扰。基于上述特性,当对含噪信号进行小波变换时,信号的小波系数幅值通常会大于噪声的小波系数幅值。这是因为信号的能量相对集中,在小波变换后会在某些尺度和位置上产生较大的系数,而噪声由于能量分散,其小波系数幅值相对较小。通过设定一个合适的阈值,我们可以对小波系数进行处理。对于幅值低于阈值的小波系数,我们认为它们主要由噪声引起,将其置为零;而对于幅值高于阈值的小波系数,我们认为它们主要包含信号的特征信息,对其进行保留或适当的“收缩”处理。这种“收缩”处理可以在去除部分噪声的同时,尽量保留信号的细节信息,避免过度处理导致信号失真。经过阈值处理后的小波系数,再通过逆小波变换进行重构,就可以得到去噪后的信号。逆小波变换将处理后的小波系数重新组合,恢复出时域上的信号,由于在小波系数处理过程中去除了大部分噪声对应的系数,重构后的信号噪声得到了有效抑制,从而实现了信号的去噪。4.2阈值处理方法及改进在小波去噪过程中,阈值处理是关键环节,直接影响去噪效果。常见的阈值处理方法主要有硬阈值和软阈值两种。硬阈值处理方法较为简单直接,其定义为:设w_{j,k}为小波系数,\lambda为阈值,当|w_{j,k}|\geq\lambda时,保留原小波系数w_{j,k};当|w_{j,k}|<\lambda时,将小波系数置为0,用数学表达式表示为:\hat{w}_{j,k}=\begin{cases}w_{j,k},&|w_{j,k}|\geq\lambda\\0,&|w_{j,k}|<\lambda\end{cases}硬阈值处理能够有效地保留信号中的尖锐变化部分,因为它直接保留了大于阈值的小波系数,使得信号的突变特征得以保留。在处理含有突变信号的图像时,硬阈值处理可以较好地保留图像的边缘信息,使得去噪后的图像边缘清晰。然而,硬阈值处理也存在明显的缺陷,由于在阈值点处小波系数的不连续,会导致重构信号出现波动,产生伪吉布斯现象,影响信号的平滑性和准确性。软阈值处理方法在处理方式上与硬阈值有所不同,它对大于阈值的小波系数进行了“收缩”处理。当|w_{j,k}|\geq\lambda时,将小波系数收缩为\text{sgn}(w_{j,k})(|w_{j,k}|-\lambda);当|w_{j,k}|<\lambda时,同样将小波系数置为0,数学表达式为:\hat{w}_{j,k}=\begin{cases}\text{sgn}(w_{j,k})(|w_{j,k}|-\lambda),&|w_{j,k}|\geq\lambda\\0,&|w_{j,k}|<\lambda\end{cases}其中,\text{sgn}(x)为符号函数,当x>0时,\text{sgn}(x)=1;当x=0时,\text{sgn}(x)=0;当x<0时,\text{sgn}(x)=-1。软阈值处理的优点是能够使估计信号实现最大均方误差最小化,即去噪后的估计信号是原始信号的近似最优估计,且估计信号至少和原始信号同样光滑而不会产生附加振荡,在处理一些需要保持信号平滑性的情况时具有优势,在处理语音信号时,软阈值处理可以使去噪后的语音听起来更加自然。但软阈值处理也存在一定的问题,它会使处理后的信号产生恒定偏差,导致信号的一些细节信息丢失,使信号变得模糊。针对传统硬阈值和软阈值方法的不足,许多学者提出了改进的阈值选取方法。一种常见的改进思路是结合硬阈值和软阈值的优点,设计新的阈值函数。例如,半软阈值函数(也称为Garrote阈值函数),它介于硬阈值和软阈值之间,其表达式为:\hat{w}_{j,k}=\begin{cases}w_{j,k}-\frac{\lambda^2}{w_{j,k}},&|w_{j,k}|\geq\lambda\\0,&|w_{j,k}|<\lambda\end{cases}半软阈值函数在一定程度上克服了硬阈值不连续和软阈值有恒定偏差的缺点,在保留信号细节和抑制噪声方面表现出更好的性能。当小波系数大于阈值时,它既不像硬阈值那样直接保留,也不像软阈值那样简单地收缩,而是通过一个更复杂的函数关系进行处理,使得处理后的系数既能保留信号的主要特征,又能减少信号的波动和偏差。另一种改进方向是根据分解层数自适应调整阈值。传统的阈值选取方法,如通用阈值\lambda=\sigma\sqrt{2\lnN}(其中\sigma是噪声标准差,N是信号长度),是固定的,没有考虑到不同分解层数下噪声分布的差异。实际上,随着分解层数的增加,噪声的分布和特性会发生变化,因此对每一层使用不同的阈值可以更好地适应噪声的变化,提高去噪效果。可以根据每一层小波系数的噪声标准差\sigma_j和系数个数N_j来计算该层的阈值\lambda_j=\sigma_j\sqrt{2\lnN_j},通过这种自适应的阈值调整方法,能够更准确地去除不同频率段的噪声,同时保留信号的有用信息。还有一些研究引入优化算法来优化阈值函数中的参数。粒子群优化算法(PSO)就常被用于寻找阈值函数中的最优参数。通过设定适应度函数,让粒子群在参数空间中不断搜索,以找到使去噪效果最佳的参数组合。在使用带调整参数的阈值函数时,通过PSO算法可以确定最优的调整参数,使得阈值函数能够更好地适应信号和噪声的特性,进一步提高去噪性能。4.3小波去噪在涡街流量计信号处理中的优势涡街流量计在工业现场应用时,其输出信号不可避免地会受到各种噪声的干扰,而小波去噪技术在处理涡街流量计信号时具有显著的优势。从涡街流量计信号的特点来看,它是一种与旋涡脱落频率相关的信号,在理想情况下,应该是一个规则的正弦波信号,其频率与流体流速成正比。然而,在实际工业环境中,如前所述,信号会受到管道振动、流场不稳定和电磁干扰等多种因素的影响,混入高频、低频和随机干扰成分,导致信号波形畸变,频率和幅值不稳定。小波去噪技术能够有效地去除这些噪声,提高信号的质量。小波变换具有多分辨率分析的特性,能够将信号分解为不同频率和尺度的成分。通过对涡街信号进行小波分解,可以将噪声和有用信号分离到不同的频带中。高频噪声通常对应于小波分解中的高频细节系数,而涡街信号的主要特征则集中在低频近似系数和部分中频细节系数中。通过设定合适的阈值对高频细节系数进行处理,去除噪声对应的系数,再进行小波重构,就可以有效地抑制噪声,恢复出相对纯净的涡街信号。小波去噪能够很好地保留信号的特征。由于小波函数具有局部性,在处理信号时能够聚焦到信号的任意细节进行分析,对于涡街信号中的突变部分和关键特征点,小波去噪能够准确地保留,不会因为去噪而丢失重要的信号信息。在涡街信号中,旋涡脱落的瞬间会产生信号的突变,小波去噪能够准确地捕捉这些突变信息,使得去噪后的信号能够真实地反映旋涡的脱落情况,为准确测量流量提供可靠的数据基础。小波去噪还能提高涡街流量计的测量精度。在小流量测量时,涡街信号本身较弱,噪声的影响更为明显,传统的滤波方法往往难以有效去除噪声,导致测量误差较大。而小波去噪技术能够在去除噪声的同时,最大限度地保留信号的微弱特征,提高信号的信噪比,从而使测量结果更加准确。通过对去噪后的涡街信号进行频率检测和流量计算,可以减少噪声对测量结果的影响,提高涡街流量计在小流量测量时的精度,满足工业生产对高精度流量测量的需求。五、基于DSP的硬件系统设计5.1DSP芯片选型与介绍在基于DSP的涡街流量计系统设计中,DSP芯片的选型至关重要,它直接影响到系统的性能、成本和可靠性。经过综合考虑,本研究选用德州仪器(TI)公司的TMS320LF2407芯片,该芯片在信号处理能力、资源配置和外设接口等方面具有出色的表现,非常适合涡街流量计信号处理的需求。TMS320LF2407基于TMS320C2xxDSPCPU核心,具有强大的处理能力,指令周期时间仅为33纳秒,对应时钟频率可达30MHz,能够实现高达30MIPS(每秒百万条指令)的处理速度。这使得它能够快速地对涡街流量计采集到的信号进行实时处理,满足工业现场对信号处理实时性的严格要求。在涡街信号的频率检测和流量计算中,TMS320LF2407能够迅速完成复杂的运算,确保测量结果的及时性。在资源配置方面,TMS320LF2407内置了丰富的存储器资源。它拥有高达32K字节的16位闪存,这些闪存可分为4个扇区,可用于存储程序代码和重要的数据,即使在系统断电后,数据也能得到可靠保存;同时还配备了2.5K字节的16位数据/程序RAM,用于程序运行时的数据存储和中间结果计算,保证了数据的快速读写和处理;此外,还有544字节的双访问(DARAM)存储以及2K字节的单访问(SARAM)存储,这些存储资源为系统的高效运行提供了充足的空间,使得系统在处理大量数据时能够游刃有余。TMS320LF2407还集成了多个功能强大的外设接口,这对于涡街流量计系统与其他设备的通信和控制至关重要。它配备了两个事件管理器模块(EVA和EVB),每个模块包含两个16位通用定时器和八个16位脉宽调制(PWM)通道。这些PWM通道可用于精确的三相逆变器控制,也可用于生成各种控制信号,满足涡街流量计系统中不同的控制需求;事件管理器模块还支持中心对齐或边缘触发的PWM通道,在紧急情况下,还有一个PWM通道可以进行快速关闭,确保系统的安全性和灵活性。TMS320LF2407还具备高性能10位模/数转换器(ADC),其转换时间仅为500nS,并且提供多达16路的模拟输入。这使得它能够快速、准确地将涡街传感器输出的模拟信号转换为数字信号,便于后续的数字信号处理。在涡街流量计信号处理中,ADC的高速转换能力能够实时捕捉信号的变化,为精确的流量测量提供可靠的数据基础。该芯片还内置了BootROM,支持SCI/SPI闪存引导加载器,使得设备的初始化过程更加便捷,提高了系统的稳定性和可靠性。5.2硬件系统总体架构基于DSP的涡街变送器硬件系统是一个复杂而精密的架构,它由多个功能各异但又紧密协作的模块组成,以实现对涡街流量计信号的高效处理和流量的精确测量。整个硬件系统架构主要包括电源模块、前置放大模块、时钟与复位模块、键盘模块、LCD显示模块、DAC模块、外扩RAM模块、串行EEPROM接口模块、串行通信模块和CAN通信接口模块等。电源模块作为整个系统的能量供应核心,为其他各个模块提供稳定、可靠的电源。在工业环境中,电源的稳定性至关重要,任何电压的波动或干扰都可能影响系统的正常运行。因此,电源模块通常采用高效的稳压电路和滤波技术,以确保输出的电源纯净、稳定,满足各个模块对电源的严格要求。它能够将外部输入的电源进行转换和调节,为DSP芯片、前置放大器、各种接口电路等提供合适的电压和电流,保证系统的稳定运行。前置放大模块负责对涡街传感器输出的微弱信号进行放大处理。由于涡街传感器输出的信号通常非常微弱,难以直接进行后续的处理和分析,前置放大模块通过高增益的放大器将信号放大到合适的幅度,以便后续的电路能够对其进行有效的处理。在放大过程中,前置放大模块还需要尽可能地减少噪声的引入,保证信号的质量,为后续的信号处理提供可靠的基础。时钟与复位模块是系统正常运行的重要保障。时钟模块为系统提供精确的时钟信号,确保各个模块能够在统一的时间基准下协调工作,保证系统的时序准确性。复位模块则在系统启动或出现异常时,对系统进行复位操作,使系统恢复到初始状态,确保系统的稳定性和可靠性。在系统启动时,复位模块会对DSP芯片和其他关键模块进行初始化,清除寄存器中的无效数据,为系统的正常运行做好准备。键盘模块用于用户与系统之间的交互,用户可以通过键盘输入各种参数和命令,对系统进行设置和控制。设置流量单位、报警阈值、校准参数等,用户通过键盘输入相应的数值,系统会根据用户的输入进行相应的操作。LCD显示模块则将系统处理后的结果,如瞬时流量、累计流量、报警信息等实时显示出来,方便用户直观地了解系统的运行状态和测量结果。LCD显示模块通常采用高分辨率的显示屏,以清晰地显示各种信息,并且具备良好的人机交互界面,便于用户查看和操作。DAC模块(数模转换器)的作用是将DSP处理后的数字信号转换为模拟信号,以便与其他模拟设备进行接口或控制。在某些工业控制系统中,需要将流量测量结果以模拟信号的形式输出,用于驱动调节阀或其他模拟执行器,DAC模块就能够将数字信号转换为相应的模拟电压或电流信号,满足这些应用的需求。外扩RAM模块用于扩展系统的数据存储和程序运行空间。尽管TMS320LF2407芯片内置了一定的存储器资源,但在处理大量数据或运行复杂程序时,可能需要更多的存储空间。外扩RAM模块通过与DSP芯片的接口,增加了系统的存储容量,使得系统能够处理更复杂的任务,存储更多的历史数据和中间结果。串行EEPROM接口模块用于存储系统的重要参数和数据,如校准系数、用户设置等。EEPROM(电可擦可编程只读存储器)具有断电后数据不丢失的特点,能够可靠地保存这些重要信息。在系统启动时,DSP芯片可以从EEPROM中读取这些参数,确保系统能够按照用户的设置和校准数据正常运行。串行通信模块和CAN通信接口模块则实现了系统与上位机或其他设备的数据通信。串行通信模块通常采用RS-232或RS-485标准接口,用于与上位机进行简单的数据传输和控制指令交互。CAN通信接口模块则基于CAN总线协议,具有高速、可靠、抗干扰能力强等特点,适用于工业现场的分布式控制系统,能够实现多个设备之间的实时数据共享和协同工作。在工业自动化生产线中,涡街流量计可以通过CAN通信接口与其他设备,如PLC、上位机等进行通信,将流量数据实时传输给控制系统,实现对生产过程的精确控制。5.3各硬件模块设计电源模块设计:电源模块的设计目标是为整个基于DSP的涡街变送器硬件系统提供稳定、纯净的电源。考虑到工业现场电源环境的复杂性,可能存在电压波动、电磁干扰等问题,电源模块采用了多级稳压和滤波技术。首先,通过电源变压器将外部输入的交流电压转换为合适的直流电压,然后经过整流桥将交流电转换为直流电。为了进一步稳定电压,采用了线性稳压芯片和开关稳压芯片相结合的方式。线性稳压芯片能够提供高精度的稳压输出,但效率相对较低;开关稳压芯片则具有高效率的特点,适用于功率较大的模块供电。在稳压过程中,还加入了多个滤波电容,包括电解电容和陶瓷电容,以滤除电源中的高频和低频噪声,确保输出的电源纹波在可接受的范围内。电源模块还配备了过压保护和过流保护电路,当电源输出电压或电流超过设定值时,保护电路会自动切断电源,防止损坏其他硬件模块,提高了系统的可靠性和稳定性。前置放大模块设计:前置放大模块的核心任务是将涡街传感器输出的微弱信号放大到适合后续处理的幅度。由于涡街传感器输出的信号通常在毫伏级甚至微伏级,且容易受到噪声的干扰,前置放大模块采用了低噪声、高增益的运算放大器。在电路设计上,采用了差分放大电路结构,能够有效地抑制共模噪声,提高信号的抗干扰能力。差分放大电路通过对两个输入信号的差值进行放大,能够消除输入信号中共同存在的噪声成分,只放大有用的信号差值。为了进一步提高放大倍数和稳定性,采用了多级放大电路级联的方式,每一级放大电路都进行了精心的参数设计和调试,以确保在放大信号的同时,尽量减少噪声的引入和信号的失真。在放大电路的输入端和输出端,还加入了合适的滤波电路,如RC滤波电路,用于滤除高频噪声和低频干扰,保证输出信号的质量。时钟与复位模块设计:时钟模块为系统提供精确的时钟信号,确保各个硬件模块能够在统一的时间基准下协调工作。TMS320LF2407芯片内部集成了时钟电路,但为了满足更高的精度要求,外部采用了高精度的晶体振荡器作为时钟源。晶体振荡器产生稳定的高频振荡信号,经过芯片内部的时钟分频器和倍频器处理后,得到适合系统各个模块工作的时钟频率。在时钟电路设计中,还需要考虑时钟信号的布线,尽量减少时钟信号的干扰和传输延迟,确保时钟信号的稳定性和准确性。复位模块则在系统启动或出现异常时,对系统进行复位操作,使系统恢复到初始状态。复位模块采用了手动复位和上电自动复位相结合的方式。手动复位通过按键实现,用户可以在需要时手动复位系统;上电自动复位则利用电容和电阻组成的RC电路,在系统上电时,电容充电过程中产生的低电平信号作为复位信号,将系统复位。复位电路还需要确保复位信号的宽度和电平满足DSP芯片的要求,以保证复位操作的可靠性。键盘模块设计:键盘模块用于用户与系统之间的交互,用户可以通过键盘输入各种参数和命令,对系统进行设置和控制。为了方便用户操作,键盘模块采用了矩阵式键盘结构,通过行线和列线的交叉组合,减少了按键与DSP芯片的连接引脚数量。在硬件设计上,将按键的行线和列线分别连接到DSP芯片的I/O口,通过软件编程实现对按键的扫描和识别。当用户按下按键时,相应的行线和列线之间会形成通路,DSP芯片通过检测I/O口的电平变化,判断按下的按键位置,进而识别出用户输入的命令或参数。为了防止按键抖动对系统的影响,在软件设计中加入了按键消抖处理程序,通过延时和多次检测的方式,确保只有在按键稳定按下或释放时,才进行相应的处理,提高了键盘操作的可靠性。LCD显示模块设计:LCD显示模块的作用是将系统处理后的结果实时显示出来,方便用户直观地了解系统的运行状态和测量结果。本设计选用了液晶显示屏(LCD),并采用并行接口与DSP芯片相连。在硬件连接上,将LCD的数据线、控制线和电源线分别连接到DSP芯片的相应I/O口和电源引脚。在软件设计上,需要编写LCD驱动程序,实现对LCD的初始化、清屏、字符显示和图形显示等功能。首先对LCD进行初始化,设置显示模式、光标位置等参数;然后根据需要显示的内容,将相应的字符或图形数据发送到LCD的显存中,通过控制LCD的控制线,实现数据的显示。为了提高显示的清晰度和稳定性,还需要对LCD的对比度和背光亮度进行调整,以适应不同的使用环境。DAC模块设计:DAC模块的功能是将DSP处理后的数字信号转换为模拟信号,以便与其他模拟设备进行接口或控制。本设计选用了12位的DAC芯片,其分辨率能够满足大多数工业应用的需求。在硬件连接上,将DAC芯片的数据输入引脚连接到DSP芯片的I/O口,通过SPI(串行外设接口)或并行接口与DSP进行数据传输。在软件设计上,需要编写DAC驱动程序,根据需要输出的模拟信号值,将相应的数字数据发送到DAC芯片。在发送数据时,需要注意数据的格式和传输顺序,确保DAC芯片能够正确接收和转换数据。还需要对DAC芯片的参考电压进行设置,参考电压的精度和稳定性直接影响到DAC输出模拟信号的精度,因此通常采用高精度的电压基准芯片为DAC提供稳定的参考电压。外扩RAM模块设计:外扩RAM模块用于扩展系统的数据存储和程序运行空间。当系统需要处理大量数据或运行复杂程序时,仅靠DSP芯片内部的存储器资源可能无法满足需求,此时就需要外扩RAM。本设计选用了静态随机存取存储器(SRAM)作为外扩RAM,其具有高速读写的特点,能够满足系统对数据访问速度的要求。在硬件连接上,将SRAM的地址线、数据线和控制线分别连接到DSP芯片的外部存储器接口(EMIF)。在连接过程中,需要注意地址线和数据线的位数匹配,以及控制线的信号电平要求。在软件设计上,需要对DSP芯片的EMIF进行配置,设置存储器的地址空间、读写时序等参数,确保DSP能够正确地访问外扩RAM。在访问外扩RAM时,需要注意数据的读写操作,避免出现数据冲突和错误。串行EEPROM接口模块设计:串行EEPROM接口模块用于存储系统的重要参数和数据,如校准系数、用户设置等。EEPROM具有断电后数据不丢失的特点,能够可靠地保存这些重要信息。本设计选用了串行EEPROM芯片,通过I2C(Inter-IntegratedCircuit)总线或SPI总线与DSP芯片进行通信。在硬件连接上,将EEPROM的数据线和时钟线分别连接到DSP芯片的相应I/O口,实现数据的传输和时钟同步。在软件设计上,需要编写EEPROM驱动程序,实现对EEPROM的初始化、读数据和写数据等功能。在写数据时,需要注意EEPROM的写入周期和擦除次数限制,避免频繁写入导致EEPROM损坏;在读取数据时,需要确保数据的准确性和完整性,通过校验和等方式验证读取的数据是否正确。串行通信模块设计:串行通信模块用于实现系统与上位机或其他设备的数据通信。本设计采用了RS-232标准接口进行串行通信,RS-232接口具有简单、可靠的特点,适用于短距离的数据传输。在硬件连接上,通过MAX232芯片将DSP芯片的TTL电平转换为RS-232电平,以满足RS-232接口的电平要求。MAX232芯片内部集成了电平转换电路和电荷泵电路,能够将TTL电平的逻辑信号转换为RS-232标准的正负电压信号。将MAX232芯片的发送引脚和接收引脚分别连接到RS-232接口的发送线和接收线,实现数据的发送和接收。在软件设计上,需要编写串行通信驱动程序,设置通信波特率、数据位、停止位和校验位等参数,实现数据的发送和接收。在发送数据时,需要将数据按照设定的格式进行打包,并添加校验位,以确保数据的准确性;在接收数据时,需要对接收到的数据进行解包和校验,判断数据是否正确,若发现错误则进行重发或其他处理。CAN通信接口模块设计:CAN通信接口模块基于CAN总线协议,实现系统与其他设备之间的高速、可靠的数据通信。CAN总线具有多主从通信、非破坏总线仲裁、错误检测和自动重发等优点,适用于工业现场的分布式控制系统。本设计选用了TMS320LF2407芯片内部集成的CAN控制器,并搭配CAN总线收发器芯片,如SN65HVD230,实现CAN总线的物理层接口。在硬件连接上,将CAN控制器的TX和RX引脚分别连接到CAN总线收发器的相应引脚,通过双绞线将CAN总线收发器与其他CAN节点连接起来。在软件设计上,需要对CAN控制器进行初始化设置,包括设置通信波特率、配置邮箱、设置中断等。在数据发送时,将需要发送的数据写入CAN控制器的邮箱,并设置相应的标识符和控制位,然后启动发送;在数据接收时,通过中断方式接收数据,将接收到的数据从邮箱中读取出来,并进行处理。在通信过程中,CAN控制器会自动处理数据的成帧、仲裁、错误检测和重发等操作,确保通信的可靠性和实时性。六、基于DSP的软件系统设计6.1软件总体设计思路基于DSP的涡街变送器软件系统是整个涡街流量计系统的核心控制部分,它负责协调各个硬件模块的工作,实现对涡街信号的采集、处理、显示以及与其他设备的通信等功能。软件系统以主程序为核心,同时包含多个子程序,这些子程序各自承担特定的功能,相互协作,共同完成系统的各项任务。主程序主要负责系统的初始化工作,在系统启动时,主程序首先对DSP芯片的各个寄存器进行初始化配置,设置系统的工作模式、时钟频率、中断优先级等参数,确保DSP芯片能够正常工作。主程序还会对各个硬件模块进行初始化,如电源模块的稳压设置、前置放大模块的增益设置、时钟与复位模块的初始化、键盘模块和LCD显示模块的初始化等,为后续的信号采集和处理做好准备。在完成初始化后,主程序进入一个无限循环中,不断查询是否有中断发生。当有中断发生时,主程序会根据中断向量表跳转到相应的中断服务子程序进行处理。中断服务子程序是软件系统中处理实时事件的关键部分,它能够及时响应各种外部和内部事件,保证系统的实时性和可靠性。定时器1周期中断服务子程序会按照设定的时间间隔定时触发,用于定时采集涡街信号。在中断服务子程序中,会读取ADC转换后的数字信号,并将其存储到指定的内存区域,以便后续处理。去噪算法子程序是软件系统的重要组成部分,它负责对采集到的含噪涡街信号进行去噪处理。该子程序首先调用小波分解函数,根据之前确定的小波基和分解层数,对含噪信号进行多层小波分解,将信号分解为不同频率的子带。然后,针对每一层的高频细节系数,根据选定的阈值函数和阈值确定方法,对小波系数进行阈值量化处理,去除噪声对应的小波系数。对处理后的小波系数进行小波重构,得到去噪后的信号。在处理过程中,需要注意数据的边界处理,以避免边界效应导致的信号失真。数据处理子程序则对去噪后的信号进行进一步的分析和处理,以计算出流体的流量。该子程序会根据涡街流量计的工作原理,通过检测去噪后信号的频率,结合仪表常数和管道截面积等参数,计算出流体的流速和体积流量。还会进行数据的滤波、平滑处理,以提高流量计算的准确性和稳定性。在计算过程中,会采用一些数字信号处理算法,如均值滤波、中值滤波等,对数据进行预处理,去除异常值和噪声干扰。通信子程序负责实现系统与上位机或其他设备的数据通信。根据通信接口的类型,如RS-232、RS-485或CAN总线,通信子程序会按照相应的通信协议进行数据的打包、发送和接收。在发送数据时,会将需要传输的流量数据、设备状态信息等按照通信协议的格式进行封装,添加校验位和帧头、帧尾等信息,然后通过通信接口发送出去。在接收数据时,会对接收到的数据进行解包和校验,判断数据的正确性。如果数据正确,会将其存储到指定的内存区域,并通知主程序进行相应的处理。LCD显示子程序和键盘子程序则实现了人机交互功能。LCD显示子程序会将系统处理后的结果,如瞬时流量、累计流量、报警信息等,按照设定的显示格式在LCD屏幕上进行显示。在显示过程中,会根据LCD的驱动程序,控制LCD的光标位置、字符显示等操作,确保显示的信息清晰、准确。键盘子程序则负责响应用户的按键操作,当用户按下键盘上的按键时,键盘子程序会检测到按键的状态变化,并根据按键的编码判断用户的操作意图。如果用户按下的是设置参数的按键,键盘子程序会进入参数设置模式,接收用户输入的参数值,并将其存储到相应的内存区域,通知主程序进行参数更新。6.2中断服务子程序设计系统初始化:在系统启动时,中断服务子程序首先进行系统初始化。这包括对DSP芯片的寄存器进行配置,设置系统时钟频率,根据TMS320LF2407芯片的特性,通过对相关寄存器的设置,将系统时钟频率设置为30MHz,以满足系统对运算速度的要求;初始化中断向量表,将各个中断服务子程序的入口地址存储到中断向量表中,确保在中断发生时能够准确地跳转到相应的中断服务子程序;对各个硬件模块进行初始化,设置前置放大模块的增益,根据涡街传感器输出信号的幅值范围,将前置放大模块的增益设置为合适的值,以保证信号能够被有效地放大;初始化键盘和LCD显示模块,配置键盘的扫描方式和LCD的显示模式,为后续的人机交互做好准备。定时器1周期中断:定时器1周期中断是软件系统中实现定时功能的关键。通过对定时器1的相关寄存器进行设置,如设置定时器的计数初值、分频系数等,确定中断的周期。当定时器1的计数值达到设定的阈值时,会触发中断。在中断服务子程序中,首先读取ADC转换后的数字信号,将其存储到预先分配的内存缓冲区中。然后,对采集到的数据进行初步的处理,如数据格式转换、数据校验等,确保数据的准确性和完整性。在数据处理过程中,会采用一些简单的算法,如数据类型转换函数,将ADC转换后的二进制数据转换为实际的物理量值。采样子程序:采样子程序负责实现对涡街信号的高速采集。在定时器1周期中断的触发下,采样子程序被调用。它通过控制ADC模块,按照设定的采样频率对涡街传感器输出的模拟信号进行采样。在采样过程中,需要注意采样的同步性和准确性,避免出现采样误差。为了确保采样的同步性,会使用定时器1的中断信号作为ADC采样的触发信号,保证每次采样的时间间隔精确。采样子程序还会对采集到的数据进行缓存管理,将采集到的数据存储到先进先出(FIFO)缓冲区中,以便后续的处理。在缓存管理过程中,会采用一些数据结构和算法,如环形缓冲区,提高数据存储和读取的效率。键盘程序设计:键盘程序用于实现用户与系统之间的交互。当用户按下键盘上的按键时,会触发相应的中断。在中断服务子程序中,首先通过扫描键盘矩阵,确定按下的按键位置。根据按键的位置,查找预先定义的按键编码表,得到按键对应的功能码。根据功能码,执行相应的操作,如进入参数设置界面、切换显示页面、启动或停止测量等。在参数设置界面中,用户可以通过键盘输入各种参数,如流量单位、报警阈值、校准系数等,键盘程序会将用户输入的参数值存储到相应的内存区域,并通知主程序进行参数更新。串口通信子程序:串口通信子程序负责实现系统与上位机之间的数据传输。根据选定的串口通信协议,如RS-232协议,设置串口的波特率、数据位、停止位和校验位等参数。在发送数据时,将需要传输的数据按照协议格式进行打包,添加校验位和帧头、帧尾等信息,然后通过串口发送出去。在接收数据时,对接收到的数据进行解包和校验,判断数据的正确性。如果数据正确,将其存储到指定的内存区域,并通知主程序进行相应的处理。在串口通信过程中,会采用一些通信算法和机制,如握手协议,确保数据传输的可靠性和稳定性。LCD显示程序:LCD显示程序用于将系统处理后的结果实时显示在LCD屏幕上。在显示之前,首先对显示内容进行格式化处理,将瞬时流量、累计流量等数据转换为适合显示的格式,如字符串格式。然后,根据LCD的驱动程序,控制LCD的光标位置、字符显示等操作,将格式化后的内容显示在LCD屏幕上。在显示过程中,会采用一些显示算法和技巧,如动态刷新显示内容,提高显示的实时性和可读性。为了实现动态刷新,会在每次显示内容更新时,只更新变化的部分,减少LCD的刷新次数,提高显示的效率。6.3去噪算法子程序实现基于DSP实现小波去噪算法子程序是软件系统中的关键部分,它直接影响到涡街信号的处理效果和流量测量的准确性。去噪算法子程序的实现主要包括以下几个步骤:首先是小波分解部分。根据之前确定的小波基和分解层数,调用相应的小波分解函数。若选用db3小波基对信号进行5层分解,在TMS320LF2407DSP平台上,可以利用已有的小波分解库函数,或者根据Mallat算法的原理自行编写分解函数。在编写分解函数时,需要根据Mallat算法的公式,通过一组正交的低通滤波器h(n)和高通滤波器g(n)对信号进行卷积运算和下采样操作,实现信号的多层分解。在数据边界处理上,为了避免边界效应导致的信号失真,采用周期延拓的方法,将信号的边界数据进行周期复制,使得在边界处的滤波和下采样操作能够正常进行。具体实现部分程序如下(以C语言为例)://定义低通滤波器系数和高通滤波器系数floath[9]={0.0352262918821006,-0.0854412738822414,-0.1350110200103909,0.4598775021184911,0.8068915093110924,0.3326705529509569,-0.0168756802105783,-0.0782232665289878,0.0308413818355607};floatg[9]={0.0308413818355607,0.0782232665289878,-0.0168756802105783,-0.3326705529509569,0.8068915093110924,-0.4598775021184911,-0.1350110200103909,0.0854412738822414,0.0352262918821006};//小波分解函数voidwavelet_decompose(float*signal,intlength,intlevel,float**coeffs){inti,j,k;float*temp_signal=(float*)malloc(length*sizeof(float));for(j=0;j<level;j++){//低通滤波和下采样for(i=0;i<length/2;i++){coeffs[j][i]=0;for(k=0;k<9;k++){if(i*2+k<length){coeffs[j][i]+=h[k]*signal[i*2+k];}}}//高通滤波和下采样for(i=0;i<length/2;i++){temp_signal[i]=0;for(k=0;k<9;k++){if(i*2+k<length){temp_signal[i]+=g[k]*signal[i*2+k];}}}//更新信号为低频系数for(i=0;i<length/2;i++){signal[i]=coeffs[j][i];}length/=2;}free(temp_signal);}接着是小波系数阈值量化部分。根据选定的阈值函数和阈值确定方法,对分解得到的各层小波系数进行阈值量化处理。若采用软阈值函数和stein无偏风险阈值(rigeure规则),首先需要根据信号的特点和噪声的估计,计算出每一层的阈值。对于第j层的小波系数w_{j,k},根据stein无偏风险阈值规则,计算阈值\lambda_j。然后,根据软阈值函数的定义,对小波系数进行处理。当|w_{j,k}|\geq\lambda_j时,将小波系数收缩为\text{sgn}(w_{j,k})(|w_{j,k}|-\lambda_j);当|w_{j,k}|<\lambda_j时,将小波系数置为0。具体实现部分程序如下://计算stein无偏风险阈值floatstein_threshold(float*coeffs,intlength){floatsum=0,sum_sq=0;inti;for(i=0;i<length;i++){sum+=coeffs[i];sum_sq+=coeffs[i]*coeffs[i];}floatmean=sum/length;floatvar=(sum_sq-sum*sum/length)/(length-1);returnsqrt(var*2*log(length));}//软阈值处理voidsoft_thresholding(float*coeffs,intlength,floatthreshold){inti;for(i=0;i<length;i++){if(fabs(coeffs[i])>=threshold){coeffs[i]=(coeffs[i]>0?1:-1)*(fabs(coeffs[i])-threshold);}else{coeffs[i]=0;}}}//对各层小波系数进行阈值处理voidthreshold_process(float**coeffs,int*lengths,intlevel){intj;for(j=0;j<level;j++){floatthreshold=stein_threshold(coeffs[j],lengths[j]);soft_thresholding(coeffs[j],lengths[j],threshold);}}最后是小波重构部分。根据经过阈值量化处理后的小波系数和最后一层的低频系数,调用小波重构函数进行信号重构。同样利用Mallat算法的原理,通过逆卷积和上采样操作,逐步恢复原始信号。在重构过程中,需要注意数据的恢复顺序和边界处理,确保重构后的信号能够准确地反映原始信号的特征。具体实现部分程序如下://小波重构函数voidwavelet_reconstruct(float**coeffs,int*lengths,intlevel,float*recon_signal){inti,j,k;intlength=lengths[level-1];float*temp_signal=(float*)malloc(length*2*sizeof(float));//从最后一层开始重构for(j=level-1;j>0;j--){//上采样和低通滤波for(i=0;i<length;i++){temp_signal[i*2]=0;for(k=0;k<9;k++){if(i-k/2>=0&&i-k/2<length){temp_signal[i*2]+=h[k]*coeffs[j-1][i-k/2];}}}//上采样和高通滤波for(i=0;i<length;i++){temp_signal[i*2+1]=0;for(k=0;k<9;k++){if(i-k/2>=0&&i-k/2<length

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论