ໂລໂກ້ HOLTEK HT32 CMSIS-DSP Library
ຄູ່ມືຜູ້ໃຊ້
D/N: AN0538EN

ແນະນຳ

CMSIS ແມ່ນຊອບແວມາດຕະຖານການໂຕ້ຕອບທີ່ພັດທະນາໂດຍ ARM ເຊິ່ງມີຊື່ເຕັມຂອງ Cortex Microcontroller Software Interface Standard. ດ້ວຍການໂຕ້ຕອບມາດຕະຖານນີ້, ນັກພັດທະນາສາມາດໃຊ້ອິນເຕີເຟດດຽວກັນເພື່ອຄວບຄຸມ microcontrollers ຈາກຜູ້ສະຫນອງທີ່ແຕກຕ່າງກັນ, ດັ່ງນັ້ນການຫຼຸດຜ່ອນເວລາການພັດທະນາແລະການຮຽນຮູ້ຂອງພວກເຂົາຢ່າງຫຼວງຫຼາຍ. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ອ້າງອີງເຖິງເຈົ້າຫນ້າທີ່ CMSIS webເວັບໄຊ: http://www.keil.com/pack/doc/CMSIS/General/html/index.html. ຂໍ້ຄວາມນີ້ສ່ວນໃຫຍ່ອະທິບາຍຄໍາຮ້ອງສະຫມັກ CMSIS-DSP ໃນຊຸດ HT32 ຂອງ microcontrollers ເຊິ່ງປະກອບມີການຕັ້ງຄ່າສະພາບແວດລ້ອມ, ທິດທາງສໍາລັບການນໍາໃຊ້, ແລະອື່ນໆ.

ຄໍາອະທິບາຍຫນ້າທີ່

ຄຸນສົມບັດ CMSIS-DSP
CMSIS-DSP, ເຊິ່ງເປັນຫນຶ່ງໃນອົງປະກອບ CMSIS ປະກອບມີລັກສະນະດັ່ງຕໍ່ໄປນີ້.

  1. ສະຫນອງຊຸດຂອງຫນ້າທີ່ປະມວນຜົນສັນຍານທົ່ວໄປທີ່ອຸທິດຕົນເພື່ອ Cortex-M.
  2. ຫ້ອງສະຫມຸດຟັງຊັນທີ່ສະຫນອງໂດຍ ARM ມີຫຼາຍກວ່າ 60 ຫນ້າທີ່.
  3. ຮອງຮັບ q7, q15, q31
    (ໝາຍເຫດ) ແລະປະເພດຂໍ້ມູນຈຸດລອຍ (32-ບິດ).
  4. ການປະຕິບັດໄດ້ຖືກປັບປຸງໃຫ້ເຫມາະສົມສໍາລັບຊຸດຄໍາແນະນໍາ SIMD ທີ່ມີສໍາລັບ Cortex-M4/M7/M33/M35P.

ໝາຍເຫດ: ການຕັ້ງຊື່ q7, q15, ແລະ q31 ໃນຫ້ອງສະໝຸດຟັງຊັນຕາມລໍາດັບເປັນຕົວແທນຂອງຈຸດຄົງທີ່ 8, 16, ແລະ 32bit.
ລາຍການຫ້ອງສະໝຸດຟັງຊັນ CMSIS-DSP
ຫ້ອງສະໝຸດຟັງຊັນ CMSIS-DSP ຖືກແບ່ງອອກເປັນປະເພດຕໍ່ໄປນີ້:

  1. ຟັງ​ຊັນ​ທາງ​ຄະ​ນິດ​ສາດ​ພື້ນ​ຖານ​, ຫນ້າ​ທີ່​ຄະ​ນິດ​ສາດ​ໄວ​, ແລະ​ຫນ້າ​ທີ່​ສັບ​ສົນ​ທາງ​ຄະ​ນິດ​ສາດ​
  2. ຟັງຊັນການກັ່ນຕອງສັນຍານ
  3. ຟັງຊັນມາຕຣິກເບື້ອງ
  4. ການຫັນປ່ຽນຫນ້າທີ່
  5. ຫນ້າທີ່ຄວບຄຸມມໍເຕີ
  6. ຫນ້າທີ່ສະຖິຕິ
  7. ຫນ້າທີ່ສະຫນັບສະຫນູນ
  8. ຟັງຊັນ interpolation

ການຕັ້ງຄ່າສະພາບແວດລ້ອມ

