当前位置:文档之家› 基于数字滤波的单片机仿真和C语言开发

基于数字滤波的单片机仿真和C语言开发

基于数字滤波的单片机仿真和C语言开发
基于数字滤波的单片机仿真和C语言开发

课程设计任务书

学生姓名:周国阳专业班级:电信1001 指导教师:阮军工作单位:信息工程学院

题目: 基于数字滤波的单片机仿真和C语言开发

初始条件:

本课程设计,要求用使用Proteus仿真软件进行系统设计与仿真。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具

体要求)

1、课程设计工作量:1周内完成对系统的设计、仿真。

2、技术要求:

1)设计一种数字滤波器,比如:中值滤波算法、算术平均滤波算法、加

权平均滤波算法、滑动平均滤波算法等,自行设计输入信号的形式(了解各种

GENERATORS的使用)。要求进行电路仿真实验,并使用C语言进行程序的开发。

2)要求学生主动思考,自主发挥,实现系统的特色功能。

3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》要求撰

写设计报告书。全文用A4纸打印,图纸应符合绘图规范。

提交报告的主要内容:(使用Proteus 7.5 sp3)

1)题目

2)仿真所完成的主要功能和特色简介——摘要(特别是自己扩展的功

能,根据特色功能评优)

3)Proteus仿真的基本流程

4)所使用芯片以及引脚功能简介(需要提供对应芯片DataSheet的下

载链接)

5)设计方案与工作原理,给出仿真电路图

6)实验记录与结果分析

时间安排:

1)第1天,查阅相关资料,学习设计原理。

2)第2~3天,方案选择和电路设计仿真。

3)第4天,设计说明书撰写。

4)第5天,上交报告,同时进行答辩。

指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录

摘要................................................................ I Abstract........................................................... II 1. 开发环境 (1)

1.1仿真工具 (1)

1.2编程工具 (1)

2硬件模块 (2)

2.1 MCS-51单片机 (2)

2.2 AD转换器 (2)

2.3 DA转换器 (2)

3.数字滤波器的算法 (3)

3.1中值滤波器设计 (3)

3.2加权平均滤波 (3)

3.3限幅滤波 (4)

3.4 滑动平均滤波 (4)

4.系统的设计 (5)

4.1系统框图 (6)

5.系统电路图 (7)

6.仿真结果 (9)

7.系统分析 (11)

8.总结 (12)

参考文献 (13)

附录一程序代码 (14)

摘要

本次项目是要我们利用51单片机设计出几种数字滤波器。随着现在对滤波器的要求越来越高,模拟滤波器已经不能满足工业的要求。在这种情况下,数字滤波器得到了很大的发展。数字滤波器的实现过程的实现过程是把输入的模拟信号数字化,也就是由采样器对输入的模拟信号进行周期性的采样,并对每个样本进行量化和编码,即模数转换。从ADC输出的数字信号送入到数字信号处理器进行处理变化,处理器输出的数字信号再通过数模转换为模拟信号,这个过程要用到DAC来转换实现模拟信号的输出。

关键字:51单片机;数字滤波器;ADC;DAC

Abstract

The project is for us to take advantage of 51 single design several digital filters. With the filter now increasingly demanding, analog filters can not meet the industry requirements. In this case, the digital filter has been greatly developed. Realization of the process of realization of a digital filter to the analog input signal is digitized, that is sampled by the analog input signal is periodically sampled and each sample is quantized and coded, i.e., analog to digital conversion. ADC output digital signal is fed to the digital signal processor for processing the change, and then outputs the digital signal processor is converted to analog by digital to analog signals, to use this process to convert the DAC output analog signal.

Keywords: 51 single; digital filter; ADC; DAC

1.开发环境

1.1仿真工具

我们这次在进行硬件仿真时运用的proteus工具,它具有以下功能:

(1)能实现单片机仿真和SPICE电路仿真的结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

(2)支持主流单片机系统的仿真。目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。

(4)具有强大的原理图绘制功能。

1.2编程工具

Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

2硬件模块

2.1 MCS-51单片机

51单片机内包含下列几个部件:

一个8位CPU;

一个片内振荡器及时钟电路;

4KB ROM程序存储器;

128B RAM数据存储器;

可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路;

32条可编程的I/O线(4个8位并行I/O端口);

两个16位的定时/计数器;

5个中断源、两个优先级嵌套中断结构。

2.2 AD转换器

本次课程设计仿真使用的是ADC0808,ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。

2.3 DA转换器

DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。

运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。

3.数字滤波器的算法

3.1中值滤波器设计

