基于单片机的数字滤波器设计
基于单片机的程控滤波器设计要点

摘要在电子电路中,滤波器是不可或缺的部分,其中有源滤波器更为常用。
一般有源滤波器由运算放大器和RC元件组成,对元器件的参数精度要求比较高,设计和调试。
也比较麻烦。
美国Maxim公司生产的可编程滤波器芯片MAX270可以通过编程对各种低频信号实现低通、高通、带通、带阻以及全通滤波处理,且滤波的特性参数如中心频率、品质因数等,可通过编程进行设置,电路的外围器件也少。
本文设计并实现了由MAX270构成的程控滤波器电路设计和实现。
单片机AT89S52是控制程序的控制过滤器的核心。
通过单片机控制继电器的吸合来控制增益电阻的连接进而实现了增益的0dB到60dB每10dB步进可调;通过单片机控制二阶低通程控滤波器MAX270,完成了在-3dB时截止频率fc在1kHz~20kHz范围内可调的低通滤波器的设计,调节截止频率步进为1kHz,并用LCD来显示设置参数。
应用Matlab计算椭圆滤波函数的传递函数,建立电路网络,设计出了四阶椭圆低通滤波器。
关键词:程控滤波器可编程滤波器芯片单片机ABSTRACTIn the electronic circuit, the filter is the indispensable part. Especially the active filter is used more commonly. Generally the active filter is composed of the operational amplifier and the RC part. Its requirement to the accuracy of the device's parameter is quite high, and the design and the debugging are also quite troublesome.The filter chip MAX262 which produced by American Maxim Corporation is capable of achieving low-pass, high-pass, band-pass, band elimination to each kind of low-frequency signal through programming, and the filter's characteristic parameter like center frequency, the quality factor and so on may set through programming, and the periphery component of electric circuit are also few. This article design and completed the design the design and realize of the program control filter circuit which make up of the MAX270.Monolithic integrated circuit AT89S52 is the control core of the program control filter. Controlled by the microcontroller to control relays pull the gain resistor connected in turn to achieve a gain of 0dB to 60dB 10dB step adjustable each; second-order low-pass through the SCM programmed filter MAX270, when completed in the-3dB cutoff frequency fc at 1kHz ~ 20kHz range adjustable low-pass filter design, cut-off frequency adjustment step is 1kHz, using the LCD to display the configuration parameters. Application of Matlab computing elliptic filter function of the transfer function, the establishment of the circuit network, to design a fourth-order elliptic low-pass filter.Key words:Program control Filter Programmable filter chip SCM目录1 绪论 (1)1.1 滤波器的发展 (1)1.2 课题研究的意义 (1)2 系统设计 (3)2.1 滤波器相关知识 (3)2.1.1 滤波器的分类 (3)2.2 单片机相关知识 (4)2.2.1 单片机的产生与发展 (4)2.3 系统方案设计 (6)2.3.1设计要求 (6)2.3.2 各模块方案的选择 (6)2.3.3 最终方案 (7)2.4 理论分析与计算 (10)3 硬件设计 (13)3.1 放大器模块 (13)3.2 单片机控制滤波器模块 (14)3.3 操作及显示模块 (18)4 软件设计 (20)4.1 开发软件及环境简介 (20)4.1.1 Keil (20)4.1.2 Proteus (20)4.2 系统主要程序 (21)5 系统测试 (23)5.1 指标测试 (23)5.2 误差分析 (23)5.3 功能实现 (24)结论 (26)谢辞 (27)参考文献 (28)附录 (29)1 绪论1.1 滤波器的发展从广义上讲,任何对某些频率(相对于其他频率来说)进行修正的系统称为滤波器。
单片机数字滤波算法

单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。
但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。
下面主要是介绍如何用单片机实现数字滤波。
在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。
为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。
滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。
1采用数字滤波算法克服随机干扰的误差具有以下优点:1.数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻抗匹配问题。
尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。
2.数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统开支。
3.只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这对于滤除低频干扰和随机信号会有较大的效果。
4.在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤波法、加权平均滤波法、滑动平均滤波等。
2限幅滤波算法该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。
A的大小由被测对象的具体情况而定,如果小于或等于允许的最大差值,则本次采样有效;否则取上次采样值作为本次数据的样本。
算法的程序代码如下:#define A //允许的最大差值char data; //上一次的数据char filter(){char datanew; //新数据变量datanew=get_data(); //获得新数据变量if((datanew-data)>A||(data-datanew>A))return data;elsereturn datanew;}说明:限幅滤波法主要用于处理变化较为缓慢的数据,如温度、物体的位置等。
数字滤波器的基本结构

