首页 > 编程知识 正文

低通滤波器代码,采用dsp做fir算法

时间:2023-05-04 18:30:06 阅读:134933 作者:1169

DSP的FIR设计(低通滤波) c语言创作综述1

设计的目的

低通滤波器设计。

本设计中使用的信号是

消息: signal=sin(2*pi*sl*n*t ) ) ) ) )。

高频噪声1:noise1=0.7*sin(2*pi*ns1*n*t ) ) ) )

高频噪声2:noise2=0.4*sin(2*pi*ns2*n*t ) ) ) ) )。)

混合信号: x=(signalnoise1noise2) ) ) ) ) ) ) ) )。

其中,sl=500Hz、ns1=3000Hz、ns2=8000Hz、T=1/20000。 混合信号波形是经过滤波输入信号波形,信息信号波形是输出信号波形,滤波的效果是去除两个高频噪声。

FIR滤波器的基本理论

(1) FIR滤波器的特点

数字滤波器的功能是通过一定的运算将输入序列转换为输出序列。 其实现方法有很多,其中比较常用的有无限长冲激响应滤波器IIR和有限长冲激响应滤波器FIR两种。

在计算量相等的情况下,IIR数字滤波器的振幅特性比FIR滤波器好,频率选择性也好。 但有致命的缺点,其相位特性难以控制。 其相位特性是使频率产生严重非线性的原因。 然而,在图像处理、数据传输等波形传输系统中,越来越多地要求具有线性相位特性的信道。 在这一点上,FIR滤波器有独特的优点,将FIR滤波器的单位冲激响应h(n )的长度设定为n,其系数函数h ) z )

h(z )为(N-1 )次多项式,在z平面上有(N-1 )个零点,原点z=0为(N-1 )次多极。 因此,h(z )永远稳定,可以自由设计振幅特性,同时保证正确且严密的线性相位。

)2) FIR滤波器的基本结构

数字滤波器通过按照规定算法对所输入的信号序列进行处理来得到期望的输出序列,FIR滤波器的差分方程式如下:

将上式进行z变换得到的FIR滤波器的传递函数如下。

由上式可知,h(z )为N-1次多项式,在z平面内有N-1个零点,同时在原点有N-1个多极。 n阶滤波器通常使用n个延迟单元、n个加法器和N 1个乘法器,采用图中(a )、(b )两种结构。

图FIR滤波器的一般结构

由于FIR滤波器的单位采样响应是有限长的,所以总是稳定的。 另外,如果对h(n )给出某些约束条件,则可以容易地使h(n )具有线性相位,这在信号处理的许多领域中非常重要。 FIR滤波器的设计任务是确定一个转移函数h(z ),使得其频率响应满足给定的要求。 这里所述的要求重要的是确保h(z )除了通带频率、阻带频率和两频带的最大和最小衰减之外还具有线性相位。

)3) Chebyshev近似法

用窗函数法和频率采样法设计的滤波器的频率特性都是对不同意义上给定的理想频率特性的近似。 从数值近似理论可以看出,对某个函数f(x )的近似一般有以下三种方法。

插值法(Interpolating Way (

最小二乘近似(Least Square Approaching Way ) )。

一致逼近法(Consistent Approaching Way )。

对于给定区间[a,b]上的连续函数,踏实的飞鸟最佳匹配近似的基本思想是多项式p[x],使得在所有n次多项式集合中,[a,b]上成对的偏差与所有其他所属多项式p[x]对f[x]的偏差相比最小

有名的“交错点组定理”指出了如何构造这种最优一致逼近多项式,踏实的飞鸟逼近理论是存在且唯一的多项式。

踏实的飞鸟逼近理论解决了p(x )的存在性、唯一性、如何构造等问题。 J.H.McClellan、T.W.Parks、L.R.Rabiner等人提出了应用地道的飞鸟逼近理论设计FIR滤波器的计算机辅助算法。 由于该算法在一致意义上进行了最优逼近,获得了良好的通带和阻带性能,能够准确指定通带和阻带的边缘。 但其效率取决于初始极值频率点的估计,且带通和阻带内纹波多,这是Chebyshev方法的两个主要缺点。

三. FIR滤波器的MATLAB实现

MATLAB辅助DSP实现FIR。 其总体过程是在DSP中编写处理程序,在MATLAB中利用滤波器设计、分析工具(FDATOOL ),基于指定的滤波器性能快速设计FIR,将滤波器系数以头文件形式引入CCS。 在头文件中,MATLAB辅助DSP在FIR数字滤波器中包含滤波阶数和系数数组,用MATLAAB辅助DSP实现FIR,这种方法易于使用汇编语言实现程序。 如果不变更标题文件名,变更在MATLAB中设计的滤波器系数,则对应的标题文件的系数也变更,程序的调试、模拟变得容易。

(1)输入信号的产生

首先利用Matlab制作导入CCS的dat文件,具体实现如下代码所示

sl=500; %有效信号

ns1=3000; %高频噪声

ns2=8000; %高频噪声

fs=

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。