2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(3)
一、前言
之前已经弄好了基础的要求,决定使用频率来校准测量值,这里就涉及到一个问题是如何去得到信号的基波频率,并且发挥部分的一个要求是绘制出一个周期的完整波形,这个要求也需要我们去计算得到基波的频率,明确了目标之后我们就又开始了接下来的征程。
二、电赛第三日
首先我们开始对测量值进行校准,由于早上已经测量得到了很多的数据了,这些数据都是各次谐波的归一化幅值与信号频率的关系,我们把这些数据都录入到excel中去,将数据进行处理最终绘制出信号频率和误差绝对值的x-y图,通过添加x-y图的趋势线来进行拟合,然后把公式记录下来用于程序里面的数据校准。经过几个小时的测试和调整测量已经基本准确,但是最极端的情况就是100k频率下五次谐波的测量值测量不准确,由于我的采样频率正好是1M因此这个临界点位的测量是比较极限的,这个点的测量值波动比较随机校准比较困难。最后的测量结果是通过多次测量然后取平均的方式得到的,这样做的效果波动性会小很多,校准后的结果也比较精确,最终的效果也可以满足题目的要求。
接下来需要解决的就是显示一个周期波形的问题了,首先需要测量得到信号的频率,我的频率测量是通过FFT的计算结果得到的,我现在的FFT结果分辨率是1k,因此只需要找到信号分量最大的值对应的数组的位置即可,代码示意图如下, fre就是基波频率对应信号频率(当然前提是基波分量需要是最大的)。
float result[512];
float max;
int fre;
max = result[1];
fre = 1;
for (uint16_t i = 1; i < 500; i++) { /* 找出分量最大的位置 */if (max < result[i]) {max = result[i];fre = i;}
}
这样得到信号的频率之后就可以去显示信号的周期波形了,最简单的方法就是直接把测量的数据显示到屏幕上,我测了1000个点对应频率1k时的一个周期,频率10k就显示100个,以此类推即可。这样做的问题也很明显当频率越高的时候信号的测量点数越低,信号显示效果越差,对于这个问题当时想出的办法就是信号拟合。现在我已经成功测量出了信号的频率分量,可以通过sin函数来对信号进行合成,将信号的一二三四五次谐波叠加就可以直接还原出原始信号,代码示意如下,实际的效果也比较理想(当然所给的谐波分量与基波之间不能有相位差)。
float har2, har3, har4, har5; /* 2345次谐波的归一化幅值 */
float signal[1024];
for (i = 0; i < 1024; i++) {signal[i] = sin(2pi*i/1024) + har2*sin(2pi*i*2/1024) + har3*sin(2pi*i*3/1024) + har4*sin(2pi*i*4/1024) + har5*sin(2pi*i*5/1024);
}
自此就差一个手机上位机的部分未有实现,时间也来到的第三天的晚上,手机app的开发之前没有接触过,弄了一个晚上也没太搞明白就放弃了,使用了一个通用的蓝牙串口app来显示一些文字信息,放弃了波形显示功能。
三、电赛第四日
第四天的时间基本上就是对之前的代码进行了优化,比如之前提到过的自动调整代码不够好等问题。还有就是调整蓝牙通信的问题,由于使用的是蓝牙BLE,无法一次性传输很长的数据包,针对这一块进行了一定优化。同时也对显示界面进行了一些调整等等,最终第四天也是比较顺利的度过了,等待最后的装箱就结束了这次电赛之旅。
四、电路和代码下载
对代码有兴趣的点下面的链接下载,写这么多字请我喝杯水吧。
信号失真度测量装置(A题)电路的软件
2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(3)相关推荐
- 2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(1)
一.前言 这边来分享一下这次国赛的A题软硬件设计过程,本次分享会拆分成几篇博客进行分享,这几篇博客大体会采用时间顺序来进行,来纪念这次国赛的经历,博客里面会涉及本次参赛的软硬件设计思路和 ...
- 2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(2)
一.前言 电赛的第二天一般需要去确定最终的硬件电路,因为电路板的腐蚀和焊接都需要一定的时间,之后的硬件基本就不会再进行大改,最多都是在现有的基础上更改元件参数或者割线修改,之后即使功能不 ...
- 2021年全国大学生电子设计大赛——信号失真度测量装置(A 题)实验报告
- 【我的电赛日记(完结)---2021全国大学生电子设计竞赛全国一等奖】A题:信号失真度测量装置
目录 前言 题目分析 方案设计 原理图电路 程序设计 实物展示 总结 太久没更新了,闲来无事更新一下自己本科最后的一次比赛,也算是为我的电赛日记画上完美的句号了. 前言 本系统以TI MSP432P4 ...
- 数字-模拟信号混合传输收发机(E 题)--2021 年全国大学生电子设计竞赛
数字-模拟信号混合传输收发机(E 题)–2021 年全国大学生电子设计竞赛 一 任务 设计并制作在同一信道进行数字-模拟信号混合传输的无线收发机.其中,数字信号由 4 个 0~9 的一组数字构成:模拟 ...
- 2021年全国大学生电子设计竞赛重新启动通知及进度安排
大家好,我是张巧龙,昨天晚上收到了电赛重新启动的通知. 2021年全国大学生电子设计竞赛 重新启动通知及进度安排 (电组字[2021]03号) 各赛区组织委员会.各有关高等学校: 根据全国疫情变化情况 ...
- 照度稳定可调 LED 台灯(K 题)【高职高专组】-- 2021 年全国大学生电子设计竞赛
照度稳定可调 LED 台灯(K 题)[高职高专组]-- 2021 年全国大学生电子设计竞赛 一 任务 二 要求 1.基本要求 2.发挥部分 三 说明 四 评分标准 优秀作品开源参考(来源立创开源平台) ...
- 竞赛通知|2021年全国大学生电子设计竞赛启动通知!
2021年全国大学生电子设计竞赛重新启动通知及进度安排 报名截止日期:2021年11月4日8:00 各赛区组织委员会.各有关高等学校: 根据全国疫情变化情况及2021年秋季全国高校学生返校进度,全国 ...
- 2021年全国大学生电子设计竞赛F题中数字识别这一技术分支实践与学习笔记
文章目录 Chapter 1 简介 Chapter 2 制作思路 Section 1 环境与成像效果及思路 Section 2 制作并训练数据集 Section 3 电脑环境配置 Section 4 ...
最新文章
- JAVA那点破事!并发、IO模型、集合、线程池、死锁、非阻塞、AQS....
- .NET Framework 3.5 SP1 bootstrapper 包(安装和部署)的解决方法
- OD使用教程 调试篇
- 大叔手记(10):别再让面试官问你单例
- mysql端口测试报错_MySQL报错:2003 - Can't connect to MySQL server on 'localhost' (10038)
- 【配置文件】大家来谈谈这个log4j到底有什么用?
- 步进电机为什么无法高速启动?
- Android SDK 中文 (56) —— ViewFlipper
- mysql 格式化_在线SQL代码格式化
- PC微信多开源代码-消息钩子+ZwQuerySystemInformation
- php月考勤统计,考勤系统功能实现——统计
- pytorch-Detach的作用
- 为何苹果赚取智能手机市场大部分利润?
- win10操作系统创建局域网共享文件夹
- 计算机毕业生毕业论文写作及选题方向
- 关于source insight、添加.s和.S文件,显示全部路径、加入项目后闪屏幕
- linux驱动学习2(kpd驱动初步分析)
- 未定义的标识符:IplImage
- windows安装MongoDB数据库
- 彼得蒂尔:创业要先找小市场 别玩破坏式创新