中值滤波是先对某一参数连续采样N次(一般N取奇数),然后把N次采样值按从小到大排列,取中间值为本次采样值。该滤波方法实际上是一种排序方法,我在此采用的是冒泡法排序。由于在冒泡法排序中,每出现一次前者数据大于后者数据,就要进行二者数据的交换。中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l ∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

中值滤波能有效地克服偶然因素引起的波动或采样器不稳定引起的误码等脉冲干扰。对温度、液位等缓慢变化的被测参数采用此算法能收到良好的滤波效果,但对于流量、压力等快速变化的数据,不宜采用中位值滤波。

3.2加权平均滤波

在算术平均滤波和移动平均滤波中,N次采样值在输出结果中的权重是均等的,取1/N。用这样的滤波算法,对于时变信号会引入滞后,N值越大,滞后越严重。为了增加新采样数据在移动平均中的权重,以提高系统对当前采样值中所受干扰的灵敏度,可采用加权平均滤波,它是移动平均滤波算法的改进。

加权平均滤波是对连续N次采样值分别乘上不同的加权系统之后再求累加和,加权系统一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的辨识。各个加权系统均为小于1的小数,且满足总和等于1的约束条件。这样,加权运算之后的累加和即为有效采样值。为方便计算,可取各加权系数均为整数,且总和为256,加权运算后的累加和除以256,即舍去低字节后便是有效采样值。

3.3限幅滤波

限幅滤波的基本原理是把两次相邻时刻(n和n-1)的采样值Yn和Yn-1相减,求出其差值,以绝对值表示,然后将这个差值与两次采样允许的最大偏差值ΔY比较,如果两次采样值的差值超过了允许的最大偏差值ΔY,则认为发生了随机干扰,并认为最后一次采样值Yn非法,应予剔除。剔除Yn后,可用Yn-1代替Yn;若未超过允许的最大偏差值范围,则认为本次采样值有效。可用如下公式表示:|Yn-Yn-1|≤ΔY;则Yn有效|Yn-Yn-1|>ΔY;则Yn-1有效。

3.4 滑动平均滤波

把连续取N个采样值看成一个队列,队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4。对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统。

4.系统的设计

在我们这个项目中要求我们选取其中的一种数字滤波器来设计,但在做的过程中我们发现这些数字滤波器在我们学习MATLAB时很多都是接触过的,它们的算法都可以找到。所以我在做项目时把四种方式都加上去了,我们可以根据实际的波形灵活选择滤波器的方式。

在一开始输入的波形是模拟波形,我们要把它转换成数字波形,这样我们才能用数字滤波的方法对它进行滤波,所以我们用到了AD转换器。

当使用算法进行滤波后,现在的波是数字方式存在,我们要输出它,要以模拟波形的方式输出,所以我们用到了DA转换器。

在选择波形的时候,在这里我们选择了在键盘。

键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

4.1系统框图

否 是

图1 程序框图

结束

AD 采样量化

单片机处理

DA 转换输出

系统初始化

开始

待键盘信号 选择K1 选择K2

选择K3 选择K4 中值滤波 加权平均

滤波 限幅滤波 滑动平均滤波

5.系统电路图

图2系统电路图

我们在做个项目时在控制部分我们用的是51系列单片机——AT89C51,利用这个单片机进行编程,实现对输入信号的滤波。我使用了P0口作为接受AD 转换的结果的端口,而P1口则输出数据到DA转换器。另外还利用了P2作为控制端口,P2.0-P2.2用来控制AD转换器,而P2.3-P2.6外接四个开关,用来实现滤波方式的选择。

在采集波形电路部分,ADC0809是带地址锁存的模数转换器件,ADDA、ADDB、ADDC为模拟通道选择,编码为000~111分别选中IN0~IN7。ALE为地址锁存信号,其上升沿锁存ADDA、ADDB、ADDC的信号,译码后控制模拟开关,接通八路模拟输入中相应的一路。CLK为输入时钟,为AD转换器提供转换的时钟信号,典型工作频率为640KHz。START为AD转换启动信号,正脉冲

启动ADDA~ADDC选中的一路模拟信号开始转换。OE为输出允许信号,高电平时候打开三态输出缓存器,是转换后的数字量从D0~D7输出。EOC为转换结束信号,启动转换后EOC变为低电平,转换完成后EOC编程高电平。

在数模转换电路中,我用了DA0832来进行数模转换。DA0832有三种数模转换方法,直通方式、单缓冲方式、双缓冲方式,因为单片机输出后可以直接进行数模转换,所以这里我采用了不需要单片机控制的最为简单的直通方式,但是DA0832若用于直通方式。若用于直通方式下,则GND均接地,而VCC和ILE 则接正电源。VREF是参考电源。IOUT1、IOUT2是两个输出端。DA0832输出的是电流,要利用运算放大器转换成电压信号。

