2020电赛经验总结+E题解题思路

2023-11-15

2020电赛经验总结+E题解题思路

取得的成果和经验

四川省2020年电子设计竞赛已经落下帷幕,第一次参加电赛,无论从知识还是经验上都有所获得。虽然只取得省三的成绩,但整个比赛过程为明年备战国赛具有指导作用,也算是一个不错的结果。
一个团队中每个人都会影响整个团队的发挥,今年是我一个人在支撑着整个队伍,又是负责焊板子,调电路,又要负责写程序,还好报告有队员分担,不然四天三夜不睡觉我也搞不完。如果想要走的更远,真的需要更强的队友,更好的分工,每个人真的能受任于自己负责的部分。
今年吃了一个大亏,第一天四种波形其实都已经调试出来并且焊接好,但是我并没有直接组装成成品,反而是去焊接调试ADC处理电路,结果到第四天才慌慌张张把调好的基础部分的电路组装起来,包括按键电路和继电器电路。这直接导致我没有时间去写fft算法,THD最终很遗憾,被我扼杀在摇篮中。在交作品的最后两个小时,我们的顶部失真居然出问题了,真把我急坏了,赶快检查,我知道这个时候慌张一点都没用,还是要沉住气,最后检查到一个虚焊点,重新焊接以后问题得以解决。
整个比赛过程真的好累,每天都过得很紧张,睡觉的时间也就两三个小时,还好我暑假有专门练习过信号题,才比较得心应手,真就还是那句话,功夫在平时。

解题思路

