一、前言
       之前已经弄好了基础的要求,决定使用频率来校准测量值,这里就涉及到一个问题是如何去得到信号的基波频率,并且发挥部分的一个要求是绘制出一个周期的完整波形,这个要求也需要我们去计算得到基波的频率,明确了目标之后我们就又开始了接下来的征程。

二、电赛第三日
       首先我们开始对测量值进行校准,由于早上已经测量得到了很多的数据了,这些数据都是各次谐波的归一化幅值与信号频率的关系,我们把这些数据都录入到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)相关推荐

  1. 2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(1)

    一.前言        这边来分享一下这次国赛的A题软硬件设计过程,本次分享会拆分成几篇博客进行分享,这几篇博客大体会采用时间顺序来进行,来纪念这次国赛的经历,博客里面会涉及本次参赛的软硬件设计思路和 ...

  2. 2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(2)

    一.前言        电赛的第二天一般需要去确定最终的硬件电路,因为电路板的腐蚀和焊接都需要一定的时间,之后的硬件基本就不会再进行大改,最多都是在现有的基础上更改元件参数或者割线修改,之后即使功能不 ...

  3. 2021年全国大学生电子设计大赛——信号失真度测量装置(A 题)实验报告

  4. 【我的电赛日记(完结)---2021全国大学生电子设计竞赛全国一等奖】A题:信号失真度测量装置

    目录 前言 题目分析 方案设计 原理图电路 程序设计 实物展示 总结 太久没更新了,闲来无事更新一下自己本科最后的一次比赛,也算是为我的电赛日记画上完美的句号了. 前言 本系统以TI MSP432P4 ...

  5. 数字-模拟信号混合传输收发机(E 题)--2021 年全国大学生电子设计竞赛

    数字-模拟信号混合传输收发机(E 题)–2021 年全国大学生电子设计竞赛 一 任务 设计并制作在同一信道进行数字-模拟信号混合传输的无线收发机.其中,数字信号由 4 个 0~9 的一组数字构成:模拟 ...

  6. 2021年全国大学生电子设计竞赛重新启动通知及进度安排

    大家好,我是张巧龙,昨天晚上收到了电赛重新启动的通知. 2021年全国大学生电子设计竞赛 重新启动通知及进度安排 (电组字[2021]03号) 各赛区组织委员会.各有关高等学校: 根据全国疫情变化情况 ...

  7. 照度稳定可调 LED 台灯(K 题)【高职高专组】-- 2021 年全国大学生电子设计竞赛

    照度稳定可调 LED 台灯(K 题)[高职高专组]-- 2021 年全国大学生电子设计竞赛 一 任务 二 要求 1.基本要求 2.发挥部分 三 说明 四 评分标准 优秀作品开源参考(来源立创开源平台) ...

  8. 竞赛通知|2021年全国大学生电子设计竞赛启动通知!

     2021年全国大学生电子设计竞赛重新启动通知及进度安排 报名截止日期:2021年11月4日8:00 各赛区组织委员会.各有关高等学校: 根据全国疫情变化情况及2021年秋季全国高校学生返校进度,全国 ...

  9. 2021年全国大学生电子设计竞赛F题中数字识别这一技术分支实践与学习笔记

    文章目录 Chapter 1 简介 Chapter 2 制作思路 Section 1 环境与成像效果及思路 Section 2 制作并训练数据集 Section 3 电脑环境配置 Section 4 ...

最新文章

  1. JAVA那点破事!并发、IO模型、集合、线程池、死锁、非阻塞、AQS....
  2. .NET Framework 3.5 SP1 bootstrapper 包(安装和部署)的解决方法
  3. OD使用教程 调试篇
  4. 大叔手记(10):别再让面试官问你单例
  5. mysql端口测试报错_MySQL报错:2003 - Can't connect to MySQL server on 'localhost' (10038)
  6. 【配置文件】大家来谈谈这个log4j到底有什么用?
  7. 步进电机为什么无法高速启动?
  8. Android SDK 中文 (56) —— ViewFlipper
  9. mysql 格式化_在线SQL代码格式化
  10. PC微信多开源代码-消息钩子+ZwQuerySystemInformation
  11. php月考勤统计,考勤系统功能实现——统计
  12. pytorch-Detach的作用
  13. 为何苹果赚取智能手机市场大部分利润?
  14. win10操作系统创建局域网共享文件夹
  15. 计算机毕业生毕业论文写作及选题方向
  16. 关于source insight、添加.s和.S文件,显示全部路径、加入项目后闪屏幕
  17. linux驱动学习2(kpd驱动初步分析)
  18. 未定义的标识符:IplImage
  19. windows安装MongoDB数据库
  20. 彼得蒂尔:创业要先找小市场 别玩破坏式创新

热门文章

  1. Android代码故事第一回,平均间隔的按钮
  2. 网络安全渗透中常用的10种渗透测试方式
  3. 用python进行图片处理和特征提取
  4. 【课设】图书管理系统
  5. 夥涉为王 vs 伙涉为王
  6. Linux从入门到放弃 Nginx
  7. Android Studio实现内容丰富的安卓视频管理平台
  8. HDMI传输原理:TMDS
  9. 拷贝构造函数与赋值重载
  10. 放大招!!!落地成盒?教你开发自己的联网吃鸡游戏 1