ພາກນີ້ຈະແນະນໍາຮາດແວແລະຊອບແວທີ່ໃຊ້ໃນແອັບພລິເຄຊັນເຊັ່ນ:ampເລ.
ຮາດແວ
ເຖິງແມ່ນວ່າ CMSIS-DSP ສະຫນັບສະຫນູນຊຸດ HT32 ເຕັມ, ມັນແນະນໍາໃຫ້ໃຊ້ MCU ທີ່ມີຄວາມຈຸ SRAM ຂະຫນາດໃຫຍ່ກວ່າ 4KB ເປັນຄໍາຮ້ອງສະຫມັກ CMSIS-DSP example ຕ້ອງການຂະຫນາດ SRAM ທີ່ໃຫຍ່ກວ່າ. ຂໍ້ຄວາມນີ້ໃຊ້ ESK32-30501 ເປັນ example ເຊິ່ງໃຊ້ HT32F52352.
ຊອບແວ
ກ່ອນທີ່ຈະນໍາໃຊ້ຄໍາຮ້ອງສະຫມັກ example, ທໍາອິດ, ໃຫ້ແນ່ໃຈວ່າຫ້ອງສະຫມຸດເຟີມແວ Holtek HT32 ຫລ້າສຸດໄດ້ຖືກດາວໂຫຼດຈາກ Holtek ຢ່າງເປັນທາງການ. webເວັບໄຊ. ສະຖານທີ່ດາວໂຫຼດແມ່ນສະແດງຢູ່ໃນຮູບ
ບີບອັດ file ຫຼັງ​ຈາກ​ການ​ດາວ​ໂຫຼດ​.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ

ດາວໂຫລດລະຫັດຄໍາຮ້ອງສະຫມັກ CMSIS-DSP ຜ່ານການເຊື່ອມຕໍ່ຂ້າງລຸ່ມນີ້. ລະຫັດຄໍາຮ້ອງສະຫມັກໄດ້ຖືກບັນຈຸເປັນ zip file ດ້ວຍຊື່ຂອງ HT32_APPFW_xxxxx_CMSIS_DSP_vn_m.zip.
ເສັ້ນທາງດາວໂຫຼດ: https://mcu.holtek.com.tw/ht32/app.fw/CMSIS_DSP/
ໄດ້ file ກົດລະບຽບການຕັ້ງຊື່ແມ່ນສະແດງຢູ່ໃນຮູບ 2.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 2

ເນື່ອງຈາກວ່າລະຫັດຄໍາຮ້ອງສະຫມັກບໍ່ມີຫ້ອງສະຫມຸດເຟີມແວ files, ຜູ້ໃຊ້ຈໍາເປັນຕ້ອງໄດ້ວາງລະຫັດຄໍາຮ້ອງສະຫມັກ unzipped ແລະຫ້ອງສະຫມຸດ firmware files ເຂົ້າໄປໃນເສັ້ນທາງທີ່ຖືກຕ້ອງກ່ອນທີ່ຈະເລີ່ມຕົ້ນການລວບລວມ. ລະຫັດຄໍາຮ້ອງສະຫມັກ file ປະກອບມີສອງໂຟນເດີ, ເຊິ່ງເປັນແອັບພລິເຄຊັນ ແລະຫ້ອງສະໝຸດທີ່ຕັ້ງຢູ່ໃນຮູບທີ່ 3. ເອົາສອງໂຟນເດີນີ້ໃສ່ໃນໄດເລກະທໍລີຮາກຂອງເຟີມແວ ເພື່ອເຮັດສໍາເລັດ. file ການຕັ້ງຄ່າເສັ້ນທາງດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 4. ຜູ້ໃຊ້ຍັງສາມາດ decompress ລະຫັດຄໍາຮ້ອງສະຫມັກແລະ firmware Library compressed files ເຂົ້າໄປໃນເສັ້ນທາງດຽວກັນເພື່ອບັນລຸຜົນກະທົບດຽວກັນ. ສໍາລັບນີ້ exampດັ່ງນັ້ນ, ໄດເລກະທໍລີສໍາລັບ CMSIS_DSP ຈະຖືກເຫັນພາຍໃຕ້ໂຟເດີແອັບພລິເຄຊັນຫຼັງຈາກການບີບອັດ.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 3

File ໂຄງສ້າງ

ສອງໂຟນເດີຫຼັກລວມຢູ່ໃນລະຫັດຄໍາຮ້ອງສະຫມັກ file, ຫ້ອງສະໝຸດ\CMSIS, ແລະແອັບພລິເຄຊັນ\CMSIS_DSP, ແມ່ນໄດ້ອະທິບາຍເປັນສ່ວນບຸກຄົນຂ້າງລຸ່ມນີ້.
ເນື້ອໃນຂອງຫ້ອງສະໝຸດ\CMSIS ໂຟນເດີມີດັ່ງນີ້.

