# 2022b V0.9.7677 发行说明


本文介绍 Syslab 2022b V0.9.7677 的最新特征。

# 1 新增功能

# 1.1 界面绘图菜单

​ Syslab提供便捷的绘图菜单,能够根据数据类型智能显示可用绘图列表,方便用户快速绘图。

# 1.2 数据导入/导出

​ Syslab支持常用的数据文件导入/导出,具体如下:

  • 支持导入的数据文件格式:jl、txt、csv、xlsx、mat等。

  • 支持导出的数据文件格式:jl、txt、csv等。

# 1.3 支持全局搜索的帮助文档

​ 提供全新架构的帮助文档,支持全局搜索。

  • 帮助文档首页

  • 支持全局搜索

# 1.4 一键构建系统映像文件(JuliaSysimage)

​ 系统映像文件(JuliaSysimage.dll)能够提升Julia函数库的加载速度,Syslab支持一键构建并应用系统映像文件,并支持用户自定义修改构建脚本。

# 1.5 Syslab环境与外部环境隔离

​ Syslab 提供一套完整的运行环境,与外部环境相对独立,互不干扰。

  • 启动Syslab软件,将使用完全独立的.julia环境,不会对用户原有的.julia环境造成影响;
  • 单独启动julia-ty.bat,将使用与Syslab相同的.julia环境;
  • 单独启动julia.exe,将使用用户原有的.julia环境。

# 1.6 多操作系统兼容

​ Syslab在原有Win10系统基础上,兼容了多个主流操作系统,包括:

  • Windows操作系统:Win7、Win10、Win11;

    注意:若需在Win7环境下运行,请联系同元公司技术支持,获取Win7适配版的安装包。

  • Linux操作系统:Ubuntu 20.04、CentOS7.9、银河麒麟v10。

    注意:若需在Linux环境下运行,请联系同元公司技术支持,获取相应环境的安装包。

​ 示例1:在银河麒麟环境下的Syslab

​ 示例2:CentOS7环境下Sysplorer与Syslab的一体化仿真

# 2 改进功能

# 2.1 Ribbon菜单支持自适应布局

​ Ribbon菜单支持自适应布局,跟随界面外框宽度大小,Ribbon菜单进行动态折叠或显示,确保菜单始终可用。

  • Ribbon菜单全部展开

  • Ribbon菜单部分折叠

# 2.2 切换文件夹不会重启REPL

​ 重构资源管理器,切换目录无须重新启动REPL,增强用户体验。

# 2.3 变量视图支持行列多选

  • 变量表格视图支持行或列的多选,包括连选、跳选等;

  • 支持对变量表格视图中数据进行绘图。

# 3 函数库

# 3.1 新增面向对象编程库

ObjectOriented (opens new window) (opens new window)是苏州同元开发的Julia包,已被Julia社区集成。它为Julia提供面向对象编程的功能,支持多继承、点操作符取成员、Python风格的properties以及接口编程,包括:

  • 类型定义

  • 继承

  • Properties

  • 接口

  • 多继承

  • 基于接口的多态抽象

# 3.2 基础函数库增强

​ 在 Syslab 2022a 基础上,针对基础、图形、图像、数学、曲线拟合等函数库进行了一轮改进,新增了一批高频使用函数:

  • 基础函数库:新增 77 个常用函数,详细参见附录;
  • 图形函数库:新增 18 个函数,详细参见附录;
  • 图像函数库:新增 5 个图像处理函数,详细参见附录;
  • 数学函数库:新增 17 个常用函数,详细参见附录;
  • 曲线拟合库:新增 8 个常用函数,详细参见附录。

# 3.3 专业工具箱

​ 信号处理库、DSP系统库、通信库等三个专业工具箱,已经内置到 Syslab 软件。其中,新增函数列表参见附录。

  • 信号处理工具箱:分析、预处理及提取均匀和非均匀采样信号的特征。包含可用于滤波器设计和分析、重新采样、平滑处理、去趋势和功率谱估计的工具。还提供了提取特征(如变化点和包络)、寻找波峰和信号模式、量化信号相似性以及执行 SNR 和失真等测量的功能。

  • DSP系统工具箱:提供函数满足信号处理系统的设计、仿真与分析,其组成包括:信号产生、处理与分析,滤波器设计与分析,滤波器实现,变换与谱分析, 统计学和线性代数等功能函数。通过DSP系统工具箱可用于在时域和频域进行分析、测量及显示信号,设计与分析包括FIR、IIR、单速率、多速率、多级滤波器, 同时提供傅立叶变换,离散余弦变换,谱分析,线性预测等常用变换和分析方式,流信号系统可以满足变量、数据文件或来自网络的仿真。

  • 通信工具箱:为通信系统的分析、设计、端到端仿真和验证提供算法和应用程序。工具箱算法(包括信道编码、调制、MIMO和OFDM)使您能够构建和模拟基于标准或定制设计的无线通信系统的物理层模型。

