# 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 | 计算系统的频率响应 |