带通数字滤波器的DSP实现
设计内容及要求:
已知x1(n)=sin(2pif11nT);
x2(n)=0.5sin(2pif12n*T)
x3(n)=0.8sin(2pif13n*T);
x(n) = x1(n)+ x2(n)+ x3(n)
其中:f11=100; f12=400; f13=1000; fs=10000
要求:采用c语言编程,分别设计FIR带通滤波器,把f11和f13滤掉,保留f12。
MATLAB部分
1)设置好FIR滤波系数
2)将系数导出为MATLAB变量
覆盖原数据
导出Num数据
CCS部分
1)将FIR滤波系数粘贴到CCS中
代码部分
#include "math.h"
#define Fs 10000 /* 采样频率 */
#define T 1/Fs /* 采样时间 */
#define f1 100 /* 正弦信号1频率 */
#define f2 400 /* 正弦信号2频率 */
#define f3 1000 /* 正弦信号3频率 */
#define PI 3.1415926
#define w1 (2*PI*f1*T) /* 正弦信号1数字频率=2*pi*f1/Fs =2*pi/100*/
#define w2 (2*PI*f2*T) /* 正弦信号2数字频率=2*pi*f2/Fs =2*pi*4/10*/
#define w3 (2*PI*f3*T) /* 正弦信号3数字频率=2*pi*f3/Fs =2*pi/10*/
#define a1 1 /* 正弦信号1幅度 */
#define a2 0.5 /* 正弦信号2幅度 */
#define a3 0.8 /* 正弦信号3幅度 */
#define FIRNUMBER 100//滤波阶数
#define FIRNUMBER 100//滤波阶数
#define FIRNUMBER 100//滤波阶数
extern int fir(int *,int *,unsigned int,int );
/* Low-pass FIR filter coefficients */
float f2PI=2*PI;
float in_signal_max =