ຊື່ໂຟນເດີ ລາຍລະອຽດ
DSP_Lib ລະຫັດແຫຼ່ງຂອງແອັບພລິເຄຊັນ FW
DSP_Lib\Examples ປະກອບມີຫຼາຍມາດຕະຖານ examples ຂອງຫ້ອງສະຫມຸດຟັງຊັນ CMSIS-DSP ທີ່ສະຫນອງໃຫ້ໂດຍ ARM. ການຕັ້ງຄ່າສໍາລັບໂຄງການເຫຼົ່ານີ້ຖືກປະຕິບັດໃນແບບຈໍາລອງໂດຍບໍ່ຈໍາເປັນຕ້ອງມີ MCU. ຜູ້​ໃຊ້​ສາ​ມາດ​ໄດ້​ຢ່າງ​ວ່ອງ​ໄວ​ຮຽນ​ຮູ້​ວິ​ທີ​ການ​ນໍາ​ໃຊ້ ex ເຫຼົ່າ​ນີ້​amples ໂດຍການປະຕິບັດໃຫ້ເຂົາເຈົ້າ.
DSP_Lib\Source ລະຫັດແຫຼ່ງຫ້ອງສະໝຸດຟັງຊັນ CMSIS-DSP
ຮວມ ຫົວ​ຂໍ້​ຈໍາ​ເປັນ​ file ເມື່ອໃຊ້ຫ້ອງສະໝຸດຟັງຊັນ CMSIS-DSP
ລວມເອົາ\arm_common_tables.h ການປະກາດຕົວແປ array ພາຍນອກ (extern)
ລວມເອົາ\arm_const_structs.h ຖະແຫຼງການຂອງຄ່າຄົງທີ່ພາຍນອກ
ລວມເອົາ\arm_math.h ນີ້ file ມີຄວາມສໍາຄັນຫຼາຍເປັນການໂຕ້ຕອບສໍາລັບການນໍາໃຊ້ຫ້ອງສະຫມຸດຟັງຊັນ CMSIS-DSP. ການໂທໄປຫາ API ຫ້ອງສະໝຸດຟັງຊັນໃດນຶ່ງແມ່ນຖືກປະຕິບັດຜ່ານ arm_math.h.
Lib\ARM ຫ້ອງສະໝຸດຟັງຊັນ CMSIS-DSP ສຳລັບ ARMCC l arm_cortexM3l_math.lib (Cortex-M3, Little ndian) l arm_cortexM0l_math.lib (Cortex-M0 / M0+, Little endian)
Lib\GCC ຫ້ອງສະໝຸດຟັງຊັນ CMSIS-DSP ສໍາລັບ GCC l libarm_cortexM3l_math.a (Cortex-M3, Little ndian) l libarm_cortexM0l_math.a (Cortex-M0 / M0+, Little endian)

ໂຟນເດີຂອງແອັບພລິເຄຊັນ\CMSIS_DSP ມີຫຼາຍ CMSIS_DSP examples, ເຊິ່ງໃຊ້ຊຸດ HT32 ຂອງ MCUs ແລະສະຫນັບສະຫນູນຊຸດ HT32 ເຕັມ. ໂຄງ​ການ​ດັ່ງ​ກ່າວ​ໄດ້​ຖືກ​ພັດ​ທະ​ນາ​ໂດຍ​ນໍາ​ໃຊ້ Keil MDK_ARM​.

ຊື່ໂຟນເດີ ລາຍລະອຽດ
arm_class_marks_example ສະ​ແດງ​ໃຫ້​ເຫັນ​ວິ​ທີ​ການ​ໄດ້​ຮັບ​ຄ່າ​ສູງ​ສຸດ​, ມູນ​ຄ່າ​ຕໍາ​່​ສຸດ​ທີ່​, ມູນ​ຄ່າ​ຄາດ​ຄະ​ເນ​, ມາດ​ຕະ​ຖານ deviation​, variance ແລະ​ການ​ທໍາ​ງານ​ຂອງ matrix​.
arm_convolution_example ສະແດງໃຫ້ເຫັນທິດສະດີ convolution ຜ່ານ FFT ສະລັບສັບຊ້ອນແລະຫນ້າທີ່ສະຫນັບສະຫນູນ.
arm_dotproduct_example ສະ​ແດງ​ໃຫ້​ເຫັນ​ວິ​ທີ​ການ​ໄດ້​ຮັບ​ຜະ​ລິດ​ຕະ​ພັນ​ຈຸດ​ໂດຍ​ຜ່ານ​ການ​ຄູນ​ແລະ​ການ​ເພີ່ມ​ຂອງ vectors​.
arm_fft_bin_example ສະແດງໃຫ້ເຫັນວິທີການຄິດໄລ່ window ພະລັງງານສູງສຸດ (bin) ໃນໂດເມນຄວາມຖີ່ຂອງສັນຍານ input ໂດຍໃຊ້ FFT ສະລັບສັບຊ້ອນ, ຂະຫນາດສະລັບສັບຊ້ອນ, ແລະຫນ້າທີ່ໂມດູນສູງສຸດ.
arm_fir_example ສະແດງໃຫ້ເຫັນວິທີການປະຕິບັດການກັ່ນຕອງຕ່ໍາຜ່ານ FIR.
arm_graphic_equalizer_example ສະແດງໃຫ້ເຫັນວິທີການປ່ຽນຄຸນນະພາບສຽງໂດຍໃຊ້ graphic equalizer.
arm_linear_interp_example ສະແດງໃຫ້ເຫັນການນໍາໃຊ້ໂມດູນ interpolation ເສັ້ນແລະໂມດູນຄະນິດສາດໄວ.
arm_matrix_example ສະ​ແດງ​ໃຫ້​ເຫັນ​ການ​ຄິດ​ໄລ່​ຄວາມ​ພົວ​ພັນ​ມາ​ຕຣິກ​ເບື້ອງ​ລວມ​ທັງ​ການ​ຫັນ​ປ່ຽນ​ມາ​ຕຣິກ​ເບື້ອງ​, ການ​ຄູນ​ເມ​ຕ​ຣິ​ກ​, ແລະ matrix inverse​.
arm_signal_converge_example ສະ​ແດງ​ໃຫ້​ເຫັນ​ຕົວ​ກັ່ນ​ຕອງ FIR ຕ​່​ໍ​າ​ຜ່ານ​ການ​ປັບ​ຕົນ​ເອງ​ໂດຍ​ນໍາ​ໃຊ້ NLMS (Normalised Least Mean Square), FIR, ແລະ​ໂມ​ດູນ​ຄະ​ນິດ​ສາດ​ພື້ນ​ຖານ.
arm_sin_cos_example ສະແດງໃຫ້ເຫັນການຄິດໄລ່ trigonometric.
arm_variance_example ສະແດງໃຫ້ເຫັນວິທີການຄິດໄລ່ຄວາມແຕກຕ່າງໂດຍຜ່ານຄະນິດສາດພື້ນຖານແລະຫນ້າທີ່ສະຫນັບສະຫນູນ.
filter_iir_high_pass_example ສະແດງໃຫ້ເຫັນວິທີການປະຕິບັດການກັ່ນຕອງຜ່ານສູງໂດຍໃຊ້ IIR.

