资源描述:
《《片机常用算法设计》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章单片机常用算法设计7.1单片机滤波算法的设计7.2信号处理的FFT变换7.3SPWM正弦逆变算法的设计7.4PID控制算法7.551单片机PID算法程序7.6模糊控制算法7.1单片机滤波算法的设计电路的滤波分为模拟滤波与数字滤波。其中数字滤波器具有精度高、高可靠性和高稳定性的特点,因此被广泛应用。用数字滤波算法克服随机误差主要有如下优点:数字滤波由软件程序实现,不需要硬件,因此不存在阻抗匹配的问题;对于多路信号输入通道,可以共用一个软件“滤波器”,降低仪表的设计成本;只要改变滤波器程序或元算参数,就能方便的改变滤波特性。下面我们介绍几
2、种主要的数字滤波法:A.限幅滤波法对于随机干扰,限幅滤波是一种有效的方法;基本方法:比较相邻n和n-1时刻的两个采样值y(n)和y(n–1),根据经验确定两次采样允许的最大偏差。如果两次采样值的差值超过最大偏差范围,认为发生可随机干扰,并认为后一次采样值y(n)为非法值,应予删除,删除y(n)后,可用y(n–1)代替y(n);若未超过所允许的最大偏差范围,则认为本次采样值有效。下面是限幅滤波程序:(A值可根据实际情况调整,value为有效值,new_value为当前采样值滤波程序返回有效的实际值)#defineA10charvalue;ch
3、arfilter(){ charnew_value;new_value=get_ad();if((new_value-value>A)
4、
5、(value-new_value>A))returnvalue;returnnew_value;}B.中位值滤波法中位值滤波法能有效克服偶然因素引起的波动或采样不稳定引起的误码等脉冲干扰;对温度液位等缓慢变化的被测参数用此法能收到良好的滤波效果,但是对于流量压力等快速变化的参数一般不宜采用中位值滤波法;基本方法:对某一被测参数连续采样n次(一般n取奇数),然后再把采样值按大小排列,取中间值为本次采样值。
6、#defineN 11charfilter(){ charvalue_buf[N],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; }}}re
7、turnvalue_buf[(N-1)/2];}下面是中位值滤波程序:C.算术平均滤波法算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。这种信号的特点是信号本身在某一数值范围附近上下波动,如测量流量、液位;基本方法:按输入的N个采样数据,寻找这样一个Y,使得Y与各个采样值之间的偏差的平方和最小。编写算术平均滤波法程序时严格注意:一.为了加快数据测量的速度,可采用先测量数据存放在存储器中,测完N点后,再对N个数据进行平均值计算;二.选取适当的数据格式,也就是说采用定点数还是采用浮点数。其程序如下所示:#defineN12charfil
8、ter(){int sum=0,count;for(count=0;count9、[N],i=0;charfilter(){charcount;int sum=0;value_buf[i++]=get_ad();if(i==N) i=0;for(count=0;count10、arfilter(){char new_value;new_value=get_ad();return(100-a)*value+a*new_value;}7.2信号处理的FF