在电路的供电部分,由于此次系统的芯片工作电压为+5v,所以用常用的三端稳压器LM317和LM337构成的电源系统供电,其中ADC0809要提供一个准确的参考电源才能正常的工作,而LM317正好能够达到要求。

6.仿真结果

限幅滤波波形图

中值滤波波形图

加权平均滤波波形图

滑动平均滤波波形图

7.系统分析

通过仿真我们发现,系统中所设计出的四种滤波器滤波方法基本上都能够得到了实现。

限幅滤波的效果是和A值有关的,一般情况下,A值越小,则代表允许的噪声要越小,限幅滤波很适用于使幅值突变的噪声。

中值滤波由于要求中值,所用到的排序算法会大大消耗时间,因此延时比较严重,但是总的来说选择排序比冒泡排序的延时情况要好。

加权递推平均算法和上面一样,因为会求平均值,因此也会有时候产生中间值,但是如果把当前值得权值设的很大,而越久远之前的权值设的越小,则可明显改善此问题,另外由于加权递推平均滤波中用到的乘法,因此会有一定的延时。

8.总结

参考文献

[1]. 李全利,《单片机原理及接口技术》, 北京:高等教育出版社,2004

[2]. 张毅刚,《单片机原理及应用》,北京:高等教育出版社,2007

[3]. 徐仁贵,《微型计算机接口技术及应用》,北京:机械工业出版社,2007

[4]. 诸昌钤,《单片机原理》,成都:电子科技大学出版社,2004

[5]. 梅开乡,《数字逻辑电路》,北京:电子工业出版社,2003

附录一程序代码

#include

#define uchar unsigned char

#define A 0.005

#define N 11

sbit OE = P2^0;

sbit START = P2^1;

sbit EOC = P2^2;

sbit key1=P1^0;

sbit key2=P1^1;

sbit key3=P1^6;

sbit key4=P1^7;

uchar a,z1,z2,z3,z4;

ucharbuf[N] ={0};

void change()

{

int i;

for(i=0;i

buf[i]=buf[i+1];

buf[N-1]=a;

}

ucharget_data(n)

{

change();

returnbuf[n];

}

ucharKeyscan(void) //判断按键{

P1=0x3f;

if(key1==0) //行扫描z1=1,z2=0;

if(key2==0)

z2=1,z1=0;

if(z1==1) //列扫描{ P1=0xfc;

if(key4==0)

z3=1;

if(key3==0)

z3=2;

}

if(z2==1)

{P1=0xfc;

if(key4==0)

z3=3;

if(key3==0)

z3=4;

}

return z3;

}

uchar filter1() //中值滤波{

ucharvalue_buff[N],temp; intcount,j,k;

for(count=0;count

{ k=j;

for(j=j+1;j

if(value_buff[j]

{temp=value_buff[k];

value_buff[k]=value_buff[j];

value_buff[j]=temp;

}}

returnvalue_buff[(N-1)/2];

}

uchar filter2() //限幅滤波

{ ucharnew_value,value;

value=get_data(N-2);

new_value = get_data(N-1);

if ( ( new_value - value > A ) || ( value - new_value> A ) ) return value;

returnnew_value;

}

uchar filter3() //滑动平均滤波

{

ucharvalue_buff[N];

int i=0;

int count;

int sum=0;

value_buff[i++]=get_data(count);

if(i==N)

i=0;

for(count=0;count

sum+=value_buff[count];

return (uchar)(sum/N);

}

uchar filter4() //加权平均滤波

数字滤波算法

几种简单的数字滤波 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值*/ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;countvalue_buf[i+1] ) { temp = value_buf[i]; value_buf[i] = value_buf[i+1]; value_buf[i+1] = temp; } } }

return value_buf[(N-1)/2]; } 3、算术平均滤波法 /* */ #define N 12 char filter() { int sum = 0; for ( count=0;count

常用的8种数字滤波算法