ການທົດສອບ
ຂໍ້ຄວາມນີ້ຈະໃຊ້ແອັບພລິເຄຊັນ\CMSIS_DSP\arm_class_marks_example as the test exampເລ. ກ່ອນທີ່ຈະເລີ່ມການທົດສອບ, ໃຫ້ກວດເບິ່ງວ່າ ESK32-30501 ໄດ້ຖືກເຊື່ອມຕໍ່ຫຼືບໍ່ແລະໃຫ້ແນ່ໃຈວ່າລະຫັດຄໍາຮ້ອງສະຫມັກແລະຫ້ອງສະຫມຸດ firmware ໄດ້ຖືກຈັດໃສ່ໃນສະຖານທີ່ທີ່ເຫມາະສົມ. ເປີດແອັບພລິເຄຊັນ\CMSIS_DSP\arm_class_marks_example folder ແລະດໍາເນີນການ _CreateProject.bat  file, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້. ຫຼັງຈາກນີ້, ເປີດ MDK_ARMv5 (ຫຼື MDK_ARM ສໍາລັບ Keilv4), ເພື່ອຊອກຫາວ່າ ex ນີ້.ample ສະຫນັບສະຫນູນຊຸດ HT32 ເຕັມ. ເປີດໂຄງການ Project_52352.uvprojx ເພາະວ່າ ESK32-30501 ຖືກໃຊ້.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 4

ຫຼັງຈາກເປີດໂຄງການ, ລວບລວມ (ປຸ່ມລັດ “F7”), ດາວໂຫຼດ (ປຸ່ມລັດ “F8”), ດີບັກ (ປຸ່ມລັດ “Ctrl+F5”) ແລະຫຼັງຈາກນັ້ນດໍາເນີນການ (ປຸ່ມລັດ “F5”). ຜົນໄດ້ຮັບການປະຕິບັດສາມາດສັງເກດເຫັນໄດ້ໂດຍໃຊ້ຕົວແປທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້.

ຕົວແປ ຊື່ ທິດທາງຂໍ້ມູນ ລາຍລະອຽດ ຜົນ​ການ​ປະ​ຕິ​ບັດ​
testMarks_f32 ປ້ອນຂໍ້ມູນ ນຶ່ງອາເຣ 20×4
testUnity_f32 ປ້ອນຂໍ້ມູນ ນຶ່ງອາເຣ 4×1
ຜົນ​ຜະ​ລິດ​ທົດ​ສອບ​ ຜົນຜະລິດ ຜະລິດຕະພັນຂອງ testMarks_f32 ແລະ testUnity_f32 {188…}
max_marks ຜົນຜະລິດ ຄ່າສູງສຸດຂອງອົງປະກອບໃນ array ຜົນການທົດສອບ 364
min_marks ຜົນຜະລິດ ຄ່າຕໍ່າສຸດຂອງອົງປະກອບໃນ array ຜົນການທົດສອບ 156
ຫມາຍຄວາມວ່າ ຜົນຜະລິດ ຄ່າທີ່ຄາດໄວ້ຂອງອົງປະກອບໃນ array ຜົນການທົດສອບ 212.300003
std ຜົນຜະລິດ ມາດຕະຖານ deviation ຂອງອົງປະກອບໃນ array ຜົນການທົດສອບ 50.9128189
var ຜົນຜະລິດ ຄວາມແຕກຕ່າງຂອງອົງປະກອບໃນອາເຣຜົນຜະລິດການທົດສອບ 2592.11523

ທິດ​ທາງ​ສໍາ​ລັບ​ການ​ນໍາ​ໃຊ້​ 

