资源简介
19阶FIR滤波器c语言算法实现,系数根据需要用matlab可以设计计算,数据的数据量为512点或256点
代码片段和文件信息
/*
* ADfilter.c
*
* Created on: Aug 29 2018
* Author: Administrator
*/
#include “ADfilter.h“
//去直流,1024个点的直流,注意输入的数据为整形
void De_DC(int a[]float b[])
{
double sum;
unsigned int i;
for(i=0;i<1024;i++)
{
sum = sum +(float)(*(a+i));
}
sum = sum/1024;
for(i=0;i<1024;i++)
{
*(b+i)=*(a+i)-sum;
}
}
//18阶fir滤波器,处理1024个点的数据
void fir_filter(float data[]float h[]int fird_lenfloat result[])
{
//这里的临时数组state必须赋初始值,不然初始值不为0,导致前几个数据计算错误。
float state[19]={0000000000000000000};
float temp = 0.0;
int ijk;
for (k = 0; k < fird_len; k++)
{
state[0] = *(data+k);
temp=0;
for (i = 0; i < firc_len; i++)
temp = temp + *(h+i) * *(state+i);
result[k] = temp;
for (j = (firc_len-2); j > -1 ; j--)
state[j+1] = state[j];
}
}
//抽样函数,1024个点,抽取512个
void fir_512samp(float data[]float result[])
{
unsigned int i;
for(i=0;i<512;i++)
{
result[i]=data[i*2];
}
}
//抽样函数,512个点,抽取256个
void fir_256samp(float data[]float result[])
{
unsigned int i;
for(i=0;i<256;i++)
{
result[i]=data[i*2];
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 361 2018-08-31 18:03 ADfilter.h
文件 3367 2018-09-03 11:14 main.c
文件 1212 2018-09-03 10:54 ADfilter.c
- 上一篇:433射频收发参考程序C语言STM32
- 下一篇:4交通灯_STC89C52.zip
相关资源
- STM32内部FLASH模拟eerom
- stm32的半导体除湿机程序
- stm32实现高精度频率测定
- stm32库函数代码自动生成器V1.2
- stm32 DMA例程
- stm32蓝牙小车
- 显示屏操作(stm32f103c8t6(SAN))
- 基于STM32f103 PWM波呼吸灯
- STM32红外检测有人开始录音,并播放录
- Proteus 8.6仿真STM32F103C6
- stm32 +w5500 裸机 远程升级 自动dns pi
- stm32双机spi通信
- STM32 PCB封装库 全系列 全网不好找
- 基于STM32F407的W5500 tcpserver(官网例程
- 串口调试助手(测试STM32串口)
- 基于STM32F407ZG的监控摄像头及FATFS文件
- tm1650+stm32f103源码(board_tm1650.c)
- stm32定时器中断
- 基于STM32的音频信号采样与FFT分析
- STM32肺活量测试仪
- 基于STM32F103C8T6主控板使用BH1750检测光
- cubeMX设计实现stm32f407上的CAN及485的通
- stm32 BootLoader程序(main.c)
- STM32修炼的最好书
- STM32 BLDC 无刷电机
- stm32 实现Fatfs对U盘文件操作(main.c)
- stm32f103 USB键盘
- OBD_CAN读取代码(stm32f103)
-
STM32-ba
se64加密源代码 - stm32 MQTT
评论
共有 条评论