0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数字信号处理DSP库文件的使用方法和功能实现

瑞萨嵌入式小百科 来源:瑞萨嵌入式小百科 作者:徐晶 2024-04-03 14:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

本文首先介绍数字信号处理(DSP),是指将连续的模拟信号转换为不连续、离散的数字信号并进行处理以提取所需的信号(信息)的过程。然后通过一个简单的Lab来说明DSP库文件的使用方法和功能实现。

DSP系统工程如下

将模拟(连续)信号转换为数字信号。

通过专用DSP、MCU等对信号进行处理(噪声滤波、频率分析等),并提取所需信号。

输出处理后的信号。

43785916-f17a-11ee-a297-92fbcf53809c.png

过去,DSP系统需要多个芯片,例如MCU和专用DSP。而RX MCU使得在单芯片上配置DSP系统成为可能,并具有多种优势。

438679e2-f17a-11ee-a297-92fbcf53809c.png

使用DSP库,可以在RX系列MCU上轻松执行FIR、IIR滤波器和FFT等数字信号处理。RX系列MCU支持执行高速数字信号处理所需的乘法和累加运算等DSP指令。

RX DSP库的目标设备有以下这些RX MCU

439a8608-f17a-11ee-a297-92fbcf53809c.png

43b4fa4c-f17a-11ee-a297-92fbcf53809c.png

RX DSP库版本5.0包含以下5个API,API为RX CPU的浮点和DSP指令运算提供了高效的操作。

统计操作API

过滤操作API

线性变换API

复数运算API

矩阵运算API

如下表所示,RX DSP库版本5.0由多个文档、库文件和示例项目组成。库文件针对每个RXv1、RXv2和Xv3 CPU进行了优化,并且示例项目针对每个CPU进行了配置。

表1 DSP库的构成

43c5dace-f17a-11ee-a297-92fbcf53809c.png

每个CPU的“dsplib-rxv*”文件夹中有8种类型的库文件和8个头文件。库文件根据支持的FPU、字节序模式和错误检查进行分类。头文件分为API专用定义和通用定义。所有通用定义均在r_dsp_types.h中描述,该文件包含在每个API头文件中。详细信息请参阅“RX DSP Library APIs Version 5.0 User’s Manual: Software (R01UW0200)”。

下面通过一个简单的Lab了解RX DSP库和如何使用DSP库实现对信号的低通滤波,使用RX23E-A(RXv2 CPU)为例。

本Lab主要介绍如何添加DSP库,然后完成对采集到的信号进行IIR滤波。由于本次实验中采集到的数据是温度结果,所以使用IIR滤波的效果不明显。这里用一组特定的数据为例,来展示IIR滤波的效果。

步骤

● 解压缩an-r01an4359ej0100-rx-dsplib.zip文件,将其中的dsplib-rxv2文件夹拷贝到工程中。

43d60200-f17a-11ee-a297-92fbcf53809c.png

●在src文件夹中新建r_dsp文件夹。解压缩r01an4431xx0160-rx-apl.zip文件,workspace_dsp_example→dsp_demo_rx231_tb→src→r_dsp文件夹中的r_dsp_iirbiquad.h、r_dsp_iirbiquad.c、wave_sample1.h、wave_sample2.h拷贝到新建的r_dsp文件夹中。

43d9e118-f17a-11ee-a297-92fbcf53809c.png

●在工程属性中添加DSP Lib和新加文件夹的路径。

鼠标右键点击工程名,选择Properties。

43ee5fee-f17a-11ee-a297-92fbcf53809c.png

选择C/C++ Build→Settings→Compiler→Source,点击右上角的4415270a-f17a-11ee-a297-92fbcf53809c.png

44266736-f17a-11ee-a297-92fbcf53809c.png

添加dsplib-rxv2文件夹的路径。

Add directory path对话框中,点击Workspace。

4440b50a-f17a-11ee-a297-92fbcf53809c.png

选择dsplib-rxv2文件夹,点击OK。

4452d208-f17a-11ee-a297-92fbcf53809c.png

点击OK,完成路路径的添加。

4464f3ca-f17a-11ee-a297-92fbcf53809c.png

用上面同样的方式,添加r_dsp文件夹的路径。

4475bd90-f17a-11ee-a297-92fbcf53809c.png

添加Library。

选择Linkeryou6Input,点击右上角的4415270a-f17a-11ee-a297-92fbcf53809c.png

44a1522a-f17a-11ee-a297-92fbcf53809c.png

Format选择library,点击Workspace。

44bf906e-f17a-11ee-a297-92fbcf53809c.png

选择dsplib-rxv2文件夹中的RX_DSP_FPU_LE_Check.lib文件。

44dd06a8-f17a-11ee-a297-92fbcf53809c.png

点击OK。

44ff4e70-f17a-11ee-a297-92fbcf53809c.png

●打开rx23ea_local_board_lab.c文件,main()函数前添加以下头文件、宏定义和变量。

