同步操作将从 ZZH-Finalize/信号实验箱 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本软件为一个基于表达式的信号计算、绘图软件,主要功能为对输入的信号进行采样,然后对采样序列进行各种运算,并将运算结果绘制为波形
如果你在使用、阅读源码、构建等方面有任何疑问,均可在仓库内提交Issues
,我看到会处理
输入信号表达式,设置采样率和采样点数即可看到波形
信号可以嵌套使用,方便拿两个信号做运算,最大可嵌套15层
除正余弦以外,内置还有一些其他的函数可供使用,例如软件随机rand和硬件随机hrand
傅立叶变换,对变换结果调用length是因为fft函数输出为复数,而length函数为向量求模函数,因此可求出幅度谱
在软件内所有的信号定义均为表达式形式,例如sin(t)
便是代表了经过数字采样的 sin 信号, 例如sin(100*t) + sin(200*t)
便是将两个频率不同的信号叠加
信号间可以相互引用,例如sig0 = sin(100*t) sig1 = sin(200*t) sig2 = sig0+sig1
信号自身引用自身或交叉引用均会触发最大嵌套限制
软件内置一个简单的编译器,支持常用的数学表达式文法、双斜杠单行注释文法和 if 条件文法
编译器支持一个特殊变量 t ,代表当前的时间,也就是第 n 次采样除以采样频率 fs, t = n/fs
编译器支持一个常量 pi ,代表圆周率
编译器对于符号的处理和解析是大小写无关的,pi等价PI Pi pI,t也等价于T
所有的函数均为外部函数库解析得到,函数库由两部分构成,第一部分是库描述文件,格式为Json
,用于描述需要加载动态库文件里面的哪些符号,以及这些函数所需要的参数数量(用于编译时的参数检查)
目前软件内置了两个库, 即basic
和transform
,前者包括了常用的数学函数,后者目前只有fft
这一个函数,具体的库内包括哪些文件你可以打开对应的json文件查看
同样的,如果你自己构建了动态库,并且编写了对应的json文件,你可以把他们放置在安装目录的lib子目录下,然后在信号表达式内调用即可
为了避免使用者自行构建的麻烦,你可以在仓库右侧,简介
的下方找到发行版
一栏,在这里是编译并打包好的软件,可直接下载使用.但是请注意,只有较大版本更新之后才会发布发行版,因此你所下载到的发行版的功能可能是不如源码强的,如果要体验最新版软件请参考7. 构建源码自行构建最新版软件
本工程使用CMake
作为顶层构建系统,CMake
可产生多种下层构建系统所需文件,例如Makefile
除此之外,本工程的内置编译器并非纯手写完成,词法分析器和语法分析器基于flex
/bison
构建,因此在构建时需要用户的开发环境内有可用的flex
和bison
本人使用vscode开发本工程,所使用到的工作区文件也在源码目录下,完整下载源码后双击tiny-signal-box.code-workspace文件即可自动打开vscode对代码进行编辑和浏览.工作区文件内包括了vscode的设置项,构建所用的task以及调试所需要的launch配置,因此无需使用者再次配置,只要你是通过工作区文件打开的工程,那么你所使用的配置就和我的是一样的
构建之前,请先安装CMake
和Ninja
,前者用于产生后者所需的文件,后者则负责执行文件中的规则,调用编译器编译和链接程序
除此之外,还需要安装flex
和bison
,推荐的方式是安装虚拟的linux环境,也就是Cygwin
,在安装Cygwin
时,选择flex
和bison
的软件包即可,在Cygwin
安装完成后,将vscode的内置终端替换为Cygwin
所使用的bash.exe
如果安装Cygwin
时没有选择flex
和bison
,可以在安装完成后再次运行安装程序重新选择,实际上这并不会重新安装,只会把你对软件包的各种修改应用到已装好的Cygwin
里
关于如何配置vscode的内置终端,请查看Terminal profiles
如果要在vscode内构建,请安装CMake Tools
扩展程序,安装好后再次打开工作区文件,vscode会在上方正中央弹出选择工具链的选择框,选择QT提供的工具链然后进行CMake配置,配置完成后源码目录下会出现build文件夹,然后在vscode内按下Ctrl+Shift+B快捷键即可开始编译,若你的生成任务默认快捷键不是这个,也可以手动执行
编译完成后,将lib目录下的libfftw3f-3.dll
复制到build目录下,按下Crtl+Shift+T快捷键运行测试任务即可看到程序运行效果
若运行中出现问题,直接在vscode内调试即可(快捷键F5),但是请确保工作区文件内的gdb可执行文件的路径配置正确
如果你是make
使用者,请在CMake
配置时传入-G Unix Makefiles
参数,并正确指定你所使用的工具链,然后在构建目录下执行make -j
如果你是ninja
使用者,请在CMake
配置时传入-G Ninja
参数,并正确指定你所使用的工具链,然后在构建路径下执行ninja
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。