前期参考:
https://blog.csdn.net/SSG18829575503/article/details/80971003
【DSP学习笔记】基于CCS5.5的FIR滤波器设计
2018年07月09日 17:27:02 素小树
-------------------------
功能:输入一段pcm数据,输出滤波后的Pcm数据。
TIPS:输入的音频pcm数据可以通过audacity软件制作。
TODO:卷积函数没有做数据越界处理——当卷积窗口滑动到最后一个数据,数组后的数据也会引入计算。
matlab生成的滤波器:低通滤波,生成方法参考文首的链接
/* General type conversion for MATLAB generated C-code */
#include "tmwtypes.h"
/*
* Expected path to tmwtypes.h
* C:Program FilesMATLABR2012aexterninclude mwtypes.h
*/
/*
* Warning - Filter coefficients were truncated to fit specified data type.
* The resulting response may not match generated theoretical response.
* Use the Filter Design & Analysis Tool to design accurate
* int16 filter coefficients.
*/
const int BL = 6;
const int16_T B[6] = {
3519, 5123, 6610, 6610, 5123, 3519
};
卷积函数:
#if FIR
/**
* pcmData : input PCM array, int16 stero PCM
* pcmData_fir : output PCM array, int16 stero PCM
*/
printf("===fir===
");
uint32_t n,m;
int32_t yn;
int16_t* pcmdata_p = (int16_t*)pcmData;
//--------------left PCM channel-------------
for(n=0;n< sizeof(pcmData) /2;n++)
{
yn=0;
for(m=0;(m>(10+5);
}
//--------------right PCMchannel-------------
for(n=0;n< sizeof(pcmData) /2;n++)
{
yn=0;
for(m=0;(m>(10+5);
}
#endif