FIR滤波器C语言代码

2024-03-06 00:48
文章标签 语言 代码 滤波器 fir

本文主要是介绍FIR滤波器C语言代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*******************************************************************************
** 程序名称:FIR低通滤波器 
** 程序描述:50阶FIR低通滤波器,通过频率2500Hz,截止频率3000Hz 
** 性能提升:
** 程序版本:V1.0
** 程序作者:syrchina
** 最后修改:2011年8月1日 
*******************************************************************************/#include <stdio.h>/**********************************宏定义**************************************/
#define PI 3.1415926535
#define Size_Datas 64/*******************************数据类型构造***********************************/
typedef float DataType;int main(void)
{DataType Xin[Size_Datas], Output=0, sum=0;int n=0, i=0, nNow=0;short int h[51] = {-35,   -219,   -503,   -494,     -8,    347,     19,   -348,     26,404,   -103,   -485,    220,    579,   -398,   -678,    663,    774,-1073,   -859,   1769,    925,  -3279,   -968,  10363,  17367,  10363,-968,  -3279,    925,   1769,   -859,  -1073,    774,    663,   -678,-398,    579,    220,   -485,   -103,    404,     26,   -348,     19,347,     -8,   -494,   -503,   -219,    -35};const int ORDER = sizeof(h)/sizeof(h[0]);for(i=0; i<Size_Datas; i++)//模拟输入 {Xin[i] = ((sin(2*PI*i*2000/10000) + sin(2*PI*i*4000/10000)));}n = ORDER;while (1){//input new x[]sum = 0;for (i=0; i<ORDER; i++){nNow = n - i;if(nNow < 0){nNow = Size_Datas + nNow;}sum = sum + h[i] * Xin[nNow];}Output = sum / 32767;		n = (n+1) & 0x3f;			//Output}return 0;
}

整理一下:

/*******************************************************************************
** 程序名称:FIR低通滤波器 
** 程序描述:50阶FIR低通滤波器,通过频率2500Hz,截止频率3000Hz 
** 性能提升:
** 程序版本:V1.0
** 程序作者:syrchina
** 最后修改:2011年8月1日 
*******************************************************************************/#include <stdio.h>/**********************************宏定义**************************************/
#define PI 3.1415926535
#define Size_Datas 64/*******************************数据类型构造***********************************/
typedef float DataType;int main(void)
{DataType Xin[Size_Datas], Output=0, sum=0;int n=0, i=0, nNow=0;// h[]参数使用matlab的FDAtool计算获得:50阶FIR低通滤波器,通过频率2500Hz,截止频率3000Hz short int h[51] = {-35,   -219,   -503,   -494,     -8,    347,     19,   -348,     26,404,   -103,   -485,    220,    579,   -398,   -678,    663,    774,-1073,   -859,   1769,    925,  -3279,   -968,  10363,  17367,  10363,-968,  -3279,    925,   1769,   -859,  -1073,    774,    663,   -678,-398,    579,    220,   -485,   -103,    404,     26,   -348,     19,347,     -8,   -494,   -503,   -219,    -35};const int ORDER = sizeof(h)/sizeof(h[0]);for(i=0; i<Size_Datas; i++)//模拟输入, 64个原始数据{Xin[i] = ((sin(2*PI*i*2000/10000) + sin(2*PI*i*4000/10000)));}n = ORDER;while (1)//循环演示{//input new x[]sum = 0;for (i=0; i<ORDER; i++)//FIR运算{nNow = n - i;if(nNow < 0){nNow = Size_Datas + nNow;}sum = sum + h[i] * Xin[nNow];}Output = sum / 32767;		n = (n+1) & 0x3f;// 0~63循环//Output}return 0;
}


 

这篇关于FIR滤波器C语言代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/778345

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061