四川省总共有四个题,准备了一个月的小车,结果确没有学MSP430,只好选择E题。E题的解决方案在第一天就定下来了,考虑到9013三极管单极放大电路的放大倍数有限,而题目中要求将峰峰值为20mv的信号放大到至少2v的峰峰值,所以采用两级放大电路。由于时间紧迫,我们没有按照9013三极管技术手册去计算各个偏置电阻的阻值,而是借鉴了2019年电赛D题的题目配置。不过在调试的时候发现这个单极电路如果作为第一级放大电路,由于放大倍数太大,输出电压如果直接作为第二级放大电路的输入电压会造成第二级电路出现双向失真的情况。于是在第一级输出进行分压,通过一个射级跟随器对分压进行电压跟随,之后再作为输入电压输入到第二级放大电路进行放大。这样就能得到波形较好的正弦波。电路图如下:
在这里插入图片描述
对于一般失真波形的输出,需要通过改变Q点的位置来得到,我们以上图中第一级射级偏置电路为例,设用字母h表示三极管的放大倍数,根据射级偏置电路的特点,存在ICQ=(VBQ-VBEQ)/Re,又有IBQ=ICQ/h,VBQ=R4/(R3+R4)VCC,三个公式进行组合后得到:IBQ=(R4VCC-VBEQ(R3+R4))/(RE(R3+R4)*h);通过改变RE可以改变IBQ的大小,以此来改变Q点的位置。同时为了保证失真波形任然处在2V以上的峰峰值,那么就需要改变R14的分压电阻阻值来改变进入第二级的电压。三个失真波形的原因是:
1、顶部失真:Q点过低,造成截止失真;
2、底部失真:Q点过高,造成饱和失真;
3、双向失真:输入的电压峰峰值过高,或者第二级电路电源值过低。
顶部失真的波形如下,其余的失真大同小异:
在这里插入图片描述
对于交越失真,官方的解释是:在分析电路时把三极管的导通电压看作零,当输入电压较低时,因三极管截止而产生的失真称为交越失真。这种失真通常出现在通过零值处。由于晶体管的门限电压不为零,比如一般的硅三极管,NPN型在0.7V以上才导通,这样在0—0.7V就存在死区,同理对于PNP型三极管,在-0.7V—0V存在死区,这样就会造成失真。
具体电路如下图(借鉴网上的图):
在这里插入图片描述
对于最后THD的计算,采用STM32的DSP库中的fft算法进行谐波幅值的计算。但是需要增加一个ADC电压转换电路,使用OPA842运放作为电路核心,将各个输出波形进行衰减,抬高,以符合STM32ADC的0~3.3V的电压转换标准,电路图如下:
在这里插入图片描述
整个题目其实并不是很难,但是需要及其牢固的模拟电路基础以及极强的动手能力。
最后附上一个我自己还未完成的fft算法,能成功输出5次谐波的幅值,但是还没有做计算,仅供参考:
链接:https://pan.baidu.com/s/1bWG3scw8t_wUKITghKBSEQ
提取码:zw8p
电路链接:
链接:https://pan.baidu.com/s/1L8b9s3tbKKLerk0rlWsZFw
提取码:rox3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020电赛经验总结+E题解题思路 的相关文章

  • 在 R 中使用 fft 执行相位相关

    我正在尝试使用维基百科中的食谱在 R 中实现二维相位相关算法 http en wikipedia org wiki Phase correlation http en wikipedia org wiki Phase correlation
  • 【一种新的Burton-Miller型奇异边界方法(BM-SBM)】用于声学设计灵敏度分析,2D和3D声学设计灵敏度分析的奇异边界方法研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 2D 2 2 3D
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • iOS FFT 绘制频谱

    我读过这些问题 使用 Apple FFT 和加速框架 https stackoverflow com questions 3398753 using the apple fft and accelerate framework 使用 Acc
  • 为什么这个偶数函数的 FFT 不是真实的?

    因此 在 iPython 中 我运行以下命令 In 1 from pylab import In 2 x np array 4 3 2 1 0 1 2 3 4 In 3 rfft x Out 3 array 20 00000000 0 j
  • 为什么 Python 和 CUDA 不支持半精度复杂浮点运算?

    NumPY 有复杂64 https docs scipy org doc numpy user basics types html对应于两个float32 但它也有 float16 但没有 complex32 怎么会 我有涉及 FFT 的信
  • 使用 C 编程频谱图 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试用 C 语言制作音频频谱图
  • 2D 循环卷积与卷积 FFT [Matlab/Octave/Python]

    我试图理解 FTT 和卷积 互相关 理论 因此我创建了以下代码来理解它 代码是 Matlab Octave 但我也可以用 Python 来完成 In 1D x 5 6 8 2 5 y 6 1 3 5 1 x1 x zeros 1 4 y1
  • 绘制具有颜色渐变的矩阵“光谱图”

    使用 STFT 短时傅立叶变换 后 输出是一个表示 3d 图的矩阵 就像 A X Y M A是输出矩阵 X是时间 Y是频率 第三维M是由像素颜色强度表示的幅度 如下图所示 频谱图2 https i stack imgur com mtWqb
  • 傅立叶级数数据与 numpy 的拟合:fft 与编码

    假设我有一些数据 y 我想对其进行傅立叶级数拟合 对此post https stackoverflow com questions 4258106 how to calculate a fourier series in numpy 解决方
  • Clojure STM ( dosync ) x Java 同步块

    Clojure STM dosync 方法和Java同步块有什么区别 我正在阅读 睡觉的理发师 问题中的以下代码 http www bestinclass dk index clj 2009 09 scala vs clojure roun
  • 什么是“无为”卷积核

    如果我尝试在频率空间中执行卷积核 什么是 不执行任何操作 的内核 换句话说 如果我在应用内核并在频率空间中对其进行归一化后查看图像 我只想查看原始傅里叶变换 是单位矩阵吗 我的内核是 3x3 Thanks 一个什么都不做的 3x3 内核将是
  • 使用 fft 查找每个谐波的相位

    我用的是Matlab 我有一个正弦信号 X 放大器 220 频率 50 我添加了 3 个谐波 x1 gt h2 放大器 30 频率 100 相位 30 x2 gt h4 放大器 10 频率 200 相位 50 x3 gt h6 放大器 05
  • Python 中频谱图的 FFT

    我将如何使用 Python 从 WAV PCM 文件读取频率峰值 然后能够生成它的图像以进行频谱图分析 我正在尝试制作一个程序 允许您读取任何音频文件 将其转换为 WAV PCM 然后找到峰值和截止频率 Python 波库 http doc
  • 如何从 .wav 文件中提取特定频率范围?

    I m really声音处理方面的新知识 所以也许我的问题很简单 我想要做的是使用 R 从 wav 文件中提取特定的频率范围 假设为 150 400 Hz 换句话说 我想创建另一个波形文件 wave2 其中仅包含我想要的频率分量 指定 15
  • fft 和小波

    我可以使用 fft 获取加载的 1 秒音频文件的频率 相位和幅度 并重新创建它 我现在想做的是找出每个频率在 1 秒音频文件中的开始位置和结束位置 并将数据放入数组中 示例 100hz 从 0 23 秒到 0 34 秒开始 104 34hz
  • Python 中的帕塞瓦尔定理

    我试图掌握 Python 的 fft 功能 我偶然发现的奇怪的事情之一是帕塞瓦尔定理 http en wikipedia org wiki Parseval 27s theorem似乎不适用 因为它现在给出的差异约为 50 而它应该是 0
  • 实时音高检测

    用于实时检测用户歌唱的音调FFT https stackoverflow com questions 1351381 fft problem returns random results and 自相关 https stackoverflo
  • DSP 库 - RFFT - 奇怪的结果

    最近我一直在尝试在我的STM32F4 Discovery评估板上进行FFT计算 然后将其发送到PC 我已经调查了我的问题 我认为我对制造商提供的 FFT 函数做错了 我正在使用 CMSIS DSP 库 现在我一直在用代码生成样本 如果工作正
  • 使用 FFT 执行音频分析

    我已经被这个问题困扰好几天了 并且浏览了几乎所有相关的 StackOverflow 页面 通过这次活动 我现在对 FFT 是什么及其工作原理有了更深入的了解 尽管如此 我在将其实现到我的应用程序中时遇到了极大的困难 简而言之 我想做的是为我

