原创 FPGA设计时常用MATLAB功能

2013-7-28 17:53 1904 13 13 分类: FPGA/CPLD 文集: 神经网络及MATLAB

MATLAB是数字信号处理领域最常用的软件之一,在用FPGA芯片实现数字信号处理系统时,不仅要用MATLAB对算法进行理论验证,而且在系统的FPGA仿真以及后续测试中也将用到。但是MATLAB软件功能强大、内容庞杂,因此针对性的学习一下FPGA设计常用到功能。

一、基本运算操作

      1、  其中有个左除与右除一直没弄清楚,在网上搜了一下,借用现成的成果。

A\B is the matrix division of A into B, which is roughly the
     same as INV(A)*B , except it is computed in a different way.

   所以:A/B=A*inv(B);
     A/B is the matrix division of B into A, which is roughly the
     same as A*INV(B) , except it is computed in a different way.
     More precisely, A/B = (B'\A')'.

所以:A\B=inv(A)*B;

他们之间的关系为:

A/B = (B'\A')'.

 

由于自己线性代数没学好,以上解释看起来感觉不那么直观。用自己的话总结下:

a/b:右除 a是被除数

a\b:左除 b是被除数

 

2、另外有一个注意的是:矩阵元素重新组合

>> A=[2 5 6 -1;3 -2 10 0]; %输入待重新组合的矩阵
>> B=reshape(A,4,2);%将矩阵A改成4*2的矩阵
>> C=reshape(A,1,8);%将矩阵A改成1*8的矩阵
>> B,C

B =

     2     6
     3    10
     5    -1
    -2     0


C =

     2     3     5    -2     6    10    -1     0

 这种操作在基于人工神经无网络的应用程序中经常会用到。

3、变量的存储及读取

存储与读取的指令分别是:save和load。存储的数据格式有两种:.mat、.dat。*.mat文件只能用MATLAB才能打开,且存储的是变量本身,面非直接存储变量的数据。保存成ASCII文档的*.dat文件则是直接存储变量的数值。

 

二、MATLAB程序参数输入和输出操作

MATLAB利用fopen、fscanf、fclose这3个内部函数来实现从文件中获得数据这一功能。具体操作,略。

三、MATLAB绘图功能

图形化的输出结果对问题的说明非常有效,而且也有助于对程序的理解。

1、plot及subplot函数

  plot(x,y)%第一输入变量有X轴,第二输入变量为Y轴

plot(x1,y1,……,xn,yn)%奇数变量为X轴,偶数变量为Y轴,在该图**绘制n条曲线

plot(x,y,'-.b')%表示用蓝色(b,blue)点划线绘制该曲线

subplot(m,n,2)%在表幅图中绘制m*n个子图,2表示第二个子图

2、图例函数legend

x=-pi:pi/20:pi;
>> plot(x,cos(x),'-ro',x,sin(x),'-.b')
>> h=legend('cos','sin',2);%图例顺序与绘图顺序一致,即cos与第一条曲线对应,        数字2 代表位置,1——4分别对应右上,左上,左下,右下。

 

参考书籍:《数字信号处理的FPGA实现》王旭东,清华大学出版社

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
13
关闭 站长推荐上一条 /3 下一条