未来研究方向
新型算法研究
针对实际应用中的挑战,未来研究将进一步探索新型的数字滤波器 算法,以提高其性能、稳定性和适应性。
高性能硬件实现
随着集成电路和计算机工程的发展,未来研究将进一步探索高性能 、低功耗的数字滤波器硬件实现方法。
跨领域应用
数字滤波器在许多领域都有广泛的应用前景,如医疗、航空航天、环 保等,未来研究将进一步拓展数字滤波器的应用领域。
梯度下降法
通过迭代地更新滤波器的 系数,使得误差的梯度下 降最快,从而逐渐逼近最 优解。
牛顿法
利用牛顿定理,通过迭代 来寻找最优解,具有较高 的收敛速度和精度。
最优滤波器设计
最小均方误差(MMSE)滤波器
以最小化输出信号与期望信号之间的均方误差为优化目标,设计最优的滤波器 。
卡尔曼滤波器
一种递归滤波器,通过预测和更新来估计系统的状态,具有较高的稳定性和精 度。
控制系统
数字滤波器可以用于控制系统 的处理,如伺服控制、PID控制
、卡尔曼滤波等。
02
CHAPTER
数字滤波器的基本结构
数字滤波器的基本结构 直接形式
直接形式是数字滤波器的基本结构之 一。它是一种直观的形式,由一个输 入和一个输出组成,输入信号经过一 个或多个线性时不变系统后得到输出 信号。直接形式的结构简单,易于理 解和实现。
硬件优化
随着集成电路和计算机工程的发展,数字滤波器的硬件实 现越来越高效,低功耗、高速度和小型化成为主要趋势。
软件算法改进
数字滤波器的算法不断优化,以适应更复杂和多变的应用 场景,如神经网络、深度学习等算法的引入使得滤波效果 更加精确。
嵌入式应用
随着嵌入式系统的发展,数字滤波器在嵌入式设备上的应 用越来越广泛,这要求数字滤波器具有更强的稳定性和适 应性。
中兴硬件面试题目(3篇)

第1篇一、基础知识1. 请简述数字信号与模拟信号的区别。
2. 请解释什么是模数转换(A/D转换)和数模转换(D/A转换)。
3. 什么是串行通信和并行通信?它们各自有哪些优缺点?4. 什么是USB接口?请简述其工作原理。
5. 请解释什么是PCIe接口?请列举其优点。
6. 什么是GPIO?请列举其应用场景。
7. 请解释什么是I2C、SPI和UART?它们各自有哪些特点?8. 什么是存储器?请简述RAM、ROM、ROM、EEPROM和Flash的不同。
9. 什么是微控制器(MCU)?请列举其应用领域。
10. 什么是处理器?请简述CPU、GPU和DSP的区别。
二、电路分析1. 请解释什么是三极管?请列举其三种工作状态。
2. 请解释什么是场效应晶体管(MOSFET)?请列举其优点。
3. 什么是晶体管放大电路?请简述其工作原理。
4. 请解释什么是滤波器?请列举几种常见的滤波器。
5. 什么是振荡器?请列举几种常见的振荡器。
6. 请解释什么是稳压器?请列举几种常见的稳压器。
7. 请解释什么是电源管理芯片(PMIC)?8. 请解释什么是线性电源和开关电源?9. 请解释什么是电磁干扰(EMI)?10. 请解释什么是电磁兼容性(EMC)?三、嵌入式系统1. 请解释什么是嵌入式系统?请列举其特点。
2. 请简述嵌入式系统的发展历程。
3. 请解释什么是实时操作系统(RTOS)?4. 请解释什么是中断?5. 请解释什么是看门狗定时器?6. 请列举几种常见的嵌入式开发工具。
7. 请解释什么是编译器、链接器和调试器?8. 请解释什么是嵌入式系统调试?9. 请列举几种常见的嵌入式系统开发平台。
10. 请解释什么是嵌入式系统测试?四、硬件设计1. 请解释什么是硬件设计?请列举其流程。
2. 请解释什么是硬件设计规范?3. 请解释什么是硬件设计文档?4. 请解释什么是PCB设计?5. 请解释什么是信号完整性(SI)?6. 请解释什么是电源完整性(PI)?7. 请解释什么是热设计?8. 请解释什么是电磁兼容性(EMC)?9. 请解释什么是可靠性设计?10. 请解释什么是硬件设计验证?五、通信原理1. 请解释什么是通信?请列举通信的基本原理。
单片机测控系统中的数字滤波器设计