ການປະສົມປະສານ
ພາກນີ້ຈະແນະນໍາວິທີການລວມ CMSIS-DSP ເຂົ້າໃນໂຄງການຂອງຜູ້ໃຊ້.
ຂັ້ນຕອນທີ 1
ທຳອິດ, ໃຫ້ເພີ່ມສັນຍາລັກ Define ໃໝ່ເມື່ອຕັ້ງໂຄງການ, “ARM_MATH_CM0PLUS” ສຳລັບ M0+ ແລະ “ARM_MATH_CM3” ສຳລັບ M3. ຂັ້ນຕອນການຕັ້ງຄ່າ: (1) ທາງເລືອກຂອງປຸ່ມລັດເປົ້າໝາຍ “Alt+F7”), (2) ເລືອກໜ້າ C/C++, (3) ເພີ່ມຄຳນິຍາມໃໝ່ໃນຕົວເລືອກກຳນົດ, ດັ່ງທີ່ສະແດງຢູ່ລຸ່ມນີ້.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 5

ຂັ້ນຕອນທີ 2
ເພື່ອເພີ່ມເສັ້ນທາງລວມ, ໃຫ້ຄລິກໃສ່ປຸ່ມທີ່ຢູ່ຂ້າງ "ລວມເສັ້ນທາງ" ຢູ່ໃນຫນ້າ C/C++. ຫຼັງຈາກນັ້ນ, ປ່ອງຢ້ຽມການຕັ້ງຄ່າໂຟນເດີຈະປາກົດຂຶ້ນ, ບ່ອນທີ່ສາມາດເພີ່ມເສັ້ນທາງໃຫມ່ ..\..\..\..\library\CMSIS\Include”, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 6

ຂັ້ນຕອນທີ 3 (ທາງເລືອກ)
ເພື່ອເພີ່ມຫ້ອງສະຫມຸດຟັງຊັນ, ໃຫ້ຄລິກໃສ່ປຸ່ມ "ຈັດການລາຍການໂຄງການ" ຕາມຮູບຂ້າງລຸ່ມນີ້. ຖ້າບໍ່ເຫັນປຸ່ມ, ຄລິກ “Window → Reset View ເປັນ Defaults → Reset”, ດັ່ງນັ້ນການຕັ້ງຄ່າປ່ອງຢ້ຽມ IDE ຈະກັບຄືນສູ່ການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງມັນ. ຫຼັງຈາກນີ້, ປຸ່ມ "ຈັດການລາຍການໂຄງການ" ຈະຖືກສະແດງ.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 7

ເພີ່ມໂຟນເດີ CMSIS-DSP ໂດຍໃຊ້ປຸ່ມຕ່າງໆຕາມທີ່ສະແດງຢູ່ໃນປ່ອງສີແດງຂ້າງລຸ່ມນີ້ແລະຍ້າຍມັນໄປພາຍໃຕ້ໂຟນເດີ CMSIS ໂດຍໃຊ້ປຸ່ມ "ຍ້າຍຂຶ້ນ". ປິດໜ້າຕ່າງ Manage Project tems ເມື່ອສຳເລັດແລ້ວ.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 8

ຂັ້ນຕອນທີ 4
ຄລິກສອງເທື່ອໃສ່ໂຟເດີ CMSIS-DSP ຢູ່ເບື້ອງຊ້າຍ (ຖ້າຂັ້ນຕອນທີ 3 ຂ້າມໄປ, ເລືອກໂຟນເດີໃດນຶ່ງເຊັ່ນ User ຫຼື CMSIS, ແລະອື່ນໆ), ຈາກນັ້ນເພີ່ມຫ້ອງສະໝຸດຟັງຊັນ CMSIS-DSP ເຂົ້າໄປໃນມັນ. ເລືອກ \library\CMSIS\Lib\ARM\arm_cortexM0l_math.lib ສໍາລັບ M0+ ຫຼື \library\CMSIS\Lib\ARM \arm_cortexM3l_math.lib ສໍາລັບ M3. ເມື່ອສໍາເລັດ, ຫ້ອງສະຫມຸດຟັງຊັນ arm_cortexMxl_math.lib ຈະຖືກສະແດງຢູ່ໃນໂຟນເດີ CMSIS-DSP, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 9

ຂັ້ນຕອນທີ 5
ຕື່ມຫົວ file “arm_math.h” ເຂົ້າໄປໃນ main.c, ດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ. ໃນປັດຈຸບັນການຕັ້ງຄ່າການເຊື່ອມໂຍງທັງຫມົດແມ່ນສໍາເລັດແລ້ວ

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 10

Low-Pass Filter – FIR