# 4 Bug修复

  • fix #bug:系统映像(JuliaSysimage)在部分机器上失效问题
  • fix #bug:调试时需要按两次F10才能执行一行代码
  • fix #bug:Syslab Julia插件与其它Julia插件的冲突检测与提示
  • fix #bug:变量视图获取焦点时、失去焦点时的颜色显示问题
  • fix #bug:Syslab安装必须要有D盘

# 5 附录:新增函数列表

# 5.1 语言基础库

序号 函数名 函数说明
1 blkdiag 分块对角矩阵
2 ind2sub 将线性索引转换为下标
3 sub2ind 将下标转换为线性索引
4 ipermutedims 逆置换数组的维度
5 strjust 对齐字符串
6 strncmpi 比较字符串的前 n 个字符(不区分大小写)
7 base2dec 将以 n 为基数的整数的文本表示转换为双精度值
8 bin2dec 将二进制整数的文本表示转换为双精度值
9 dec2base 将十进制整数转换为其 n 进制表示形式
10 dec2bin 将十进制整数转换为其二进制表示形式
11 dec2hex 将十进制整数转换为其十六进制表示形式
12 hex2dec 将十六进制整数的文本表示转换为双精度值
13 bitget 获取指定位置的位
14 bitcmp 按位补码
15 bitset 设置指定位置的位
16 bitshift 将位移动指定位数
17 fullfile 从各个部分构建完整文件名
18 mv 移动或重命名文件或文件夹
19 cp 复制文件或文件夹
20 dir 列出文件夹内容
21 fileparts 获取文件名的组成部分
22 cd 更改当前文件夹
23 readdir 列出文件夹内容
24 load 将文件变量加载到工作区中
25 fopen 打开文件
26 fclose 关闭文件
27 fread 读取二进制文件中的数据
28 save 将工作区变量保存到文件中
29 feof 检测文件末尾
30 fgetl 读取文件中的行,并删除换行符
31 fgets 读取文件中的行,并保留换行符
32 importdata 从文件加载数据
33 fwrite 将数据写入二进制文件
34 read_serial_port 从串行端口设备读取数据
35 write_serial_port 将数据写入串行端口设备
36 fprintf 将数据写入文本文件
37 sscanf 从字符串读取格式化数据
38 fscanf 读取文本文件中的数据
39 textscan 从文本文件或字符串读取格式化数据
40 num2hex 将单精度数和双精度数转换为 IEEE 十六进制格式
41 struct2table 将结构体数组转换为表
42 datenum 将日期和时间转换为日期序列值
43 timeseries 创建 timeseries 对象
44 tscollection 创建 tscollection 对象
45 strfind 在其他字符串中查找字符串
46 convertCharsToStrings 将字符数组转换为字符串数组,其他数组不变
47 strtrim 从字符串中删除前导和尾随空白
48 str2func 根据字符串向量构造函数句柄
49 feval 计算函数
50 system 执行操作系统命令并返回输出
51 pause 暂时停止执行 Syslab
52 perl 使用操作系统可执行文件调用 Perl 脚本
53 isvector 确定输入是否为向量
54 isobject 确定输入是否为 Syslab 对象
55 ismember 判断数组元素是否为集数组成员
56 narginchk 验证输入参数数目
57 regexp 匹配正则表达式(区分大小写)
58 regexprep 使用正则表达式替换文本
59 h5info 有关 HDF5 文件的信息
60 h5read 从 HDF5 数据集读取数据
61 h5readatt 从 HDF5 文件中读取属性
62 diary 将命令行窗口文本记录到日志文件中
63 bsxfun 对两个数组应用按元素运算
64 arrayfun 将函数应用于每个数组元素
65 mode 数组中出现次数最多的值
66 add 向 kwargs 中添加单个键-值对组
67 maxk 计算数组的 k 个最大元素
68 median 数组的中位数值
69 repelem 重复数组元素副本
70 logical 将数值转换为逻辑值
71 power 按元素求幂
72 which 定位函数和文件
73 properties 查询结构体或字典数据的field名称
74 display 显示有关变量或表达式结果的信息
75 clear 从工作区中删除项目、释放系统内存
76 clc 清空命令行窗口
77 find 查找非零元素的索引和值