#include "r_sensor_common_api.h"
#include "r_rtd_api.h"
#include "r_dsp_types.h"
#include "r_dsp_iirbiquad.h"


bool timer_flag = false;
static volatile int32_t s_dsad0_value;         /** DSAD0 24bit A/D value storage variable     */
static volatile float  s_temp   = 0;        /** Measurement temperature storage variable    */


/* Filter Characteristic definition */
#define IIRBIQUAD_COEF_FLAT (0)  /* Pass-through characteristics */
#define IIRBIQUAD_COEF_HPF (1)  /* High pass filter characteristics */
#define IIRBIQUAD_COEF_LPF (2)  /* Low pass filter characteristics */


static volatile int32_t gs_intermediate_buffer[2][1024]; /* buffer to interface DSP module */
static volatile int32_t gs_output_buffer[1024/2];     /* Output Buffer for DSP to store the result */
static uint8_t gs_coef_select;      /* Number of filter Characteristic */
static const int32_t gs_sample_wave_data[1024] =
{
  #include "wave_sample2.h"
};

●在main()函数中添加以下代码

  uint32_t dsad0_reg;                 /** DSAD0.DR register storage variable                          */
  float rtd_temp = 0;                             /** Measurement temperature */


    memset((void *)gs_intermediate_buffer, 0, sizeof(gs_intermediate_buffer));  /* Clears Intermediate Buffer to zero */
    memset((void *)gs_output_buffer, 0, sizeof(gs_output_buffer));  /* Clears Output Buffer to zero */


    /*** Initializes IIR filter & FFT processing ***/
    gs_coef_select = IIRBIQUAD_COEF_HPF;


    R_DSP_IIRBiquad_Init();
    R_DSP_IIRBiquad_UpdateCoef(gs_coef_select);


    R_Config_TMR0_TMR1_Start();


while(1)中最后加入DSP处理部分代码
      /* Executes IIRbiquad processing */
      R_DSP_IIRBiquad_Operation((int32_t *)gs_sample_wave_data,
                                (int32_t *)gs_intermediate_buffer[1]);
    }
}

while(1)中最后加入DSP处理部分代码

   /* Executes IIRbiquad processing */
   R_DSP_IIRBiquad_Operation((int32_t *)gs_sample_wave_data,
                (int32_t *)gs_intermediate_buffer[1]);
  }
}

●对工程进行编译450c6c04-f17a-11ee-a297-92fbcf53809c.png和调试45136db0-f17a-11ee-a297-92fbcf53809c.png

●打开Memory窗口,点击451df47e-f17a-11ee-a297-92fbcf53809c.png

4524db72-f17a-11ee-a297-92fbcf53809c.png

添加变量gs_sample_wave_data和gs_intermediate_buffer[1]。

45376c1a-f17a-11ee-a297-92fbcf53809c.png

点击45583526-f17a-11ee-a297-92fbcf53809c.png

456a3686-f17a-11ee-a297-92fbcf53809c.png

选择Waveform,点击Add Rendering(s)。

457e635e-f17a-11ee-a297-92fbcf53809c.png

点击Wave Properties。

458e0002-f17a-11ee-a297-92fbcf53809c.png

设定属性,Data Size选择32bit,Buffer Size填写2048,点击OK。

4598adfe-f17a-11ee-a297-92fbcf53809c.png

并点击459c5bf2-f17a-11ee-a297-92fbcf53809c.png,进行实时刷新。

45a3533a-f17a-11ee-a297-92fbcf53809c.png

两个变量用同样的方法进行设置。

注 意

如果找不到Memory窗口,可以使用下面的方法,其他窗口同理。

点击Window→Show View→Other…

45b37648-f17a-11ee-a297-92fbcf53809c.png

按分类查找,或者直接在上面的框中进行关键字搜索。

45bb0c00-f17a-11ee-a297-92fbcf53809c.png

●运行代码45d57b9e-f17a-11ee-a297-92fbcf53809c.png,需要点击两次,在Memory窗口观察DSP结果。

45e1719c-f17a-11ee-a297-92fbcf53809c.png45ef1716-f17a-11ee-a297-92fbcf53809c.png

可以把鼠标放在波形上,按住Ctrl键通过滚动鼠标滚轮放大或者缩小波形。

