数字滤波系统设计课程设计报告(编辑修改稿)内容摘要:
alue_buff[k]) k=j。 {temp=value_buff[k]。 value_buff[k]=value_buff[i]。 value_buff[i]=temp。 } } return value_buff[(N1)/2]。 } 算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。 这种信号的特点是信号本身在某一数值范围附近上下波动,如测量流量、液位时经常遇到这种情况。 算术平均滤波法是要按输入的 N 个采样数据,寻 找这样一个 Y,使得 Y 与各个采样值之间的偏差的平方和最小。 具体实现此算法的子程序如下: uchar filter3() { uchar value_buff[N]。 int i=0。 int count。 int sum=0。 value_buff[i++]=get_data(count)。 if(i==N) i=0。 for(count=0。 countN。 count++) sum+=value_buff[count]。 return (uchar)(sum/N)。 } return (uchar)(sum/N)。 } 算术平均滤波适用于对一般具有随机干扰的信号进行滤波。 这种信号的特点是有一个平均值,信号在某一数值范围附近做上下波动,在这种情况下仅取一个采样值做依据显然是不准确的。 算术平均滤波对信号的平滑程序完全取决于 N,当 N 较大时,平滑度高,但灵敏度低;当 N 较小时,平滑度低,但灵敏度高,应视具体情况选取 N,以便既少占用计算时间,又达到最好的效果。 总程序及流程图如下: include include define uchar unsigned char define A define N 30 sbit con1 = P2^3。 sbit con2 = P2^4。 sbit con3 = P2^5。 sbit con4 = P2^6。 sbit OE = P2^0。 sbit START = P2^1。 sbit EOC = P2^2。 uchar a。 uchar buf[N] ={0}。 void change() { int i。 for(i=0。 iN1。 i++) buf[i]=buf[i+1]。 buf[N1]=a。 } uchar get_data(n) { change()。 return buf[n]。 } //限速滤波 uchar filter1() { uchar new_value,value。 value=get_data(N2)。 new_value = get_data(N1)。 if ( ( new_value value A ) || ( value new_value A ) ) return value。 return new_value。 } //中值滤波 uchar filter2() { uchar value_buff[N],temp。 //定义存储数据的数组 int count,i,j,k。 for(count=0。 countN。 count++) //获取数据 { value_buff[count]=get_data(count)。 } for(j=0。 jN1。 j++) //用冒泡法对数据进行排序,当然最好用其他排序方法 { k=j。 for(j=i+1。 jN。 j++) if(value_buff[j]value_buff[k]) k=j。 {temp=value_buff[k]。 value_buff[k]=value_buff[i]。 value_buff[i]=temp。 } } return value_buff[(N1)/2]。 } //算数平均滤波 uchar filter3() { uchar value_buff[N]。 int i=0。 int count。 int sum=0。 value_buff[i++]=get_data(count)。 if(i==N) i=0。 for(count=0。 countN。 count++) sum+=value_buff[count]。 return (uchar)(sum/N)。 } //加权递推平均滤波 uchar filte4() { uchar code coe[N] = {1,1,1,20,20,20,40,40,40,40,200}。 uchar code sum_coe = 1+1+1+20+20+20+40+40+40+40+200。 uchar count。 uchar。数字滤波系统设计课程设计报告(编辑修改稿)
相关推荐
计数器内部的计数功能 , 计数器的内部计数 信号 clk 和频率计数器的使能信号 enable。 频率计数器的计数模块的输出信号就是个位 sec、 十位 sec10。 电路图如 图 26 所示。 图 26 计数模块电路图 10 十进制计数器 , 它的输入端口主要包括使能端口 enable 计数输入端口clk, 输出端口主要包括计数输出端口 q 和进位输出端口 cout。 计数模块程序及仿真图
时间。 加在 RST端的高电平信号要维持足够长的时间才能保证系统可靠复位。 一般来说复位方式有上电自动复位和按钮复位两种。 图 33是 AT89c51 单片机的上电复位和按钮复位组合电路。 图 33 复位电路 A/D转化 模块 现实中大多数都是模拟量,这样并不能被我们直接采用,所以人们研制了数字量的器件,它能把模拟的物理量转变成我们能够利用的数字量,这是单片机几桶收集整理转变数据的关键
6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U2A T 8 9 C 5 2X1C R Y S T A LC12 2 p FC22 2 p FC31 0 u F
片机。 U2 温度传感器。 U3 集成芯片。 U4 4位 7段数码管 共阳。 串口头 母头。 USB头。 洞洞板 其中(一些元器件需要注意): 4位 数码管 共阳 焊接的时候顺序一定要对,千万不能跟共阴的数码管搞混合。 DS18B20温度传感器 — 注意接地和 VCC接口不要接反 和最小系统电路连接时要接对引脚不能搞混。 串口头 母头 RS232端口引脚定义: (因为计算机后面的串口多为公头
往行人较多 , 需要各司其职 , 以确保仪器设备和人员的安全 ; 其次 , 城区地物复杂 , 碎部点密集 , 单靠画草图和事后回忆难度很大 ; 再次 , 每天采集的野外数 11 据若不及时编辑整理 , 则内业工作量相当烦琐 , 且容易出错。 只有实现野外实时成图 ,才能保证高质量和高效率。 在空旷的一般地区测图 , 可采用全站仪存贮数据 + 草图的 2 人测图方式。 首先 ,从节约成本考虑 ,
生电源供电方式时 VDD 端接地。 由于单线制只有一根线,因此发送接口必须是三态的。 4 硬 件电路设计 主板电路 系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调数字温度计设计 7 整电路,单片机主板电路等,如图 所示。 图 中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以 在被测温度不在上下限范围内时,发出报警鸣叫声音。 图