# 5.2 图形库

序号 函数名 函数说明
1 feather 羽状图
2 quiver 箭头图
3 compass 罗盘图
4 quiver3 三维箭头图
5 streamline 流线图
6 datacursormode 开启数据提示
7 hist 直方图,建议改为histogram
8 histogram2 二元直方图
9 ezplot 易用的函数绘图函数
10 alpha 向坐标区中的对象添加透明度
11 getframe 捕获坐标区或图窗作为影片帧
12 get 查询图形对象属性
13 set 设置图形对象属性
14 findobj 查找具有特定属性的图形对象
15 plt_delete 删除图形对象
16 plt_print 打印图窗或保存为特定文件格式
17 ishandle 判断是否有效的图形对象
18 ancestor 图形对象的父级

# 5.3 图像库

序号 函数名 函数说明
1 rgb2ind 将 RGB 图像转换为索引图像
2 imapprox 通过减少颜色数量来近似处理索引图像
3 dither 转换图像,通过抖动提高表观颜色分辨率
4 cmpermute 重新排列颜色图中的颜色
5 cmunique 消除颜色图中的重复颜色;将灰度或真彩色图像转换为索引图像

# 5.4 数学库

序号 函数名 函数说明
1 cplxpair 将复数排序为复共轭对组
2 pchip 段三次 Hermite 插值多项式 (pchip)
3 spline 三次样条数据插值
4 makima 修正 Akima 分段三次 Hermite 插值
5 akima Akima 分段三次 Hermite 插值
6 integral 数值积分
7 integral2 二重数值积分
8 integral3 三重数值积分
9 quad 以自适应 Simpson 积分法计算数值积分
10 quad2d 计算二重数值积分
11 quad3d 三重数值积分
12 filter1 1 维数字滤波器
13 symrcm 稀疏反向 Cuthill-McKee 排序
14 colperm 基于非零项计数的稀疏列置换
15 amd 近似最小度置换
16 randi 均匀分布的伪随机整数
17 detrend 去除多项式趋势

# 5.5 曲线拟合库

序号 函数名 函数说明
1 scatteredInterpolant 散点数据插值
2 evaluate 计算插值方法在数据点处的值
3 datastats 数据统计
4 spapi 样条插值
5 fnder 微分函数
6 fnint 积分函数
7 fnrfn 细化表格划分
8 stcol Scattered 在 stcollocation 矩阵中转换搭配矩阵

# 5.6 信号处理库

序号 函数名 函数说明
1 gmonopuls 高斯单脉冲
2 gmseq 广义m序列
3 mseq m序列
4 cw cw调制信号
5 demod 用于通信仿真的解调
6 modulate 通信仿真调制
7 meyeraux Meyer小波辅助函数
8 energy 计算信号总能量
9 binmask2sigroi 将二进制掩码转换为ROI限制矩阵
10 extendsigroi 将感兴趣的信号区域扩展到左侧和右侧
11 sigroi2binmask 将ROI限制矩阵转换为二进制掩码
12 bandpower 频带功率
13 snr 信噪比
14 fwht 快速Walsh-Hadamard变换
15 ifwht 快速Walsh-Hadamard逆变换
16 arcov 自回归全极点模型参数——协方差法
17 armcov 自回归全极点模型参数——修正协方差法
18 invfreqs 从频率响应中识别连续时间滤波器系数
19 invfreqz 从频率响应中识别离散时间滤波器系数
20 fircls1 约束最小二乘FIR多频带滤波器设计
21 firpm Parks-McClellan最优FIR滤波器设计
22 maxflat 广义数字巴特沃斯滤波器设计
23 rcosdesign 升余弦FIR脉冲整形滤波器设计
24 polyscale 多项式的标度根
25 polystab 稳定多项式
26 zerophase 数字滤波器的零相位响应
27 zplane 离散系统的零极点图
28 fvtool 将滤波器可视化
29 fftfilt 使用重叠相加法的基于FFT的FIR滤波
30 hampel 将数字滤波器转换为零极点增益表示
31 downsample 以整数因子降低采样率
32 interp 插值-按整数因子增加采样率
33 upsample 按整数倍增加采样率
34 impinvar 模数滤波器转换的脉冲不变性方法
35 pmtm 多窗口功率谱密度估计
36 welch Welch的功率谱密度估计

# 5.7 通信库

