信号采集
首先我们要知道dsp芯片是用来处理信号数据的,那这个信号源怎么来呢?一般是通过传感器外设采集连接高速接口啥的(等以后买了再说吧),但是目前学习的时候只有一块开发板,所以只能自己模拟数据了,呜呜呜😭。总体过程分为以下几步:
- 第一步我们得从matlab上面自己生成一段数字信号,并将其波形数据以txt的格式导出(当然也可以导出成其他的文件,像是二进制bin文件,inc文件)。
- 在调试界面的寄存器地址区,将这些数据导入进去(要导入到数据地址区哦,我选的0x800000)
- 导入之后,我们要处理这些数据必然要先获得这些数据,我怎么来获得呢?定义一个数组,并将其首地址指向你导入地址的初始位置,如float p=(float)0x800000;则p[i]就是你当前存的数据数组啦,该数组的首地址为0x800000
- 输入信号数据已知晓,那么下一步就是滤波啦!!!
总结经验
- 16进制换算成10进制:如0x800000(0x只是16进制的标志,不用管,从右往左数(0,1,2,3…)8就在第五位)因此为 8*16^5
- 单位换算
1kB=1024B=2^10B
1M=2^20B
1G=2^30B - 在内存地址中所谓的256k,不是256kB,而是256kwords,比如length=256k表示2^18个字,一个字32位(32个二进制数),一个数据一个区,就是一个字,32位
- 32位,第一位是符号位,1(表示数字的符号),(1(表示e的符号),7(表示e^255),0-23(表示有效数字位)总共6个数字
- 本来间隔2^21个字空间,实际只有2的18次方个字即256k,只用到1/8。
- MEMORY命令:描述实际硬件资源
SECTION命令:描述段如何定位 - 记住,要先导入数据,再调试运行程序哦
下一步就是对数据滤波了,感觉又是一个难点,得好好学学c语言写滤波咋写!害,每天一个小收获!开开心心每一天!加油🤔