ພາກສ່ວນນີ້, ໂດຍການແນະນຳແອັບພລິເຄຊັນ\CMSIS_DSP\arm_fir_example, ຈະສະແດງວິທີການກໍານົດການກັ່ນຕອງ FIR ແລະເອົາສັນຍານຄວາມຖີ່ສູງໂດຍໃຊ້ FIR. ສັນຍານເຂົ້າແມ່ນປະກອບດ້ວຍ 1kHz ແລະ 15kHz sine waves. ສັນຍານ sampຄວາມຖີ່ ling ແມ່ນ 48kHz. ສັນຍານຂ້າງເທິງ 6kHz ຖືກກັ່ນຕອງໂດຍ FIR ແລະສັນຍານ 1kHz ແມ່ນຜົນຜະລິດ. ລະຫັດຄໍາຮ້ອງສະຫມັກແບ່ງອອກເປັນຫຼາຍພາກສ່ວນ.

  1. ການເລີ່ມຕົ້ນ. ເພື່ອເລີ່ມຕົ້ນ FIR, API ຕໍ່ໄປນີ້ຖືກໃຊ້.
    void arm_fir_init_f32 (arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize);
    S: ໂຄງສ້າງການກັ່ນຕອງ FIR
    ຕົວເລກ: ຈໍານວນຂອງການກັ່ນຕອງ stages (ຈໍານວນຂອງຕົວຄູນການກັ່ນຕອງ). ໃນນີ້ example, numTaps=29.
    Coffs: ຄ່າສໍາປະສິດການກັ່ນຕອງ. ມີ 29 ຕົວຄູນຕົວກອງໃນຕົວຢ່າງນີ້ample ເຊິ່ງຖືກຄິດໄລ່ໂດຍ MATLAB.
    state: ຕົວຊີ້ບອກສະຖານະ
    blockSize: ເປັນຕົວແທນຈໍານວນຂອງ samples ປຸງແຕ່ງໃນເວລາດຽວ.
  2. ການກັ່ນຕອງຕ່ໍາ. ໂດຍການໂທຫາ API ຂອງ FIR, 32 samples ຖືກປຸງແຕ່ງໃນແຕ່ລະຄັ້ງແລະມີ 320 samples ໃນຈໍານວນທັງຫມົດ. API ທີ່ໃຊ້ແມ່ນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້.
    void arm_fir_f32 (const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: ໂຄງສ້າງການກັ່ນຕອງ FIR
    pSrc: ສັນຍານເຂົ້າ. ສັນຍານປະສົມຂອງ 1kHz ແລະ 15kHz ແມ່ນ input in this exampເລ. pDst: ສັນຍານອອກ. ສັນຍານຜົນຜະລິດທີ່ຄາດໄວ້ແມ່ນ 1kHz. blockSize: ເປັນຕົວແທນຈໍານວນຂອງ samples ປຸງແຕ່ງໃນເວລາດຽວ.
  3. ການກວດສອບຂໍ້ມູນ. ຜົນໄດ້ຮັບການກັ່ນຕອງທີ່ໄດ້ຮັບໂດຍ MATLAB ແມ່ນຖືວ່າເປັນການອ້າງອີງແລະຜົນໄດ້ຮັບການກັ່ນຕອງທີ່ໄດ້ຮັບໂດຍ CMSIS-DSP ແມ່ນມູນຄ່າຕົວຈິງ. ປຽບທຽບສອງຜົນໄດ້ຮັບເພື່ອກວດສອບວ່າຜົນໄດ້ຮັບທີ່ຖືກຕ້ອງຫຼືບໍ່. float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
    Pref: ຄ່າອ້າງອີງທີ່ສ້າງຂຶ້ນໂດຍ MATLAB.
    ໂພສ: ມູນຄ່າຕົວຈິງທີ່ສ້າງຂຶ້ນໂດຍ CMSIS-DSP.
    blockSize: ເປັນຕົວແທນຈໍານວນຂອງ samples ປຸງແຕ່ງໃນເວລາດຽວ.
    ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້, Input Data ສະແດງໃຫ້ເຫັນວ່າສັນຍານຍັງບໍ່ໄດ້ຖືກກັ່ນຕອງແລະ Output Data ສະແດງຜົນທີ່ຖືກກັ່ນຕອງ. ແກນ Y ເປັນຕົວແທນ amplitude ຂອງສັນຍານແລະ sampຄວາມຖີ່ຂອງ ling ແມ່ນ 48kHz, ດັ່ງນັ້ນຕົວເລກ X-axis ບວກຫນຶ່ງເປັນຕົວແທນຂອງເວລາບວກກັບ 20.833μs. ມັນສາມາດພົບໄດ້ຈາກຮູບ 12 ແລະຮູບ 13 ວ່າສັນຍານ 15kHz ຖືກລົບລ້າງແລະມີພຽງແຕ່ສັນຍານ 1kHz ເທົ່ານັ້ນ.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 11

ການກັ່ນຕອງຜ່ານສູງ- IIR
ພາກສ່ວນນີ້, ໂດຍການແນະນຳແອັບພລິເຄຊັນ\CMSIS_DSP\filter_iir_high_pass_example, ຈະສະແດງວິທີການກໍານົດການກັ່ນຕອງ IIR ແລະເອົາສັນຍານຄວາມຖີ່ຕ່ໍາໂດຍໃຊ້ IIR. ສັນຍານເຂົ້າແມ່ນປະກອບດ້ວຍ 1Hz ແລະ 30Hz sine waves. ສັນຍານ sampຄວາມຖີ່ຂອງ ling ແມ່ນ 100Hz ແລະຈໍານວນທັງຫມົດ 480 ຈຸດແມ່ນ sampນໍາພາ. ສັນຍານທີ່ຕ່ຳກວ່າ 7Hz ຈະຖືກຖອດອອກໂດຍ IIR.
ລະຫັດຄໍາຮ້ອງສະຫມັກແບ່ງອອກເປັນຫຼາຍພາກສ່ວນ. 

  1.  ມີ 480 ວິamples. ສample 0~159 ແມ່ນ 30Hz sine waves, sample 160~319 ແມ່ນ 1Hz sine waves ແລະ sample 320~479 ແມ່ນ 30Hz sine waves.
  2. ການເລີ່ມຕົ້ນ. ເພື່ອເລີ່ມຕົ້ນ IIR, API ຕໍ່ໄປນີ້ຖືກໃຊ້. void arm_biquad_cascade_df1_init_f32 (arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *state));
    S: ໂຄງສ້າງການກັ່ນຕອງ IIR
    ລວມ stages: ຈໍານວນຂອງຄໍາສັ່ງທີສອງ stages ໃນການກັ່ນຕອງ. ໃນນີ້ example, numStages=1.
    Coffs: ຄ່າສໍາປະສິດການກັ່ນຕອງ. ມີ 5 ຕົວຄູນຕົວກອງໃນຕົວຢ່າງນີ້ampເລ.
    state: ຕົວຊີ້ບອກສະຖານະ
  3. ການກັ່ນຕອງຜ່ານສູງ. ໂດຍການໂທຫາ API ຂອງ IIR, 1 sample ຖືກປຸງແຕ່ງໃນແຕ່ລະຄັ້ງແລະມີ 480 samples ໃນຈໍານວນທັງຫມົດ. API ທີ່ໃຊ້ແມ່ນສະແດງໃຫ້ເຫັນຂ້າງລຸ່ມນີ້. void arm_biquad_cascade_df1_f32 (const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize);
    S: ໂຄງສ້າງການກັ່ນຕອງ IIR
    pSrc: ສັນຍານເຂົ້າ. ສັນຍານປະສົມຂອງ 1Hz ແລະ 30Hz ແມ່ນ input in this exampເລ.
    pDst: ສັນຍານອອກ. ສັນຍານຜົນຜະລິດທີ່ຄາດໄວ້ແມ່ນ 30Hz.
    blockSize: ເປັນຕົວແທນຈໍານວນຂອງ samples ປຸງແຕ່ງໃນເວລາດຽວ.
  4. ຜົນໄດ້ຮັບ. ສັນຍານ input ແລະ output ແມ່ນ output ກັບ PC ໂດຍຜ່ານການພິມ. ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້, Input Data ສະແດງໃຫ້ເຫັນວ່າສັນຍານຍັງບໍ່ໄດ້ຖືກກັ່ນຕອງແລະ Output Data ສະແດງຜົນທີ່ຖືກກັ່ນຕອງ. ແກນ Y ເປັນຕົວແທນ amplitude ຂອງສັນຍານແລະ sampຄວາມຖີ່ ling ແມ່ນ 100Hz, ດັ່ງນັ້ນຕົວເລກ X-axis ບວກຫນຶ່ງສະແດງເຖິງເວລາບວກ 10ms. ມັນສາມາດພົບໄດ້ຈາກຮູບ 14 ແລະຮູບ 15 ວ່າສັນຍານ 1Hz ຖືກລົບລ້າງແລະມີພຽງແຕ່ສັນຍານ 30Hz ເທົ່ານັ້ນ.

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP - ຮູບ 12

