自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 2023年电赛H题信号分离 (四)DAC输出波形

和大家说一下我踩过的坑,就是我用示波器输出两路波形时给的幅值是一样大的,所以进行fft运算后最大值和次大值两个数值会交替,比如我给的频率值是50k和20k,在第一次fft运算中得出FreqA=50k、FreqB=20k,但是在下一次可能会变成FreqA=20k、FreqB=50k,导致波形会一直在每一路的必须会在20k和50k之间跳动,所以大家输出两路信号时记得要给不一样的幅度值。按照H题的题目要求,信号频率的范围是20k~100k,所以我们将采样点改为10就可以输出最大的100kHz。

2025-07-10 12:00:00 531 1

原创 2023年电赛H题信号分离 (三)fft数据处理

我们要对这个数据进行处理后再给到fft,先把adc_data数字量转换成模拟量存在一个新数组,给到fft的数值应该是个复数,我们需要将adc_values的每一个数据后面加一个0。注意fft出来的频谱是对称的,所以我们只需要一半的频谱就够了。这里排序我用的是qsort这个函数,用的时候需要包含math.c,大家可以搜搜这个函数的用法,它是需要自己去定义一个排序函数的。排序后的数组最大值是直流分量(数组第0位),这是我们不想要的数据,也就是说数组的第1位和第2位才是我们想要的数值。这是main.c的代码。

2025-07-09 12:00:00 814

原创 2023年电赛H题信号分离(二)定时器触发ADC+DMA

前文提到的PSC和ARR的数值先随意设定,我们在tim.c的代码中加入这个处理,PSC和ARR就能根据我要的采样频率去自动匹配数值了。配置定时器,选用内部时钟,PSC和ARR的值先随意给个处置,我们在代码中再进行细化处理配置ADC,触发源选择定时器3,开启DMA。然后在while(1)中把adc_buff打印出来就可以看到采集到的数据了,这里我把数字量转换成了模拟量。配置定时器,选用内部时钟,PSC和ARR的值先随意给个初值,我们在代码中再进行细化处理。采样频率=时钟频率/(PSC-1)/(ARR-1)

2025-07-07 16:48:59 322 1

原创 2023年电赛H题信号分离(一)前言

简单介绍一下我们的方案,AB信号通过信号发生器出,然后通过一个加法器变成合路信号C,然后对C信号进行ADC采集,因为我们用的ADC采集不了负电压所以要在采集前将C信号进行一个抬升,ADC采集到数据后给FFT进行运算,运算出来获取频率值,将频率值给到DAC输出还原后的波形。当然项目不是我一个人完成的,主要是我有两个厉害的好队员,这是我第一次在csdn上发表文章,可能有很多做的不好的地方,又或者是方案和代码有不够完善的地方,希望可以和各位大佬多多交流。

2025-07-07 16:32:40 470

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除