fir滤波器

 // reference implementation of an FIR
    template 
    static void reference (const NumericType* firCoefficients, 
                           size_t numCoefficients,
                           const SampleType* input, 
                           SampleType* output, 
                           size_t n) noexcept
    {
        if (numCoefficients == 0)
        {//输出清零
            zeromem (output, sizeof (SampleType) * n);
            return;
        }
		//分配内存
        HeapBlock scratchBuffer (numCoefficients
                #if JUCE_USE_SIMD
                + (SIMDRegister::SIMDRegisterSize / sizeof (SampleType))
                #endif
                   );
       #if JUCE_USE_SIMD
        SampleType* buffer = reinterpret_cast 
			(SIMDRegister::getNextSIMDAlignedPtr 
			(reinterpret_cast (scratchBuffer.getData())));
       #else
        SampleType* buffer = scratchBuffer.getData();
       #endif
		//内存清零
        zeromem (buffer, sizeof (SampleType) * numCoefficients);

        for (size_t i = 0; i < n; ++i)
        {
	    //滑动,将数据向右移动一个位置
            for (size_t j = (numCoefficients - 1); j >= 1; --j)
                buffer[j] = buffer[j-1];

            buffer[0] = input[i];//最新采集的数据

            SampleType sum (0);//累加和清零
            //重新相加
            for (size_t j = 0; j < numCoefficients; ++j)
                sum += buffer[j] * firCoefficients[j];

            output[i] = sum;//更新输出
        }
    }

网站名称:fir滤波器
URL分享:http://bzwzjz.com/article/gssdih.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设方案 成都营销网站制作 成都网站建设流程 专业网站设计 温江网站设计 成都网站建设 成都网站制作 成都网站制作 成都模版网站建设 四川成都网站设计 营销型网站建设 网站建设 手机网站设计 网站建设公司 成都定制网站建设 定制网站建设 成都网站设计 成都网站制作 做网站设计 网站建设公司 手机网站制作 网站设计制作报价