序号 函数名 函数说明
1 comm_PNSequence 生成伪噪声(PN)序列
2 arithdeco 通过算术解码来解码二进制代码
3 arithenco 通过算术编码对符号序列进行编码
4 rsenc Reed-Solomon编码器
5 pammod 脉冲幅度调制(PAM)
6 pamdemod 脉冲幅度解调
7 amdemod 幅度解调
8 fmmod 调频
9 fmdemod 频率解调
10 pmmod 调相
11 pmdemod 相位解调
12 ssbmod 单边带调制
13 ssbdemod 单边带解调
14 comm_MIMOChannel 输入信号通过MIMO多径衰落信道
15 fogpl 雾和云造成的射频信号衰减

# 5.8 DSP系统库

序号 函数名 函数说明
1 dsp_DCBlocker 阻止输入信号中的直流分量(偏移)
2 dsp_ZeroCrossingDetector 检测零穿越点
3 dsp_ColoredNoise 产生有色噪声信号
4 dsp_SignalSource 从工作空间导入变量
5 dsp_BinaryFileReader 从二进制文件读取数据
6 dsp_BinaryFileWriter 将数据写入二进制文件
7 dsp_MatFileWriter 编写MAT文件
8 sound 将信号数据矩阵转换为声音
9 soundsc 缩放数据和作为声音播放
10 dsp_AsyncBuffer 先进先出缓冲器
11 rebuffer_delay 缓冲和非缓冲操作引入的延迟样本数
12 zerophase 离散时间滤波器的零相位响应
13 zplane 离散时间滤波器的Z平面零极点图
14 dsp_FrequencyDomainAdaptiveFilter 使用频域FIR自适应滤波器计算输出,误差和系数
15 firtype 确定线性相位FIR滤波器的类型(1-4)
16 design 应用设计方法过滤规范对象
17 designmethods 可用于从规范对象设计滤波器的方法
18 designoptions 显示可用于指定设计的所有选项
19 fdesign 滤波器设计规格结构体
20 fdesign_lowpass 滤波器设计流程
21 designFracDelayFIR 设计带限分数延迟FIR滤波器
22 designMultirateFIR 多速率FIR滤波器设计
23 firhalfband 半带FIR滤波器设计
24 firls 最小二乘线性相位FIR滤波器设计
25 firminphase 最小相位FIR频谱因子
26 firnyquist 低通奈奎斯特(L波段)FIR滤波器
27 window 使用加窗脉冲响应的FIR滤波器
28 iircomb IIR梳状陷波或峰值滤波器
29 iirlpnorm 最小P范数最优IIR滤波器
30 iirnotch 二阶IIR陷波滤波器
31 iirpeak 二阶IIR峰值或谐振器滤波器
32 dsp_Differentiator 直接形式FIR全频带微分滤波器
33 dsp_HampelFilter 使用Hampel标识符过滤异常值
34 iirlp2xn 将IIR低通滤波器转换为IIR实数N点滤波器
35 allpasslp2xn 全通滤波器用于低通到N点变换
36 iirpowcomp 功率互补IIR滤波器
37 dsp_FrequencyDomainFIRFilter 在频域中过滤输入信号
38 dsp_AnalyticSignal 离散时间输入的分析信号
39 dsp_FIRDecimator 多相FIR抽取器
40 dsp_FIRInterpolator 多相FIR插值器
41 dsp_FIRRateConverter 采样率转换器
42 dsp_SubbandAnalysisFilter 将信号分解为高频和低频子带
43 dsp_SubbandSynthesisFilter 从高频和低频子带重构信号
44 msepred 自适应滤波器的预测均方误差
45 msesim 自适应滤波器的估计均方误差
46 dsp_BlockLMSFilter 使用块LMS自适应算法计算输出,误差和权重
47 dsp_LMSFilter 计算LMS自适应滤波器的输出,误差和权重
48 dsp_RLSFilter 使用递归最小二乘(RLS)算法计算输出,误差和系数
49 dsp_AffineProjectionFilter 使用仿射投影(AP)算法计算输出、误差和系数
50 dsp_AdaptiveLatticeFilter 自适应晶格滤波器
51 dsp_FastTransversalFilter 快速横向最小二乘FIR自适应滤波器
52 dsp_FilteredXLMSFilter 过滤的XLMS滤波器

# 5.9 控制系统库

序号 函数名 函数说明
1 ty_tf 传递函数模型
2 ty_zpk 零点-极点-增益模型
3 ty_ss 状态空间模型
4 ty_zpkdata 获取零点-极点-增益数据
5 ty_c2d 将模型从连续时间转换成离散时间
6 ty_impulse 计算动态系统的单位脉冲响应
7 ty_freqresp 计算系统的频率响应