1. 由单片机实现滤波。限幅滤波和中值滤波
1、限幅滤波算法:首先根据经验确定出两次采样允许的最大偏差值(设为A);每次检测到新数值时判断,如果本次数值与上次数值之差小于或等于A,则本次数值有效;否则,本次数值无效,放弃本次数值,用上次数值代替本次数值。
2、中值滤波算法:是对某一参数连续采样N次(N取奇数)后,再将N个数按从大到小或从小到大排列(比如冒泡法),最中间的数作为本次滤波结果。
2. 请教下51单片机汇编滤波问题
1.
你要把30H开始的8个字节加起来,和放在字节变量可能溢出,所以你的代码把和放在R2R3拼起来的16位单元中;
每个字节先加到R3中,有进位则R2 加1
2.
第一次的SWAP A 和 RL A 的作用是把刚才求和结果的高位字节中的bit0,1,2移位到bit5,6,7 ,相当于高位字节除以8的结果(8个字节相加,高位字节只有bit0,1,2可能非0)
第二次的SWAP A 和 RL A 的作用是把刚才求和结果的低位字节中的bit76543移位到bit43210,配合后面的 ANL A,#1FH 去掉bit765后,也相当于除以8
3.
第二次的SWAP A 和 RL A 后,A的bit7 是原来的bit2移动过来的,
这里的四舍五入做的是:原bit2是1的话bit210就不小于4,除8结果就加一
做法是通过ADD A ,#80H如果现在的bit7也就是原来的bit2为1就置位进位标志c, 在后面的 ADDC A , R3 那句把这个c加进去。
所以这个做法其实是三舍四入。
3. 利用lm324设计电流互感器电压采集整流滤波电路使其可以让stm32单片机进行ad采样
5A/2.5mA --- 即是 1A 对应 0.5mA,对应采样电压 0.1V;
那么 5A 对应 2.5mA,对应采样电压 0.5V;
则采用电阻:Rs=0.1V/0.5mA=200Ω;
不知道你的测量范围有多少呢
4. 共地情况下,单片机AD采样如何减少干扰
从理论上来说,2cm的隔离距离完全够用了,至于还是出现干扰需要找到干扰源及干扰频率后才能进一步定位。给你一个建议,如果有可能的话,将输入20V转5V采用DC/DC隔离电源模块来实现,或许效果会好点。另外,适当多增加一些滤波电容,组合起来进行滤波。如果有条件,可以做一些EMC实验,可以准确定位干扰源及其频率点。
5. 单片机信号采集有干扰怎么办
1)你的信号采集是个什么环境,传输距离很远吗;
2)单片机电源是独立的吗;
3)你的单片机需要和电脑一直连接着的吗;
6. 单片机电压采样
如果用单片机直接采样,会烧毁单片,产生严重后果。所以要用两个大阻值电阻串联,接成分压电路。
7. 求个单片机AD口采样值软件滤波的代码加权平均法!!
8、加权递推平均滤波法
/*
coe数组为加权系数表,存在程序存储区。*/
#define
N
12
char
code
coe[N]
=
{1,2,3,4,5,6,7,8,9,10,11,12};
char
code
sum_coe
=
1+2+3+4+5+6+7+8+9+10+11+12;
char
filter()
{
char
count;
char
value_buf[N];
int
sum=0;
for
(count=0,count<N;count++)
{
value_buf[count]
=
get_ad();
delay();
}
for
(count=0,count<N;count++)
sum
+=
value_buf[count]*coe[count];
return
(char)(sum/sum_coe);
}
8. 单片机中的滤波是什么
就是求平均值嘛,硬件滤波采用电容、电感。如果这个还不够稳定的话,软件上采用求平均值的办法就是称为软件滤波。比如你要测一个电压,你连续采集N次数据,全部相加后除以N,取平均值,这就是滤波。就像用热敏NTC测温度一样,采集10个电压值的AD转换数据后,去掉最高值和最低值,剩下8个数据全部相加后除以8=结果,这个结果就是要显示出来的温度咯。
9. 求问各路大神,我想用单片机AD采集一路音频信号,但是麦克风加功放加滤波之后信号被加在4v上,单片机
你不要加V2=3V那个电源,输出就是1V(RMS)的正弦电压,峰值是1.414V,可直接由3.3V供电的单片机采样。另外,你测量输出电压也接错了,示波器要接在输出端和地之间。
如果是实物的话,驻极体麦克风用3V供电,输出的电压就不会超过3V,可直接采样,加了电压跟随器后,也可以用电阻分压。
10. 单片机如何采样正弦波
有两种方法:
1.直接将交流信号用电阻分压,再接入ADC引脚,进行连续采样,再用单片机用利用算法算出交流信号,不过因为单片机的工作频率不够高,这种方法不是很准。
2.利于硬件,先将交流信号用电阻分压,再进行半波整流,之后再用两级RC滤波将其滤成直流信号,然后再接入ADC引脚,这时的直流信号=交流信号的峰值/根号pi.
方法二较为准确。