2023电赛H题 信号分离装置 开源

博主分享2023年电赛国赛H题思路,用STM32官方库函数采集C信号数据进行FFT得到频谱图,判断主峰以区分波形。难点是A和A’同频稳定显示,提出控制DDS时钟等解决办法,还探讨自动调的思路,但因技术力不足未实现,最后给出代码链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2023年电赛国赛H题,虽然说是大失败,但是想法和一些东西都是有的,分享给下一届备赛的同学了。

首先是C信号采集1024个数据,丢给fft,用的是stm32官方库函数,然后得到频谱图,就是幅频特性图,然后因为20kHz到100kHz,分辨率为5kHz,因此可以用遍历的方法,把5和其倍数频率附近3个点的幅值相加,大于某个阈值判定为主峰,两个主峰比较好找。正弦波就一个主峰,三角波基频、三倍频、五倍频都有,但是可能出现30k三角,90k正弦的情况,因此判断三角波可以直接找五倍频,但是这个阈值要合理设置,炼丹一下就找出来了,具体逻辑看fft函数

接着用dds合成波形就可以输出,但是这个题最大的难点在于A和A’同频稳定显示,因为生成波形A’用的是单片机的晶振,A是信号发生器的晶振,因此必定出现“同频率不同源”,本质还是频率微小差异,可能就是小数点后几位的频率差异,在示波器上都可以看出来。

解决办法就是就是控制dds的时钟,dds时钟是由单片机TIM给的,这个pwm波精确给定我们没有做出来,但是看到有的组做出来的,想法就是用主从时钟、定时器级联等方法,精确控制pwm波的数量,想法有了但是主从时钟没有搞明白(裂开),最后没有做出来

那怎么自动调?得知道输出的时钟和C信号快了还是慢了,想法是对C进行施密特触发器整型成矩形波,对于整型得到的信号管脚上升沿外部中断,对C周期,C反正最低5kHz,进行测量,但也没有做出来。

用5kHz周期的时间内测量有C的几个脉冲,比如4个,因为我知道5khz的一个周期就是200us内,单片机定时器可以从0计数到n,比如定时器时钟2M,200us就是0-400,接着用一个可变周期定时器(用输出比较中断,到某个数就讲TIM -> CNT = 0),C输入的管脚上升沿触发一个外部中断,这个外部中断打开那个可变定时器,可变周期定时器到400的时候输出比较中断,看如果只计数到3个说明可变周期要长一点,设置成401继续开始上述过程。显然,400这个数越大越精确,因为stm32 pclk2时钟用的是72M,400*36=14400。

1、如果说得到14399,C信号的时钟14400个周期=单片机时钟14399个周期,单片机快,假设单片机TIM时钟72M,给dds的时钟是2MHz的,就是说定时器A36分频,计36输出一次,那么需要另一个定时器B给这个定时器开关,定时器B计数到14399就把A关50周期再打开,应该可以用滴答定时器(delay里面用的那种)。

2、假如最后得到到14450,那么说明C信号的时钟14400个周期=单片机时钟14450个周期,就是单片机的频率低了,慢了,定时器A35分频,会比2M的dds所需时钟快,2.0571MHz,2.0571M*(14400/14450)=2.0500MHz,就是说相对于C信号的时钟来说单片机35分频就是2.05MHz,那么就是说定时器B计数到2M的时候,关停定时器A0.05M个周期的时间

可以看出,单片机快了明显好调整,那么就可以用dds输出的时候,频率控制器写大一点,有一种单片机快的错觉,去降低单片机输出的时钟频率

就是说思路是有了,技术力不够,实现不出来(叹气ε=(´ο`*)))唉)

代码:
https://github.com/superleo111/electron_design/tree/main

引用[1]:大二第一次正式组队培训,目为2017的H(远程幅频特性测试装置)。由于能力不足,出老师将大二组的难度降了一个维度。实际上这是一道高频目(1M-40M),然而我们大二做的仅仅是处理1k-40kHz部分的信号。这道刚拿到手,虽然指导老师讲解了一遍,但是脑子里还是一头雾水,不知从何下手,经过我们一群小伙伴后来的讨论,才逐渐理解了目的意思。从一无所知到有所收获,与一群志同道合的朋友一起进步,一起成长,比起奖项,或许这才是吸引人的地方。由于个人能力有限,还是个敲代码的,对于硬件原理也只是半知半解,故纰漏处望大家指正。[1] 引用[2]:至此关于此硬件部分的内容写的大致完毕了。作为一道高频,这不能通过面包板搭建以及软件仿真方法来调试路,给硬件整体的路调试环节带来了很多麻烦,我们小组也是屡屡碰壁,不过最后也是能做出成品,还是有些感慨的,也欢迎大家来讨论。[2] 引用[3]:我们搭的这个玩意主要分为两个部分,磁炮路部分和控制路部分,还有一块源部分,当然其实测试现场是提供学生源的,我们纯粹是吃饱了撑的。磁炮部分:包括两个开关(一个充,一个放),一个高压容,一个升压模块,一个线圈与炮管。控制部分:两个舵机 云台,一块F407(带触控屏),两个继器,一块OpenMV,一个超声波模块。[3] 根据引用内容,2023H是一道关于远程幅频特性测试装置目。这是一道高频,但我们大二组只处理了1k-40kHz部分的信号。在解过程中,我们遇到了一些困难,但通过小组的讨论,逐渐理解了目的意思。在硬件部分的设计中,我们分为磁炮路部分和控制路部分,还有一个源部分。磁炮部分包括开关、高压容、升压模块、线圈和炮管。控制部分包括舵机云台、F407开发板、继器、OpenMV和超声波模块。由于这是一道高频,无法通过面包板搭建和软件仿真来调试路,给整体的路调试带来了一些麻烦。但最终我们还是成功完成了装置的制作。欢迎大家一起来讨论这道目。[1][2][3]
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值