×

多模拟通道数据采集:序列平均法和交叉平均法比较资料下载

消耗积分:3 | 格式:pdf | 大小:134.33KB | 2021-03-27

贾小龙

分享资料个

随着电子系统中传感器和信号源的快速增加,使得设备设计师们可以在系统MCU或传感器融合协处理器中加入更多的模拟信号通道。尤其是在日益发展的小型物联网领域中更是如此。


信号平均法是一项常用于此类数据采集系统的技术,可以增强数值结果的可用分辨率并抑制多种噪声。虽然过滤方式简单,但其整体效果要取决于所使用的平均法。本文将对传统的序列平均法和最新的交叉平均法进行比较。


许多现代的混合信号MCU和片上系统都直接将平均法加入到模拟-数字转换器硬件中。这大大减少了MCU需要完成的处理量,简化代码编写,缩短处理器需要在高功耗模式中的运行时间。


尽管多种信号与设备之间实现连接的模拟输入多路复用器已十分普遍,但大部分混合信号MCU的硬件平均功能每次只能在一条信号通道中执行。当平均过程完成后,通常会引发中断,然后固件在中断中选择另一个需要转换的模拟输入。在一些设备中,比如赛普拉斯半导体公司的PSoC 4系列1 Msps 12位 ADC 可编程片上系统,其通道序列内置于转换器硬件中,可在无需处理器干预的情况下对所有通道执行平均功能。


这种传统的对单一通道信号进行多次转换后才转到下一个通道的平均模型被称为序列平均。这种方法存在一些限制,主要问题在于会降低多通道环境中的可用采样率,包括被平均的通道和序列中不需要平均的通道。

最近出现了一种新的方法,可以增强数据采集系统设计师所使用的各种工具。这项技术被称为交叉平均法,它给需要采集高频率信号以及需要快速采集非平均通道样本的系统带来了福音。


序列平均和交叉平均的区别我们可以从一些图文中得到解释,本文选择了一个8通道的配置作为示例。原始ADC采样率设置为800ksps,每个通道中的16个12位样本将被一起平均。这样会产生一个16位的输出字,而12位样本量化的信噪比贡献量则会把信噪比限制在相对于14位转换器的水平(假设每个样本的量化噪声贡献量不相关)。


由于有8个通道,且每个通道取样16次后获得最终结果,因此ACD需要进行128次转换才能生成各结果组。这一过程需要160微秒,结果组的可用频率为6250次/秒。


这个例子还假设每个通道都有自己的结果寄存器,本示例中所使用的PSoC 4就是如此。但部分混合信号MCU有所不同,它们只有一个结果寄存器,因此不得不在转换通道时进行读取。


图1所示的是伪代码形式的标准序列平均解决方案,其行为如下:

  • 刷新累积寄存器

  • 选择通道1

  • 以1.25微秒间隔进行16次采样,将它们累积在通道1的寄存器中,总耗时20微秒

  • 选择通道2

  • 以1.25微秒间隔进行16次采样,将它们累积在通道2的寄存器中,总耗时20微秒

  • 重复上述步骤,完成8个通道的取样

  • 转移8个结果,出现中断或DMA

图1:序列平均


图中术语中英文对照:
Sequential averaging:序列平均
channel 1:通道1
16 sequential averaging:16个序列样本
as seen by channel 1:从通道1来看
aperture time:孔径时间
sample interval:采样间隔


每个输入端通过连续16次转换进行采样。一个通道的连续转换需要160微秒,因此每个通道的采样频率为每秒6250个样本。采样孔径(即一个通道的采样时间)为20微秒。这一孔径会产生低通滤波的效果,然而带宽会非常高,出现(1/20微秒)50千赫倍数频率响应的零点。这一过滤无法防止混叠。这一输入信号中的任何接近6250赫兹倍数的频率成分将被混叠降低到接近DC的水平,从而可能制造明显的测量噪声。只能通过使用每个通道的防混叠过滤器对其进行预先过滤,以缓解这一现象。


此外,各通道间会出现20微秒的时间偏差。如果需要计算交叉通道数学函数(比如相关性或功率计算),这一时间偏差会产生严重误差。


如果在这样一个序列中有未平均的通道,此类通道的采样频率主要由其他序列采样中需要做平均的通道决定。因此,尽管ADC的采样频率为800ksps,但未平均的通道的采样频率要远低于此。最理想的情况是将这800 ksps频率平均分摊到8个通道,每个通道频率为100ksps。


针对这一难题的解决方案交叉平均法则有效得多(见图2)。定序器与之前一样围绕输入通道,但这一次仅对每个通道采集一个样本。在通道经过N次单次采样后,可以读出所有累积寄存器的输出。

图2:交叉平均


图中术语中英文对照:
Interleaved averaging:交叉平均
Group 1:组1
Sample interval:采样间隔
As seen by channel 1:从通道1来看
Aperture time:孔径时间

伪代码形式的交叉平均序列如下:


  • 将硬件循环计数器设置为0

  • 刷新累积寄存器

  • 重复

  • 循环计数器 = 1

  • 选择通道 [循环计数器]

  • 取一个样本,将它累积到通道 [循环计数器]的寄存器中,总时间1.25微秒

  • 直到循环计数器 ≥8

  • 转移8个结果,出现中断或DMA


这个平均过程的信号特征明显不同。现在不会出现连续转换,获得每个平均数的16次转换被均匀地分摊,每轮转换耗时160微秒,间隔10微秒。换言之,每个通道的采样频率为100ksps,这是将800 ksps ADC分摊到8个通道时的理论最大值。这一过程的采样孔径为160微秒,因此系统频率响应零点会出现在最终采用频率的倍数上。其优点在于输入信号中不会出现混叠降低到DC的高频率噪声。这可大大提高测量的稳定性,从而显著降低模拟过滤要求。


通道之间仍存在时间偏差,但已减少到1.25微秒,相比160微秒的抽样时间要小得多,大大减少了跨通道计算的误差。


在本示例中,使用交叉平均法的转换器子系统以相当于约14位信噪比和6.25ksps的频率提供8个通道的样本,并有效预防混叠,缩短通道间的延迟时间。

(mbbeetchina)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'多模拟通道数据采集:序列平均法和交叉平均法比较资料下载',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);