当前位置:首页 > 基于DSP芯片的语音信号FIR滤波系统
窗函数来截短信号。 2.5滤波器的特点 优点:
(1)很容易获得严格的线性相位,避免被处理的信号产生相位失真,这一
特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常重要; (2)可以在幅度特性随意设计的同时,保证精确、严格的线性相位,还可
得到多带幅频特性;
(3)极点全部在原点(永远稳定),无稳定性问题;
(4)任何一个非因果的有限长序列,总可以通过一定的延时,转变为因果序列,所以因果性总是满足;
(5)无反馈运算,运算误差小。 缺点:
(1)因为无极点,要获得好的过渡带特性,需以较高的阶数为代价; (2)无法利用模拟滤波器的设计结果,一般无解析设计公式,要借助计算
机辅助设计程序完成。
2.5 MATLAB设计FIR滤波器
(1) 设计低通FIR滤波器(采用Hamming窗): B=FIR1(N,Wn)
其中,N为滤波器的阶数,Wn为归一化截至频率,0.0 (2) 设计高通FIR滤波器(采用Hamming窗): B=FIR1(N,Wn,’high’) 其中,N和Wn的含义与低通滤波器相同。 (3) 设计带通FIR滤波器(采用Hamming窗): B=FIR1(N,Wn) 其中,Wn是一个二维矢量,Wn=[W1,W2],W1和W2分别对应于阻带的低端频率和高端频率。还可以设计其他类型的滤波器,具体查阅MATLAB参考书籍。 还有另一个比较直观的设计滤波器的方法,利用MATLAB里的Filter Design & Analysis Tools设计滤波器比较直观。 5 Fliter Type选择低通,高通,带通或者带阻滤波器。 Design Method选择IIR还是FIR滤波器,后面下拉菜单选择类型,程序里采用的是加窗类型。 Fliter Order选择滤波器的阶数,程序中采用63阶,即系数为64点。 Windows Specifications是选择窗函数类型,程序中采用Hamming窗。 然后设置抽样频率(程序里采用16K)和截至频率,然后点击Design Fliter就设计好了。 以上是设计的一个3K低通滤波器。 设计好滤波器以后,点击File->Export to C Header File 6 然后选择Export as:选择16位符号数,点击OK,将滤波器参数存为头文件,打开头文件可以看到: /* * Filter Design and Analysis Tool - Generated Filter Coefficients - C Source * Generated by MATLAB - Signal Processing Toolbox */ /* General type conversion for MATLAB generated C-code */ #include \/* * Expected path to tmwtypes.h * D:\\MATLAB6p1\\extern\\include\\tmwtypes.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 fixed-point * filter coefficients! */ const int NL = 64; const int16_T NUM[64] = { -15, -28, -6, 31, 37, -10, -64, -44, 54, 115, 28, -140, -166, 46, 269, 178, -206, -422, -97, 477, 551, -149, -872, -576, 679, 1429, 7 345, -1842, -2412, 803, 6794, 11599, 11599, 6794, 803, -2412, -1842, 345, 1429, 679, -576, -872, -149, 551, 477, -97, -422, -206, 178, 269, 46, -166, -140, 28, 115, 54, -44, -64, -10, 37, 31, -6, -28, -15 }; const int DL = 1; const int16_T DEN[1] = { 32767 }; const int16_T NUM[64]就是该滤波器的系数。 8
共分享92篇相关文档