ການພິຈາລະນາ

ຜູ້ໃຊ້ຄວນເອົາໃຈໃສ່ເປັນພິເສດຕໍ່ຂະຫນາດຫນ່ວຍຄວາມຈໍາຫຼັງຈາກການລວບລວມໃນເວລາທີ່ໃຊ້ຫ້ອງສະຫມຸດຟັງຊັນ CMSIS-DSP. ໃຫ້ແນ່ໃຈວ່າບໍ່ມີຄວາມຈໍາລົ້ນເກີດຂຶ້ນກ່ອນການທົດສອບ.
ສະຫຼຸບ
CMSIS-DSP ມີຄວາມສາມາດອັນໃຫຍ່ຫຼວງໃນການປະມວນຜົນສັນຍານແລະການຄິດໄລ່ທາງຄະນິດສາດແລະສົມຄວນທີ່ຈະພິຈາລະນາຢ່າງຈິງຈັງໂດຍຜູ້ໃຊ້.
ເອກະສານອ້າງອີງ
ອ້າງອິງ webເວັບໄຊ: http://www.keil.com/pack/doc/CMSIS/General/html/index.html
ສະບັບແລະຂໍ້ມູນການດັດແກ້

ວັນທີ ຜູ້ຂຽນ ສະບັບ ຂໍ້ມູນການດັດແກ້
2022.06.02 ຂຽນ, Liu V1.10 ແກ້ໄຂເສັ້ນທາງການດາວໂຫຼດ
2019.09.03 Allen, Wang V1.00 ຮຸ່ນ ທຳ ອິດ

ປະຕິເສດຄວາມຮັບຜິດຊອບ

