2023年国赛D题信号调制方式识别与参数估计装置——软件部分概括与总结
题目要求:
由题目要求可知,需设计出一个能对信号发生装置调试方式识别的装置,并且能够进行参数估计的装置,最终将信号进行解调,能够在示波器上输出显示解调后的波形。本设计针对与改题目的基础部分展开,基础部分要求如下:
软件设计思路:
基本要求部分看似为4个,实际上大致可以看为一个要求:正确识别三种调制信号,并分别测量其参数——F,Ma,Mf,Fmax,将结果显示在屏幕上。之后通过继电器控制解调信号U0的输出。
首先是调制信号的频率F:
AM和FM均采用FFT的方法测量调制信号的频率,此方法可通过一个ADC通道同时完成信号频率和幅值的测量,更加方便,缺点也是很明显,如果输入信号频率过高,在采样率不够高的情况下,精度有较大偏差,甚至根本测不出。但这里的调制信号频率最高也就是5KHz,所以直接选用FFT。
其次是AM的调幅系数Ma:
此处需要具体过程不进行叙述,只需要了解需要测量哪些参数。我们需要在函数发生器生成的信号处进行信号的采样,然后对采样信号进行FFT,将变换后的数据通过串口工具输出即可看见该信号的频谱图如下所示:
AM信号频谱图
此图中,从理论上来讲,得到最高的曲线的幅值为a和其两侧曲线的幅值的平均数b(原本两侧的曲线幅值应该相同,但此处题目要求载波频率为2M,我使用的STM32ZET6最高采样率为876K,不符合采样定理,故使用了等效采样的方法,设置采样频率为204.8K,在极限情况下采样得到了该信号的频谱图,故存在较大误差,通过取平均数消除误差,实测误差值为0.05左右)。测量得到a和b后即可计算得出Ma。
老师给了一个更好的办法——使用带通采样定理即可用低频信号完美的采集高频信号,但本人为大二学生,暂时没有学习过这方面的理论知识。
然后是FM的调幅系数Mf:
此处按照老师指导,需要使用贝塞尔函数进行数据的拟合,以此来测得Mf与Fmax,因为各种原因,比赛过程中没有时间再未完成该部分。暂留此处,有机会再补充。
最后是AM,FM,CW信号的识别判断:
对于AM和FM可通过两者的频谱图的不同进行分析,对幅值进行定标,高于该幅值的波形数目如果大于设定个数(根据实际电路确定个数),则为FM,否则为AM。CW便不再赘述,方法类似。
FM信号频谱图
软件设计实现过程出现的一些问题:
- 调试问题:
应该使用串口和屏幕一起进行调试,串口打印数据,屏幕做程序运行标记,如果怀疑某处程序出现问题,即可在此处写显示语句,显示一个标记在屏幕上,查看程序是否正常运行到此处。
- 算法问题:
(1)、滤波算法必须会一些。就算是最朴素的均值滤波也行,旅行者的无锋剑虽然破烂,但是也能杀敌。
(2)、采样算法是必不可少的。做电路类题目,必须要精通各种采样算法,带通采样,等效采样在采样率不够的情况下是必须要会的。
(3)、PID算法。在本次比赛的H题目中需要使用到软件锁相环,通过算法不断调整输出信号的参数让其稳定。此类算法虽然一般在比赛中多用于控制类,但最好是都要有些了解,说不定就能关键时刻救你一命。
(4)、过零检测算法。同样需要在H题目软件锁相环中使用,但我暂未去了解相关知识,此处先挖坑。
(5)、FFT。FFT和IFFT是逃不掉的,必须要会用,如果可以的话,能看懂原理最好,实在不行,最基本的要求就是会用。
3、外部模块:
DDS模块、AD模块、锁相环模块必须会使用。
- 开发板:
如果有时间的话可以去试试TI的开发板,每年都会有一道题固定使用TI的开发板,如果抽到自己的题用TI开发板,你还不会使用的话就很难受了。
- 联调:
在进行代码的编写之前一定要和硬件组的队友进行协商,不然很容易出现项目结构大致完型后发现根本不能联调,然后互相给对方提要求,互相为难。
例如——硬件那边没有做抬升与偏置电路导致频率无法测量等。
心得体会:
在本次比赛中我们实现了除去FM参数测量外的所有基础功能,本以为至少能得到省三的名次,但是最后的比赛测试中,不知是什么原因,所有的功能全部损坏,无法正常识别与显示,所以这次比赛也就这样到此为止了,也是非常的令人遗憾啊。
因为各种不可言说的原因,导致我们最后的实际比赛时间只有两天两夜,因此时间非常的紧急,这两天两夜,我心里一边在骂,一边在想要不要放弃,“带通采样定理,贝塞尔函数”等等各种理论,作为一个大二的学生,并且还是第一次参加电赛,这些理论知识完全没有听说过,现在临时去学习又是完全不可能的事情,只能说确实前期的准备工作还是完全不够,最终还是只能选择等效采样的办法完成信号的采样工作。不断地尝试各种频率进行数据的采集,频率哪怕只有1Hz的不同,在使用等效采样的情况下,采集数据的结果也是天差地别,整个过程就犹如大海捞针一般,就这样调了整个晚上,才算是找到了一个正确的采集频率。
最后一天晚上,我的硬件队友都去睡觉了,但是我这个时候却还烦恼于调制信号的判断,理论上只需要定幅值进行判断即可,但是实际操作起来想要将三个信号准确的甄别还是有很大的困难的。我看见队友去睡觉后是真的想要将他们叫醒,但是仔细思考了一下还是放弃了,都是大二的学生,并没有学习过高频电路的知识,那他们的压力应该比我更大,还是让他们休息一下吧。
在最后一天上午,我们终于开始了软硬件的联合调试,因为完全没有怎么讨论的原因,软硬件的调试遇到了巨大的问题,首要问题便是硬件没有为我搭建抬升与偏置电路,导致我这边频率的测量无法进行,此时不可能再调整硬件电路,我果断换用FFT的方法进行频率的测量,最终也算是能正常识别各种调制信号,并输出正常的波形,之后我们共同完成了报告的编写与电路的封箱。
我本以为命运给我们的考验已经足够了,接下来的现场测评应该不会有问题了,但现实直接给了我们当头一棒——不知道为什么我们在现场15分钟的调试过程中发现电路完全不能正常工作,已经完成的基本功能也全部损坏,甚至连波形都没有……最后在各种检查之下也没有发现问题,我猜测可能是AM电路部分的问题,但已经完全没有时间再去调试了,最终也是遗憾离场。
离场后心里五味杂陈吧,想着,“为什么要给我换一个完全没用过的函数发生器,说不定是函数发生器的原因,为什么要搞那么多事情处理,让我们只有两天两夜的时间去制作作品,我暑期每天早出晚归奋斗一个月,在比赛期间熬夜、睡板凳、晚上12点才吃上一口泡面,究竟是为什么。”但这次比赛已成定局,心里确实非常的不甘心,以为至少有个省三,但最终却是连怎么死的都不知道,但我看着身边的队友,他们比我更加难受,我作为队长绝不能消沉下去,笑出来吧,好好的安慰队友也是安慰自己,我们不会就此停下,属于我们的故事未完待续,吸取这次比赛的经验,我们明年再见。
这是硬件组的总结:2023年国赛D题信号调制方式识别与参数估计装置基础部分——硬件部分概括与总结_DizzyZNB的博客-CSDN博客