常用的8种数字滤波算法 摘要:分析了采用数字滤波消除随机干扰的优点,详细论述了微机控制系统中常用的8种数字滤波算法,并讨论了各种数字滤波算法的适用范围。 关键词:数字滤波;控制系统;随机干扰;数字滤波算法 1 引言 在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。噪声有2大类:一类为周期性的,其典型代表为50 Hz 的工频干扰,对于这类信号,采用积分时间等于20 ms整倍数的双积分A/D转换器,可有效地消除其影响;另一类为非周期的不规则随机信号,对于随机干扰,可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波。 数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优点: (1)数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。 (2)模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降低了成本。 (3)数字滤波器可以对频率很低(如0.01 Hz)的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低。 (4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。 2 常用数字滤波算法 数字滤波器是将一组输入数字序列进行一定的运算而转换成另一组输出数字序列的装置。设数字滤波器的输入为X(n),输出为Y(n),则输入序列和输出序列之间的关系可用差分方程式表示为: 其中:输入信号X(n)可以是模拟信号经采样和A/D变换后得到的数字序列,也

基于单片机的数字滤波器设计

基于单片机数字滤波器设计 摘要 数据采集又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。比如摄像头,麦克风,都是数据采集工具。被采集数据是已被转换为电讯号的各种物理量,如温度,水位,风速,压力等,可以是模拟量,也可以是数字量。在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生重要变化。而在数据采集中存在各种噪声。滤除噪声的方法有很多种,既有数字滤波器,也有模拟滤波器。本文采用了基于单片机和c语言来设计并开发数字滤波系统。针对于单片机数据采集系统中经常出现的随机干扰,通过交流信号发生器输入来模拟数据采集过程,验证了几种使用较为普遍的克服随机干扰的单片机数字滤波算法,并给出了相应的c程序,同时也对这几种滤波算法进行了比较,并指出每一种算法具体适用范围和注意事项。另外本文使用了proteus进行仿真验证这几种滤波方法,用了AD和DA来采集及输出数据。 关键词单片机/proteus/数字滤波。

BASED ON SCM DIGITALFILTER DESIGN ABSTRACT Data 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

十一种软件数字滤波算法

1 数字滤波 1.1 概述 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 采用数字滤波算法克服随机干扰的误差具有以下优点: 1、数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻 抗匹配问题。尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。 2、数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统 开支。 3、只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这 对于滤除低频干扰和随机信号会有较大的效果。 4、在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤 波法、加权平均滤波法、滑动平均滤波等。 1.2 限幅滤波算法 原理:该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。A的大小由被测对象的具体情况而定,如果小于或等于允许的最大差值,则本次采样有效;否则放弃本次值取上次采样值作为本次数据的样本。 优点:能有效克服因偶然因素引起的脉冲干扰。 缺点:无法抑制那种周期性的干扰,平滑度差。 说明:限幅滤波法主要用于处理变化较为缓慢的数据,如温度、物体的位置等。使用时,关键要选取合适的门限制A。通常这可由经验数据获得,必要时可通过实验得到。 1.3 中值滤波算法 原理:该运算的过程是对某一参数连续采样N次(N一般为奇数),然后把N次采样的值按从小到大排列,再取中间值作为本次采样值,整个过程实际上是一个序列排序的过程。

十种数字滤波方法

1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 自动化科协 C、缺点: 对流量、速度等快速变化的参数不宜 3、算术平均滤波法 A、方法: 连续取N个采样值进行算术平均运算 N值较大时:信号平滑度较高,但灵敏度较低 N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量,N=12;压力:N=4 B、优点: 适用于对一般具有随机干扰的信号进行滤波 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 C、缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制不适用 比较浪费RAM 4、递推平均滤波法(又称滑动平均滤波法) A、方法: 把连续取N个采样值看成一个队列 队列的长度固定为N 每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果

N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点: 对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 不适用于脉冲干扰比较严重的场合 比较浪费RAM 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法”+“算术平均滤波法” 连续采样N个数据,去掉一个最大值和一个最小值 然后计算N-2个数据的算术平均值 N值的选取:3~14 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 自动化科协 测量速度较慢,和算术平均滤波法一样 比较浪费RAM 6、限幅平均滤波法 A、方法: 相当于“限幅滤波法”+“递推平均滤波法” 每次采样到的新数据先进行限幅处理, 再送入队列进行递推平均滤波处理 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 比较浪费RAM 7、一阶滞后滤波法 A、方法: 取a=0~1 本次滤波结果=(1-a)*本次采样值+a*上次滤波结果 B、优点: 对周期性干扰具有良好的抑制作用 适用于波动频率较高的场合 C、缺点:

基于单片机控制的滤波器设计

摘要 数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛引用在各个领域。比如摄像头,麦克风,都是数据采集工具。被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生了重要的变化。 而在数据采集中存在着各种噪声。滤除噪声的方法有很多种,既有数字滤波器,也有模拟滤波器。这里我们采用了基于单片机来设计并开发数字滤波系统。 我们针对于单片机数据采集系统中经常出现的随机干扰,通过手动输入来模拟数据采集过程,验证了几种使用较为普遍的克服随机干扰的单片机数字滤波算法,并给出了相应的C程序,尤其对中位值滤波和中位值平均滤波算法程序进行了改进。同时也对这几种滤波算法进行了比较,并指出了每一种算法的具体适用范围和注意事项。另外我们还使用了AD和DA 来采集及输出数据。传统的模拟滤波器在精度方面无法与数字滤波器相比,尤其在多阻带多通带滤波器设计方面,模拟滤波器更是无能为力。本文主要就是我对数字滤波器当前的发展及应用现况的一点小小见解。随着集成电路技术的发展,各种新型的大规模和超大规模集成电路不断涌现集成电路技术与计算机技术结合在一起,使得对数字信号处理系统功能的要求越来越强。在数字信号处理中数字滤波占有极其重要的地位。数字滤波在语音信号、图象处理模式识别和谱分析等领域中的一个基本的处理技术。 滤波器在数值信号处理中有广泛的应用,为此我首先将滤波器作简单介绍,达到温故而知新的作用。滤波器早被公认为各种电子产品的重要部件,其主要功能是作为各种电信号的提取、分隔、抑止干扰,随着电子技术的飞速发展,电子产品的应用领域发生日新月异的变化:从家用的收

单片机数字滤波算法

单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。 但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 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; else return datanew; }

