本帖最后由 蓝田 于 2012-7-18 11:52 编辑
我要做一个音频带通滤波器,简单的讲就是输入一个音频文件(WAV格式),经过带通滤波后再输出来,目前测试阶段,带通滤波的上下限频率可以随意定。
我是学计算机的,之前没想到做音频滤波还要用到matlab,是在网上找资料看到的。我找到了一个VC程序如下:
/*
这是一个对语音信号(0.3kHz~3.4kHz)进行低通滤波的C语言程序,
低通滤波的截止频率为800Hz,滤波器采用19点的有限冲击响应FIR滤波。
语音信号的采样频率为8kHz,每个语音样值按16位整型数存放在insp.dat文件中。
*/
#include
const int length = 180/*语音帧长为180点=22.5ms@8kHz采样*/
void filter(int xin[ ],int xout[ ],int n,float h[ ]); /*滤波子程序说明*/
/*19点滤波器系数*/
static float h[19]=
{0.01218354,-0.009012882,-0.02881839,-0.04743239,-0.04584568,
-0.008692503,0.06446265,0.1544655,0.2289794,0.257883,
0.2289794,0.1544655,0.06446265,-0.008692503,-0.04584568,
-0.04743239,-0.02881839,-0.009012882,0.01218354};
static int x1[length+20];
/*低通滤波浮点子程序*/