●按下断开按钮45fbcfc4-f17a-11ee-a297-92fbcf53809c.png,或者终止按钮45ff6c10-f17a-11ee-a297-92fbcf53809c.png

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    559

    文章

    8214

    浏览量

    363942
  • 单芯片
    +关注

    关注

    3

    文章

    479

    浏览量

    35952
  • 数字信号处理

    关注

    16

    文章

    570

    浏览量

    47496
  • FFT
    FFT
    +关注

    关注

    15

    文章

    452

    浏览量

    62597
  • IIR滤波器
    +关注

    关注

    0

    文章

    33

    浏览量

    11930
  • 频率分析
    +关注

    关注

    0

    文章

    4

    浏览量

    5041
  • 库文件
    +关注

    关注

    5

    文章

    34

    浏览量

    14877
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HXS320F280025C数字信号处理器(DSP)芯片

    HXS320F28025C是中科昊芯自主研发的一款基于 RISC-V 架构的 32 位浮点数字信号处理器(DSP)芯片,基于 H28x 内核,具三角函数单元与 CRC 指令集,增可配置逻辑模块,支持
    发表于 12-03 09:02

    DSP的基础

    高速数字信号处理技术是以DSP为核心,具有高速,实时的特点的一种信息处理技术。其本质是信息的变换和提取。DSP(Digital Signal
    发表于 11-20 06:35

    国产32位高性能Audio音频数字信号处理器(DSP)芯片-DU561

    音频数字信号处理器(DSP)的工作原理主要通过数字化处理提升音频质量,其核心流程包括信号采集、处理
    的头像 发表于 10-22 09:47 338次阅读
    国产32位高性能Audio音频<b class='flag-5'>数字信号</b><b class='flag-5'>处理</b>器(<b class='flag-5'>DSP</b>)芯片-DU561

    集成了多功能数字音频信号处理功能的单芯片全数字音频放大器

    数字音频放大器的工作原理基于脉冲宽度调制(PWM)技术,通过数字信号处理实现音频信号的放大与还原。
    的头像 发表于 10-21 09:40 193次阅读
    集成了多<b class='flag-5'>功能</b><b class='flag-5'>数字音频信号</b><b class='flag-5'>处理</b><b class='flag-5'>功能</b>的单芯片全<b class='flag-5'>数字</b>音频放大器

    为什么DSP数字信号处理)需要Q格式?q31、q15、q7 和 f32 是什么意思呢?

    为什么DSP数字信号处理)需要Q格式?q31、q15、q7 和 f32 是什么意思?
    发表于 08-22 06:42

    Texas Instruments TMS320C6452数字信号处理器(DSP)数据手册

    Texas Instruments TMS320C6452数字信号处理器 (DSP) 是TMS320C6000™ DSP平台上的高性能定点DSP
    的头像 发表于 08-01 09:24 1090次阅读
    Texas Instruments TMS320C6452<b class='flag-5'>数字信号</b><b class='flag-5'>处理</b>器(<b class='flag-5'>DSP</b>)数据手册

    数字信号处理的基本组成及其特点?

    数字信号处理 是指将事物的运动变化转变为一串数字,并用计算的方法从中提取有用的信息,以满足我们实际应用的需求。 数字信号
    的头像 发表于 06-18 09:02 795次阅读
    <b class='flag-5'>数字信号</b><b class='flag-5'>处理</b>的基本组成及其特点?

    Analog Devices Inc. ADSP-SC598双SHARC+®数字信号处理器数据手册

    Analog Devices ADSP-SC598双SHARC+® 数字信号处理器 (DSP) 采用集成式Arm® Cortex-A55,运行频率高达1.2GHz。A55处理器带有FP
    的头像 发表于 06-10 11:53 814次阅读
    Analog Devices Inc. ADSP-SC598双SHARC+®<b class='flag-5'>数字信号</b><b class='flag-5'>处理</b>器数据手册

    STM32数字示波器源码+数字信号处理教程、配套实例

    STM32数字示波器源码+数字信号处理教程、配套实例 部分截图:
    发表于 05-28 21:25

    HXS320F28027数字信号处理器(32位RISC-V DSP

    HXS320F28027数字信号处理器(32位RISC-V DSP)HXS320F28027是中科昊芯(Haawking)基于自主研发的H28x内核推出的32位定点RISC-V DSP
    发表于 05-21 10:21

    DSP在智能家电领域的应用,涵盖音效处理、语音识别、智能化控制

    结构,配备专门的硬件乘法器,广泛运用流水线操作,并提供特殊的 DSP 指令,可快速实现各类数字信号处理算法。   DSP 在 AI 中的应用
    的头像 发表于 04-14 00:42 2350次阅读

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    ~ 01、数字信号处理的FPGA实现 旨在讲解前端数字信号处理算法的高效实现。首先概述了当前的
    发表于 04-07 16:41

    数字信号调制的优势与挑战

    的数据传输 数字调制技术能够实现高数据速率的传输。通过使用高效的调制方案,如QAM(Quadrature Amplitude Modulation),可以在相同的频带宽度内传输更多的数据。 3. 灵活性和可扩展性 数字信号调制允
    的头像 发表于 01-21 09:44 1070次阅读

    MPU与数字信号处理的关系

    数字化时代,微处理器单元(MPU)和数字信号处理DSP)技术已经成为实现复杂计算和数据
    的头像 发表于 01-08 09:29 1031次阅读

    数字信号处理中的衰减器角色 影响衰减器性能的因素分析

    数字信号处理中的衰减器角色 在数字信号处理DSP)中,衰减器扮演着至关重要的角色。它主要用于调整信号
    的头像 发表于 12-10 09:23 1625次阅读