赞
踩
最近在从事机械设备诊断信号分析相关的工作,看了一些诊断相关的资料,其中有不少使用MATLAB进行分析的程序代码。在学校的时候使用过MATLAB,但貌似早就还给了老师。MATLAB的安装包和安装教程可以参考:https://www.cnblogs.com/qq2399382639/p/14530700.html,https://www.bilibili.com/video/BV1uK4y1W7qB。这篇文章先就简单说一下为什么要用Octave代替MATLAB:
- 首先MATLAB是商业化的软件,需要进行授权激活。
- 其次MATLAB安装包非常大(Mac上安装包就16G),虽然功能齐全,但是我只使用其中一小部分功能有点大材小用。
- 也可以使用Python,前期我一直在使用Python来实现资料里的程序,但是有差异,甚至有一些MATLAB的函数,在Python的包中没有对应的实现
- Octave的语法以工具包函数与MATLAB基本一致,使用起来无差别。
其实一开始,也是费了九牛二虎之力安装上了MATLAB,当我跟同事说终于安装了MATLAB之后,同事跟我提到了Octave这个软件,我才开始接触,并尝试使用它来代替MATLAB。关于Octave和MATLAB这里不能很绝对的说代替,只能说在我这个小白的层面,我使用的函数,基本可以代替。这篇文章也是从小白的角度,进行Octave安装讲解,并记录在安装使用过程中遇到的一些问题。
Octave 是一款用于数值计算和绘图的开源软件。关于Octave的具体介绍,它能干什么,以及它的入门教程,我们可以参考官网:https://www.gnu.org/software/octave/index。这里也提供从网上找到的一个中文版的PDF文档:http://coer.zju.edu.cn/liu/octave-tutorial-cn.pdf。
这篇文章主要从讲解Octave在Mac上安装的两种方式:通过安装包.dmg安装、通过包管理工具Homebrew安装。官网文档可以参考:https://wiki.octave.org/Octave_for_macOS。
通过安装包安装Octave相对来说比较简单,只需要从Git上下载对应的.dmg安装包即可,下载地址:https://github.com/octave-app/octave-app/releases。
下载完成之后,点击打开,然后根据提示将应用拖到Applications文件夹即可。
注意:如果在安装过程中提示“无法打开”错误,可以在mac的设置-安全与隐私中点击“仍然打开”。
安装完成之后,我们就可以在应用程序中看到Octave的图标,点击打开即可。
Homebrew是mac上一个包管理工具,可以通过它进行软件的安装。在开始之前,确保电脑上已经安装了Homebrew。执行命令brew -v
查看版本号:
Homebrew 3.3.15
Homebrew/homebrew-core (git revision e3910edd5aa; last commit 2022-02-18)
如果没有安装Homebrew,请先参考https://brew.sh/index_zh-cn进行安装。
brew默认的源比较慢,我们可以先配置成国内的源
cd "(brew --repo)/Library/Taps/homebrew/homebrew-core" && git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile && source ~/.bash_profile
使用brew命令,安装octave
brew install octave
安装完成之后,在命令行输出octave,可以打开octave的交互窗口:
与MATLAB类似,我们可以选择安装需要的工具箱。Octave提供了非常丰富的工具包,具体可以参考https://octave.sourceforge.io/packages.php,以信号分析为例,我们需要安装signal的包。
下面以brew安装的octave为例,进入octave交互是命令行。
octave
首先在上面的工具箱网站上找到需要安装的signal的包然后点击【download】下载。因为signal依赖control包,所以需要将control包以及signal一起下载。
control包:https://octave.sourceforge.io/download.php?package=control-3.4.0.tar.gz
signal包:https://octave.sourceforge.io/download.php?package=signal-1.4.1.tar.gz
下载完成后,执行下面命令进行安装
pkg install /Users/shirukai/Downloads/control-3.4.0.tar.gz
pkg install /Users/shirukai/Downloads/signal-1.4.1.tar.gz
如果在安装control时出现如下错误:
参考这篇文章解决:https://stackoverflow.com/questions/70470191/how-to-solve-this-octave-pkg-install-error
cd /usr/local/opt/gcc/lib/gcc/11/gcc/
ln -s x86_64-apple-darwin21 x86_64-apple-darwin20
安装完成后,使用pkg list
命令查看已经安装的工具包:
加载已经安装的signal包:
pkg load signal
代码:
fc = 10; %信号频率
Fs = 100; %采样频率
N = 1024; %采样点数
n = 0:N-1; %设定时间轴序列
x = 10.0 * sin(2*pi*n*fc/Fs); %产生信号
y = fft(x,N); % FFT计算
Ay = sqrt(y.* conj(y)) * 2.0/N; %计算幅值谱
f = (0:length(Ay)-1)*Fs/length(Ay); %设定频率轴序列
figure;
plot(f(1:N/2),Ay(1:N/2));
octave中有与MATLAB类似的倒谱函数rceps(),程序片段如下:
pkg load signal % 加载signal工具包
% 倒频谱图
fc = 100;
fz = 20;
Fs = 1000;
N = 1024;
n = 0:N-1
x1 = 10.0 * sin(2*pi*n*fc/Fs);
x2 = (1+0.8*cos(2*pi*n*fz/Fs));
x = x1.*x2; %产生调制信号
figure;
c = rceps(x); %计算实倒谱
plot(n(1:N/2),abs(c(1:N/2)));
综上,通过对Octave的安装使用可以发现,Octave上手来说相对简单,语法及函数与MATLAB基本一致,能够满足我的需求。本篇文章只介绍了再Mac下的安装,通过Octave的网站可以看出,它还支持Window以及Linux系统平台的安装,其它系统下的安装可以自行查看文档,总的来说,我认为Octave还是值得使用的,特别是对MATLAB依赖不是严重的场景,用它来代替还是不错的选择。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。