滤波函数增强版


滤波用于常见的科学计算中,为了使数据结果更加平稳,可靠,而采取的一些诸如中值,平均,滑动,fft等等类似的滤波,但实际应用起来,各有优劣,本文提出一种改进的增强版的平滑滤波方法。

Public Function avg_filter(ByVal indat(,) As Double, ByVal last_dim_ind As Integer) As Double   

        Dim avg As Double = 0.0

        Dim dtnnn As Integer = indat.GetLength(0)

        Dim tmpdt(dtnnn - 1) As Double

        Dim tmpdt2(dtnnn - 3) As Double

        For i = 0 To dtnnn - 1

            tmpdt(i) = indat(i, last_dim_ind)

        Next

        Dim dx1 As Integer = Array.IndexOf(tmpdt, tmpdt.Max)
        Dim dx2 As Integer = Array.IndexOf(tmpdt, tmpdt.Min)

        Dim ttt As Integer = 0

        For i = 0 To dtnnn - 1

            If i <> dx1 And i <> dx2 Then

                tmpdt2(ttt) = tmpdt(i)

                ttt += 1

            End If

        Next

  
        dx1 = Array.IndexOf(tmpdt2, tmpdt2.Max)
        dx2 = Array.IndexOf(tmpdt2, tmpdt2.Min)

        ttt = 0

        For i = 0 To dtnnn - 3

            If i <> dx1 And i <> dx2 Then

                tmpdt(ttt) = tmpdt2(i)

                ttt += 1

            End If

        Next

        ''''''''''''''
        ReDim Preserve tmpdt(ttt - 1)

        '''''''''''''

        avg = tmpdt.Average()

        Return avg

    End Function

点击数: 756   打印  添加到收藏   发布时间: 2017-09-21




上一篇:Matlab模拟PID方法-推荐
下一篇:MD5加密的一段代码





» 相关内容
  VS2008中修改VC使用的目标.net..
  Verilog实现clk计数器的rst边..
  Chart1控件坐标轴范围设定和恢..
  一个二维码生成页面-简洁实用
  AD7656六通道16位逐次逼近型25..
  TTL和232/485电平不分导致串口..
  .net程序中给picturebox增加滚..
  Slave FIFO时TD_init函数常用..
  Android手机App内嵌入web交互..
  薏米仁的功效补气益脾除湿
  vb.net如何杀死目标进程win7-x..
  Try_Catch_Throw的使用方法
  .Net多线程更新UI或窗体控件内..
  单电源光电二极管接法-等效零..
  运放+达林顿管的恒流电路工作..