基于C单片机的数字滤波要点

湖北师范学院教育信息与技术学院2010级信息工程专业综合课程社稷(一) HUBEI NORMAL UNIVERSITY 综合课程设计 (一) Integrated Curriculum Design(1) 任务分工: 尤杉:整体系统设计及编程调试。 柯俊:进行资料的查询。

钱德超:辅助编程,及proteus电路图的绘制。 陈小浩:完成word文档的编辑。 摘要................................................................ I 1 绪论 . (1) 1.1仿真软件介绍 (2) 1.2数字滤波器介绍 (2) 2 单片机和AD/DA相关知识 (4) 2.1 51单片机相关知识 (4) 2.2 AD转换器相关知识 (5) 2.3 DA转换器相关知识 (6) 3 数字滤波器设计 .................................. 错误!未定义书签。 3数字滤波器系统设计 (7) 3.1 数字滤波器理论分析设计 (7) 3.2 单片机电路 (9) 3.3 数据采集电路............................... 错误!未定义书签。 3.4 数模转换输出电路 (10) 3.5 数字电压表系统电路原理图 (11) 4 程序设计 (11) 4.1程序流程图 (11) 4.2 AD转换器程序.............................. 错误!未定义书签。 4.3 程序代码 (12) 6 心得与体会 (20) 参考文献 (21) 1 绪论

1.1仿真软件介绍 现代工业控制系统中,电路系统越来越复杂,因而带来的相互干扰也越来越强烈,模拟滤波电路已经不能满足要求,数字滤波应运而生。数字滤波器的实现过程的实现过程是把输入的模拟信号数字化,也就是由采样器对输入的模拟信号进行周期性的采样,并对每个样本进行量化和编码,即模数转换。从ADC输出的数字信号送入到数字信号处理器进行处理变化,处理器输出的数字信号再通过数模转换为模拟信号,这个过程要用到DAC来转换实现模拟信号的输出。 1.2数字滤波器介绍 Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: (1)现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 (2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 (3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。 (4)具有强大的原理图绘制功能。 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

基于单片机的数字滤波算法分析与实现

第24卷第6期 齐 齐 哈 尔 大 学 学 报 Vol.24,No.6 2008年11月 Journal of Qiqihar University Nov.,2008 基于单片机的数字滤波算法分析与实现 朱恒军,王发智,姚仲敏 (齐齐哈尔大学,黑龙江 齐齐哈尔 161006) 摘要:以低运算能力单片机为基础,对其数字滤波的基本原理、方法进行分析、归纳、总结,并在51单片机上实现,为进一步深入研究低运算能力嵌入式系统上的数字信号处理方法奠定基础。 关键词:单片机;数字滤波;嵌入式系统;数字信号处理 中图分类号:TN911.7 文献标识码:A 文章编号:1007-984X(2008)06-0053-02 单片机等低运算能力嵌入式系统应用广泛。在用单片机进行数据采集时,经常会遇到采集速度慢、数据易出现随机误差等问题。数字滤波技术由于其运算速度快,可方便地改变其滤波特性等特点,在解决低频干扰、随机信号的滤波等方面效果明显优于模拟滤波技术。在单片机等低运算能力嵌入式系统上研究可实现的数字信号处理方法具有重要的现实意义。 1 常用的数字滤波算法 通过对单片机应用环境的分析,在实践中得到一些单片机中能够实现的简单数字滤波算法。常用的有以下几种:限幅滤波法、中值滤波法、算术平均滤波法、加权平均滤波法、滑动平均滤波法、低通滤波法、复合滤波法。 2 数字滤波算法基本原理 1)限幅滤波法。限幅滤波法是把两次相邻的采样值相减,求出增量并用绝对值表示,然后与两次采样允许的最大值⊿Y 进行比较。⊿Y 的大小由被测对象的具体情况而定,若小于或等于⊿Y ,则取本次样本值;若大于⊿Y ,则取上次采样值作为本次采样数据的样本。 2)中值滤波法。中值滤波法是将某一参数连续采样N 次,N 通常是奇数,然后把N 次采样值按从小到大排队,再取中间值作为本次采样值。 3)算术平均滤波法。算术平均值滤波法是连续取N 次采样值进行算术平均。 4)加权平均滤波法。加权平均滤波法是对N 次采样值分别乘以不同的加权系数之后再求累加和。加权系数一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的识别。各加权系数均为小于1的小数,且满足总和等于1的约束条件。加权运算后的累加和为有效采样值。为方便计算,可取各加权系数均为整数,且总和为256,加权运算后的累加和除以256,即舍去低字节后就是有效采样值。 5)滑动平均滤波法。滑动平均滤波法是只采样一次,将这次采样值与过去的若干次采样值一起求平均,得到的值即为有效采样值。如果取N 个采样值求平均,RAM 中必须开辟N 个数据的暂存区。每新采集一个数据便存入暂存区,同时去掉一个最老的数据,保持这N 个数据始终是最近的数据。 6)低通滤波法。低通滤波法就是将模拟低通滤波器的微分方程用差分方程表示,这样就可用软件算法模拟硬件滤波的功能。经推导,低通滤波算法为:()11???+?=n n n Y a X a Y ,式中的n X 为当前的数据;1?n Y 为上次的滤波输出值;a 为滤波系数;n Y 为本次滤波输出值。 7)复合滤波法。复合滤波法是把两种不同滤波功能的数字滤波器组合起来,组成复合滤波器。该算 收稿日期:2008-09-20 基金项目:黑龙江省教育厅科学技术研究项目(11511445) 作者简介:朱恒军(1969-),男,副教授,主要从事信号采集、信号处理、通信系统等方面的研究。

