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实现》王旭东,清华大学出版社