<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【STM32 系列】EXTI11觸發(fā)三ADC同步(并非同步)采樣 —— 超精準(zhǔn)設(shè)置采樣率

      引言

      前段時(shí)間測(cè)試 fft 計(jì)算頻率的準(zhǔn)確性時(shí),發(fā)現(xiàn)用定時(shí)器觸發(fā) ADC 采樣所設(shè)置的采樣率在某些頻率上十分的不準(zhǔn)確,并且會(huì)產(chǎn)生非常嚴(yán)重的頻譜泄露問題(具體可以看上一篇文章:頻譜泄露原因)。
      下面是我封裝的一個(gè)設(shè)置定時(shí)器頻率的函數(shù):

      點(diǎn)擊查看代碼
      #include "set_samplingrate.h"
      
      /**
       * @brief 根據(jù)輸入?yún)?shù)設(shè)置定時(shí)器以調(diào)整采樣率
       * 
       * 此函數(shù)依據(jù)給定的定時(shí)器時(shí)鐘頻率和期望的采樣率,計(jì)算并設(shè)置定時(shí)器的自動(dòng)重載寄存器值,
       * 從而間接控制采樣達(dá)到期望采樣率。
       * 
       * @param timerHandle 定時(shí)器句柄。
       * @param Timer_ClockFreq 定時(shí)器的時(shí)鐘頻率。
       * @param SamplingRate 期望的采樣率。
       * @return 返回期望設(shè)置的采樣率。
       * 
       * @note 函數(shù)依賴定時(shí)器句柄已正確初始化,且相關(guān)硬件寄存器和庫函數(shù)正常工作。
       */
      float32_t Set_SamplingRate(TIM_HandleTypeDef* htim, float32_t Timer_ClockFreq, float32_t SamplingRate) 
      {
          // 聲明變量用于存儲(chǔ)定時(shí)器經(jīng)過預(yù)分頻后的頻率
          float32_t Timer_After_PSC_Freq;
          Timer_After_PSC_Freq = Timer_ClockFreq / (float32_t)(htim->Init.Prescaler + 1);
          // 計(jì)算并設(shè)置定時(shí)器的自動(dòng)重載寄存器值,來調(diào)整ARR以達(dá)到期望采樣率
          __HAL_TIM_SET_AUTORELOAD(htim, (Timer_After_PSC_Freq / SamplingRate) - 1);
      
          return SamplingRate;
      }
      
      點(diǎn)擊查看代碼
      #ifndef __SET_SAMPLINGRATE_H
      #define __SET_SAMPLINGRATE_H
      
      #include "main.h"
      
      extern float32_t Set_SamplingRate(TIM_HandleTypeDef* htim, float32_t Timer_ClockFreq, float32_t SamplingRate);
      
      #endif
      
      

      定時(shí)器觸發(fā)誤差來源

      例如,博主使用的 H743 的 TIM3 的頻率為200MHz,經(jīng)過2分頻后得到100MHz,在通過以上函數(shù)設(shè)置640kHz采樣率,那么 CNT 的值就需要是156.25,但 CNT 的值只能是整形的156,那么最終得出的采樣率值為$ \frac{100MHz}{156}=641025.64Hz $,這個(gè)看似微小的差異,其實(shí)可以造成極大的誤差,此時(shí)就可以很清晰的看到頻譜泄露帶來的誤差影響,甚至加窗后也解決不了:
      實(shí)際頻率7500Hz,計(jì)算得7500Hz
      實(shí)際頻率8125Hz,計(jì)算得7500Hz

      EXTI11外部觸發(fā)ADC采樣

      CubeMX配置

      ADC1、2、3都是如此配置,假如你是H7系列的話,還需要注意時(shí)鐘分頻的問題,具體看這篇文章:H7時(shí)鐘頻率設(shè)置ADC

      EXTI11測(cè)試結(jié)果

      測(cè)試方式:使用信號(hào)發(fā)生器發(fā)生方波/脈沖給到 EXTI11 引腳,設(shè)置的方波/脈沖的頻率就是采樣率

      1.使用640ksps采樣率采樣1024個(gè)點(diǎn),采樣5k倍數(shù)的正弦波/方波/三角波...加窗后并進(jìn)行1024個(gè)點(diǎn)的 fft 運(yùn)算

      • 采樣5kHz正弦波:

      • 采樣100kHz方波:

      2.使用32768sps采樣率采樣32768個(gè)點(diǎn),采樣任意頻率的正弦波/方波/三角波...加窗后并進(jìn)行32768個(gè)點(diǎn)的 fft 運(yùn)算

      • 采樣4137Hz方波:

      • 采樣10109Hz正弦波:

      可以看到,使用外部 EXTI 觸發(fā)設(shè)置的采樣率,計(jì)算的頻率非常的準(zhǔn)確,加窗后更是無敵,十分推薦使用。

      隱藏問題

      使用定時(shí)器可以同步觸發(fā)三個(gè) ADC 同時(shí)采樣,在使用三個(gè) ADC 同時(shí)采樣一個(gè)信號(hào)的時(shí)候,算得的相位差的誤差是相當(dāng)?shù)男。`差只有0.1%;但是使用 EXTI 觸發(fā)采樣時(shí),三個(gè)ADC并不是同時(shí)觸發(fā)的,使得就算采樣同一個(gè)信號(hào),算得的相位差誤差也會(huì)較大,就是由于這個(gè)特性引起的,目前還沒辦法解決。也是各有所長(zhǎng),按需使用吧。

      博客導(dǎo)航

      博客導(dǎo)航

      posted @ 2025-03-20 20:04  膝蓋中箭衛(wèi)兵  閱讀(221)  評(píng)論(0)    收藏  舉報(bào)
      ORCID iD icon https://orcid.org/0000-0001-5102-772X
      主站蜘蛛池模板: 韩国深夜福利视频在线观看| 白白发布视频一区二区视频 | 四虎库影成人在线播放| 最新国产精品拍自在线观看| 国产精品国产亚洲区久久| 國产AV天堂| 97精品伊人久久久大香线蕉| 无码尹人久久相蕉无码| 视频一区二区三区刚刚碰| 亚洲欧美综合人成在线| 国产精品第一页一区二区| 香港日本三级亚洲三级| 亚洲高清WWW色好看美女| 四虎国产精品免费久久| 日99久9在线 | 免费| 毛片亚洲AV无码精品国产午夜| 天天躁夜夜踩很很踩2022| 成人国产精品一区二区不卡| 最近中文字幕国产精品| 人妻熟女一二三区夜夜爱| 一日本道伊人久久综合影| 亚洲欧洲日韩精品在线| 无码中文字幕人妻在线一区二区三区| 乱女乱妇熟女熟妇综合网| 一本精品中文字幕在线| 久久综合婷婷成人网站| 国产 浪潮av性色四虎| 人妻另类 专区 欧美 制服| 国产区图片区小说区亚洲区| 日韩在线观看 一区二区| 亚洲最大成人免费av| 免费大片黄国产在线观看| 国产在线拍揄自揄拍无码| 无码av中文字幕免费放| 99精品国产一区二区三| 高潮潮喷奶水飞溅视频无码| 亚洲高清WWW色好看美女| 亚洲第一狼人天堂网伊人| 国产精品一二三中文字幕| 黄色大全免费看国产精品| 蜜臀久久综合一本av|