一、信号输入
arm_sin_f32(2*3.1415926*50*i/1000)+arm_sin_f32(2*3.1415926*250*i/1000);
二、结果
三、测试函数
- void dwdt_test(void)
- {
- static float32_t data[512];//输入信号
- static float32_t temp[512];//中间结果
- static float32_t data_output[512];//一维小波变换后的结果
- u32 n = 512;//输入信号长度
- u32 m = 6;//Daubechies正交小波基长度
- u32 i = 0;
-
- static float32_t h[] = {.332670552950, .806891509311, .459877502118, -.135011020010,
- -.085441273882, .035226291882};
- static float32_t g[] = {.035226291882, .085441273882, -.135011020010, -.459877502118,
- .806891509311, -.332670552950};
-
- for(i=0;i<512;i++)
- {
- data[i]=arm_sin_f32(2*3.1415926*50*i/1000)+arm_sin_f32(2*3.1415926*250*i/1000);
- }
- DWT1D(data, data_output, temp, h, g, n, m);
- for(i = 0; i < n; i++)
- {
- printf("%f\r\n", data_output[i]);
-
- }
-
- }
四、主函数
- /*
- 昆明电器科学研究所 张恩寿 2019年5月3日
-
-
- */
- #include "bitband.h"
- #include "led_config.h"
- #include "systick.h"
- #include "usart.h"
- #include "spi_flash.h"
- #include "tft.h"
- #include "key_lookup.h"
- #include "dsp_dwdt.h"
- int main(void)
- {
- systick_config(120);
- nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
- usart0_init(115200);
- led_init();
- dwdt_test();
-
- while(1)
- {
- led_on();
- delay_nms(600);
- led_off();
- delay_nms(600);
- }
-
- }
五、总结分析
总体上来说,基本可以,,由于小波变换并非arm提供的dsp,自己编写,还存在一定的优化空间
|