近年来 , 随着计算机技 术 的迅 速发展 , 计数字 滤波器 为设
对被测模拟信号 的处 理过程 如图一所示 。被测模拟 量首 先经过采样/ 保持 电路(/ )送至模/ SH , 数转换器( D ) A C 转换成
( it i r英文缩写为 D ) Dga Ft , il l e F 创造了条件。数字滤波器是数
字信号处理器的一种 , 亦称软件滤波器 。它通过计算机执行一 段相应的程序来滤 除夹杂在数字信号 中的干扰信号。 采样 / 保持 电路 (, sH)
模, 数转换 器( D ) A C
数字量, 然后通过数字滤波器( F 滤除其中的干扰信号。 D) 最后
通过数模转换器 ( A ) D C 获得模 拟量输出。
维普资讯
第6 卷第 2 期
20 0 6年 6月
湖 南 工 业职 业 技 术 学 院 学 报
J R L O NA I D T OL E H C OU NA F HU N N US RY P YT C NI
V0. N 16 n 2
Jl. 0 6 II2 0 I
单片机测控系统中的数字滤波器设计
陶炎焱 。黄会雄
( 湖南省商务职业技术学院,湖南 长沙 402 ) 107
[ 摘 要】 在传统的模拟滤波器 基础上。 提出了 数字滤波器的新 算法, 井根据单片机测控系 统在受到不同干扰时, 提出了 数字滤
波 器的 谩 计 步 骤 和 设 计 思 路 。 ’
t i v le po o e e h ytm e evn ie n tr rn e l yf a t o wa ef tra i rp sd wh nte sse rc iigdf r tne e c . e i fe
8位单片机低通滤波算法

8位单片机低通滤波算法低通滤波算法是一种常用于信号处理的滤波算法,用于去除高频噪声,保留低频信号。
在8位单片机中实现低通滤波算法,可以采用数字滤波器的方法,其中一种常用的方法是IIR(Infinite Impulse Response)滤波器。
IIR滤波器是一种递归滤波器,其输出是由输入信号和之前的输出信号线性组合而成的。
其结构如下:y[n] = b0 * x[n] + b1 * x[n-1] + ... + bn * x[n-n] - a1 *y[n-1] - a2 * y[n-2] - ... - am * y[n-m]其中,x[n]是当前输入信号,y[n]是当前输出信号,a1, a2, ...,am是滤波器的系数,b0, b1, ..., bn是输入信号的系数。
在单片机中实现低通滤波算法的步骤如下:1. 定义滤波器的系数a1, a2, ..., am和b0, b1, ..., bn,这些系数决定了滤波器的特性。
2.初始化输入和输出缓冲区,用于存储之前的输入和输出信号。
3.循环读取输入信号,并将其存储到输入缓冲区。
4.根据滤波器的结构,计算当前输出信号y[n],并将其存储到输出缓冲区。
5.更新输入和输出缓冲区,将当前输入和输出信号存储到之前的位置。
这样每次循环都可以使用最新的输入和输出信号。
6.将输出信号送入输出端。
需要注意的是,8位单片机的计算能力有限,因此在实现低通滤波算法时,需要考虑计算复杂度和存储空间的限制。
可以通过降低滤波器的阶数或使用简化的计算方法来减少计算量。
例如,如果滤波器的阶数较高,可以使用二阶节拍法(Biquad)结构来实现滤波器,该结构只需要保存两个输入和两个输出缓冲区,大大减少了存储空间的使用。
此外,还可以通过查表的方式来实现低通滤波算法,使用预先计算好的滤波器响应曲线,将输入信号与查表值相乘得到输出信号。
总之,通过合理选择滤波器结构和算法优化技巧,可以在8位单片机上有效实现低通滤波算法。
单片机 fir滤波器算法实现

单片机 FIR 滤波器算法实现1. 引言FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,它在信号处理中起到了重要的作用。
本文将介绍单片机上如何实现 FIR 滤波器算法。
2. FIR 滤波器原理FIR 滤波器是一种线性时不变(LTI)系统,其输出信号是输入信号与滤波器的冲激响应进行卷积运算得到的。
FIR 滤波器的冲激响应是一个有限长度的序列,因此称之为有限脉冲响应滤波器。
FIR 滤波器的输入输出关系可以表示为以下公式:y[n] = b[0]*x[n] + b[1]*x[n-1] + b[2]*x[n-2] + ... + b[N]*x[n-N]其中,y[n] 是输出信号,x[n] 是输入信号,b[0] 到 b[N] 是滤波器的系数。
3. 单片机上的 FIR 滤波器实现在单片机上实现 FIR 滤波器算法需要以下步骤:3.1. 定义滤波器的系数首先需要定义 FIR 滤波器的系数。
系数的选择决定了滤波器的特性,可以根据具体的需求进行设计。
常见的系数设计方法包括窗函数法、频率采样法等。
3.2. 定义输入输出缓冲区为了实现滤波器的运算,需要定义输入和输出的缓冲区。
输入缓冲区用于存储输入信号的历史数据,输出缓冲区用于存储滤波器的输出结果。
3.3. 实现滤波器算法根据 FIR 滤波器的原理,可以使用循环结构实现滤波器的算法。
具体的实现过程如下: 1. 读取输入信号 x[n]; 2. 将输入信号保存到输入缓冲区; 3. 使用滤波器的系数和输入缓冲区的数据进行卷积运算,得到输出信号 y[n]; 4. 将输出信号保存到输出缓冲区; 5. 更新输入缓冲区的数据,将最新的输入信号放到缓冲区的开头; 6. 重复步骤 1 到步骤 5,直到处理完所有的输入信号。
3.4. 实现滤波器的输入输出接口为了方便使用滤波器,可以实现输入输出接口,使得用户能够方便地输入输出信号。
输入接口可以从传感器、外部设备等获取输入信号,输出接口可以将输出信号发送到显示器、存储设备等。
单片机中IIR滤波器的实现

单片机中(C语言)IIR滤波器的实现转载原文参见https:///qq_21905401/article/details/53894517 IIR是无限长单位脉冲响应数字滤波器,其系统对应函数有如下形式:在知道滤波器相应的系数b[],a[]后可根据相应的差分方程,完成对数据的滤波,而滤波器的系数可以通过Matlab滤波器设计和分析工具箱Filter Design&Analysis Tool求得,下面以一个IIR三阶低通滤波器为例,介绍C语言IIR滤波器的实现方法:1、计算滤波器的系数根据信号的采样频率以及低通滤波器的截止频率,通过Matlab工具箱求得滤波器的系数b和a。
如信号采样率为f=400Hz,低通滤波器的截止频率fc=60Hz:Matlab中Start→ToolBoxes→Filter Design→Filter Design & Analysis Tool(fdatool)在Filter Design & Analysis Tool,输入滤波器的相应指标,点击“Design Filter”设计滤波器。
如下图所示:通过Analysis→Filter coefficients查看所设计滤波器系数:响应函数:2、差分方程C语言实现根据相应函数得到差分方程:a[0]*y[i]=Gain*(b[0]*x[i]+b[1]*x[i-1]+b[2]*x[i-2])-a[1]*y[i-1]-a[2]*y(n-2)其中Gain=0.146747,b[]={1,2,1},a[]={1,-0.837000,0.42398},x[i]为输入信号,y[i]为滤波后信号。
C语言实现代码如下:B[0]=1;B[1]=2;B[2]=1;A[0]=1;A[1]=-0.837000;A[2]=0.42398;Gain=0.146747;w_x[0]=w_x[1]=w_x[2]=0;w_y[0]=w_y[1]=w_y[2]=0;for(int i=0;i<len;i++){w_x[0]=x[i];w_y[0]=(B[0]*w_x[0]+B[1]*w_x[1]+B[2]*w_x[2])*Gain-w_y[1]*A[1]-w_y[2]*A[2];y[i]=w_y[0]/A[0];w_x[2]=w_x[1];w_x[1]=w_x[0];w_y[2]=w_y[1];w_y[1]=w_y[0];}也可以使用如下代码:w[0]=w[1]=w[2]=0;for(int i=0;i<len;i++){w[0]=A[0]*x[i]-A[1]*w[2]-A[2]*w[2];y[i]=(B[0]*w[0]+B[1]*w[1]+B[2]*w[2])*Gain;w[2]=w[1];w[1]=w[0];}注意:在滤波之前,需要将系数w_x[]、w_y[]、w置零。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机数字滤波器设计摘要数据采集又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。
数据采集技术广泛应用在各个领域。
比如摄像头,麦克风,都是数据采集工具。
被采集数据是已被转换为电讯号的各种物理量,如温度,水位,风速,压力等,可以是模拟量,也可以是数字量。
在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生重要变化。
而在数据采集中存在各种噪声。
滤除噪声的方法有很多种,既有数字滤波器,也有模拟滤波器。
本文采用了基于单片机和c语言来设计并开发数字滤波系统。
针对于单片机数据采集系统中经常出现的随机干扰,通过交流信号发生器输入来模拟数据采集过程,验证了几种使用较为普遍的克服随机干扰的单片机数字滤波算法,并给出了相应的c程序,同时也对这几种滤波算法进行了比较,并指出每一种算法具体适用范围和注意事项。
另外本文使用了proteus进行仿真验证这几种滤波方法,用了AD和DA来采集及输出数据。
关键词单片机/proteus/数字滤波。
BASED ON SCM DIGITALFILTER DESIGNABSTRACTData acquisition, also called data acquisition is the use of a device from the system input to external data collection and an interface that internal system. Data collection technology is widely quoted in various fields. Such as cameras, microphones, are data acquisition tools. Are collected data has been converted to telecommunications number of various physical quantities such as temperature, pressure, water, wind speed, etc, can be analogue, also can be the digital quantity. In the Internet industry fast development today, data acquisition has been widely used in Internet and distributed field, data acquisition field has changed in important changes. And in data acquisition exist in all sorts of noise. Filter out the noise a variety of ways, both digital filters, also have simulation filter. Here we adopted based on SCM and C language to design and develop digital filtering system. We based on single-chip microcomputer data acquisition system often appears in the random disturbance, through the manual input to simulate data acquisition process, and verifies the several use common overcome random disturbance single-chip digital filtering algorithm, and presents the corresponding C program, especially for the median value filter and the median value average filtering algorithm procedures were improved. Also on this compares several filtering algorithm, and points out the concrete each kind of algorithm is applicable range and precautions. In addition we use the simulation test this proteus several filtering method. In addition we still use the AD and DA to harvest and output data.KEY WORDS microcontroller, proteus, digital filter目录摘要 ................................................................................................................................................... I ABSTRACT...................................................................................................................................... II 1 绪论 (1)1.1数字滤波器特点 (1)1.2数字滤波器的设计 (2)2 数字滤波设计原理 (3)2.1中值滤波 (3)2.2算数平均滤波 (4)2.3 加权平均滤波 (5)2.4 中位值平均滤波 (6)2.5限幅滤波 (7)3 滤波器硬件设计 (8)3.1 单片机AT89C51 (8)3.2 数据采集 (9)3.3 数模转换输出 (10)3.4 总体电路图 (10)4 程序设计 (11)4.1 滤波算法设计 (11)4.2 AD转换器 (12)4.3 滤波算法的选择 (12)4.4 总体程序 (13)4.5 程序流程图 (13)5 仿真结果和分析 (14)6 数字滤波器新算法分析 (18)6.1 滑动平均滤波 (18)6.2 一阶滞后滤波 (18)6.3加权递推平均滤波 (19)6.4 消抖滤波 (20)7 总结 (22)致谢 (23)参考文献 (24)附录A (25)附录B (26)1 绪 论1.1 数字滤波器特点现在工业控制系统中,电路系统变得越来越复杂,因而带来的相互干扰也越来越强烈,模拟滤波电路已不能满足要求,数字滤波应运而生。
数字滤波器是数字信号处理器的一种,在进行数据采集和数据传输过程中,经常会受到各种外界干扰,当干扰严重时,可导致系统的测控精度降低甚至无法正常工作,数字滤波器则通过计算机执行一段相应的程序来滤除夹杂在数字信号中的干扰信号。
它所处理的对象是用序列表示的离散信号或是数字信号,因而可以实现一些高难度的复杂处理,而且具有工作稳定,受环境因素小,抗干扰性能强精度可控等优点。
因而现阶段被广泛应用,而用单片机实现数字滤波器与广泛应用的DSP 处理器相比,具有成本低,体积小,可靠性强等优点,因而在一定场合也有一定的实用价值。
【9】从时间上看,数字信号是离散的,从幅度上看,它又是量化的。
因此数字信号可用一个序列数来表示,而每个数又可表示成二进制码的形式。
数字滤波器的功能就是利用计算机软件对一组输入数字序列进行一定的运算,再变换成另一组输出数字序列。
对被测信号的处理,首先通过采样/保持电路,送至模/数转换器转换成数字量,然后通过数字滤波器滤除其中的干扰信号,最后通过模/数转换器获得模拟量输出。
根据所用数学模型的不同,数字滤波器可划分为两大类:一种是递归性滤波器,其特点是滤波器的输出不仅与输入信号有关,还与过去的输出值有关;另一种是非递归性滤波器,其特征是滤波器的输出仅与输入信号有关,而与过去输出值无关。
设数字滤波器的输入信号为()X n ,输出信号为()Y n ,则输入序列与输出序列之间的关系可用差分方程表示为公式一:01()()()N Nk k K K Y n b X n K a Y n K ===-+-∑∑ (1.1)输入信号()X n 可以是模拟信号经采样和ADC 变换后得到的数字序列,也可以是计算机的输出信号,k a ,k b 均为系数,由上述差分方程组组成的数字滤波器,称为递归性滤波器。
若将上述差分方程中系数k a 取做0,则得到公式二:0()()Nk K Y n b X n K ==-∑ (1.2)这种滤波器叫做非递归性滤波器。
选择不同的系数,则可以设计低通,高通或带通,带阻式数字滤波器。
【6】1.2 数字滤波器的设计1.设计数字滤波器时,一般按下面步骤进行:(1)根据干扰信号的特征来选择合适的滤波器。
(2)建立起典型的差分方程数学模型,并对差分方程进行Z 变换,写出其Z 传递函数。
(3)根据有用信号与干扰信号的频率特征,来确定系统期望的通频带。
(4)根据Z 传递函数,确定其幅频特性和相频特性,再对Z 进行反变换,求出滤波器的线性离散方程。
(5)按照线性差分方程来编制相应的软件,最终实现数字滤波的功能。
2. 数字滤波器的软件设计在测控系统中,由于各种参数的干扰成分不同,因而滤除这些干扰成分的方式也不同,本论文将用到中值滤波,算数平均滤波,加权平均滤波,中位值平均滤波,限幅滤波这五种方法,可根据具体情况加以选用。
2 数字滤波设计原理这里有很多种熟悉滤波方法,我们见选用其中几种来进行设计,如中值滤波,算数平均滤波,加权平均滤波等等。
所以下面我将详细介绍它们。
2.1中值位滤波是先对某中值滤波一参数连续采样N次(一般N取奇数),然后把N次采样值按从小到大排列,取中间值为本次采样值。
该滤波方法实际上是一种排序方法,我在此采用的是冒泡法排序。
由于在冒泡法排序中,没出现一次前者数据大于后者数据,就要进行两者数据的交换。
该算法样例子程序如下:#define N 11 //N值可根据实际情况调整char filter(){char value_buf[];char count,i,j,k,temp;for(count=0;count<N;count++) //获取数据{value_buf[count]=get_data();delay();}for(i=0;i<N-1;i++) //选择排序{k=i;for(j=i+1;j<N;j++)if(value_buf[j]<value_buf[k]) k=j;temp=value_buf[k];value_buf[k]=value_buf[i];value_buf[i]=temp;}return value_buf[(N-1)/2];}中位值滤波能有效地克服偶然因素引起的波动或采样器不稳定引起的误码等脉冲干扰。