当前位置:   article > 正文

Mac上安装Octave替代MATLAB进行信号分析相关的工作_苹果电脑安装octave

苹果电脑安装octave

Mac上安装Octave替代MATLAB进行信号分析相关的工作

最近在从事机械设备诊断信号分析相关的工作,看了一些诊断相关的资料,其中有不少使用MATLAB进行分析的程序代码。在学校的时候使用过MATLAB,但貌似早就还给了老师。MATLAB的安装包和安装教程可以参考:https://www.cnblogs.com/qq2399382639/p/14530700.html,https://www.bilibili.com/video/BV1uK4y1W7qB。这篇文章先就简单说一下为什么要用Octave代替MATLAB:

  1. 首先MATLAB是商业化的软件,需要进行授权激活。
  2. 其次MATLAB安装包非常大(Mac上安装包就16G),虽然功能齐全,但是我只使用其中一小部分功能有点大材小用。
  3. 也可以使用Python,前期我一直在使用Python来实现资料里的程序,但是有差异,甚至有一些MATLAB的函数,在Python的包中没有对应的实现
  4. Octave的语法以工具包函数与MATLAB基本一致,使用起来无差别。

其实一开始,也是费了九牛二虎之力安装上了MATLAB,当我跟同事说终于安装了MATLAB之后,同事跟我提到了Octave这个软件,我才开始接触,并尝试使用它来代替MATLAB。关于Octave和MATLAB这里不能很绝对的说代替,只能说在我这个小白的层面,我使用的函数,基本可以代替。这篇文章也是从小白的角度,进行Octave安装讲解,并记录在安装使用过程中遇到的一些问题。

1. Octave简介

Octave 是一款用于数值计算和绘图的开源软件。关于Octave的具体介绍,它能干什么,以及它的入门教程,我们可以参考官网:https://www.gnu.org/software/octave/index。这里也提供从网上找到的一个中文版的PDF文档:http://coer.zju.edu.cn/liu/octave-tutorial-cn.pdf。

2. Octave安装

这篇文章主要从讲解Octave在Mac上安装的两种方式:通过安装包.dmg安装、通过包管理工具Homebrew安装。官网文档可以参考:https://wiki.octave.org/Octave_for_macOS。

2.1 通过安装包安装

通过安装包安装Octave相对来说比较简单,只需要从Git上下载对应的.dmg安装包即可,下载地址:https://github.com/octave-app/octave-app/releases。

image-20220221104736619

下载完成之后,点击打开,然后根据提示将应用拖到Applications文件夹即可。

image-20220221104859210

注意:如果在安装过程中提示“无法打开”错误,可以在mac的设置-安全与隐私中点击“仍然打开”。

安装完成之后,我们就可以在应用程序中看到Octave的图标,点击打开即可。

image-20220221105157693

2.2 通过包管理工具Homebrew安装

Homebrew是mac上一个包管理工具,可以通过它进行软件的安装。在开始之前,确保电脑上已经安装了Homebrew。执行命令brew -v查看版本号:

Homebrew 3.3.15
Homebrew/homebrew-core (git revision e3910edd5aa; last commit 2022-02-18)
  • 1
  • 2

如果没有安装Homebrew,请先参考https://brew.sh/index_zh-cn进行安装。

2.2.1 brew软件源加速配置

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
  • 1
  • 2

2.2.2 命令行安装octave

使用brew命令,安装octave

brew install octave
  • 1

image-20220221110622196

安装完成之后,在命令行输出octave,可以打开octave的交互窗口:

image-20220221110649369

3. Octave的简单使用

3.1 工具包安装

与MATLAB类似,我们可以选择安装需要的工具箱。Octave提供了非常丰富的工具包,具体可以参考https://octave.sourceforge.io/packages.php,以信号分析为例,我们需要安装signal的包。

image-20220221112421921

下面以brew安装的octave为例,进入octave交互是命令行。

octave
  • 1

首先在上面的工具箱网站上找到需要安装的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

image-20220221113246370

下载完成后,执行下面命令进行安装

pkg install /Users/shirukai/Downloads/control-3.4.0.tar.gz
pkg install /Users/shirukai/Downloads/signal-1.4.1.tar.gz
  • 1
  • 2

image-20220221113434402

如果在安装control时出现如下错误:

image-20220221114030927

参考这篇文章解决: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
  • 1
  • 2

安装完成后,使用pkg list命令查看已经安装的工具包:

image-20220221140207573

加载已经安装的signal包:

pkg load signal
  • 1

3.2 Octave简单使用

3.2.1 使用octave对信号进行FFT,并绘图

代码:

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));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

image-20220221140717947

3.2.2 倒谱分析法的Octave实现

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)));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

image-20220221141306556

4 总结

综上,通过对Octave的安装使用可以发现,Octave上手来说相对简单,语法及函数与MATLAB基本一致,能够满足我的需求。本篇文章只介绍了再Mac下的安装,通过Octave的网站可以看出,它还支持Window以及Linux系统平台的安装,其它系统下的安装可以自行查看文档,总的来说,我认为Octave还是值得使用的,特别是对MATLAB依赖不是严重的场景,用它来代替还是不错的选择。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/118184
推荐阅读
相关标签
  

闽ICP备14008679号