随机推荐

  • 【Spring] Spring boot 报错 Unable to start ServletWebServerApplicationContext due to missing ServletWe

    1 概述 spring 报错如下 Error starting ApplicationContext To display the conditions report re run your application with debug e
  • 基于zookeeper的MySQL主主负载均衡的简单实现

    基于zookeeper的MySQL主主负载均衡的简单实现 1 先上原理图 2 说明 两个mysql采用主主同步的方式进行部署 在安装mysql的服务器上安装客户端 目前是这么做 以后想在zookeeper扩展集成 客户端实时监控mysql应
  • hot编码 字符one_笔记1 one-hot、embedding

    one hot 在特征工程中需要对数据进行预处理 one hot在数据预处理中比较常见 1 什么是one hot One Hot编码 又称为一位有效编码 主要是采用N位状态寄存器来对N个状态进行编码 每个状态都由他独立的寄存器位 并且在任意
  • java 16进制字符串转16进制

    author j public class Test public static void main String args byte b HexString2Bytes AA020155 String s Bytes2HexString
  • IDA详细使用教程

    文章目录 软件介绍 目录结构 启动页面 IDA文件加载 界面介绍 常用快捷键 操作概述 函数操作 数据类型操作 导航操作 类型操作 关闭数据库 软件介绍 Ollydbg 仅仅是运行于 Windows 用户模式下的一种 32 位调试器 而 I
  • IDEA常用插件

    cajon plugin zip ChatGPT zip Generate All Getter And Setter zip github copilot intellij zip idea mybatis generator zip i
  • c++栈的用法(1)

    栈最大的特点是 先进后出 如同一筒羽毛球 先放进去的球是最后才能拿出来的 而后放进去的球却是最先拿出来的 同理 先储存进栈中的元素是最后才能展现 而后放进去的却是最先展现的 栈的头文件是 include
  • MySQL基础篇-第11章_数据处理之增删改

    第11章 数据处理之增删改 讲师 尚硅谷 宋红康 江湖人称 康师傅 官网 http www atguigu com 1 插入数据 1 1 实际问题 解决方式 使用 INSERT 语句向表中插入数据 1 2 方式1 VALUES的方式添加 使
  • 老司机教你如何跨进Python的大门

    1 Python介绍 python 动态语言 java 静态语言 python不用编译 直接解释执行 不用像java一样显式声明变量 要不要学看下图 2 安装Python 下载 解压缩 或者安装 配置环境变量 没错就是这么简单 查看pyth
  • 服务 zookeeper 不支持 chkconfig

    在给zk设置开机启动的时候 报错 服务 zookeeper 不支持 chkconfig 因为配置文件是从别人的博客了拷贝的 只是改了个性化的部分 然后就粘贴到服务器上了 服务器上使用service能正常执行start stop status
  • windows环境下springboot程序启停脚本

    1 启动应用脚本 echo off if 1 h goto begin mshta vbscript createobject wscript shell run nx0 h 0 window close exit begin start
  • css伪类where、is、has用法

    目录 一 where 1 作用 2 用法 3 优先级 二 is 1 作用 2 用法 3 优先级 三 has 1 作用 2 用法 3 优先级 css伪类where is has用法 一 where 1 作用 where CSS 伪类函数接受选
  • Windows查看和导入证书(.cer / .pfx)

    文章目录 证书介绍 问题汇总 导入导出细节注意 如何查看以上两种证书的到期日 Windows下导入证书 证书介绍 作为文件形式存在的证书一般有以下几种格式 带有私钥的证书 由Public Key Cryptography Standards
  • 深度学习-第T5周——运动鞋品牌识别

    深度学习 第T5周 运动鞋品牌识别 深度学习 第T5周 运动鞋品牌识别 一 前言 二 我的环境 三 前期工作 1 导入数据集 2 查看图片数目 3 查看数据 四 数据预处理 1 加载数据 1 设置图片格式 2 划分训练集 3 划分验证集 4
  • 如何选购阿里云服务器并快速入门(Windows版本)?

    本入门教程采用ecs g6 large实例规格 在Windows Server 2016系统上配置了IIS服务 结合ECS管理控制台展示如何快速使用云服务器ECS 准备工作 创建账号 以及完善账号信息 注册阿里云账号 并完成实名认证 具体操
  • Centos 7 Zabbix 6.0 TimescaleDB 安装配置

    Zabbix 6 0 TimescaleDB 安装配置 系统 Centos7 PHP PHP 7 4 30 apache httpd 2 4 6 PostgreSQL 13 TimescaleDB version 2 7 0 zabbix
  • C++学习(四三五)android获取so安装路径

    ClassLoader loader getClassLoader try Method library ClassLoader class getDeclaredMethod findLibrary String class String
  • 《深入理解计算机系统》实验八Proxy Lab 下载和官方文档机翻

    前言 深入理解计算机系统 官网 http csapp cs cmu edu 3e labs html 该篇文章是 实验八Proxy Lab的Writeup proxylab pdf 机翻 原文 http csapp cs cmu edu 3
  • python的面向对象和面向过程(意义和区别)

    面向过程 侧重于怎么做 1 把完成某一个需求的 所有步骤 从头到尾 逐步实现 2 根据开发要求 将某些功能独立的代码封装成一个又一个函数 3 最后完成的代码 就是顺序的调用不同的函数 特点 1 注重步骤和过程 不注重职责分工 2 如果需求复
  • 2020电赛经验总结+E题解题思路

    2020电赛经验总结 E题解题思路 取得的成果和经验 四川省2020年电子设计竞赛已经落下帷幕 第一次参加电赛 无论从知识还是经验上都有所获得 虽然只取得省三的成绩 但整个比赛过程为明年备战国赛具有指导作用 也算是一个不错的结果 一个团队中