单片机数字滤波 c语言 好东西

假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值*/ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/

#define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;countvalue_buf[i+1] ) { temp = value_buf[i]; value_buf [i]= value_buf[i+1]; value_buf[i+1] = temp; } } }

return value_buf[(N-1)/2]; } 3、算术平均滤波法 /* */ #define N 12 char filter() { int sum = 0; for ( count=0;count

ch7数字滤波器的结构习题解答

7.6 习题 7-1. 已知某数字系统的系统函数为 ) 25.06.0)(4.0()(2 3 +--=z z z z z H 试分别画出直接型、级联型、并联型结构框图。 解: 将H (z )表示为 3 21 1.049.011 )(----+-= z z z z H 由此可画出系统的直接型结构框图,如下图(a)所示。由于系统有一单实数极点和一对共轭复数极点,故将H (z )表示实系数一阶、二阶子系统的乘积,即 2 1125.06.011 4.011)(---+--= z z z z H 由此可画出系统的级联型结构框图,如下图(b)所示。故将H (z )表示实系数一阶、二阶子系统之和 2 11 125.06.015882.00588.04.019412.0)(----+-++-=z z z z z H 由此可画出系统的并联型结构框图,如下图(c)所示。 x [k ] y [k ] x [k ] y [k ] (a) 直接型结构 (b) 级联型结构

x [k ] y [k ] (c) 并联型结构 7-2. 一线性时不变系统用题7-2图的流图实现。 (1) 写出该系统的差分方程和系统函数; (2) 计算每个输出样本需要多少次实数乘法和实数加法? 题7-2图 解: (1) 2121211311 )(--------= z z z z z H 43127411 ---++-=z z z ][]4[2]3[7]1[4][k f k y k y k y k y =-+-+-- (2) 每个输出样本需要4次实数乘法和4次实数加法 7-3. 已知FIR DF 的系统函数为 )221)(1()(211---+-+=z z z z H 试分别画出直接型、级联型结构框图。 解: 由H (z )可以画出FIR DF 的级联型结构框图,如下图(b)所示。将H (z )表示为 3121)(--+-=z z z H ,可以画出FIR DF 的直接型结构框图,如下图(a)所示。

数字滤波

实验二 数字滤波器 一、实验目的 1.通过实验熟悉数字滤波器的实现方法; 2.研究滤波器参数的变化对滤波性能的影响。 二、实验设备 1.THKKL-6型 控制理论及计算机控制技术实验箱; 2. PC 机1台(含软件“THKKL-6”、“keil uVision3”及“USB_ISP 下载软件”); 3.51单片机下载线; 4.USB 数据线。 三、实验内容 1.设计一个带尖脉冲(频率可变)干扰信号和正弦信号输入的模拟加法电路; 2.设计并调试一阶数字滤波器。 四、实验原理 1.在许多信息处理过程中,如对信号的滤波,检测,预测等都要广泛地用到滤波器。数字滤波器是数字信号处理中广泛使用的一种线性环节,它从本质上说是将一组输入的数字序列通过一定规则的运算后转变为另一组希望输出的数字序列。一般可以用两种方法来实现:一种是用数字硬件来实现;另一种是用计算机的软件编程来实现。 一个数字滤波器,它所表达的运算可用差分方程来表示: ∑∑==-+-=N i i N i i i n y b i n x a n y 00)()()( 2.一阶数字滤波器及其数字化 一阶数字滤波器的传递函数为 1 1)()()(+==s s X s Y s G F τ 利用一阶差分法离散化,可以得到一阶数字滤波器的算法: )1()1()()(--+=k y T k x T k y S S ττ 其中T S 为采样周期,τ为滤波器的时间常数。T S 和τ应根据信号的频谱来选择。 五、实验步骤 1阅读程序 启动计算机,打开所有实验软件,打开“实验02”的工程文件,阅读并理解程序; 2下载程序 启动实验箱的“电源总开关”,打开+5V 、±15V 电源。编译、下载程序; 3 产生方波信号 将“信号发生器1”输出端连接到示波器单元“通道1”输入端,调节上位机软件频率和信号发生器幅度调节电位器,使方波信号的频率和幅值分别为4Hz ,2V 。 4产生尖脉冲信号 断开连线,将“信号发生器1”输出端连接到“脉冲产生电路”的输入端产生一个尖脉冲信号Uo ,如图2-1所示; 5产生并观察滤波前的信号 按图2-2连接电路,其中正弦信号来自单片机控制单元的“AO1”输出端,尖脉冲信号来自图2-1的输出端。图2-2的输出端和示波器的“通道1”

10种简单的数字滤波算法

10种简单的数字滤波算法(C语言源程序) 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值*/ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;countvalue_buf[i+1] ) { temp = value_buf[i]; value_buf[i] = value_buf[i+1]; value_buf[i+1] = temp; } } }