ຂໍ້ມູນທັງຫມົດ, ເຄື່ອງຫມາຍການຄ້າ, ໂລໂກ້, ຮູບພາບ, ວິດີໂອ, ຄລິບສຽງ, ການເຊື່ອມຕໍ່ແລະລາຍການອື່ນໆທີ່ປາກົດຢູ່ໃນນີ້ webເວັບໄຊ ('ຂໍ້ມູນ') ແມ່ນສໍາລັບການອ້າງອີງເທົ່ານັ້ນ ແລະມີການປ່ຽນແປງໄດ້ທຸກເວລາໂດຍບໍ່ມີການແຈ້ງລ່ວງໜ້າ ແລະຕາມການຕັດສິນໃຈຂອງ Holtek Semiconductor Inc. ແລະບໍລິສັດທີ່ກ່ຽວຂ້ອງ (ຕໍ່ໄປນີ້ແມ່ນ 'Holtek', 'ບໍລິສັດ', 'ພວກເຮົາ', ' ພວກເຮົາ ຫຼື 'ຂອງພວກເຮົາ'). ໃນຂະນະທີ່ Holtek ພະຍາຍາມຮັບປະກັນຄວາມຖືກຕ້ອງຂອງຂໍ້ມູນໃນເລື່ອງນີ້ webເວັບໄຊທ໌, ບໍ່ມີການຮັບປະກັນທີ່ສະແດງອອກໂດຍ Holtek ກັບຄວາມຖືກຕ້ອງຂອງຂໍ້ມູນ. Holtek ຈະບໍ່ຮັບຜິດຊອບຕໍ່ຄວາມບໍ່ຖືກຕ້ອງ ຫຼືການຮົ່ວໄຫຼ. Holtek ຈະບໍ່ຮັບຜິດຊອບຕໍ່ຄວາມເສຍຫາຍໃດໆ (ລວມທັງແຕ່ບໍ່ຈໍາກັດກັບໄວຣັສຄອມພິວເຕີ, ບັນຫາລະບົບຫຼືການສູນເສຍຂໍ້ມູນ) ໃດໆທີ່ເກີດຂື້ນໃນການນໍາໃຊ້ຫຼືກ່ຽວຂ້ອງກັບການນໍາໃຊ້ນີ້. webເວັບໄຊໂດຍຝ່າຍໃດ. ອາດ​ຈະ​ມີ​ການ​ເຊື່ອມ​ຕໍ່​ໃນ​ຂົງ​ເຂດ​ນີ້​, ທີ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ທ່ານ​ໄປ​ຢ້ຽມ​ຢາມ​ໄດ້​ webສະຖານທີ່ຂອງບໍລິສັດອື່ນໆ. ເຫຼົ່ານີ້ webສະຖານທີ່ບໍ່ໄດ້ຖືກຄວບຄຸມໂດຍ Holtek. Holtek ຈະ​ບໍ່​ມີ​ຄວາມ​ຮັບ​ຜິດ​ຊອບ​ແລະ​ບໍ່​ມີ​ການ​ຮັບ​ປະ​ກັນ​ຕໍ່​ຂໍ້​ມູນ​ໃດໆ​ທີ່​ສະ​ແດງ​ຢູ່​ໃນ​ສະ​ຖານ​ທີ່​ດັ່ງ​ກ່າວ​. hyperlinks ກັບອື່ນໆ webສະຖານທີ່ຢູ່ໃນຄວາມສ່ຽງຂອງທ່ານເອງ.
ຂໍ້ຈໍາກັດຂອງຄວາມຮັບຜິດຊອບ
ໃນກໍລະນີໃດກໍ່ຕາມ, ບໍລິສັດບໍ່ຈໍາເປັນຕ້ອງຮັບຜິດຊອບຕໍ່ການສູນເສຍຫຼືຄວາມເສຍຫາຍໃດໆທີ່ເກີດຂື້ນເມື່ອຜູ້ໃດໄປຢ້ຽມຢາມ website ໂດຍກົງຫຼືທາງອ້ອມແລະນໍາໃຊ້ເນື້ອໃນ, ຂໍ້ມູນຫຼືການບໍລິການກ່ຽວກັບ webເວັບໄຊ.
ກົດໝາຍວ່າດ້ວຍການປົກຄອງ
ການ​ປະ​ຕິ​ເສດ​ນີ້​ແມ່ນ​ຂຶ້ນ​ກັບ​ກົດ​ຫມາຍ​ຂອງ​ສາ​ທາ​ລະ​ນະ​ຂອງ​ຈີນ​ແລະ​ພາຍ​ໃຕ້​ສິດ​ອໍາ​ນາດ​ຂອງ​ສານ​ຂອງ​ສາ​ທາ​ລະ​ນະ​ຈີນ​.
ອັບເດດການປະຕິເສດຄວາມຮັບຜິດຊອບ
Holtek ສະຫງວນສິດທີ່ຈະປັບປຸງການປະຕິເສດຄວາມຮັບຜິດຊອບໄດ້ທຸກເວລາໂດຍມີຫຼືບໍ່ມີການແຈ້ງໃຫ້ຮູ້ລ່ວງໜ້າ, ການປ່ຽນແປງທັງໝົດມີຜົນໃນທັນທີທີ່ປະກາດຫາ webເວັບໄຊ.

ໂລໂກ້ HOLTEK

ເອກະສານ / ຊັບພະຍາກອນ

ຫໍສະໝຸດ HOLTEK HT32 CMSIS-DSP [pdf] ຄູ່ມືຜູ້ໃຊ້
HT32, CMSIS-DSP Library, HT32 CMSIS-DSP Library, ຫ້ອງສະໝຸດ

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *