打印

excel在信号分析中的应用(一)

[复制链接]
2043|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在设计算法时,我们常常需要对算法的效果进行仿真,从而验证这个算法的效果。仿真的好处在于使用尽可能低的成本解决自己面临的问题。在实践中,我们常常使用如MATLAB、Python等工具进行仿真分析,以找出特征,设计算法,验证算法。要熟练的掌握上述的工具并不简单,那有没有什么工具容易掌握并且也能进行类似MATLAB的工作呢。答案是肯定的,那就是我们人人都会使用的excel,这里我以传感器的输出信号为例来说明excel在信号分析中的应用。

我把excel在信号分析中的应用主要归纳为三种。第一是分析信号趋势;第二是分析信号特征,选择或者设计相应算法;第三是验证算法的效果。我们首先看看第一种如何分析信号趋势。

有时候我们需要把握传感器的输出信号随外界因素的变化趋势,以直观的知道输出信号是怎么随着外界因素的变化而变化的。那么我们该怎么知道这条曲线呢,此时excel就能排上用场,怎么做呢。

首先,收集信号。使用单片机的A/D对传感器的信号采样,然后利用串口把采样值(这个值如果不做转换的话一般是十六进制的)打印并保存到文件中,这一步可以结合电脑的串口软件完成。

其次,将保存在文件中的信号复制到excel中,然后把十六进制的传感器数据转换为十进制数据。如下所示。


最后,选中上图中十进制传感器数据列(E列) -> 插入 -> 折线图,之后就会显示如下图一所示的曲线。有时候为了更好的显示信号的趋势,我们还需要在该曲线上添加一条趋势线(鼠标左键选中曲线 -> 右键出现下拉菜单,选中添加趋势线),以清晰的告诉我们信号的变化趋势是怎么样的,如下图二中的黑线就是蓝线的趋势线。

图一

图二

通过上述步骤,我们就得出了传感器输出信号随外界因素变化的趋势图,这比我们用口头或者文字描述要直观的多。

说完了excel在分析信号趋势上作用,再来说说excel在信号分析中的第二种作用 --- 分析信号特征,选择或者设计算法

在使用单片机对信号采样时,为了设计符合要求的算法,信号的特征是我们需要知道的,要获得信号的特征,首先要知道信号的变化规律,那么上述利用excel获取信号曲线图的办法就能排上用场了。比如我在一个充电器的项目中需要采样电流信号,由于电流信号受到了高频干扰,即使充电电流是恒定的,单片机所采样的信号也是剧烈波动的,采样点的特征如下图所示(蓝线是原始采样点形成的信号线,黑线则是这些信号线的趋势线)。采样点大部分靠近趋势线,极少数出现了远离趋势线的采样点。


显然,要测量真实的电流,我们需要对采样信号进行过滤。观察信号线(蓝线)的特征,我们可以发现当电流不变时,采样点总是围绕趋势线(黑线)上下波动,而趋势线看上去就是这些波动采样点之间的中间值,因此,为了获得稳定的电流信号,我们完全可以使用数字滤波中常用的一种算法 --- 中值滤波(取一系列采样点数据,然后排序,取这一系列数据的中间值做为代表值)。从实际来看,这种算法是能满足要求的。

由此,我们根据信号特征,选择了一个合适的算法完成对信号的滤波,这就是excel分析信号的第二种应用。

最后,我们来看excel分析信号的第三种应用 --- 对算法的效果进行仿真,这里以一阶低通滤波器为例。

我们知道使用一阶低通滤波器关键在于选择滤波系数,因为滤波系数决定了滤波效果,太小或者太大都不好。选择合适的滤波系数一般只有通过实验才知道,这里我使用excel对算法进行仿真从而选择一个合适的滤波系数,步骤如下。

首先获取并保存采样值(没有经过处理的)然后按顺序导入excel,这一步之前已经讲过,之后设置好滤波系数,最后把一阶低通滤波的公式输入到excel中,如下图所示。


上图中的右边有两条曲线,蓝线表示当前采样值,红线为滤波后的输出,滤波效果一目了然。如果我们觉得这种滤波用力过猛,我们可以减少滤波系数,比如把滤波系数改为0.3,效果如下图所示。



像上面这样,我们只要调整滤波系数,我们很容易直观的看出滤波效果,最终可以比较轻松的选择一个你觉得合适的滤波系数。这就是excel在分析信号时的第三个作用,验证算法。

excel在信号分析中的3种用途就简单的说完了,上面我并没有详细说excel的操作方法,毕竟这不是我要向你表达的重点,不清楚的话自己可以百度。这里我最想说的其实在我们设计程序时,或许可能通过什么工具或者手段先进行仿真,以最低成本的方式获得最佳的结果。当然,说道仿真,MATLAB或者Python是要比excel更强大的专业软件,但学习成本也比较高,而且也不是所有仿真都必须要用这些工具来分析,还是那句话,只合适的,没有最好,希望能对你有一些启发。



使用特权

评论回复

相关帖子

沙发
会笑的星星|  楼主 | 2020-2-28 14:47 | 只看该作者

使用特权

评论回复
板凳
触觉的爱| | 2020-2-28 17:22 | 只看该作者
虽然还没看明白,不过得感觉分享,有空再回头研究研究

使用特权

评论回复
地板
tom_xu| | 2020-3-1 10:18 | 只看该作者
楼主讲的非常好,通俗易懂.
EXCEL是非常强大的工具.虽然我们每个人的简历上都写了精通OFFICE.
但是还真没几个人说得上精通.

使用特权

评论回复
5
ddlxiaoxu| | 2020-3-1 14:43 | 只看该作者
这个方法挺好  以前采集的串口数据也是保存成电子表格  通过做差计算 生成图表看结果      后来直接用labview实时采集并且生成图表很好用。

使用特权

评论回复
6
wyf7056| | 2020-3-1 16:50 | 只看该作者
长知识了

使用特权

评论回复
7
世界心| | 2020-3-1 23:12 | 只看该作者
这。。。。我13年用excel,后来觉得太麻烦,改用matlab了。
收数据,存数据库,然后matlab来处理,显示。。。。

使用特权

评论回复
8
airwill| | 2020-3-4 22:15 | 只看该作者
网上还有很多技巧值得学习呢
excel 的功能远远强大呢

使用特权

评论回复
9
叶春勇| | 2020-3-5 08:27 | 只看该作者
excel真是强,新的视野,新的方法

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

96

帖子

15

粉丝