return value_buf[(N-1)/2]; } 3、算术平均滤波法 /* */ #define N 12 char filter() { int sum = 0; for ( count=0;count

数据处理中的几种常用数字滤波算法

数据处理中的几种常用数字滤波算法 王庆河王庆山 (济钢集团计量管理处,济南250101) (济钢集团中厚板厂,济南250101) 摘要随着数字化技术的发展,数字滤波技术成为数字化仪表和计算机在数据采集中的关键性技术,本文对常用的几种数字滤波算法的原理进行描述,并给出必要的数学模型。 关键词:数据采样噪声滤波移动滤波 一、引言 在仪表自动化工作中,经常需要对大量的数据进行处理,这些数据往往是一个时间序列或空间序列,这时常会用到数字滤波技术对数据进行预处理。数字滤波是指利用数学的方法对原始数据进行处理,去掉原始数据中掺杂的噪声数据,获得最具有代表性的数据集合。 数据采样是一种通过间接方法取得事物状态的技术如将事物的温度、压力、流量等属性通过一定的转换技术将其转换为电信号,然后再将电信号转换为数字化的数据。在多次转换中由于转换技术客观原因或主观原因造成采样数据中掺杂少量的噪声数据,影响了最终数据的准确性。 为了防止噪声对数据结果的影响,除了采用更加科学的采样技术外,我们还要采用一些必要的技术手段对原始数据进行整理、统计,数字滤波技术是最基本的处理方法,它可以剔除数据中的噪声,提高数据的代表性。 二、几种常用的数据处理方法 在实际应用中我们所用的数据滤波方法很多,在计算机应用高度普及的今天更有许多新的方法出现,如逻辑判断滤波、中值滤波、均值滤波、加权平均 2中值滤波 中值滤波是对采样序列按大小排滤波、众数滤波、一阶滞后滤波、移动滤波、复合滤波 等。 假设我们采用前端仪表采集了一组采样周期为1s的温度数据的时间序列 T0为第0s 采集的温度值,Ti为第is采集的温度值。下面介绍如何应用几种不同滤波算法来计算结果温度T。 1.程序判断滤波 当采样信号由于随机干扰、误检测或变送器不稳定引起严重失真时,可采用程序判断滤波算法,该算法的基本原理是根据生产经验,确定出相邻采样输入信号可能的最大偏差△T,若超过此偏差值,则表明该输入信号是干扰信号,应该去掉,若小于偏差值则作为此次采样值。 (1)限幅滤波 限幅滤波是把两次相邻的采集值进行相减,取其差值的绝对值△T作为比较依据,如果小于或等于△T,则取此次采样值,如果大于△T,则取前次采样值,如式(1)所示:

单片机中IIR滤波器的实现

单片机中(C语言)IIR滤波器的实现 转载原文参见https://https://www.doczj.com/doc/a27884595.html,/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

基于单片机的滤波器系统

CETTIC全国单片机汇编语言程序设计师 职业培训认证结业设计 基于凌阳16位单片机的程控滤波器 指导老师: 学生姓名: 完成日期:2009年11月14日

摘要 本系统以凌阳16位单片机为控制核心,利用开关电容技术实现程控滤波的功能。前端放大器由运放和数字电位器构成,实现了增益0—60dB,步进10dB可调。滤波器采用模拟开关和电容的组合替代电阻的技术,构成RC有源滤波网络,实现了程控高通、低通滤波截止频率1KHz—20KHz,步进1KHz可调。设计实现了四阶低通椭圆滤波器。利用单片机和直接数字调制技术(Direct Digital synthesizer)芯片AD9850,设计并制作了简易幅频特性测试仪,扫频输出信号范围从100Hz到200KHz,步进10 KHz可调。人机接口采用4×4键盘及LCD液晶显示器,控制界面直观、简洁,具有良好的人机交互性能。 关键词:程控滤波凌阳16位单片机数字电位器开关电容

目录 引言 (3) 第一章方案论证 (3) 1.1.主控单元 (3) 1.1.1.放大器部分 (3) 1.1.2.滤波器部分 (4) 1.2.方案论证 (4) 1.2.1.放大器方案论证 (4) 1.2.2.滤波器方案论证 (5) 第二章. 系统硬件设计 (5) 2.1.系统的总体设计 (5) 2.2.单元电路的设计 (6) 2.2.1.放大器电路设计 (6) 2.2.2 滤波器电路设计 (6) 2.3.发挥部分的设计与实现 (8) 2.3.1椭圆函数VCVS滤波节 (8) 2.3.2 测量与计算 (9) 3.3.3.系统的测试 (10) 第三章结论 (12) 附录 (12) 参考文献 (14)

文献综述(基于单片机的数字滤波器设计

毕业设计(论文)文献综述 系别:电子与电气工程系 年级专业: 姓名: 学号: 题目名称:基于单片机的数字滤波器设计

基于单片机的数字滤波器设计文献综述 【内容摘要】:数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛引用在各个领域。而在数据采集中存在着各种噪声,本文采用基于单片机和C语言来设计并开发数字滤波系统。 【关键词】:单片机、proteus、C语言、数字滤波 导言 在1960年到1970年的十年中,高速数字计算机迅速发展,并被广泛地用来处理数字形式的电信号。因而,在数字滤波器的设计中,就有可能采用傅里叶分析、波形抽样、Z变换等已有的基本理论概念。数字滤波器具有稳定、重复性好、适应性强、性能优异、线性相位等优点。在基于单片机和C语言来设计并开发数字滤波系统中,我们针对于单片机数据采集系统中经常出现的随机干扰,通过手动输入来模拟数据采集过程,验证了几种使用较为普遍的克服随机干扰的单片机数字滤波算法,并给出了相应的C程序,尤其对中位值滤波和中位值平均滤波算法程序进行了改进。同时也对这几种滤波算法进行了比较,并指出了每一种算法的具体适用范围和注意事项。另外我们使用了proteus进行仿真验证这几种滤波方法。另外我们还使用了AD和DA来采集及输出数据。 正文 随着数字技术日益广泛的应用,数字滤波在语音和图像处理、HDTV、模式识别、谱分析等应用中经常用到。与模拟滤波相比,数字滤波可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波所无法克服的电压漂移、温度漂移和噪声等问题。有限长冲激响应(FIR)滤波器,由于FIR系统只有零点、系统稳定,便于实现FFT算法、运算速度快、线性相位的特性和设计更为灵活等突出优点而在工程实际中获得广泛应用。 1.国外数字滤波器发展历史及研究成果 数字滤波有线性滤波和非线性滤波。线性滤波是指卷积滤波,又分为频域滤波和时域滤波在实域中根据滤波方式又分为递归滤波和递归滤波。非线性滤波主要是指同态滤波,它是用取对数的方法将非线性问题线性化。近些年,线性滤波方法,如Wiener滤波、Kalman滤波和自适应滤波得到了广泛的研究和应用。同时一些非线性滤波方法,如小波滤波、同态滤波、中值滤波和形态滤波等都是现代信号处理的前

相关主题
文本预览
相关文档 最新文档