资源简介
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
相关资源
- STM32F207通过http更新固件
- BOOTloder_stm32f407
- STM32读CS1237实现秤重测量
- 基于STM32单片机的心率体温测量仪
- 基于STM32F103ZET6控制舵机旋转(ts90a/
- stm32f103zet6控制蓝牙小车
- STM32F407驱动OLED显示DS18B20数字温度
- vscode作为编辑器开发stm32f103c8
- STM32 多路PWM输出
- STM32烧写算法flash包
- STM32 LIN通信数据发送实现 测试通过
- FFT电流检测 stm32f4
- DS1302万年历设计 stm32
- 超声波定高(基于STM32)
- STM32(神舟III号 串口1发送实验程序)
- STM32 模拟信号采集
- STM32-ads1256
- STM32跑马灯实验58159
- STM32429的串口收发程序
- STM32连接EC20使用内置MQTT协议接入阿里
- ADS1256-STM32参考程序
- stm32 AD7506
- STM32F10实现照相功能照相机
- 基于STM32的嵌入式flash读写控制
- stm32f103c8t6开发板原理图+pcb
- STM32内部FLASH模拟eerom
- stm32的半导体除湿机程序
- stm32实现高精度频率测定
- stm32库函数代码自动生成器V1.2
- stm32 DMA例程
川公网安备 51152502000135号
评论
共有 条评论