Document Revision
Last Update: 2025/12/01
- Nov. 2025
- Update UI / Properties
- Update Component / Channel Names Editor
- Update Component / Composition
- Update Conversion / Split
- Update Conversion / Join
- Update Conversion / Merge To Complex
- Update Source / Open Data / Text Importer
- Fix Compute / Stats / Least Square Fitting equations for the PDF version
- Fix DPI and layout of various images for the PDF version
- May. 2025
- Update Compute / Filter / Moving Average filte & TrendEstimator
- Update Compute / Stats / Least Square Fit
- Update Compute / Channels / FillNull
- Add Compute / Channels / LeastSquareFillNull
- Update Conversion / Change X-Axis Unit
- Update Conversion / ToRegular & ToIndexed
- Add Conversion / ToDateTime & FromDateTime
- Update Reload File section of Source / Data Source
- Add “Indexed Interval Options” & “Non-Monotonic Increasing Options” properties in Source / Open Data / Text Importer
- Update OpenData / LoadData
- Update UI / Preference & Properties
- Update Viewer / Channel, XYPlot, and TFViewer
- Update “Active Channel” property in Compute / Channels / ChannelSwitch, InputSwitch, RemoveChannel, and TriggerAlignment
- Update zoom-related content in Visualization / Toolbar
- Add Component / Channel Names Editor & Property Reference
- Update all Source / DAQ chapters
- Update Writer / Data Writer
- Update various examples and images
- Oct. 2023
- Add new chapters in Compute / SVM (Rotational Speed, Rotational Correction, Sound Anomaly Index, ISORMS)
- Sept. 2023
- Add Compute / Stats / Bayesian Inference Chapter
- Add Compute / Stats / Mean Frequency Chapter
- Aug. 2023
- Update Compute / SVM (CrestFactor, Peak, DigitalTacho, OrderSpectrum OrderInfo, Cepstrum, Envelope, Bearing Defect, Gearbox)
- Minor fixes in Hilbert Transform
- Jul. 2023
- Update Compute / TFA (STFT, Morlet, Enhance Morlet, Hilbert Spectrum, Marginal Time, Marginal Frequency, Secogram)
- Update Conversion / Convert To/From Complex
- Update Source / Noise
- Update Viewer / Channel Viewer, BoxPlot
- Jun. 2023
- Update Compute / Statistics (BasicStats, Correlation, Covariance, LeastSquareFit, Orthos, Quantiles, RollingStatistics)
- Update Compute / SVM / Octave Chapter
- Update Compute / Transform (AutoCorr, CrossCorr, Coherence, FFT & IFFT, DCT, IDCT, Wavelet, IWavelet, Hilbert, MSE)
- Update Compute / Enhanced (FastMSE, RollingMSE, Move Teager chapter to the end)
- Apr. 2023
- Update Compute / Channels (Channel Switch, Data Selection, Dup, Input Switch, Replace Value)
- Update Compute / Enhanced (FastIG, FastMSE, FastSecogram, FastSTFT, RollingMSE)
- Update Compute / External (External DLL, ExternalViewer)
- Update Compute / Filter (FIR, IIR, IG, Median, MovingAverage, Trend)
- Update Compute / HHT (AnCAD EMD, IMF Property, RCADA EEMD)
- Update Compute / Math (Diff, RMS)
- Minor Updates in UI / Properties, Data Viewer
- Minor Updates in Component / Composition
- Mar. 2023
- Update Viewer / Annotation
- Add Component / Property Reference
- Update Math / DoMatlab
- Add Viewer / Bar Plot Viewer
- Update Viewer / Channel Viewer
- Minor updates and fixes
- Feb. 2023
- Update Visualization / ShowValue / Harmonics
- Update Visualization / ShowValue / Measurement
- Update Viewer / Channel Viewer
- Update Viewer / TimeFrequency Viewer
- Minor fixes
- Jan. 2023
- Update UI / Network / Toolbar
- Update Source / Open Data
- Update UI / Properties
- Add Source / Opendata / Load Data
- Add Source / DataSource
- Improve TriggerAlignment Section with expanded content, comprehensive description of parameters, and detail explanation of various trigger modes
- Minor fixes
- Nov. 2022
- Add captions to all tables
- Fix out-of-bound tables in PDF build by correcting format of all tables
- Change CJK font to Noto Serif for PDF build
- Fix Chinese line-break issues for PDF build
- Fix some image resizing issues for PDF build
- Minor fixes
- Oct. 2022
- Add Component / Rolling Window in Chapter 3
- Update Compute / Math / Integrate in Chapter 4
- Update Compute / Math / RMS in Chapter 4
- Minor fixes
- Sept. 2022
- Minor update
- Aug. 2022
- Move Visualization into its own chapter apart from the UI chapter. It is now the new Chapter 2, and all subsequent chapter numbers are incremented.
- Expand and update Visualization sub-sections to include all new functionalities
- Expand and update related figures
- Fix PDF format
- July. 2022
- Update Compute / Channel / Resample in Chapter 3
- Update Compute / Mathematics / Math & DoMatlab in Chapter 3
- Update Source / Open Data / Text Importer in Chapter 5
- Delete the Container section and move the Macros section to Chapter 2
- Fix content format, table layout, etc.
- Source file structure reorganization
- Fix bad characters causing HTML & PDF compilation errors
- Aug. 2020
- Major update in Chapter 3.
- Jul. 20, 2020
- Major update in Front Matter and Chapter 1-2.
- Mar. 03, 2018
- Gearbox Creator content modified.
- Minor fixes.
- Jan. 30, 2018
- 1.6 Document Online!!
- Jan. 1, 2017
- 1.5 Document Updated
- Document source converted from Docbook to Pandoc Markdown.
- Equations converted from image to LaTex Math.
- Both PDF and HTML version generated.
- Jan. 1, 2014
- 1.5 Document Online!!
Release Notes
Visual Signal 1.6 在资料撷取模组上有重大的跃进,提供对更多厂牌装置的支援,并纳入了 Real-Time的撷取功能与显示介面,无论您是生医丶工程或科学领域的使用者能都以最有效率的方式进行资料搜集与分析。
运算功能方面,在频率变换丶滤波丶统计及数学模组内都新增了实用且强大的分析方法,部分既有的模组也增加了许多使用者期待的选项,并支援更多档案格式。此外,操作介面变得更加直觉丶友善丶效率,并让使用者可以自行定义显示项目,您可以尽情享受行云流水般的分析过程。
详细的新增功能请参考下列条目:
- 功能更加强大的DAQ(Data Acquisition)模组
- 即时(Real-Time)资料撷取与显示模组。
- 即时运算元件模组(部分元件不支援)。
- 支援凌华科技(ADLINK Tech.)USB-2405资料撷取模组。
- 支援神念科技(NeuroSky Inc.)Mindset脑电耳机。
- 支援Desktop PC/Laptop音讯撷取功能。
- 增强对NI资料撷取硬体的支援与操作。
- 新增对NI.tdms的档案支援。
- 新增强大的运算与分析功能
- 新增二次频谱(Secogram),可用来观察频率的强度随着时间的变化,无论是自然界的声响或是机械设备的微小撞击,您都能得到隐藏在讯号中,具周期性的频率变化。
- 新增功能去趋势波动分析(DFA, Detrended Fluctuation Analysis),让处在生医领域的您也可以轻松进行分析。
- 新增功能赫斯特指数或称贺氏指数(Hurst Exponent),让你可以藉由此指数更了解讯号的统计特性。
- 在Replace Value方法中新增了Outlier选项,藉由输入讯号标准差的倍数来进行资料处理。
- 时频图(Time-Frequency Viewer)新增对数尺度座标,让您更容易观察频谱的细节。
- 新增Smooth noise-robust微分方法。
- 新增滤波选项於Notch Filter与Median Filter。
- 提供更友善与易懂的操作介面。
- 当您需要选取特定范围进行分析时,用您的滑鼠框选便能轻松解决。
- 新的Visual Signal将容易混淆的图示进行更换。
- 自动帮你分析来源资料并转换为等间距(Regular)资料格式。
- 藉由双点击元件轻松开启编辑或报表视窗。
- 全新名称展现方式,让您排版丶出图更加轻松惬意。
- 明确的表现被选取的运算元件,减少混淆的状况发生。
- 不再有恼人的弹出式警告与错误讯息,通通与元件整合,直接显示於元件。
- 让您可以一次操作多个DoMatlab与DoScript编辑视窗,作自己的分析更加有效率。
- 资料浏览器(DataViewer)提供资料栏位修改功能,让您轻松的修正数据。
- 支援更多的音讯编码格式与更高的采样率。
Function List
Visual Signal 1.6 各版本功能表
运算元件(Compute)
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Accumulate | \(\checkmark\) | |||
| Channel Switch | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Data Merge | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | |
| Data Selection | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Dup | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | |
| Fill Null Value | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Input Switch | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Peak Detection | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | |
| Remove Channel | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Replace Value | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Resample | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| RR Interval | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | |
| Time Shift | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Trigger Alignment | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Fast Iterative Gaussian Filter |
\(\checkmark\) | |||
| Fast MSE | \(\checkmark\) | |||
| Fast STFT | \(\checkmark\) | |||
| Fast Trend Estimater |
\(\checkmark\) | |||
| ICA | \(\checkmark\) | |||
| PCA | \(\checkmark\) | |||
| Rolling MSE | \(\checkmark\) | |||
| Remove Bump | \(\checkmark\) | |||
| Teager | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| External Dll | \(\checkmark\) | |||
| External Viewer | \(\checkmark\) | |||
| WebService | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Comb Filter | \(\checkmark\) | \(\checkmark\) | ||
| FIR Filter | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| IIR Filter | \(\checkmark\) | |||
| Iterative Guassian Filter | \(\checkmark\) | |||
| Median Filter | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Moving Average | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Notch Filter | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Trend Estimator | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| AnCAD EMD | \(\checkmark\) | |||
| HHT ListView Macro | \(\checkmark\) | |||
| HHT SplitView Macro | \(\checkmark\) | |||
| IMF Property | \(\checkmark\) | \(\checkmark\) | ||
| RCADA EEMD | \(\checkmark\) | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Diff | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| DoMatlab | \(\checkmark\) | \(\checkmark\) | ||
| Integrate | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Math | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Mixer | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Multiplier | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Normalize | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Remove DC | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| RMS | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Diagonal Vector | \(\checkmark\) | |||
| Matrix Inverse | \(\checkmark\) | |||
| Matrix Operation | \(\checkmark\) | |||
| Matrix Condition Numbers |
\(\checkmark\) | |||
| Extract Region of Interest |
\(\checkmark\) | |||
| Transpose | \(\checkmark\) | |||
| Extract Vector | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Correlation Matrix | \(\checkmark\) | |||
| Covariance Matrix | \(\checkmark\) | |||
| Equiphase Statistics | \(\checkmark\) | |||
| Hypothesis Test | \(\checkmark\) | |||
| Kernel Smoothing Density |
\(\checkmark\) | |||
| Least Square Fitting | \(\checkmark\) | |||
| Orthogonality Matrix | \(\checkmark\) | |||
| Quartiles and Quantiles |
\(\checkmark\) | |||
| Rolling Statistics | \(\checkmark\) | |||
| Basic Statistics | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Enhanced Morlet Transform |
\(\checkmark\) | |||
| EnMorlet Viewer Macro |
\(\checkmark\) | |||
| Hilbert Spectrum | \(\checkmark\) | \(\checkmark\) | ||
| Marginal Frequency | \(\checkmark\) | \(\checkmark\) | ||
| Marginal Time | \(\checkmark\) | \(\checkmark\) | ||
| Morlet Transform | \(\checkmark\) | \(\checkmark\) | ||
| Short-Term Fourier Transform |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Transpose Spectra | \(\checkmark\) | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Auto Correlation | \(\checkmark\) | \(\checkmark\) | ||
| Cross Correlation | \(\checkmark\) | \(\checkmark\) | ||
| Discrete Cosine Transform |
\(\checkmark\) | \(\checkmark\) | ||
| Secogram | \(\checkmark\) | \(\checkmark\) | ||
| Fourier Transform | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| FFT Viewer Macro | \(\checkmark\) | |||
| Haar Wavelet Transform |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | |
| Hilbert Transform | \(\checkmark\) | \(\checkmark\) | ||
| Inverse Discrete Cosine Transform |
\(\checkmark\) | \(\checkmark\) | ||
| Inverse Fourier Transform |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Inverse Haar Transform |
\(\checkmark\) | \(\checkmark\) | ||
| Multi Scale Entropy | \(\checkmark\) | \(\checkmark\) | ||
| Coherence | \(\checkmark\) | \(\checkmark\) | ||
| Signal Windowing | \(\checkmark\) | \(\checkmark\) |
转换元件(Conversion)
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Convert from Matrix |
\(\checkmark\) | |||
| Convert from Spectra |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Join | \(\checkmark\) | \(\checkmark\) | ||
| Merge to Complex |
\(\checkmark\) | \(\checkmark\) | ||
| Merge to Multi-Channel |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Split | \(\checkmark\) | \(\checkmark\) | ||
| Split Complex | \(\checkmark\) | \(\checkmark\) | ||
| Convert to Audio |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Convert to dB |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Convert to Indexed |
\(\checkmark\) | \(\checkmark\) | ||
| Convert to Matrix |
\(\checkmark\) | |||
| Convert to Regular |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Change X-axis Unit |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
输入源元件(Source)
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Import Data | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Impulse | \(\checkmark\) | |||
| Jaehne | \(\checkmark\) | |||
| Custom Wave | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Noise | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Sine Wave | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Square Wave | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Triangle Wave | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
绘图元件(Viewers)
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Ellipse | \(\checkmark\) | |||
| HLine | \(\checkmark\) | |||
| HRegion | \(\checkmark\) | |||
| Line | \(\checkmark\) | |||
| Rect | \(\checkmark\) | |||
| Text | \(\checkmark\) | |||
| VLine | \(\checkmark\) | |||
| VRegion | \(\checkmark\) | |||
| Data Viewer | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Box Plot Viewer | \(\checkmark\) | |||
| Channel Viewer | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Error Bar Viewer | \(\checkmark\) | |||
| Histogram Viewer | \(\checkmark\) | |||
| Time-Frequency Viewer |
\(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| XY Plot | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
输出及其他(Writers)
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Export Data | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Export to Excel | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Data Writer | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) | \(\checkmark\) |
| Macro | \(\checkmark\) | |||
| Batch Run | \(\checkmark\) |
Data Acquisition(DAQ)功能表
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Adlink-DAQ | \(\checkmark\) | \(\bigtriangleup\) | \(\checkmark\) | |
| Audio-DAQ | \(\checkmark\) | \(\checkmark\) | \(\bigtriangleup\) | \(\checkmark\) |
| Mindset-DAQ | \(\bigtriangleup\) | \(\checkmark\) | ||
| NI-DAQ | \(\checkmark\) | \(\bigtriangleup\) | \(\checkmark\) | |
| Simulated-DaQ | \(\checkmark\) | \(\bigtriangleup\) | \(\checkmark\) |
Sound and Vibration Module(SVM)功能表
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Bearing Defect | \(\bigtriangleup\) | \(\checkmark\) | ||
| Cepstrum | \(\bigtriangleup\) | \(\checkmark\) | ||
| Crest Factor | \(\bigtriangleup\) | \(\checkmark\) | ||
| Digital Tacho | \(\checkmark\) | \(\checkmark\) | \(\bigtriangleup\) | \(\checkmark\) |
| Envelope | \(\bigtriangleup\) | \(\checkmark\) | ||
| Gearbox Creator | \(\bigtriangleup\) | \(\checkmark\) | ||
| Order Info | \(\bigtriangleup\) | \(\checkmark\) | ||
| Order Spectrogram | \(\bigtriangleup\) | \(\checkmark\) | ||
| Peak | \(\bigtriangleup\) | \(\checkmark\) | ||
| Scale | \(\checkmark\) | \(\checkmark\) | \(\bigtriangleup\) | \(\checkmark\) |
| Functions | DAQ Express | Lite (VSNI) | Standard (Std) | Professional (Pro) |
|---|---|---|---|---|
| Weighting | \(\bigtriangleup\) | \(\checkmark\) | ||
| Octave | \(\bigtriangleup\) | \(\checkmark\) |
* \(\bigtriangleup\) 仅用STD版安装档无法外加本区模组,需用PRO版安装档+STD License才能满足”在STD版本下外加模组"
* Adlink-DAQ 以及 Audio-DAQ 包含於 Visual Signal DAQ Express 1.6 版本中。
1 应用程式介面
1.1 使用者操作介面(GUI)
Visual Signal 启动後的画面如下图所示:

介面主要分成三大部份:元件编辑视窗(Network Window),元件参数设定视窗( Properties Window)与绘图视窗(Visualization Window),这三个视窗皆可以独立於 Visual Signal 的桌面上。
此三视窗在停泊状态时可以用滑鼠在其分界线上拖曳改变视窗大小,如下图:

也可双击上述各视窗的标题栏,或是用滑鼠由标题栏拖曳,使其离开原视窗停泊处,就能将该视窗独立分离出来任意放大缩小,如下图:

若再双击该视窗的标题栏,即可回复原视窗配置。也可以点击视窗右上角之 X 图示关闭该视窗。元件编辑视窗与参数设定视窗在关闭後可从主介面之版面选单重新开启,请参考【主选单/版面】章节;关闭绘图视窗则会同时关闭该视窗对应之专案,欲重启则必须重新开启专案,请参考【主选单/档案】章节。
视窗介面还支援 Auto Hide 隐藏视窗的表现方式,点击元件编辑视窗或参数设定视窗的
图钉图示,可将视窗设为自动隐藏。在自动隐藏模式下,视窗会自动缩至主介面右方隐藏,只留下一个标签。此时将滑鼠游标移置任一标签,所对应之视窗则会弹出,暂时显示该视窗;若将滑鼠游标移至主介面别处,则目前暂时显示之视窗会自动缩回。下图为两视窗皆设定为 Auto Hide:

可看到两视窗均隐藏至主画面右方标签,参数编辑视窗则是暂时显示,右上方的图钉图示显示为暂时状态
。再点击此图式则可将该视窗切换回原来停泊显示状态,图钉图示则会回复至
。
1.2 主选单及工具列

Visual Signal 的主选单(如上图所示)即为主介面上方横列之下拉式选单,选项包括 File(档案)丶Edit(编辑)丶View(显示)丶Layout(版面)丶Tools(工具)丶Help(帮助)等,以下章节会简单分项介绍。
除了主选单之外,主介面还在主选单下方提供了工具列,如下图。工具列撷取了主选单中常用的一些功能以图示方式让使用者可以快速点选使用。

以下为各图示简介,详细说明可参考以下各章节。
| 图示 | 主选单选项 |
|---|---|
![]() |
档案/新增专案 |
![]() |
档案/开启专案 |
![]() |
档案/储存专案 |
![]() |
编辑/复制图至剪贴簿 |
![]() |
编辑/汇出图至档案 |
![]() |
显示/回复图原状态 |
![]() |
显示/水平缩放 |
![]() |
显示/垂直缩放 |
![]() |
显示/方框缩放 |
![]() |
显示/水平平移 |
![]() |
显示/垂直平移 |
![]() |
显示/显示数值 |
![]() |
工具/偏好设定 |
1.2.1 File(档案)

本选单提供 New Project(新增专案)丶Open Project(开启专案)丶Save Project(储存专案)丶Load Macro(读入巨集)丶Save Macro(储存巨集)丶Toggle Disk Paging(切换硬碟分页)丶Clear Project Memory(情除专案记忆体)丶Clear All Memory(清除所有记忆体)丶Close(关闭专案)丶Close All(关闭所有专案)丶Exit(离开)等选项。以下简单介绍个选项:
New Project(新增专案)
此选项相当於【主介面工具列】上
图示,或是按下 CTRL-N键,可在 Visual Signal 中开启一个新的专案。新专案默认的名称为 Project*(*为从 1 开始之整数)。
Open Project(开启专案)
此选项相当於【主介面工具列】上
图示,或是按下CTRL-O键,可开启硬碟上现有的专案档。专案档储存了专案内所有模组元件的连结,参数设定,绘图设定等,档案副档名为 .vsn。
Save Project(储存专案)
此选项相当於【主介面工具列】上
图示,或是按下CTRL-S键,可储存目前显示的专案。若是储存新专案,则等同选择【Save Project As】选项,见以下章节说明。若是储存开启过之专案,则会直接以原专案档名覆写原专案档。
无伦是 Save Project 或是 Save Project As,储存前都会出现一个「储存选项对话窗」,如下图:

若勾选「Local Copy Imported Data」,则专案从别处汇入的资料档则会被复制到专案同名并同路径的资料夹内。若是专案内无汇入资料,则此选项会呈现灰色,无法勾选。
若勾选「Save Intermediate Data」,则下次开启专案时,无须重新计算可将之前每个元件的计算结果载入并绘图。
Save Project As(另存专案)
此选项相当於按下 CTRL-A 键,功能类似以上【Save Project】,但是会先跳出一个选择储存档案名称的对话窗,预设的储存专案档名为专案名称加上 .vsn的副档名。若选择之档名已经存在,则会出现确认覆写之对话窗:

若选择「Yes」则会覆写该档案,若选择「No」则会回到选择储存档案名称的对话窗,另选一个档案名称。无论是储存新档案或是覆写旧档案,储存前都会出现前一章所述之「储存选项对话窗」,操作方法同前述。
Load/Save Macro(读取/储存巨集)
除了将 .vsn 专案档以专案形式读入或储存之外,File 选单还可以将 .vsn 档以巨集(Macro)形式读入(Load Macro)或储存(Save Macro)。Load Macro 选项相当於按下 CTRL-L 键,可读取巨集;Save Macro 选项相当於按下 CTRL-M 键,可储存巨集。专案与巨集的差别在於,读取巨集时专案档内的元件及连结会插入现有的专案内,所有巨集中的元件名称会附加「_m 」的字样以区别於原有专案的元件。巨集为 Visual Signal 专业版的功能,可以将常使用到的讯号处理步骤储存为巨集,让使用者在不同的专案中快速丶方便地建立特定的计算流程与元件设定,无须再重新建立丶连结与设定各元件。巨集的操作方法请参阅【巨集】的章节。
Toggle Disk Paging(切换硬碟分页)
此选项可以将每个元件计算好的资料以暂存档的形式存在硬碟上,避免占用系统记忆体。
Clear Project/All Memory(清除专案/所有记忆体)
Clear Project Memory(清除专案记忆体)及Clear All Memory(清除所有记忆体)可强迫系统清除目前开启或全部专案的记忆体。
Close/Close All(关闭专案/关闭所有专案)
Close(关闭专案)及Close All(关闭所有专案) 可关闭目前开启或全部的专案。
Exit(离开)
此选项相当於按下 ALT-F4 键,或是点击主介面右上角 X 图示关闭视窗,可关闭 Visual Signal。如果有已修改未储存的专案,Visual Signal 会询问使用者是否要储存该专案,如下图:

点选「Yes」则相当於执行 Save Project(储存专案)後再离开程式;点选「No」则忽略未存档专案而直接离开程式;点选「Cancel」则取消离开程式,回到 Visual Signal 的主介面。
1.2.2 Edit(编辑)

本选单提供了元件编辑窗相关的选项:Update Modules (更新元件)丶Undo/Redo(还原/重作)丶Cut/Copy/Paste/Delete Modules(剪下/复制/贴上/删除元件),以及绘图视窗相关的选项:Copy Figures to Clipboard(复制图至剪贴簿)丶Export Figures to File(汇出图至档案)。以下分项介绍:
Update Modules (更新元件)
此选项相当於【元件编辑窗工具列】上
图示,或是按下 F5 键,可强制执行所有模组元件,详情请参考【元件编辑工具列】章节。
Undo/Redo(还原/重做)
此二选项相当於【元件编辑区】滑鼠右键选单上的 Undo/Redo 选项,或是按下对应之CTRL-Z/Y 键,可还原或重做模组元件的新增丶删除丶剪贴丶移动丶连结等动作,详情请参考【模组元件】的【还原与重做】章节。
Cut/Copy/Paste/Delete Modules(剪下/复制/贴上/删除元件)
此四选项相当於【元件编辑窗】滑鼠右键选单上的 Cut/Copy/Paste/Delete 选项,或是按下对应之 CTRL-X/C/V 或 DEL 键,可剪下丶贴上丶复制丶删除模组元件,详情请参考【模组元件】的【剪贴簿】章节。
Copy Figures to Clipboard(复制图至剪贴簿)
此选项相当於【主介面工具列】上
图示,或是按下 CTRL-ALT-C键,可将绘图视窗中所有或选择的图在复制到系统剪贴簿上。图的资料格式为 Windows 向量 Metafile 或 Bitmap 格式(可在【Preference】里选择)。使用者可使用支援此两个格式的应用程式将图贴入。
Export Figures to File(汇出图至档案)
此选项相当於【主介面工具列】上
图示,或是按下 CTRL-ALT-E 键,可将绘图视窗中所有或选择的图汇出至档案。汇出时会开启档案选择对话窗,此时可以输入欲汇出之档案名称与路径,以及选择支援的图档格式,目前支援.png丶 .jpg丶.bmp丶.tif丶.wmf丶.emf 等格式。
1.2.3 View(显示)

本选单提供了绘图视窗相关的选项:View Home(回复图原状态)丶Zoom X(水平缩放)丶 Zoom Y(垂直缩放)丶Zoom Rect(方框缩放)丶Pan X(水平平移)丶Pan Y(垂直平移)丶Show Value(显示数值)。以下分项介绍:
View Home(回复图原状态)
此选项相当於【主介面工具列】上
图示,可将所有绘图视窗的图回复至原始状态(无缩放也无平移,但不影响显示数值的状态)。
Zoom X(水平缩放)
此选项相当於【主介面工具列】上
图示,可将所有绘图视窗的图进入「水平缩放」状态。进入水平缩放状态後,可用以下三种方式将任一图在水平方向缩放:
- 使用滑鼠选择一水平范围,
- 使用滑鼠滚轮,
- 使用
+/-键。
Zoom Y(垂直缩放)
此选项相当於【主介面工具列】上
图示,可将所有绘图视窗的图进入「垂直缩放」状态。进入水平缩放状态後,可用以下三种方式将任一图在垂直方向缩放:
- 使用滑鼠选择一垂直范围,
- 使用滑鼠滚轮,
- 使用
+/-键。
Zoom Rect(方框缩放)
此选项相当於【主介面工具列】上
图示,可将所有绘图视窗的图进入「方框缩放」的状态。进入方框缩放状态後,可用以下三种方式将任一图同时在水平或垂直方向缩放:
- 使用滑鼠选择一方框范围,
- 使用滑鼠滚轮(同时控制水平及垂直的缩放),
- 使用
+/-键(同时控制水平及垂直的缩放)。
Pan X/Y(水平/垂直平移)
此选项相当於【主介面工具列】上
及
图示,可将所有绘图视窗的图进入「水平或垂直平移」状态。水平与垂直平移图示可同时按下(再按一次则取消按下),因此进入平移状态後,可用滑鼠在以下三种模式在任一图中拖拉平移:
- 水平模式:此时工具列之水平平移图示会呈现按下状态,如图

- 垂直模式:此时工具列之垂直平移图示会呈现按下状态,如图

- 任一方向模式:此时工具列之水平及垂直平移图示会同时呈现按下状态,如图

若解除平移状态(水平及垂直平移图示都取消按下),则会回到进入平移之前的缩放状态。在平移状态中,为了方便能够同时进行缩放平移操作,仍然保留了滑鼠滚轮与+/- 键的缩放功能。缩放的方向与平移的模式相同(水平丶垂直丶或任一方向)。
Show Value(显示数值)
此选项相当於【主介面工具列】上
图示,可将所有绘图视窗的图进入「显示数值」的状态。进入显示数值状态後,点选任一图可以开启滑鼠控制之十字线,在图的资料点上移动,十字线中心的资料点之数值同时会显示在中心旁的文字框内及主介面下方的状态列上,如图:

十字线在图资料点上移动的方式可以在
图示旁的下拉选单中选择 Pick 模式:

| Pick 模式 | 说明 |
|---|---|
| Pick Any | 移动十字线时选择每一个资料点 |
| Pick Maxima | 移动十字线时选择周围最大资料点 |
| Pick Minima | 移动十字线时选择周围最小资料点 |
| Pick Extrema | 移动十字线时选择周围最大或最小资料点 |
1.2.4 Layout(版面)

本选单提供了版面控制的选项:Network Window(元件编辑视窗)丶Property Window(参数设定视窗)丶Tool Bar(工具列)丶Status Bar(状态列)丶Default Layout(预设版面)。以下分项介绍:
Network/Property Window(元件编辑视窗与参数设定视窗)
前面在介绍【程式主介面】时提过元件编辑视窗及参数设定视窗可以被关闭,此二选项可以在关闭元件编辑视窗後重新打开元件编辑视窗或是参数设定视窗。
Tool Bar(工具列)
此选项可以关闭或打开主介面上方之工具列。
Status Bar(状态列)
此选项可以关闭或打开主介面下方之状态列。
Default Layout(预设版面)
前面在介绍【程式主介面】时提过元件编辑视窗丶参数设定视窗丶及绘图视窗可以被独立拉出丶移动丶改变大小丶或关闭,此选项可以在改变版面後将主介面所有视窗回复至原预设版面。
1.2.5 Tools(工具)

本选单之 Preference (偏好)设定可让使用者设定 Visual Signal 的各项执行预设值,其中详细内容请参考【偏好设定】。
本选单另有隐藏之选项,可以由 Visual Signal 命令列介面开启,例如 Language Editor (语言编辑器),提供使用者自行新增或编辑语言档的功能。详情参考【命令列介面】。
1.2.6 Help(帮助)

本选单提供了 Reference Guides(参考指南)丶 License Manager(授权管理)丶Update (更新)丶 About(关於)等选项:
Reference Guides(参考指南)
此选项提供了 Visual Signal 的相关使用文件,其中 Online Reference Guide直接用系统默认网页浏览器开启【Visual Signal 线上使用说明的网页】。网页上除了有本文件的连结,还有 External API 文件,包括 API XML Protocol 及ExternalBase Class Library:API XML Protocol 提供 Visual Signal与外部 DLL 的沟通协定, ExternalBase Class Library 解说这个 Library 中各种函数属性丶回传资料型态等,帮助使用者开发 External DLL (详情请参考【外接元件(External)】章节)。
License Manager(授权管理)
此选项提供使用者管理丶移除丶汇入 license 的各项功能。同时,使用者注册时所需要的系统 HostID 也显示在 License Manager 的介面上。
Update(更新)
通常启动 Visual Signal 时会自动上网检查是否主程式或模组可以更新,若可以更新则进入自动更新的流程。若是使用者时常在无网路的环境下工作,或是不想每次开机都花时间上网检查更新,则可以在偏好设定(请参考【偏好(Preference))】)中关闭此功能。此时若是需要更新,则可以用 Help 选单的 Update 选项手动执行这个流程。
About(关於)
此选项提供 Visual Signal 各项版本丶授权类别丶及安装模组等讯息。
1.3 元件编辑视窗(Network Window)
元件编辑视窗(Network Window)为连接各种元件的区域,在这里可以用滑鼠拖曳的方式连结各元件,形成一元件网路,可快速且直觉地组合出讯号处理所需的计算分析流程。

上图为视觉化元件编辑视窗外观,主要分成三大部份:工具列丶元件编辑区以及运算控制。分别说明如下。
1.3.1 工具列(Toolbar)
元件编辑视窗的工具列负责处理数据部份以及运算的控制,如下图:

以下为各图示简介,详细说明可参考以下各章节。
| 图示 | 功能 |
|---|---|
![]() |
汇入资料档 |
![]() |
连续重读 |
![]() |
单次後退重读 |
![]() |
单次前进重读 |
![]() |
储存资料至档案 |
| 资料浏览器 | |
![]() |
汇出资料至 Excel |
![]() |
强制执行 |
![]() |
自动生图 |
![]() |
批次执行 |
![]() |
显示连结 |
![]() |
选择框模式 |
汇入资料档
从外部读取资料档。接受的档案格式众多,依照副档名自动判断格式,并启动相应之档案汇入对话窗设定汇入之各种参数。本功能在【Open Data】中有详细的解说,包括其他汇入资料的方法。
如果欲汇入的档案副档名不在支援格式中,则程式会出现警告讯息 (如下图),询问使用者是否将此档案以纯文字的格式读取,选择是则会跳出对应纯文字之资料汇入对话窗,继续以纯文字格式读档。

成功读取档案後,Visual Signal 会开启 Load Data 对话窗,如下:

使用者可以选择汇入完整的资料或是撷取部分资料(详情请参阅【Load Data】 对话窗),资料汇入後则会自动在元件编辑区产生一个资料源元件(元件解说请参阅【Data Source】) ,如下图:

连续重读
当汇入档案模式为「部分撷取」时(详情请参阅【Load Data】 对话窗),点选对应资料源元件後可点选此按键自动连续读取下一个撷取窗的资料并重新执行所有下游连结之元件,直到撷取窗移动至资料尾端。下一个撷取窗的位置由部分撷取设定中之 Overlap 栏位决定。
单次後退重读
当汇入档案模式为「部分撷取」时(详情请参阅【Load Data】 对话窗),点选对应资料源元件後可点选此按键单次读取前一个撷取窗的资料并重新执行所有下游连结之元件。前一个撷取窗的位置由部分撷取设定中之 Overlap 栏位决定。
单次前进重读
当汇入档案模式为「部分撷取」时(详情请参阅【Load Data】 对话窗),点选对应资料源元件後可点选此按键单次读取下一个撷取窗的资料并重新执行所有下游连结之元件。下一个撷取窗的位置由部分撷取设定中之 Overlap 栏位决定。
储存资料至档案
将所点选元件内的计算结果输出为档案,这两项功能也可以在元件 Writer 中找到,在本程式所有元件中,除群组 Viewer 外,每个元件的输出讯号皆可藉由本功能将资料储存为档案。档案格式可选择储存为mat丶tfa丶txt丶csv 等档,而属於声音讯号的资料则可储存为wav丶mp3 等档。这两个功能是截取自群组 Writer 下的元件,因此请参考【讯号输出元件】的说明。
资料浏览器
可以直接点选元件,以资料浏览器检视元件的计算结果,资料浏览器会侦测输出资料类型,自动调整数据展示方式,以图形搭配数据的方式呈现元件的输出结果。此功能在【资料浏览器】章节中另作说明。
输出资料至 Excel
将所点选元件内的计算结果输出为csv格式资料,然後开启作业系统中csv档案对应的应用程式并读取该资料。作业系统中对应csv档案的应用程式跟安装在系统的 Office 套装软体有关,若安装的是微软 Office 则为 Excel,若安装的是 LibreOffice 则为 Calc。
强制执行
此功能相当於主选单/编辑选单之【更新元件】选项。点击强制执行(或按 F5 键)後,专案会从头到尾重新计算丶执行所有模组元件。
强制执行并自动生图
此功能等同於先执行上面强制执行功能,然後将所有输出埠未连结其他元件的运算元件自动加上绘图元件,自动生图时会依照强制执行後各元件的输出资料格式自动匹配适合的绘图元件(Viewer),如下表:
| 资料格式 | 绘图元件 |
|---|---|
| Signal, Audio | Channel Viewer |
| Spectra | TFA Viewer |
| Image | Image Viewer |
绘图元件详情请参考【绘图元件】章节。图像格式(Image)与图像显示元件(Image Viewer)只有安装图像处理模组才有支援。
批次执行
*Only in Professional
如果已经建立好一套讯号处理流程,现在需要输入不同的资料档执行这个程序,或者需要对其中某些元件改变参数以计算出不同的结果,就可以利用Batch Run 功能批次处理。此功能将在【批次执行】章节中介绍操作介面与用法。
显示连结
按下此图示可切换显示或隐藏元件之间的连结箭头,以便在元件编辑区内元件繁多时可以隐藏众多的连结箭头以保持画面清爽。显示模式如下图(注意显示连结图示
的状态为「已选」):

隐藏模式则如下图(注意显示连结图示
的状态为「未选」):

在隐藏模式下,如果选择了一个或多个元件,则会显示被选择元件之输入及输出连接箭头,如下图:

选择框模式
按下此图示可切换滑鼠在元件编辑区拖曳时卷动画面或是启动选择框之模式。在拖曳卷动模式下,当滑鼠游标在元件编辑区空白处拖曳时,会将整个编辑区上下左右卷动,如下图(注意选择框图示
的状态为「未选」):

在选择框模式下,当滑鼠游标在元件编辑区空白处按住滑鼠左键拖曳时,会启动选择框,随游标的移动而缩放,如下图(注意选择框图示
的状态为「已选」):

当放开滑鼠左键结束拖曳後,选择框内的元件则会进入被选择状态,如下图:

1.3.2 元件编辑区
元件编辑区为 Visual Signal 的核心,提供一个简单的操作环境,以视觉化与直觉的操作编辑讯号处理流程,在操作上就像是画讯号处理的流程图,Visual Signal 提供了各种讯号处理的方法,从讯号前端处理丶讯号分析演算丶到视觉化绘图呈现,使用者仅需要从选单中建立出这些方法,并且连接它们,就能够以简单的步骤执行复杂的讯号分析。
元件编辑区最重要的操作方式为按下滑鼠右键出现的元件功能选单,如下图:

以下简单说明选单中各分隔区之选项。
模组元件选单
可以看到选单第一个分隔区内分为六大群组【Compute】丶【 Conversion】丶【External】丶【 Source】丶【Viewer】丶【Writer】,所有 Visual Signal 提供的模组元件都分门别类放在这六个群组中。模组元件的简单介绍与操作方法请参考【模组元件】章节,而各个运算模组元件内容在本手册後各章节中有详细介绍。
Macros(巨集)相关选单
选单上还有巨集相关选项。Macros 选项列出所有存在使用者文件资料夹下 AnCAD\VisualSignal\Macros 资料夹下的巨集档案。SaveAsMacro 选项则可以将所有选择的元件以及其连结储存成一个巨集。详情请参考本手册【巨集】。
Connect(连结)选项
除了用滑鼠连接元件之外,还可以用此选项(或是按下对应的 ALT-C 键)选择欲连接的两个元件。此功能是为了方便在庞大复杂的专案中可以快速连接两个距离较远的元件而不必用滑鼠拖拉连结线。操作详情请参考【模组元件】的【连结】章节。
Undo/Redo(还原/重做)选项
此二选项相当於【主选单/编辑】上的 Undo/Redo 选项,或是按下对应之CTRL-Z/Y 键,可还原或重做模组元件的新增丶删除丶剪贴丶移动丶连结等动作,详情请参考【模组元件】的【还原与重做】章节。
Cut/Copy/Paste/Delete(剪下/复制/贴上/删除元件)选项
此四选项相当於【主选单/编辑】上的 Cut/Copy/Paste/Delete 选项,或是按下对应之 CTRL-X/C/V 或 DEL 键,可剪下丶贴上丶复制丶删除模组元件,详情请看【模组元件】的【剪贴簿】章节。
1.3.3 运算控制
运算控制位於元件编辑区下方,用以显示以及控制计算过程。如下图所示,位在左边的文字在计算过程中,会即时显示目前程式正在处理的元件名称与执行进度的百分比,文字下方的进度条会即时显示该元件计算的进度。而右边有三个控制项提供使用者控制运算过程,其说明如下:

Auto
此功能可决定程式是否会即时更新计算。当 Auto 被勾选时,使用者改变元件参数後,程式会马上重新计算该元件以及接於该元件输出埠以下的所有元件。而使用者常碰到一种状况是不只修改一个元件的参数,此时可取消勾选 Auto,等到各个元件都修改完毕後,再按下
,或者再次回复勾选 Auto,都可以重新计算修改後的元件。
执行运算
当 Auto 的状况为没有勾选时,按下
可以命令程式执行刚修改过的元件,相较於「Auto」,此功能可以说是「手动」执行运算。
中止运算
在程式运算过程中,若想终止计算,可藉由按下
钮终止目前正在处理的元件计算。使用时须注意此功能仅终止单一的丶正在处理中的元件计算,所以如果只按一次,则仅有一个元件以及其後方的元件会被终止,其它的元件仍然会接续执行。
1.3.4 资料浏览器(Data Viewer)
对於元件输出的结果,常需要临时性地快速浏览资料类型,查询讯号的相关资讯,因此我们提供一项快速检视资料的工具 — 资料浏览器。资料浏览器以视窗化介面展示资料的数值丶波形以及相关讯号资讯,只要在元件编辑区点选元件,再按下本按钮,浏览器就会依照不同的讯号类型 (如讯号丶频谱分析结果丶数值资料亦或是时频分析结果)展示相关资讯。以下先简单介绍资料浏览器的视窗介面,再依照不同的讯号类型说明资料浏览器的展示内容。
首先介绍资料浏览器的视窗介面如下图;主要分作三个部份,左上半部为资料绘图区,以图形检视讯号内容,左边下半部显示资料表格,列出讯号的数据资料,右半部 Channel Information 则呈现此讯号的相关资讯(如讯号通道数丶取样频率丶时间单位等),上述每块区域都会按照不同的资料类型改变展示内容。

此视窗上方共同都有的控制项为
,当使用者开启许多个 Data Viewer,程式会将资料以不同分页展示在同一视窗。按下
可关掉目前的分页内容,按下
则为关闭所有的 Data Viewer 分页内容。使用Data Viewer 时需注意,Data Viewer 之内容并不会随着 Network中元件参数的改变自动更新,因此必须按下
才可以检视元件运算过後的内容,。
下面依照不同资料类型说明 Data Viewer 介面。
时序讯号资料(Signal)
上图为时序讯号的 Data Viewer 内容,以下依照 Data Viewer的三大部份作説明。首先是绘图区。左上半部的绘图区是以时间为 X轴,讯号值为 Y轴绘制,绘图区分为上下两张图,上图是绘出讯号的全部内容,下图则依照使用者所设定的范围,绘出该范围下的讯号时域图,范围是在两图中间的部份设定。参数 From 是设定调整范围的起始点,须注意讯号第一点的编号为「0」,Step 是设定放大的取样间隔,预设为「1」,「N」设定调整范围的长度,「Channels」为设定需要被显示通道,预设为输入所有通道,例如「1-16」,在 Data Viewer 中最多一次可以显示 16 个通道讯号,使用者可以自行输入想要显示通道,例如「1-3,4,7-9」。

以上图为例,绘图区第二张图是从讯号第 1 点(编号为 0)开始算,总共 500 点的讯号,而且没有 down-sample。
使用者利用讯号的位置精确指定放大范围後,可以在图上看到红色线,红色线内的范围即为刚选择的区域,使用者选择范围可以利用时域图下方的卷轴,或在时域图上利用按下滑鼠左键拖拉方式选择,就能够调整放大范围的位置。若是按下
则会自动在【Network Editor】中产生对应的【Data Selection】元件,将红色区域资料撷取出来(请参考【Data Selection】章节说明)。

Data Viewer 左下半部的表格部份显示讯号的内容,讯号资料依时序排列为一行,不同列(row)代表不同的时间。第一行标题为 Index,是讯号每个资料点的编号,再来是 X Value,是讯号每个资料点所对应的时间点;之後每行代表各通道讯号的资料,以上图为例,此讯号是单通道讯号,因此资料只有 CH1 一组,若讯号为多通道,则会依照通道编号 CH1丶CH2…依序排列。讯号资料的个数丶 位置与在绘图区设定的放大范围一致,当使用者调整范围或是改变卷轴的位置,表格内容都会即时的更新,让使用者在看图之馀,能马上比对图上的数据。若资料显示的颜色为蓝色(如下图)代表该笔资料可供编辑,编辑完的资料会改为以红色显示;若资料显示为黑色,则代表资料是不可编辑的。

Data Viewer 右边即是 Channel Information 视窗,会显示资料的相关资讯。Histogram 是简单的统计直方图, 横轴为讯号资料值的范围,程式会将讯号资料值分作21等分,纵轴是资料数量, 每一个长条柱就代表资料值落在该区间的资料点个数。

Histogram 下方是 Data Table 以及 Data Channel Table,显示讯号的时序与统计资讯,须注意这边仅单纯显示讯号格式,使用者无法在此编辑或修改栏位。 此处简单说明每个栏位的意义:Sampling Frequency 为讯号取样频率;Data Count 显示讯号资料点数;Time Length 显示此段讯号的时间长度;Unit 为时间单位。Data Channel 下的栏位则针对不同通道的讯号资料,计算基本的统计值如讯号最小丶最大值丶平均值以及标准差,Data Channel 下的统计值均以单一通道内的资料计算,预设计算讯号第一个通道(1st Channel )之资料,使用者可在 Channel 栏位切换讯号的不同通道。
频谱讯号(Spectrum)
频谱讯号为时序讯号经过转换後,由时域讯号变为频率域的讯号。其视窗介面如下图所示,可以看到主视窗的工具列增加了六个按钮,
,这些控制按钮等於选择绘制不同的图形。这些按钮由左到右依序为示Magnitude丶Phase丶Real Part丶Imaginary Part丶Gain 丶Power Spectrum。使用者可藉由点选这些按钮改变频谱讯号的绘图,另外 Channel Information 内 Data Channel的内容也会因选择不同的表现方式跟着改变。预设值为 Magnitude,图面横轴为频率,纵轴则依照不上述设定绘制不同的值。

下方表格显示频谱讯号的内容,X Value 在这里储存图上横轴,也就是频率的值,每一个 Channel的频谱讯号包括四个行向量:分别是讯号实部(RE)丶虚部(IM)丶振幅 (MAG)丶相位角(PHASE)等。

Histogram 显示统计的直方图,X 轴为资料数值的范围;纵轴为单一区间下资料出现的个数。由於频谱讯号能够以多通道讯号储存,所以可调整参数 Channel 计算讯号不同通道的统计值。下图为频谱讯号的 Histogram 与相关统计值。

时频讯号(Spectra)
时频讯号为时序讯号经过小波法等时频分析方法(Time-Frequency Analysis)计算後的结果,其视窗介面如下图,主视窗工具列与频谱分析相同的部分不再赘述,其中
为 Marginal Freq Time 按钮,功用将在绘图区说明,
分为 ExtractRow 及 ExtractColumn,将在下面介绍。

视窗左上半部的绘图区显示出时频图(即位於中央的彩色图),此图横轴为时间,纵轴则依照不同设定(如 Magnitude丶Phase 等),可以用滑鼠左键指定红色十字游标位置,在图左下方会显示此点的 X(时间)丶Y(频率)与计算值,并可以用键盘上的 W丶A丶S丶Z 或上丶下丶左丶右键来进行上下左右移动红色十字游标位置。时频图的左边图形表示红色游标上铅锤线的切面,即为在某一固定时间内的频率分布情形,时频图的下面图形表示红色游标上水平线的切面,即为在某一固定频率振幅随着时间变化。
中的 ExtractRow 可以将红色游标上水平切线萃取出来,在 Network 中利用 Convert from Spectra 撷取出 Time Signal, ExtractColumn 可以将红色游标上铅锤线萃取出来,在 Network 中利用 Convert from Spectra 撷取出 Spectrum Signal。
Marginal Freq Time 按钮的功能可参考模组Marginal Frequency / Marginal Frequency 的说明文件。

上方表格显示时频讯号值,预设为 Magnitude,其中行向量(Column Vector)代表同一时间,不同频率的值,列向量代表同一频率,不同时间的值。时间轴由左至右变大,频率轴由上而下向小。
Histogram 直方图与其它讯号相同,在直方图下方有控制绘图颜色的参数如ColorMap Type 丶ColorMap Min丶ColorMap Max 等,这些参数设定可以参考Viewer / Time- Frequency Viewer 的说明。

数值资料(Numeric)
Visual Signal 有部份模组输出的资料类型为数值,譬如说矩阵丶标准差丶相关系数矩阵等,这些数值资料在 Data Viewer 上仅会以表列的方式呈现,如下图是用 Data Viewer 检视时频图的矩阵资料, X Value 表示矩阵中的位置,CH1(RE)丶CH1(IM)丶CH1(MAG )等代表该位置的值。

1.3.5 批次执行(Batch Run)*
*Only in Professional*
Batch Run(批次执行),是为节省时间,可重复执行同一流程的功能。类似於 for回圈的概念,使用者可设定在每次执行时更换汇入之档案,或是改变元件中的参数,并让结果存於指定的资料夹中。若有多笔的数据需要处理,利用此功能就不需要随时待在电脑前面操控,设定完成後便可去做其他的事情,等电脑跑完再来观看结果。
Batch 按钮在 Network 工具列的最右方,图示为
。以下以 demo 51 为例,介绍 Batch Run的介面与用法。
首先由主视窗工具列上 Open Project 开启 C:\Program Files\Ancad\Visual Signal\demo\Extended中的 demo 51,然後再按下 Batch Run 按钮,视窗如下图:

按下 Batch Run 之後,显示介面如下图。

工具列上的图示:
分别是清除以及储存 Batch Run的设定内容;
为新增一个Run,
为从档案增加 Run的快捷键。选择
可新增一个 Run并改变其中任意的参数,而
为改变汇入档案之快捷选项,可直接由资料夹中选取档案,不必透过手动输入档案名称。
是删除已存在的Run;
可打开参数栏位,用来新增要加以改变的参数;
是执行设定完成的Batch Run 而
可中断正在执行的 Batch Run。最後 Output Directory 可设定输出结果的位置,Batch Run 会输出结果包含所有专案下Viewer 的结果并转为图片档以及用 Writer 元件所汇出的档案。
下面透过实作说明 Batch Run 的使用方法。
批次改变不同的参数值
第一步先点击按钮
,可以在下面新增 Run。

第二步是要点击工具列上的
Add Parameters,也可在滑鼠右键选单中找到此功能,如下图。

点击後介面会分隔为两区,左边的区域列出专案内所有元件,右边视窗则放置新增的 Run ,并在右边视窗下,利用滑鼠右键增加多个 Run,结果如下图。

接着在右边就是改变参数,在左边视窗选择 EnhancedMorlet(Linear-Morlet),点击树状图的加号 + 即可以看到该元件下所有的参数,并勾选将要改变的参数,例如现在选择 FreqCount,然後再按下
或
,左边的视窗会再度隐藏,且此参数会新增至 Run 中。

功能
与
的差别在於,
会把勾选的参数新增至右边区域所有的 Run,使全部的 Run 都可以修改此参数,如下图。

仅会将勾选的参数新增至被选取的 Run 中,如下图只有一个Run 有可以改变的参数。

把 Run1 的树状图全都点开就能看到 FreqCount 为 128。若要改变参数值 128,先点选参数值,於参数值上再点击一次(操作上比较像速度较慢的双击),就可以进入编辑模式,修改此参数值。所有的参数都可依上述步骤修改至Batch Run 中,而且一个 Run 可以改变多个参数值。完成设定之後,点击执行钮
就开始批次计算。

执行 Batch Run 後,如需中止计算,可点击按钮
停止批次计算。计算过程中每个 Run 都会将专案中Viewer 的结果(如果专案中有 Writer 模组,则包括 Writer 汇出的资料)以图档的形式输出至 Output Directory (路径预设为专案档的目录下,也可以在 Batch Run 的栏位 Output Directory 作设定),如需改变图档处储存格式可在主视窗中 Tool / Preference 中设定。
批次计算多个讯号资料档
用同一个 .vsn档或专案来批次计算多个讯号资料档。下面将先建立一个讯号处理流程,并且示范读取多个资料档进行批次计算。
首先点击 Network 工具列的 Import Data,至 Visual Signal 安装目录下(预设为 C:\ Program Files\AnCAD\Visual Signal\demo\Basic),选取档案 Chirp1000.tfa。


读进资料档後,以 Viewer / Channel Viewer 绘出讯号图,并且对讯号作Compute / TFA / Enhanced Morlet Transform,转换之後以 Viewer / Time-Frequency Viewer 绘图。



建立好这个处理程序後,就可以操作 Batch Run用一样的处理程序批次计算不同的资料档。点击 Batch Run 按钮进入 Batch Run 操作介面。

进入 Batch Run 操作介面後,第一步也是要点击 Add Parameters。

先在左边的 Parameter 视窗勾选 DataSource,若专案档内有多个讯号资料,则需点开 DataSource 的树状显示,选择要变更的讯号资料。第二步是按下
,就会跳出选取档案的视窗, 选择要批次计算的讯号资料档。

本例选取 111.tfa丶chirp1000.tfa 与 chirp10000.tfa 作为批次计算的资料档再按下开启。这时候在 Batch Runs 区会自动新增三个 Runs,如要再加资料档,只要用
功能并重覆後序步骤即可。

假设讯号资料档已经选取完毕,在执行 Batch Run 之前要再检查输出档路径(Output Directory)。Output Directory 预设是与 .vsn专案档的目录相同,由於本专案尚未存档,因此要自行设定输出档的路径,点下按钮
就能选择(如下图 ),本例将路径设在 C:\ 下。


最後按下执行钮
启动 Batch Run,运算过程中无论是成功还是失败,执行过程的讯息都会在 Batch Run Status Report 中记录下来。

1.4 参数设定视窗(Properties)
显示与调整元件参数的视窗,此视窗位置预设在画面的右下角。元件编辑区中所有的元件,参数调整都是在参数设定视窗内控制。参数设定视窗下方则是说明栏,当使用者点选一个参数时,说明栏则会显示该参数的说明,以下以【Noise】元件的 Properties 为例:

通常说明栏内的文字无法选标及复制,如欲复制说明栏内的文字,可以在说明栏内任一处双击滑鼠左键,说明栏则会变成黄底的文字窗。这时可以用滑鼠选标文字窗内的文字,再用 CTRL-C 复制选标的文字:

此时在文字窗内再双击滑鼠左键则会变回原来的说明栏。
1.4.1 Module 项目参数
虽然 Properties 的内容因不同元件而异,不过项目 Module 是所有元件都有,此项目下之参数可控制视觉化元件的各项参数,下面就以正弦波【Sine Wave】元件的 Properties 当作例子说明。
点选 Source 下面的 Sine Wave,观看其参数设定视窗,并点击 Module 前方的箭头来展开其内容:

| 参数名称 | 说明 |
|---|---|
| Class | 列出该元件名称 |
| Name | 设定元件图示上的显示文字,使用者可自行输入想要的元件名称 |
| OutputDataNameFormat | 设定输出资料名称之格式。当元件输出最终接至 Viewer 或 DataWriter 元件时,Viewer 绘图显示之标题及 DataWriter 写出之之档案名称会抓取上游所连接之元件输出资料名称。此参数预设为 $Name,此为参数参照语法,亦即本参数预设值为元件名称。详情请见【参数参照】章节说明 |
| OutputDataName | 显示经过 OutputDataNameFormat 格式化之输出资料名称 |
| Output Port Side | 是调整输出埠在元件上下左右的哪一边,可由使用者调整 |
| Execute Time | 显示产生或计算此元件所花费的时间 |
| Output Data Type | 显示此元件输出的资料格式做为参考 |
| Property Connections | 设定参数参照连结,详情请参考【参数参照】章节 |
| Enable Custom Channel Names | 启用客制化通道名称。设为 True 时,可以使用通道名称编辑器设定客制化通道名称;设为 False 时则使用该元件自定之预设名称(通常为 CH1, CH2 … 等),或是由输入讯号带入的通道名称 |
| Channel Names Editor | 当 Enable Custom Channel Names 设为 True 时可以开启通道名称编辑器设定客制化通道名称。编辑器内预设通道名称为该元件自定之预设名称(通常为 CH1, CH2 … 等),或是由输入讯号带入的通道名称,详情请参考【通道名称编辑器】章节 |
若元件同时具有输入与输出的功能,如 Compute 与 Conversion 下的元件,则Module 会显示更多栏位,譬如下图是傅立叶转换【FFT】元件的 Properties / Module,

比 Sine Wave 多出几个栏位:
| 参数名称 | 说明 |
|---|---|
| Input Port Side | 可调整输入埠在元件图示上面的位置 |
| Acceptable Data Types | 是以下拉式选单的方式呈现此元件接受的讯号或资料格式,供使用者查询用。元件可以接受不同的资料格式,譬如 Real Multi-Channel Signal of Rank-1(Regular)Data,代表实数丶多通道丶等间距的一维时序资料。资料格式的分类请参阅下表 |
| 资料种类 | 参数意义 |
|---|---|
| 依数值区分 | Real:实数 Complex:虚数 |
| 依通道(Channel)区分 | Single-Channel:单通道 Multi-Channel:多通道 |
| 依资料格式区分 | Signal:时序讯号或频谱讯号 Audio:声音讯号 Numeric:数值资料 Spectra::时频分析输出资料 |
| 依资料离散情况区分 | Regular:等时间间距 Indexed:非等时间间距 |
若为 Viewer 元件,则不会有 Output Port Side 参数,但会多出以下参数:
| 参数名称 | 说明 |
|---|---|
| EnableExport | 选择 True 则开启将 Viewer 绘图汇出成档案的功能。每次元件更新(亦即 Viewer 输入资料更新)时,会 将 Viewer 绘出的图案汇出至所指定的档案。若档案已存在则覆写之 |
| ExportPath | EnableExport 为 True 时,可设定汇出档案路径 |
1.4.2 Reporter
许多元件有内建 Reporter 视窗,用来展现计算结果。例如 Basic Statistics丶 Correlation Matrix丶Covariance Matrix丶Orthogonal Matrix丶Quartiles and Quantiles丶RCADA EEMD丶AnCAD EMD 丶IMF Property 等,都有 Reporter 视窗的设计。以模组元件【Basic Statistics】为例,其 Properties 如下图所示:

Reporter 在 Properties 中都称为「View 元件名…」,点选栏位右边的
按钮,或双击支援的元件图示,即可开启 Reporter 视窗,如下图:

工具列可决定下方表格中数值的表现方式。第一栏可改变小数位数的展示方式,预设为 General,其他参数选项详列如下表;第二栏的数字可控制显示小数点以下第几位,预设为 3;变更设定後需要点击右方蓝色 Refresh 钮
,才可生效。
| 参数名称 | 参数定义 |
|---|---|
| General | 程式自动产生的预设表示形式 |
| Scientific | 以科学记号显示数值,如 1.234E-001 |
| Fixed | 固定小数点後的显示个数 |
除了点选参数栏位
按钮之外,使用者还可以直接双击元件图示开启 Reporter 。有些元件除了 Reporter 之外还有其他主要功能(例如【Data Source】的重新读档功能),此时双击元件图示只会开启该功能,如欲开启 Reporter 则只能用点选
按钮的方法。
相关指令
Noise丶Sine Wave丶FFT丶Data Source丶Basic Statistics
1.5 偏好设定(Preference)
偏好设定(Preference)是设定系统预设参数的工具,可以由主介面之主选单上的【工具选单】内的 Preference 选项,或是主介面之工具列上的
图示启动,启动後如下图:

此介面与前章所描述之【参数设定视窗】是同类型参数设定介面,只是所设定之参数为系统偏好参数,而且多出了一些控制元件,说明如下:
| 控制元件 | 说明 |
|---|---|
| Cancel | 取消所有新的设定,并关闭介面 |
| OK | 确认所有新的设定,并关闭介面 |
| Default | 回复所有偏好参数至预设值 |
| Advanced | 选取时显示所有进阶偏好参数 |
偏好参数包含六大类别:元件(Component)丶杂项(Misc)丶输出(Output)丶绘图( Plot)丶启动(Startup),文字汇入(Text Importer)。以下章节分别简单说明各类偏好参数设定。
1.5.1 元件(Component)

本类别提供与元件运算或介面操作相关之偏好设定。以下说明元件类的非进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| Check Null | 会检查载入的档案是否有空值,若有空值则会出现警告讯息 |
| Auto To-Regular | 在 Visual Signal 中大部分的运算元件都需要 Regular 的资料格式,设定此偏好则会在使用 Regular 格式的运算 元件前自动产生 ToRegular 元件将 Indexed 资料格式转换 为 Regular 格式 |
| Title Auto-Shrink Threshold |
设定绘图元件的标题格式的自动缩减门槛,详细设定 可参阅【绘图模组】 |
| Filename Auto-Shrink Threshold |
设定使用输出元件时的输出档名格式的自动缩减门槛, 其功用与以上 Title Auto-Shrink Threshold 相同, 详细设定请参阅【输出元件】 |
以下说明元件类的进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| FFT Algorithm | 选择 FFT 的演算法:
|
| No Warning | 关闭元件运算中出现的闪动黄色警告标志 |
| Silent Error | 关闭所有错误讯息 |
| Hide Branch When Disabled |
禁用(disable)元件时隐藏元件後连接之整个分支 |
| Script Editor Type | 设定 DoMatlab 或 DoScript 元件中预设之编辑器:
|
| Custom Editor | Script Editor 选择 Custom 时可以指定编辑器的程式路径 |
| Default Property Behaviours |
开启元件参数预设行为设定介面,见以下说明 |
元件参数预设行为设定介面启动时如下图:

此介面提供以下两种预设行为设定:
- 任何元件参数之预设值
- 参数设定视窗内任何类别是否预设隐藏
同时可以利用工具列储存或汇入不同组的设定,以便在不同应用领域中使用不同的预设行为。
1.5.2 杂项(Misc)

本类别只有选取进阶设定才会出现,提供一些杂项的偏好设定。
| 偏好设定 | 说明 |
|---|---|
| Forced Garbage Collection |
可以选择强制何时进行记忆体回收,可以帮助释放记忆体空间:
|
| Straight Arrow | 选择连接元件时使用直线箭头或是预设之曲线箭头:
|
| Rectangular Components |
选择显示方块元件或是预设之圆角元件:
|
| Partial Load | 选择是否启用在汇入资料时开启【部分读取对话窗】的功能 同时也在【重新汇入资料】时启用「读取全部/部分读取」的选项。 |
1.5.3 输出(Output)

本类别除了 Bitmap To Clipboard 之外,其他都为选取进阶设定才会出现,提供输出相关功能的偏好设定。
| 偏好设定 | 说明 |
|---|---|
| Output Encoding | 设定以文字格式输出时的编码格式, 预设为 us-ascii 格式 |
| Bitmap To Clipboard | 选择「True」时复制图表至剪贴簿时使用 bitmap 格式,否则使用 metafile 格式。 |
| Auto Plot Export Format |
设定在批次执行时自动输出之图档格式,预设为 png 档 |
| Export Batch Output Separately |
设定在批次执行时是否将输出档分开储存在各批次资料夹下 |
| Numeric Format | 选择 Reporter 的结果显示中小数点的显示格式:
|
| Numeric Precision | 设定 Reporter 的结果显示中小数点的精确位数,如为空值则为最高精度 |
1.5.4 绘图(Plot)

本类别提供绘图相关功能的偏好设定。以下说明元件类的非进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| Plot Width/Height | 设定绘图元件同名参数之预设,决定绘图区图面的预设宽度 及高度(像素设定) |
| 2D Plot Height | 设定二维绘图元件(例如TFViewer)之预设高度 |
| Set CMin/CMax Defaults Using Percentile |
决定在设定时频图元件中 CMin 及 CMax 的预设偏好设定
|
| CMin/CMax Default [%] |
设定时频图元件中 CMin 及 CMax 参数的预设(根据以上的 设定可以用最大值百分比或所有资料之百分位值设定) |
| Default Line Colors | 开启颜色设定介面,可设定绘图时各通道讯号的预设颜色 |
| Default Fonts | 开启字型设定介面,可设定绘图时使用的预设字型 |
颜色设定介面启动时如下图,可以设定绘图时通道 1 至 8 的预设颜色:

字型设定介面启动时如下图,可以设定绘图时标题(Title)丶X/Y 轴标题(X/Y Axis Title)及标签(X/Y Axis Label)丶及图例(Legend)的字型及颜色:

以下说明绘图类的进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| Grid Layout | 决定设定绘图区图面宽度及高度时是否用格数或像素设定:
|
| Grid Cell Size | 设定格数设定时的方格大小 |
| Hold Plot Range | 设定绘图元件同名参数之预设,决定图形垂直与水平范围 是否要保持不变 |
| Retain Plot | 设定绘图元件同名参数之预设,决定元件没有被连接时, 是否要保留原图形 |
| Auto Legend Name | 设定绘图元件同名参数之预设,决定是否自动显示图例说明 |
| ShowValue Harmonic Count | 设定在「显示数值模式」下按 Ctrl 或 Alt 键时显示倍频或次频线的数目(不包括基础频率)。本参数只在频谱图或时频图中有效。 |
| PickValue Label Font | 设定显示数值模式中十字标签的字型。 |
1.5.5 启动(Startup)

本类别提供启动 Visual Signal 时相关功能的偏好设定。以下说明启动类的非进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| Auto Compute Mode |
选择自动计算模式:
|
| Check VS Software Update at Startup |
选择启动 Visual Signal 时是否检查是否有程式更新, 若有则会自动更新程式(必须连接网路) |
| Language | 让使用者选择 Visual Signal 介面的使用语言,目前仅支援以下语言:
语言选择之後必须重新启动 Visual Signal |
以下说明启动类的进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| Start Matlab at Startup | 选择启动 Visual Signal 时也启动 Matlab Engine (使用者系统中必须安装 Matlab ) |
1.5.6 文字汇入(Text Importer)

本类别提供文字汇入相关功能的偏好设定,皆为文字汇入器介面内特定参数之预设,详情请参考後面【文字汇入器】相关章节。以下说明文字汇入类的非进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| TFA Default Null Handler |
选择在汇入 TFA 格式档案时预设的空值处理方式,请参考 【FillNull元件】的设定 |
以下说明文字汇入类的进阶偏好设定:
| 偏好设定 | 说明 |
|---|---|
| Importer Preview Lines | 设定文字汇入介面中预览窗的预设行数 |
| Importer Preview Char Per Line |
设定文字汇入介面中预览窗的每行的预设字元数 |
| Default Setting Mode | 选择文字汇入的预设设定档模式 |
1.6 命令列介面(Command-Line Interface)
Visual Signal 也可以在 Windows cmd.exe 环境下开启。如果未将 Visual Signal 的安装资料夹加入系统路径环境变数,则开启时必须附上 Visual Signal 执行档的全路径,如下图:

否则直接在命令提示输入VSignal.exe即可启动 Visual Signal。此时还可在命令後加上各种以「/」开头的命令列参数,启动 Visual Signal 内建的一些特殊功能。输入 VSignal.exe /?可以列出所有支援的命令列参数以及简单说明,如下图:

因为参数繁多,请参考说明内容,这里不一一详述。
2 视觉化绘图区
当使用者利用 Viewer 群组内的模组元件展示讯号与计算结果时,在绘图区就会产生一个图形,图形依照产生的顺序,由上而下排列。Visual Signal 提供了一系列观察讯号分析图形时常用的功能,诸如控制图面丶浏览丶绘图丶汇出图片等方面的工具,以利於使用者可作直觉且方便的操作。

绘图区控制功能可分为三部份。第一如下图所示,是绘图区上方的工具列右半部份的图轴控制工具,详情请参阅【图轴控制】。

另外则是在图面上缘的功能控制以及播放控制,如下图:

播放控制只会在显示音频讯号时才会出现,点击播放状态图示
可缩放此控制。详情请参阅【播放功能】。
功能控制提供图形选择丶移动丶同步群组设定丶最大化丶及关闭等功能。此控制通常是缩入图面左侧边缘的状态,滑鼠游标移动到图面上缘时会如上图自动伸展出来。详情请参阅【功能控制】。
此外,图形的大小除了可以在 Viewer 元件中的参数设定之外,还可以使用图面右侧丶下侧丶及右下角的控制以滑鼠调整。
相关指令
Channel Viewer丶Time-Frequency Viewer丶Box Plot Viewer丶Error Bar Viewer丶Histogram Viewer丶XY Plot
2.1 图轴控制

与绘图相关的功能按钮如上图,分项来看各按钮的功能。
| 图示 | 功能 | 说明 |
|---|---|---|
![]() |
Copy To Clipboard | 请参阅前面章节【复制图至剪贴簿】。 |
![]() |
Export To File | 请参阅前面章节【汇出图至档案】。 |
![]() |
Home | 功能是将图面回到预设的图轴范围。每张图在被绘出时,皆预设绘出全部的资料范围,当图面经过放大,平移,想再回复原始的图轴范围,就可以点击![]() |
![]() |
Zoom X | 将图在 X 轴方向上的放大。使用方法有二:
|
![]() |
Zoom Y | 将图在 Y 轴方向放大。使用方法有二:
|
![]() |
ZoomRect | 将矩形区域内的图形放大。使用方法有二:
|
![]() ![]() |
Pan X/Y | 即 X 方向与 Y 方向的平移,使用上直接以按住滑鼠左键,然後进行图面拖曳。滑鼠滚轮在此模式下无作用。 |
![]() |
Show Value | 请参阅下面章节【数值显示】。 |
![]() |
Preference | 请参阅前面章节 【偏好设定】。 |
2.1.1 数值显示
本功能有两个按键:
左边为启用功能开关,右边的含有下拉选单可选取模式。启用功能後,点选一张图(图周边会出现红框),将滑鼠游标移至图面便可见蓝色十字线游标随着移动,十字线交点为数据点所在,其数值会显示於交点旁的标签内,同时也会显示在整个视窗最左下角的状态栏,如下图:

另一种开启本功能的方式为直接在一张图上双击滑鼠左键,即可开启该图的十字线游标。选取模式仍须在
右侧的下拉选单中选取。
2.1.2 数值格式
标签及状态栏所显示的资讯及格式会根据讯号类别丶Viewer丶模式等而有所改变。例如频谱即频谱之倍频模式时如下图:


时频图及时频图之倍频模式时如下图:


各种可能之格式如下表所详列:
| Viewer | 讯号/模式 | 标签格式 | 状态栏格式 |
|---|---|---|---|
| Channel Viewer | 时间序列 | (t, v) |
index = i, x = t, y = v |
| Channel Viewer | 频谱 | (f, v) |
index = i, x = f, y = v |
| Channel Viewer | 频谱(倍频模式) |
(f, v){倍频资讯} |
index = i, x = f, y = v |
| XY Plot | 时间序列(X) + 时间序列(Y) |
(vx, vy) |
x = xv, y = yv |
| Time-Frequency Viewer | 时频资料 | v @ [t, f] |
x = t, y = f, val = v |
| Time-Frequency Viewer | 时频资料(倍频模式) | v @ [t, f]{倍频资讯} |
x = t, y = f, val = v |
格式中数值说明如下:
- \(t\):时间值
- \(f\):频率值
- \(v\):资料值。
- 在 Channel Viewer 时此值为 x 座标对应的 y 轴数值;
- 在 Time-Frequency Viewer 时此值为 x, y 座标对应的数值,以颜色分布显示
- \(xv\):与 y 轴时间序列同一时间点对应的的 x 轴时间序列数值
- \(yv\):与 x 轴时间序列同一时间点对应的的 y 轴时间序列数值
- {倍频资讯}:通常为最指标性的倍频数及频率。详情请参阅下面章节【倍频模式】。
2.1.3 数值抓取模式
移动十字线时,十字线交点会由一个资料点移动到下一个资料点。Visual Signal 提供四种模式抓取下一个资料点的数值:
| 模式 | 说明 |
|---|---|
| Pick Any | 在任何资料点之间移动 |
| Pick Maxima | 只抓取一定范围内之最大值在其间移动 |
| Pick Minima | 只抓取一定范围内之最小值在其间移动 |
| Pick Extrema | 只抓取一定范围内之极值在其间移动 |
可以透过右边按键的下拉选单切换所需模式。下图示意上述各模式:

2.1.4 复制标签及注释元件
在移动十字交点时可以双击滑鼠左键或按下 Ctrl-C 键,则会启动一个 Coordinate Values 多功能选择对话窗,如下图:

选择第一个选项 Copy To Clipboard 则可将标签文字复制到剪贴簿里。之後便可以在可编辑文字的任何地方使用标准 Windows 快捷键 Ctrl-V 贴上剪贴簿内容。
选择第二个选项 Create Annotation 会自动由目前的 Viewer 元件产生一个标签标注元件,如下图:

标签标注与文字标注相似(请参阅【标注元件】),只是多了一个资料点标记及与文字标签的连接线。如文字标注一样,如果标签位置不理想,可以在元件参数栏位里修改位置,或是直接用滑鼠拖曳标签至理想的位置。资料点标记则无法移动。标签标注整体的颜色丶文字的字形丶连接线的粗细及线条类别,以及资料点标记的类别及大小等都可以在元件的参数栏位里设定。
2.1.5 量测
在【Coordinate Values 对话窗】中选择第三个选项 Measurement 则会开启 Measurement Cursors 选择对话窗,如下图:

此对话窗运作类似示波器的量测功能,可以选择将十字交点的座标设定为两个水平游标(H1 (Ref) 或 H2)或两个垂直游标(V1 (Ref) 或 V2)其中之一。下图示范设定第一个水平游标:

如图所示,图上会产生一条标记「Ref」的垂直线,此为第一个水平游标(H1),水平量测将会以这个位置为基准值(Ref)。下图示范设定第二个水平游标:

如图所示,图上会产生一条标记「-0.638」的垂直线,此为第二个水平游标(H2),水平量测将会计算 \(H2 - H1\) 的距离并标记在第二游标上。下图示范设定垂直游标 V1 (Ref) 及 V2:

设定游标後,Viewer 元件的参数栏位中会开启一个 Measurement 类别的参数组,如下图:

游标整体的颜色丶线条的粗细类别丶以及标记文字的字形等都可以在此设定。
此功能目前只支援【Channel Viewer】及【Time Frequency Viewer】。其他 Viewer 相关参数设定请参考对应 Viewer 章节之说明。
2.1.6 倍频模式
Frequency Guidelines 对话窗
【Coordinate Values 对话窗】的最後一个选项是 Frequency Guidelines。如果 Viewer显示的资讯没有任何频率轴,则此选项无法使用。当 Viewer 显示某种频谱时(频谱资料或是时频资料),选择此选项则会开启 Frequency Guidelines 选择对话窗,如下图:

选择任一倍频类别则会在图中画上对应的倍频线,以开启【Coordinate Values 对话窗】时十字交点的座标为基频。下图示范在显示方形波频谱中开启以 10 Hz 为基频的倍频线(预设为不包括基频线 5 条倍频线):

同时 Viewer 元件参数栏位里会开启 Harmonics 类别的参数组,如下图:

倍频线整体的颜色丶线条的粗细类别丶标记文字的字形等等都可以在此设定。
此功能目前只支援【Channel Viewer】及【Time Frequency Viewer】。其他 Viewer 相关参数设定请参考对应 Viewer 章节之说明。
下表详细解释各种倍频类别及倍频线之标记文字(\(F\) 为十字交点所在之基频, \(N\) 目前设定之最大倍频数):
| 倍频模式 | 说明 | 标记意义 |
|---|---|---|
| 倍频 | 第 \(n\) 倍频为 \(n F\)。 因预设倍频数为 5 ,也就是基频线除外有 5 条倍频线,因此最高倍频为 \(6 F\)。 |
\(\times\)1(基频)\(\times\) 2(第二倍频)\(\times\) 3(第三倍频)… \(\times\) 6(第六倍频) |
| 次频 | 第 \(n\) 次频为 \(F/n\)。 因预设次频数为 5 ,也就是基频线除外有 5 条次频线,因此最小次频为 \(F/6\)。 |
\(\times\)1(基频)\(\times\) 1/2(第二次频)\(\times\) 1/3(第三次频)… \(\times\) 1/6(第六次频) |
| 边频 | 第 \(n\) 边频为 \(F \pm n \Delta\), \(\Delta\) 为边频间隔(interval)。 因预设边频数为 5 ,也就是基频除外有正负各 5 条边频线,因此最高边频为 \(F \pm 5 \Delta\)。 |
+5\(\Delta\)(第五边频)… +1\(\Delta\)(第一边频)\(\times\) 1(基频)-1\(\Delta\)(第一边频)… -5\(\Delta\)(第五边频) |
| 分频 | 将 \(F\) 等分为 \(N\) 份,第 \(n\) 分频为 \((N-n+1)/N F\);亦可视为倍频的相反,即十字交点频率为第 N 倍频 \(F_N\),而基频则为 \(F_N / N\)。 | \(\times\)6/6(基频/第六倍频)\(\times\) 5/6(第一分频/第五倍频)… \(\times\) 2/6(第五分频/第一倍频)\(\times\) 1/6(第六分频/基频) |
动态倍频线模式
除了使用【Coordinate Values 对话窗】设定倍频线之外,Visual Signal 还提供了另一种更直觉的方式。Viewer 在显示频谱资讯时可以在【显示数值】模式中进入「动态倍频线模式」,动态显示以十字交点之频率为基频之所有倍频线,并随着十字交点移动。此时选好基频的位置,再按下滑鼠左键则会固定倍频线,此时功能等同上述在 Frequency Guidelines 对话窗中选择同类别的倍频线。以下详细说明操作方法。
当第一次在频谱图中进入显示数值模式时,会自动出现一个提示窗,显示可用的控制键:

提示视窗会在十秒後自动消失。如要再开启,可按「?」键。以下详细解说各控制键:
| 切换键 | 功能 | 说明 |
|---|---|---|
| ? | 提示视窗 | 开启/关闭上图之提示视窗。 |
| X | 关闭 Viewer 倍频线 | 关闭 Viewer 中设定好之倍频线。 |
| H | 倍频 | 开启/关闭倍频线。基频 \(F\) 为十字交点之频率。 |
| U | 次频 | 开启/关闭次频线。基频 \(F\) 为十字交点之频率。 |
| S | 边频 | 开启/关闭边频线。基频 \(F\) 为十字交点之频率。 |
| F | 分频 (第 N 倍频) |
开启/关闭分频线。基频 \(F\) 为十字交点之频率(或十字交点为第 N 倍频,基频为 \(F/N\))。 |
| 滑鼠滚轮 | 控制频率线数目 | 滚轮向上递增频率线数目,向下则递减。 |
| Shift+滚轮 | 控制边频间隔 | Shift+滚轮向上递增间隔 \(\Delta\),向下则递减。预设 \(\Delta = F/10\)。 |
| Alt-Shift + 滚轮 | 控制边频间隔 | Alt+Shift+滚轮向上间隔加 10,向下则减 10。 |
| Ctrl + 滚轮 | 控制偏移 | Ctrl+滚轮向上时递增偏移量 \(m\),向下则递减。偏移量为十字交点向基频左或右侧移至第 \(m\) 条倍频线:
|
按下倍频类别的切换键(H丶U丶S丶或 F)即可开启倍频线。下图以「倍频」(H)为例:

可以看到以十字交点为基频,另外又画了预设之 5 条与十字线不同颜色之倍频线。这些线会跟着十字交点移动,方便使用者根据频谱内容对齐倍频。十字交点之标签内容会增加倍频资讯,不同倍频模式下十字交点的标签所显示的资讯也不同,如下表(参数皆为预设值):
| 倍频模式 | 标签格式中之倍频资讯 | 备注 |
|---|---|---|
| 倍频 | \(\times\) 偏移时:
|
显示目前设定之最高倍频。 因预设倍频数为 5 ,也就是基频线除外有 5 条倍频线,因此最高倍频为六倍基频(\(\times\) |
| 次频 | \(\times\) 偏移时:
|
显示目前设定之最小次频。 因预设次频数为 5 ,也就是基频线除外有 5 条次频线,因此最小次频为 \(1/6\) 基频(\(\times\) |
| 边频 |
偏移时:
|
显示目前设定之边频数以及边频间隔。 |
| 分频 | \(\times\) 偏移时:
|
显示目前设定之最小分频。 因预设分频数为 5 ,也就是基频线除外有 5 条分频线,因此最小分频为 \(1/6\) 基频(\(\times\) |
【Time-Frequency Viewer】也有同样功能,依照所显示的二维资讯类别,所显示的倍频线会有不同的方向:
正常的时频图(即 Y 轴为频率轴)— 水平倍频线,如下图:

Viewer 元件中对应的参数栏位如下图:

经过【Transpose Spectra】的时频图(X 轴为频率轴)— 垂直倍频线,如下图:

Viewer 元件中对应的参数栏位如下图:

【Secogram】(X丶Y 轴皆为频率轴)— 可重复按下同一个倍频模式的切换键(H丶U丶 S丶或 F)依次切换「X 轴垂直线」\(\to\)「Y 轴水平线」\(\to\)「关闭」,如下图:


Viewer 元件中对应的参数栏位如下图:

2.2 播放功能
若【Channel Viewer】绘出的资料为音源讯号,则在图面的右上角可以见到播放功能状态图示
(一开始为停止拨放状态),如下图:

点击
则打开拨放功能控制项,如下图:

下表说明控制项中各图示功能:
| 图示 | 说明 |
|---|---|
/![]() |
播放状态指示灯。 |
![]() |
为重复播放键,勾选後讯号会重复播放。 |
![]() |
为开始键,按下後即可开始播放音源资料。 |
![]() |
为暂停键,开始播放後可以使用此键暂时停止播放。 |
![]() |
为停止键,开始播放後可用此键中止播放程序。 |
在【Channel Viewer】中可利用
的功能取一时段,拨放时则只会拨放该时段的音频资料。拨放音频时,会有一条红色的拨放线随着拨放时间进行在资料上卷动,如下图:

若【TF Viewer】绘出的时频资料之时间轴不是时间日期轴,单位为秒,然後频率轴最高频率在 192KHz 以下,则也有同样播放的功能。【TF Viewer】还有额外的功能,即可利用
丶
丶
功能取任何时段及频段来拨放,频段以外的资讯则会经过内建的滤波器滤掉。此功能可让使用者快速的检视聆听特定频段资讯而不必连接滤波器元件重新计算。下图示范使用
将 Pink Noise 的时频图取一段 1 秒 200 ~ 400 Hz 的音频来拨放:


2.3 功能控制
Visual Signal 拥有控制图形各项功能的的工具,当滑鼠移至每张图的上缘,就会出现一组控制项,这组控制项包括多个功能:选择丶移动丶同步/群组丶最大化丶关闭。以下章节详细说明各项功能。
2.3.1 图形选择
由主选单或工具列执行【复制图至剪贴簿】与【汇出图至档案】功能时,预设行为是复制或是汇出绘图视窗中列出之所有图。Visual Signal 提供两种方法可以选择一个或多个欲输出之图形。
图形选择核取方块(Checkbox)
如本章节【功能控制】开头所述,每张图上缘的控制项中有一个图形选择核取方块(Checkbox),如将滑鼠游标移至核取方块上停留数秒,则会出现一说明方块,如下图:

将之核取(打勾)之後则如下图:

控制项缩回图左缘後会留下一个打勾的标记,表示该图已被选择,如下图:

当有一个或多个图形被选择後,只有被选择的图才会被复制或汇出。如果再用控制项将所有被选择的图之核取方块清除後,则又会开始复制或汇出所有的图。
此外,按下 Esc 键也可以清除绘图区中所有被选择的图。
滑鼠左键点选
Visual Signal 还提供另一种更直觉的方式使用滑鼠点选/清除欲复制或汇出的图形。
如说明方块所述,使用滑鼠点选图形有以下两种模式:
单图切换点选/清除
按下 Ctrl 键不放,同时使用滑鼠左键点击欲选择之图任何一处,则等同上述使用核取方块,可切换该图被选择或清除选择的状态。选择後图之左上角会显示打勾图示。下图示范勾远图二(IMF_h2)丶图五(IMF_h5)丶图七(IMF_h7):

同上,按下 Esc 键也可以直接清除绘图区中所有被选择的图。
区块选择
如果想要选择一连串的图(以下称为区块),则必须设定区块的「起始」与「结束」;
设定区块起始有以下三种方法:
任何时候使用如上述使用 Ctrl + 滑鼠左键点选的方式选择/清除图时,该图则会被设定为区块起始。
第一次使用滑鼠左键点选方式选择图时,按下 Shift 不放用滑鼠左键点选图,则该图会被设定为区块起始。
按下 Esc 键清除所有选择後,使用 Shift + 滑鼠左键点选图,则该图会被设定为区块起始。
区块起始设定好後,接下来用 Shift + 滑鼠左键点选任何图则会将该图设定为区块结束(不分前後顺序),直到区块起始被上述三种方式之一重设。设定好区块起始与结束後,区块内所有的图都会被选取,并清除区块以外所有图的选取状态。因此,如欲选择一个区块的图加上零星其他个别的图,则必须先选择区块再用 Ctrl + 点选选择其他图。
下图示范在图二(IMF_h2)设定区块起始:

下图示范在图六(IMF_h6)设定区块结束,勾选图二~图六所有的图:

2.3.2 移动图形
Visual Signal 提供两种方法可以改变图的顺序。第一种方法是在 Viewer 的参数栏位里面改变 ListOrder 参数,绘图区会依照各图 List Order 参数里面设定的数目大小排序。详情请看【绘图元件】章节。
其二如本章节【功能控制】开头所提,每张图上缘的控制项中有一个四方箭头图示! Move,使用者把游标置於
并按下滑鼠左键,往上或往下拉就能使图向上或者向下移动,改变图的上下顺序,见下图:
![]()
往下移图时,将移动图之上缘移至别图的范围内,则会将移动图插入该图之下,也就是说会代替该图的位置,将之上推。下图示范将图二(图标题含 IMF_h2)向下移至图四(IMF_h4)范围内:

放掉滑鼠左键後,图二则插入图四与与图五(IMF_h5)之间,如下图;

往上移图时,将移动图之上缘移至别图的范围内,则会将移动图插入该图之上,也就是说会代替该图的位置,将之下推。呈上图状态,下图示范将图二(IMF_h2)向上移至图二(IMF_h3)范围内:

放掉滑鼠左键後,图二则插入图一(IMF_h1)与图三之间;

2.3.3 同步与群组功能
作讯号分析时,常会有多张图需要在同一个范围缩放或者同时平移的情况。控制项上提供了同步的工具,可以完成这样的操作行为,如下图:

一开始是「No Sync」状态,表示该图并未与其他图同步(未在任何同步群组中)。首先将此下拉选单打开,如下图:

选择欲同步的轴,例如 X 轴,则控制项会多出一个群组的选项,如下图:

可设定任何群组编号,或是使用预设之编号(1),表示该图的 X 轴会与其他设定同组图的 X 轴同步。当控制项缩回图形左缘後,图左上角会有一个标签显示该图的同步状态与群组编号,方便使用者检视每个图形的同步群组设定,如下图:

若是在设定时出现任何错误,例如尝试在同一群组内同步不同的轴,则群组内所有图的标签都会以反白显示,如下图:

下图示范将图一(IMF_h1)与图三(IMF_h3)设定为同步 X 轴第一群组,如下图:

此时图一将与图三之 X 轴连动。例如使用
功能将图一的 X 轴放大 0.17 秒至 0.51 秒的区间时:

图三的 X 轴也会同步放大至相同的范围,如下图:

若使用
Pan X 功能也一样会对群组下所有的图连动 X 轴。由於同步的设定是X 轴,因此若图二用工具
Zoom Y 放大 Y 轴,同群组下的其它绘图并不会连动放大。Sync Y 与 Sync XY 分别为连动 Y 轴与连动 XY 矩型区域,在操作上与 Sync X 相同。
同步限制
同群组内图之 X 或 Y 轴的范围丶取样率等参数不相同时,同步缩放或平移时会取可以同步的部分尽量满足使用者的需求。但如果 X 或 Y 轴的型态差异太大,例如一个轴是时间日期轴,另一个轴是数字轴,则将无法同步放大丶缩小等,此时会取消同一个群组中无法同步的 Viewer,例如下图,【TF Viewer】的Y 轴型态(频率轴)不同於上面两个【Channel Viewer】 的 Y 轴(无单位数字轴),在设定好同步群组後尝试放大或平移时会出现错误讯息,并自动被取消群组。

同步显示数值模式
在一张图上进入前述之【显示数值】
模式下,其他同步群组内的图也会同步显示十字线及数值标签,并会同步随着滑鼠移动。下图示范三张同步 X 轴的图,在图一开启显示数值功能,可见图二也同步显示数值:

如上图所示,图三虽然也同步 X 轴,并在同一群组内,但是并未显示数值。这是因为十字线在前两图【[Channel Value]】中真正随着滑鼠移动的只有 X 轴,Y 轴的横线只是随着资料点数值在动,所以传到图三【TF Viewer】时并无 Y 轴的移动资讯所以无法显示。如果是反过来的情况,滑鼠移到图三上显示数值,这时十字游标的 XY 轴都随着滑鼠在移动,因此其他二张 Channel Viewer 的图可以接收其中 X 轴的资讯,便可以同步显示十字线,如下图:

同步显示拨放时间线
在一张图上使用前述之【播放功能】播放音频讯号时,其他同步 X 轴群组内的图也会同时显示滚动的时间线,如下图:

2.3.4 图形大小控制
Visual Signal 提供两种方法可以改变图的大小。第一种方法是在 Viewer 的参数栏位里面修改 ViewerWidth 与 ViewerHeight 参数,详情请看【绘图元件】章节。
第二种方法是在 Preference 里面修改 Plot Width 与 Plot Height 偏好,这里改的是 Viewer 的预设大小,改动後,所有还是预设大小的 Viewer (即尚未改动 ViewerWidth 以及 ViewerHeight 参数)会自动改成偏好设定的大小,详情请看【Preference】章节。
图形大小控制
第三种方法如本章节【功能控制】开头所提,每张图右侧丶下侧丶及右下角有图形大小控制,如下图;

将滑鼠游标移动到控制上方,游标会换成 Resize 的箭头,如下图:

此时按住滑鼠左键不放,开始移动滑鼠,便可改变图的大小。右侧的控制只改变图形长度(水平大小),下侧的控制只改变图形宽度(垂直大小),右下角的控制则可同时改变图形长宽。下图示范修改图二(IMF_h2)大小:

放开滑鼠後图的大小便会固定,该图下方的图会自动下移挪出空位,如下图:

同时,图的大小会自动设定在 ViewerWidth 与 ViewerHeight 参数中,等同手动修改这两个参数,如下图:

图形最大化按钮
第四种方法如本章节【功能控制】开头所提,每张图上缘的控制项中有一个按钮
,如下图:

点击此按钮便可将图形最大化,如下图;

如上图,在此最大化状态时图形会占用整个绘图区,同时暂时关闭介面右侧的元件编辑区及参数栏位。此时所有的图形操作(放大丶平移丶数值显示十字游标丶量测模式丶倍频模式等)都可正常使用。不过此最大化是暂时的状态,并不影响 Viewer 的 ViewerWidth 与 ViewerHeight 参数设定。此时原来的
按钮会变成
,点击该按钮便可将图形恢复原来大小。
最後,在图形上缘双击两次也可以切换图形的最大化与正常模式,功能等同点击单次
或
按键。
图形最小化(关闭)按钮
控制项最右方还有一个按钮
。按下此按钮可关闭图形,等同用相关 Viewer元件的【控制开关】将该元件关闭(Disable)。重开图形的唯一方法为用 Viewer 元件的【控制开关】重新开启(Enable)该元件。
3 模组元件(Component )
在元件编辑视窗中点击右键会跳出模组元件的功能选单,所有模组元件都必须由此选单中叫出。模组依照功能与运算内容细分为六大类,分别是 Compute 计算群组丶Conversion转换群组丶External 外挂模组丶Source 讯号源群组丶Viewer 展示群组与 Writer 资料输出群组等,其中 Compute 计算群组下又依照计算方法细分为 Channel丶Filter丶 Mathematics丶TFA丶Transform 等模组以及外挂的特殊模组(DAQ丶SVM 等模组)。除了元件选单之外,功能选单还有巨集丶连结丶还原与重做丶以及剪贴簿等选项,以下分别详细说明。

3.1 模组元件种类
3.1.1 Compute

本群组下模组元件的颜色为粉红色,可对输入讯号提供不同的讯号处理方法与运算, Channel针对输入之多通道讯号作资料截取丶改变取样频率方面的处理;Filter提供多种滤波器;Math 提供多种数学运算模组;Statistics的内容包括基本的统计运算模组; Transform中包含数值讯号处理常见的分析转换方法;TFA则为时频分析运算,详细各种模组介绍请参阅 Chapter 3。
3.1.2 Conversion

本群组提供讯号的格式转换,譬如实数丶复数换算,转换为声音档,时序讯号时间单位换算等。模组元件的颜色均为棕色。
3.1.3 External

本群组提供 Visual Signal 内建的自定义函式范例,主要利用External Dll / External Viewer。详细介绍可参阅 External。
3.1.4 Source

本群组提供正弦波丶方波丶三角波丶杂讯(Noise)以及自订波型产生器等不同的讯号源模组。模组元件的颜色为绿色。
3.1.5 Viewer

本群组对於不同的讯号处理运算(如统计丶频率域转换丶时频分析的结果等),提供相对应的绘图展示模组,以图形呈现结果。模组元件的颜色为黄色。
3.1.6 Writer

本群组提供将讯号资料与频率分析之运算结果输出为不同格式之文字档的方法,模组元件的颜色为蓝色。
3.2 元件图示组成
元件组成单元如下图所示,以下章节说明各单元之功用。

3.2.1 输入埠
功能为接收资料进入元件。上图为 EMD 模组元件图示,元件左边蓝色三角形是模组输入埠,接收其它的模组输出资料,输入埠数量可能因不同模组之需求而有所不同,譬如 Merge To Complex 模组有两个输入埠。
3.2.2 输出埠
元件右边红色三角形为输出埠,是将 EMD计算结果输出的位置,需注意只要有输出埠的模组,都只有一个输出埠,不过可将一个输出讯号资料连至多个模组元件作为输入讯号。输入与输出埠在图示上的位置都可以在模组的 Properties/Module 中调整,如下图 InputPortSide 调整为 Top,元件的输入埠就移至元件顶位置。


3.2.3 元件名称
图示上的文字 EMD 显示此模组的名称,也可以在 Properties/Name 栏自行设定,直接在 Name 後方栏位键入,即可改变模组元件上的文字,如下图。


3.2.4 控制与运算更新状态
文字左边的橘色方块是控制该模组输入及输出资料的开关,预设橘色代表打开,若滑鼠再点击一次则关闭此模组,橘色方块会变成底色(如下图之 EMD 元件),此时模组将不会接受资料并进行计算,且也没有结果输出,输出埠後方所连接的模组将无法计算,於此模组後方的连接线也会变成虚线。

文字下方蓝色的横条代表模组元件运算过程的更新状态,在计算过程中,若资料尚未传至此模组,则计算进度为 0,如左下图蓝色条是空的。当该模组开始计算後,如右下图蓝条会随计算进度增加。

如果模组操作视窗中的自动更新 Auto 被取消勾选,然後变更模组参数,此模组元件与连接在它後方的所有模组元件之底部会变为青色的底线,提醒使用者这些元件计算结果将会有所更动。

3.2.5 元件警告表示
当模组元件输入的讯号资料不完备,或是是运算发生问题,但是运算仍可以正常结束时,在元件的橘色方块上会产生黄色三角号志,若将鼠标移至三角警告号志则可进一步观看详细的警告讯息,使用者可以依此判断运算结果是否可被接受。

3.2.6 元件错误表示
当模组元件接收埠没有资料传入,或是输入的讯号资料不完备,甚至是运算发生问题时,在元件的橘色方块上会产生红色惊叹号,若将鼠标移至红色惊叹号则可进一步观看详细的错误讯息,以提醒使用者该元件的接收埠或者在或算过程中有问题产生。

3.2.7 复制警告或错误讯息
将鼠标移至警告或是错误号志上出现的讯息属於 ToolTip 讯息,滑鼠移开就就会消失,原则上是无法复制内容的。如欲复制讯息内容,可以在警告或错误号志上双击滑鼠左键,则会出现含有警告或错误讯息内容的黄底小视窗,可以用滑鼠选标内容文字再用 CTRL-C 将其复制。

3.2.8 模组元件输出入模式
模组元件之接收丶输出模式会因模组本身之功能而异,主要区分为单方向输出丶单方向接收丶与输出入兼备等三种模式:
| 元件输出入模式 | 说明 |
|---|---|
| 单方向输出模组 | 此类模组仅有输出埠,如讯号源 Source 下的模组与 Viewer 下之 Annotation 模组均是输出模组。 ![]() |
| 单方向输入模组 | 此类模组仅有输入埠,不需要输出,如 Viewer 下的模组与 Writer 下的模组。 ![]() |
| 输出入兼备模组 | 只要与运算过程相关的模组都必须能够接收资料与输出运算结果,因此如Compute 下的所有模组,与 Conversion 下之所有模组都备输入埠与输出埠。 ![]() |
3.3 元件选取状态(Select)
下图为简单的讯号处理流程,我们可以由模组元件的视觉变化判断模组被选取的状态,在 Network 中突起的方块代表没有被选取,如图中的 Sine丶HSPEC丶Channel Viewer丶 Time-Frequency Viewer等模组,而被按下的方块代表被选取的模组,如图的 EMD 模组,此时 Properties的内容即为 EMD 模组的参数。

3.3.1 选取元件
选取元件有两种方式,第一种方式为直接在欲选取的元件图示上用滑鼠左键点击。如欲选择多个元件,可以在点击时同时按住 CTRL 或 SHIFT 键。
第二种方式为圈选方式,元件编辑区在选择框模式下用滑鼠左键拖曳方式框选欲选取之元件(详情请参考【选择框模式】章节)。此方法可以方便一次选取一个或多个元件。
3.3.2 输出讯号分支
选取元件後,除了被选取元件会显示按下状态之外,其输出连结分支的所有元件都会以灰色框标示出来,如上图 MultiplyView 元件所示。
3.3.3 取消选取元件
欲取消选取元件有两种方式,第一种方式为在元件编辑区空白处用滑鼠左键点击一下即可取消所有被选取元件。如欲在众多被选取元件中取消个别元件,则可以用第二种方式,按住CTRL 或 SHIFT 键的同时用滑鼠左键点击欲取消之元件。
3.3.4 移动元件
如欲移动元件在元件编辑区内的位置,可以直接在任何元件图示上用滑鼠左键按住拖曳。如果被移动的元件是未选取之元件,则只有该元件移动位置。如果被移动的元件是多个被选取的元件之一,则所有被选取的元件会一起移动。
3.4 元件连线状态(Connect)
简单说使用 Visual Signal 分析就像是在画讯号处理的流程图,Visual Signal已经准备好了各种讯号处理的方法,使用者仅需要呼叫出这些方法,并且连接它们,便能够以简单的步骤实现复杂的讯号分析。
3.4.1 元件连接线建立方式
建立模组元件之间的连线有几种方式:新增元件时自动连线丶手动以拖拉的方式连接两元件间的输出及输入埠丶以及设定连线起讫方式。方法详细说明如下。
新增元件时自动连线
如下图,欲在 Sine 元件後面接上一个 EMD 元件,可在 Sine 元件图示上按滑鼠右键,叫出元件功能选单,在选单中点选要连接的 EMD 元件(在 Compute/HHT 分类中),如此在新增模组的同时,会自动从 Sine 元件的输出埠建立连接线至 EMD 的输入埠。

上述做法的好处是,在模组功能选单出现时,程式会侦测各元件之输入资料格式限制,自动判断将资料格式不符的元件功能反白。以下图为例,因为 Sine 元件的输出是讯号,而非时频分析结果,因此在 Viewer 下的 Time-Frequency Viewer 会自动的反白且无法选取,避免模组元件之间连接错误的机会发生。

手动拖拉连线
使用者也可先行建立需要的元件,再以滑鼠直接拖曳建立连接线。如下图已经在元件编译区建立了Sine 与 Mixer 元件。先点选 Sine 模组元件输出埠(红色三角型处),再拖拉至下个元件 Mixer 的输入埠(蓝色三角型处),即可成功建立连接线。

上述作法的优点是十分直觉,藉由输入丶输出埠之间的拖拉即可建立连线,缺点为可能造成输入资料格式不符该元件要求的状况,若出现上述状况,程式出现错误讯息提醒使用者连线发生错误。

设定连线起讫
第三种方法是直接设定连线的起讫元件,方法如下。首先选择一个或多个元件,在其中一个元件图示上用滑鼠右键叫出选单选择 Connect (或按下 ALT-C 键)设定选则的元件为连接起点,如下图范例一次设定三个连线起点:

设定後,该元件图示的周围会出现红色的虚线框,表示该元件已设定为连线起点元件,若要取消连线起点设定,则在空白处用滑鼠右键叫出选单,选取原先 Connect 选项变成的 Cancel Connect 选项,如下图:

接着再另选一个或多个元件,用样在元件图示上用右键叫出选单选择 Connect (或按下 ALT-C 键)设定连接讫点,如下图范例一次设定两个连线讫点:

如此可将由设定的连线起点元件的输出埠建立连线至设定的连线讫点元件的输入埠,如下图:

上述做法有两个好处:一如上图所示可以快速在多个元件之间建立连线,一则可以在复杂的大型专案中在距离较远(例如需要卷动元件编辑区)的元件之间简便建立连线而不需要用滑鼠拖拉并同时卷动元件编辑区。
注意,此方法也可以不用事先选取元件,直接在任一元件上用右键选单使用 Connect 选项设定起讫元件,但是这样就只能选择一个连线起点元件与一个连线讫点元件,而且因为没有选取的目标元件而无法使用键盘热键 ALT-C。
3.4.2 元件连接线删除方式
删除元件连接线目前只有一种方式,即利用滑鼠点选元件之输入埠,反向拖拉连接线至前一元件的输出埠,即可删除连接线。

3.4.3 元件连接线状态表示
各模组元件间的连接线,会按照不同颜色丶不同类型(实线丶虚线丶宽实线)来表示各模组元件间使用丶执行的状态,各类型详见下表说明。
| 线条颜色 | 对应资料格式说明 |
|---|---|
蓝色 ![]() |
实数形态的讯号 |
紫色 ![]() |
复数形态的讯号 |
红色 ![]() |
时频分析结果的讯号 |
黑色 ![]() |
矩阵形式的讯号 |
米色 ![]() |
注解(Annotation)元件的连接线 |
| 线条型态 | 对应资料格式说明 |
|---|---|
实线(细) ![]() |
单通道讯号格式(Single-Channel) |
实线(宽) ![]() |
多通道讯号格式(Multi-Channel) 与时频分析结果(Spectra) |
虚线 ![]() |
尚未执行计算,或模组没有 输出运算结果(Unavailable) |
3.5 元件操作还原与重做(Undo/Redo)
除了参数设定之外,元件在元件编辑区上大多数的操作都可以还原(Undo)以及重做( Redo),以下归纳出可还原的元件操作:
如【元件编辑区】所述,还原与重做的操作有两种方式:一为在元件编辑区空白处按下滑鼠右键叫出元件功能选单选择上面的 Undo/Redo 选项,或是用键盘热键CTRL-Z/Y,如下图:

还原与重做利用了堆叠器(Stack)的概念,可以想像有两个堆叠器:一个储存曾经做过的元件操作,可用来还原,另一个储存曾经还原过的元件操作,可用来重做。每个专案都有其专属的两个堆叠器,因此各专案可以独立个别进行还原与重做。以下说明这两种机制。
3.5.1 还原机制
当进行了上面表格某一项元件操作时,该操作以及其操作的参数(以移动元件为例,移动的元件名称以及移动起讫位置)会被推入(push)还原堆叠器上,当使用者执行「还原」时,以先入後出的顺序(即最近执行的操作会先被还原)将还原堆叠器上储存的操作弹出(pop),并用一起存入之操作参数反执行其操作,使其还原为执行操作前之状态,如下:
| 元件操作 | 操作参数 | 还原後状态 |
|---|---|---|
| 新增元件 |
|
|
| 删除元件 |
|
|
| 移动元件 |
|
还原元件的位置 |
| 新增连线 | 连线起讫元件名称 | 删除连线 |
| 删除连线 | 连线起讫元件名称 | 加回删除之连线 |
3.5.2 重做机制
当一个操作被还原後,该操作以及操作参数则会被推入重做堆叠器上,当使用者执行「重做时,以先入後出的顺序(即最近执行的还原会先被重做)将重做堆叠器上储存的操作弹出,并用一起存入之操作参数执行该操作,如下:
| 元件操作 | 还原後状态 | 重做後状态 |
|---|---|---|
| 新增元件 |
|
|
| 删除元件 |
|
|
| 移动元件 | 还原元件的位置 | 再移动元件 |
| 新增连线 | 删除连线 | 再增回连线 |
| 删除连线 | 加回删除之连线 | 再删除连线 |
3.5.3 还原重做案例
以下说明一系列还原及重做的范例。首先在元件编辑区空白处用滑鼠右键叫出选单新增两个 Source 分类下的内建讯号源元件 Noise 及 Sine,如下图:

此时可以试着用还原功能(选单或是按下 CTRL-Z)两次,让元件编辑区回到尚未新增元件的空白状态,接着再用重做功能(选单或是按下 CTRL-Y)两次将两个讯号源元件叫回来。以下每一个步骤都可以如此操作。
接着用工具列上的自动生图功能产生两个 Viewer 元件以及相关连接线,如下图:

因为用了自动生图功能同时新增两个元件及连接线,此时尝试用还原或重做功能时,会发现只需执行一次就可以还原或重做。如果是用正常方式(即在 Noise 及Sine 元件图示上用滑鼠右键叫出选单新增 Viewer 分类下的 Channel Viewer 元件),则需要执行两次还原及两次重做才能完全还原新增或重做这两个 Viewer 以及其相关连接线。
接下来在元件编辑区空白处用滑鼠右键叫出选单新增一个 Compute/Mathematics 分类下的 Mixer 元件,如下图:

然後再将两个讯号源连接到 Mixer,如下图:

连接时可用手动拖拉连线方式,即用滑鼠将讯号源输出埠分别拉出连接线拖曳到 Mixer 的输入埠,此时则跟上述用正常方式新增绘图元件一样,因为分两次操作,所以做两次还原及两次重做才能完全还原或重做新增连接线。
连接时也可以用设定连线起讫方式,用滑鼠先框选两个讯号源,再其中一个元件图示上用滑鼠右键叫出选单选择 Connect(或按下 ALT-C 键)设定框选的两个讯号源为连接起点,然後在 Mixer 元件图示上再用右键叫出选单选择 Connect (或按下 ALT-C 键)设定连接讫点,将两个讯号源同时连接到 Mixer。因为只有一次操作,所以只需做一次还原及重做就能完全还原或重做新增连接线。
接着再新增一个 Viewer 元件,如下图:

用框选或 CTRL 或 SHIFT 复选元件的方式选择 Mixer 及三个 Viewer,如下图:

用滑鼠移动被选元件其中一个元件图示,所有被选的元件会一起跟着移动,如下图:

此时执行一次还原功能时会发现四个被移动的元件会一起回到原来位置,再执行一次重做功能则会回到移动後的位置。如果连续执行还原功能,则元件编辑区会依次回到之前的状态,直到回到完全空白的起始状态。此时连续执行重做功能,则元件编辑区会依次回到还原之前的状态,直到回到上图的最终状态。如果在连续还原的中途又进行新的操作,则重做用的堆叠器会清空(也就是之前还原的操作无法再重做),而还原用的堆叠器则会从最後一次还原开始推入新操作,使用者可以还原新操作以及之前的操作。
3.6 元件剪贴簿(Clipboard)
Visual Signal 设有一个剪贴簿,可以将各专案的元件编辑区内一个或多个元件执行复制丶贴上丶剪下丶删除等操作。以下详细说明操作方法。
3.6.1 复制(Copy)
在任一元件图示上,或是在一组选取元件(一个或多个)中的任一元件图示上使用滑鼠右键元件功能选单选取 Copy 选项(或是按下 CTRL-C),如下图:

目标元件则会连同元件参数一起存入剪贴簿。剪贴簿的内容会一直保存,直到下一个复制或剪下的操作将内容盖过,或是 Visual Signal 关闭。
3.6.2 贴上(Paste)
贴上功能将存在剪贴簿的一个或多个元件重新加入元件编辑区内,保留复制时选取元件的所有参数。操作方法为在元件编辑区空白处用滑鼠右键选单执行 Paste(或按下 CTRL-Z ),如下图:

剪贴簿内部储存形式与【巨集】相同,因此贴上的元件名称後面跟巨集一样都会加上「_m」的字样,防止贴上元件名称与现有元件名称重复,如下图:

剪贴簿的内容会一直保存,因此可以重复执行贴上(复制元件名称後的「_m」会增加数字防止重复),而且因为 Visual Signal 只有一个剪贴簿,所以在一个专案中复制或剪下的元件可以在另一个专案贴上,如下图:

前章所述之【还原与重做】功能支援上述贴上元件的操作(等同新增元件)。
3.6.3 剪下(Cut)
剪下功能与复制一样将一个或多个元件存入剪贴簿。不同之处在於存入剪贴簿後之後会将目标元件删除。前述之【还原与重做】功能支援剪下元件的操作(等同移除元件)。还原回来的元件跟贴上的元件不同,元件名称为原始名称,不会加上「 _m」字样。
3.6.4 删除(Delete)
顾名思义,删除功能直接删除元件,剪贴簿内容不受影响。换句话说,如果先复制或剪下一组元件,然後再删除另一组元件,用贴上时会仍然会贴上之前复制或剪下的元件。欲救回删除的元件只能使用前述的【还原】功能。
3.7 巨集(Macro)*
*Only in Professional*
将元件编译区中的讯号处理程序建立巨集,在不同专案中快速建立同样的程序。
说明
巨集(Macro) 主要用於储存标准化之讯号处理流程,日後在应用上无需重新设定流程。
Macro 跟 Project 档其实都是 .vsn 档,是一样的东西,只是用 Load Project 读取.vsn 档时,会新开启一个 Project,而用 Load Macro 读取 .vsn 档,则会在目前的 Project 下汇入 Macro 所储存的运算程序。
范例
讯号之复杂度分析 :
在此欲检测杂讯的分析,运算流程如下图所示。

现在想将此运算流程储存起来,但不储存资料,就要在主画面的下拉式选单 File 下选择 Save Macro,以巨集储存(存档前先将欲分析之讯号资料删除,仅留存运算流程),巨集名称取作
testMacro。


现在新增一个专案,新增讯号源为 Source / Square Wave,於 Square 图示上按右键点选 Macros (或於主选单 File 下选择 Load Macro),就可看到刚储存的巨集名称。


须注意不论专案存在那个目录,若巨集皆是存在 Visual Signal 安装目录下的 Macros 资料夹下,此巨集就会出现在 Network 的选单中。
如此设定仍有些许不便;当汇入 Macro 时,仍须把资料连接到不同的模组上,如此之连结线有可能非常多,为解决此问题,可用 Dup 做为 Macro 接口,以後汇入 Macro 时只需将资料联接到 Dup 後即可(如下图)。

上述范例为很简单的示范,通常应用 Macro 的程序都十分繁杂,程式内部就预设了几个 Macro,以其中的 HHT_SplitView 为例,此巨集内容是将讯号做 EMD 後,再把每一个计算出的 IMF 都单独画出来。


若需要在不同的 Network 重复建立如上图的运算流程将浪费不少时间,将这些常用的运算储存为 Macro 可大幅提升操作之便利性。
相关指令
3.8 滚动窗计算(Rolling Window)
多数计算元件具有滚动窗计算的功能,即将输入讯号切割为多个「计算窗」,每个计算窗算出一个数值後再将所有数值组合成输出资料。也可以视为用一个计算窗由左到右滚动,每移动到一个位置即计算出一个输出资料的数值点。下图示意一个大小为 5 个资料点的计算窗,滚动计算 RMS 值,每次移动 3 个点(即计算窗之间重叠量为 2 个点):

目前支援滚动窗计算之计算元件详列於本章节之「相关指令」一栏中。
参数设定
如果该计算元件支援滚动窗计算,则计算窗模式丶大小丶重叠等参数统一可以在该计算元件参数栏中的「Rolling Window」分类中设定,如下图:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Window Mode | 设定计算窗模式,可选择:
|
Leading |
| Include All Data | 设定「True」时,也包含计算窗不完整时(例如在资料边缘)的计算,否则只采用完整的计算窗,见後述。 | False |
| Use Time Unit | 设定「True」时,计算窗大小与重叠量的设定单位为时间,否则为资料点数。 | False |
| Window | 设定计算窗大小 | 输入资料长度 / 10 |
| Overlap | 计算窗重叠量 | 0 |
以下说明计算窗模式(Window Mode)选项:
| 计算窗模式 | 说明 |
|---|---|
| Leading | 计算窗在(包含)参考资料点的前(即右)方,如下图:
|
| Centered | 参考资料点在计算窗的中央,如下图:
|
| Trailing | 计算窗在(包含)参考资料点的後(即左)方,如下图:
|
当计算窗在资料边缘时,计算窗的一部分有可能会在资料范围之外,形成不完整的计算窗。不同计算窗模式会有不同的不完整形式:
| 计算窗模式 | 资料左边缘 | 资料右边缘 |
|---|---|---|
| Leading | 完整 | 不完整;参考资料点为最後一点时计算窗只有一个点 |
| Centered | 不完整;参考资料点为第一点时计算窗为右半窗 | 不完整;参考资料点为最後一点时计算窗为左半窗 |
| Trailing | 不完整;参考资料点为第一点时计算窗只有一个点 | 完整 |
参数 Include All Data 可控制是否要采用资料边缘不完整的计算窗,或是只采用边缘以完整的计算窗。采用不完整的计算窗时,即便计算窗只有一个点也会加入计算,因此可能会在特定的计算中因为点数过少而造成错误,必须注意。
当 Include All Data 设为 False,选择只采用完整的计算窗时,计算元件会显示警告讯息,表示在资料的前後边缘有多少因为计算窗不完整而未加入计算的资料点,如下图(以 RMS 为例):

计算窗的大小与移动范围可由 Window 及 Overlap 参数设定,当 Use Time Unit 为False 时单位为资料点数,为 True 时单位则为时间,计算时会自动换算为对应的资料点数。下图示范 Window 及 Overlap 的概念;

可以看到本图中 计算窗大小(Window)为 7 个资料点,每次移动(Skip)4 个资料点,即计算窗之间的重叠(Overlap)为 3 个资料点。重叠量预设为 0,也就是说此时计算窗每次跳一整个计算窗的范围,计算窗之间没有重叠。
范例
请参阅各支援滚动窗计算之计算元件(详列於以下「相关指令」)章节中的范例。
相关指令
Replace Value丶Moving Average丶RMS丶Coherence丶Rolling MSE丶 Rolling Statistics丶Crest Factor丶Peak丶Join丶Split丶 Convert to DB
3.9 参数参照(Property Reference)
在特定的条件下,元件的参数可以参照(Reference)同元件或连接上游的元件的其他参数值。Visual Signal 提供以下三种参照模式:同元件参数参照丶上游元件参数参照丶及控制连结参数参照。
3.9.1 同元件参数参照
某些特定的参数允许输入参数参照字串,参照同元件之任何参数,在元件更新时将其参数值替换为所参照之参数值。目前支援此功能的参数有两个:
| 元件 | 参数项目 | 参数名称 | 说明 |
|---|---|---|---|
| 所有元件 | Module | OutputDataNameFormat |
见【Module 项目参数】说明 |
| HLine & VLine Annotation |
Annotation | LabelText |
见【标注元件】说明 |
参照字串的语法为:
$《参数名称》
以任一元件中 Module 参数项目中的OutputDataNameFormat 为例,其预设值为 $Name,即参照同元件之 Name 参数,将Name 参数之值替换至OutputDataNameFormat。注意因为语言档设定的关系,各参数显示之名称不一定为参数真正的名称,使用者可点击支援本参照功能的参数栏位右侧的
图示,开启参数浏览器查询各参数真正的名称,也可以直接在浏览器上双击点选欲参照之参数,浏览器会自动将该参数的语法插入至参数栏位中:


在浏览器的参数列表中,参数真正名称在前,如果後面没有括弧,则参数栏位上显示的即为参数真正名称,否则括弧内的名称为参数显示在参数栏位中的名称。以下为在【Preference】里选择中文语言时在参数浏览器中所显示的参数名称,括弧中为参数栏位中显示的所有中文参数名称:

3.9.2 上游连结元件参数参照
某些特定的参数允许输入参数参照字串,参照同元件或上游连接元件之任何参数,在元件更新时将其参数值替换为所参照之参数值。目前支援此功能的参数有以下元件:
| 元件 | 参数类别 | 参数名称 | 参数说明 |
|---|---|---|---|
| 所有 Viewer 元件 | Title | Title |
见【ChannelViewer】说明 |
| Data Writer | Data Writer | OutputFileName |
见【Data Writer】说明 |
参照字串的语法为:
{《模组名称》}$《参数名称》
如果省略《参数名称》,则默认为 Name。以 ChannelViewer 之 Title 参数为例,使用者可点击支援本参照功能的参数栏位右侧的
图示,开启参数浏览器查询各上游连接元件名称以及元件中所有参数的名称,也可以直接在浏览器上双击点选欲参照之参数,浏览器会自动将该参数的语法插入至参数栏位中。如果语法有误,错误讯息会直接反映在插入的参数栏位中,并显示在图上。


以下示范将 ChannelViewer 之 Title 参数由预设之 {default} 改成:
{Noise}[Amp={Noise} $Amplitude]
注意此处第一个 {Noise} 为 {Noise}$Name 的省略写法。


《参数名称》省略(即默认为 Name)时,《模组名称》另有简便指标式的语法。设定 {all} 显示从输入源到 Viewer/Writer 的完整流程及元件名称,元件与元件之间的连结显示为「-」,多重输入显示为「(输入1, 输入2, …)」。预设为 {default} ,当 {all}字串过长时将被减缩,仅留第一及最後一个模组名称(可在偏好设定里调整缩减门槛值)。或可以利用 {n} 指定 {all} 字串里的元件顺序,例如 {0} 为第一个元件名称,{-1} 为最後一个,等等。以下图显示之元件连结为例:

若 Viewer 的 Title 设为 {all} 或是 {default},则 Viewer 的标题显示如下:

以下列出不同的 Title 设定会得到的标题:
| Title 设定 | 标题显示 |
|---|---|
{0} 或 {-5} |
Sine |
{1} 或 {-4} |
Noise |
{2} 或 {-3} |
Mixer |
{3} 或 {-2} |
Square |
{4} 或 {-1} |
Multiplier |
3.9.3 控制连结参数参照
以上两种参数参照方式只适用将其他参数值转变为字串插入特定的字串类别的参数。 Visual Signal 还提供了另一种参数参照模式,可参照同元件或上游连接元件之数值类别(整数或浮点数)参数将其值替换至指定的数值类别参数。本模式有两种使用方式:参数连结对话窗及控制连结线。以下说明以一 Noise 及 Sine 元件接上 Mixer 元件再接上 ChannelViewer 为例,并将 ChannelViewer 之 Title 参数改成:
({Noise}, {Sine}) - Mixer[Gain1={Mixer}$Gain1, Gain2={Mixer}$Gain2]
如下图:

参数连结对话窗
在所有元件的都有的【Module 项目参数】中之 Property Connections 参数栏位,点击右侧之
图示,即可开启参数连结对话窗。以下示范开启 Mixer 的参数连结对话窗:

设定参数参照连结
对话窗可以设定多个参数参照连结。点击 Target 栏位可以开启前述之参数浏览器,选择 Mixer 元件中欲替换值的参数(注意此时参数浏览器只会列出数值类别的参数)。以下示范设定 Target 为 Mixer 之 Gain1 参数:

双击 Gain1 选择好後,双击 Source 栏位可以开启参数浏览器,选择 Mixer 或连接之上游元件(Noise 或 Sine)中欲参照之参数(同样地此时参数浏览器只会列出数值类别的参数)。以下示范设定 Source 为 Noise 元件之Amplitude 参数:

双击 Mixer 之 Amplitude 选择好後,可以看见 Source 栏位插入了参照语法「{Noise}$Amplitude」:

工具列功能
设定完成一个参数连结(Target 与 Source 都设定完成)後,如欲删除,可以选择整行(点击最左侧箭头处),然後按下 Delete 键,或点击上方工具列之
图示即可删除整行。若只有设定 Target 或 Source 一个栏位,则不算设定完成一个参数连结,关闭对话窗时会自动删除。
如欲回复到开启对话窗时的状态,则可点击上方工具列
图示。
Source 运算功能
Source 栏位还提供运算功能,允许各种 C# 语法数学运算,例如可以再插入其他参数做加减乘除的运算。这里加入一个简单倒数运算「1.0/{Noise}$Amplitude」:

所以无论 Noise 的 Amplitude 如何设定,在 Mixer 中乘上其倒数的 Gain 结果都会是 1。注意此时被除数必须用「1.0」以保证浮点运算,若只用「1」,则若 Amplitude 为整数并大於 1,运算解析器会误判为整数运算而得出结果为 0。
接下来可以重复同样步骤,加入第二个参数参照,将 Target 设为 Mixer 之 Gain2, Source 设为 Sine 之 Amplitude 参数之倒数「1.0/{Sine}$Amplitude」,如下:

设定好後,关闭对话窗,可看到 Property Connections 参数栏位显示 2 Connection(s):

此时将 Noise 的 Amplitude 设为 2,Sine 的 Amplitude 设为 4,而 Mixer 的 Gain1 及 Gain2 参数值因参数连结设定而变为 Amplitude 之倒数:\(1.0/2 = 0.5\) 及\(1.0/4 = 0.25\)。绘图输出结果不变,但标题因为之前设定了参数参照,显示了实际的 Gain 值,如下图:

控制连结线
如上图所示,设定好 Mixer 的参数连结後,可以看到 Mixer 输入埠多出了两个橘色的虚线连结线,下图放大显示:

此二连结各别由 Noise 及 Sine 连至 Mixer,与讯号资料连结不同,为控制连结线,用橘色虚线区分之。此数控制连结线虽然跟参数连结一样有两条,但是并不完全对应。一条控制连结线只代表连线 Source 元件有一个或多个参数被 Target 元件的一个或多个参数所参照。因为如此,如下图依照正常方法移除连接线(拉起连结箭头移开然後放掉)时:

Visual Signal 无法判别是要删除哪一个参数连结,因此会自动开启参数连结对话窗,让使用者可以依照前章节所述的方法删除或修改参数连结:

将所有参数连结都删除後,关闭对话窗,可以看到控制连结线都消失,Property Connections 参数显示为 0 Connection(s),而 Mixer 元件的Gain1 及 Gain2 参数值仍为最後个别参照 Noise 及 Sine 的 Amplitude 参数值(因此绘图标题不变),如下图:

此时可用产生控制连结线方法将参数连结加回。按下 Ctrl 键不放,然後用正常拉线方式,从 Noise 元件的输出埠拉出一条线,此时可看到拉出来的线是橘色虚线的控制连结线,如下图:

将控制连结线连至 Mixer 的输入埠,如下图:

放开後完成连结,此时会自动开启浏览器,并自动开启 Source 的参数浏览器(Source 元件会固定在 Noise),如下图:

此处再次选择 Noise 的数值类别参数 Amplitude,选择完後会将参照语法插入Source 栏位,并自动开启 Target 的参数浏览器,使用者可选择 Mixer 的数值类别参数(可再次选择 Gain1),如下图:

选择完成後则成立一个新的参数参照连结,此时可以将 Source 栏位加上倒数运算,如下图:

此时可以如前述参数连结对话窗章节所述继续加入第二个连结,也可以关闭对话窗(可以看到一个控制连结线连接 Noise 与 Mixer),如下图:

这时可以重复以上步骤,由 Sine 元件拉出一条控制连结线至 Mixer,然後设定 Mixer 的 Gain2 参照 Sine 的 Amplitude 之倒数,设定完後则回覆之前的状态:


3.10 通道名称编辑器(Channel Names Editor)
当任何元件有输出资料,其资料类别不是时频(Spectra)资料时,在Module 分类下会出现 Enable Custom Channel Names 的参数,将之设为「True」时则会出现 Channel Names Editor 的参数,让使用者可以自订设定通道名称:

如果 Enable Custom Channel Names 为「False」,则会沿用元件依计算结果自动设定或是预设「CH1丶CH2…」的通道名称,即便过去曾经设定过自订的通道名称。
自订通道名称有以下两种方式输入:
- 如果输出资料的通道数目少,可以直接在参数设定栏位上输入通道名称,以逗点分隔:

将资料接入在【Channel Viewer】里面,将 LegendPosition 设为 TopLeft,可以看到所有通道名称:

- 当通道数繁多时,不方便直接在参数设定栏位上输入所有的通道名称时,可以点击栏位右方之
图示,开启一个文字编辑器,编辑通道名称:

此时每个通道名称会占用一整行文字,开启时编辑器会将当前预设或是之前已经设定好之通道名称列出来,使用者只需要依需求编辑名称即可。例如更改将第六通道的名称:

在 Channel Viewer 的 Legend 里面显示的通道名称也随之更改:

文字编辑器的使用方法与其他同类型编辑器一样,详情请参考【DoMatlab Editor】介面说明。
4 计算模组 (Compute)
如【元件编辑区】章节中所介绍,所有 Visual Signal 提供的模组元件都分门别类放在六个群组中。本章介绍 Compute 分类中的模组元件。

如上图,Compute 分类中另有【Channel】丶【 Filter】丶【Mathematics】丶【 Statistics】丶【TFA】丶【 Transform】丶【HHT】丶【 Enhanced】丶【Matrix】丶【 External】丶【SVM】丶【Earth Science】···等次分类,其中有些分类,或是分类中的某些元件只有在 Visual Signal Professional 版本或安装特别模组及授权档 (module & license)才会提供,这些分类或元件会之後的功能说明中特别标示。
4.1 Channels

上图列出 Channel 次分类中的所有元件,以下分别详细说明。
4.1.1 Accumulate*
*Only in Professional*
说明
Accumulate 元件是用於试误测试时使用,使用者可在不同次计算时,尝试利用不同参数组合,并比较不同参数组合之运算结果。透过 Accumulate 元件,可将每次运算结果藉由绘图功能纪录,方便使用者做进一步的比较。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Clear Data | 是否清除储存的数据(True/False),选择 True 可清除先前的运算结果 | False |
范例
以下案例是搭配不同参数组合的 FIR 有限脉冲滤波器(Finite Impulse Filter)进行计算,藉由 Accumulate 元件,纪录不同 FIR 参数设定之成果,同时绘出不同参数差异,进行比较。
载入资料:利用 Source / Noise 新增讯号源,选择 Brown Noise,先利用 Compute / Transform / Fourier Transform 分析其频谱图,再利用 Compute / Filter / FIR 过滤高频讯号,最後接上 Compute / Channel / Accumulate 和 Viewer / Channel Viewer。



下图为 Brown Noise 频谱图,振幅较大者主要分布在 10Hz 以下之低频讯号,但振幅较小的高频讯号,其频率分布范围较大,涵盖 10~50Hz,以下尝试应用 FIR,分别以 10Hz丶20Hz 和 30Hz 作为门槛进行滤波,再以 Accumulate 元件输出并储存成果,以利比较不同 FIR 频率参数设定之影响结果。

初始 FIR 计算,参数设定如下图,Filter Type 采取 LowPass,\(F1=10Hz\),计算结果如下。


第二次 FIR 计算,其中 F1 参数改为 20Hz (如下图),并重新计算,下图黑线为原 10Hz 成果,蓝线为第二次计算(\(F1=20Hz\))结果。


同上步骤,将 F1 参数改为 30Hz (如下图),并重新计算,计算结果为下图红线( \(F1=30Hz\))。


Accumulate 可持续储存每次执行的结果,方便使用者比较。如要清除纪录,点选 Accumulate 视觉化元件,将参数 Clear Data 改为 True(如下图),使用
Force Update 强制执行,便会先清除之前的运算结果,再用新的参数组合重新运算。
相关指令
Noise丶Fourier Transform丶 FIR丶Viewer
4.1.2 Channel Switch
说明
选取多通道(Multi-Channel)讯号内其中一个通道的讯号。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),多通道(Multi-Channel),Regular 的讯号(Signal)或声音讯号(Audio)输入。参数定义详如下面图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Channel Count | 显示输入讯号的总通道数 | | |
| Active Channel | 设定欲选取的通道 | Channel 1 |
| Select Last Channel |
是否预设为选定最後一个通道资料 | False |
| Auto Name | 设定是否自动将显示在元件图示上的名称设为选取通道的名称。如欲显示【Module】项目的 Name 参数栏位设定的名称(请参考【元件名称】),则必须将此参数设为 False | True |
选择 Active Channel 时,下拉选单会显示所有输入讯号的通道名称,并会在通道名称前面缀上通道的序列指数,如下图:

注意:Channel Switch 只是将原本多通道讯号减为单通道(Single Channel)资料,并非分离波形。
范例
将正弦波与三角波合为一个 Multi-Channel 资料,用 Channel Switch 选择正弦波讯号。
以 Source / Sine Wave 建立正弦波,Source / Triangle Wave 建立三角波,在 Sine Wave 与 Triangle Wave 这两元件的 Properties / Source 里,取样频率( SamplingFreq)设定为预设值 1000 Hz,讯号频率(SignalFreq)分别设定为 6 Hz 与 15 Hz,再用 Conversion / Merge to Multi-channel 将两组格式相同的讯号结合为一组多笔(Multi-Channel)的讯号。


再将 ToMulti 的输出接上 Channel Switch,再以 Viewer / Channel Viewer 绘制结果,并改变 Channel Switch 的 Properties / Active Channel,可观察到只留下正弦波或三角波。

注意:因为 Channel Switch 的 Auto Name 预设为 True,此元件图示上显示的名称为预设选择的第一个通道名称「
Sine_CH1」。如果 Active Channel 选择第二个通道名称「Triangle_CH1」,则元件图示上的名称会随之改变,如下图:
选择第一个通道时得到如下图:


选择第二个通道时得到如下图:


相关指令
Merge to Multi-Channel丶Channel Viewer丶Sine Wave丶Triangle Wave
4.1.3 Data Merge
说明
当使用者有两个取样率相同的时间序列 A 和 B 时,此功能可将两数据互相连接,或是将数据 A 安插在数据 B 里,形成一个新的时间序列。
参数设定
本模组可以接受实数(Real Number),单通道(Single Channel)丶多通道(Multi-Channel),等间距(Regular)的讯号(Signal)与声音讯号(Audio)。各参数定义与预设值如下图表:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartPosition | 要被连接讯号的新位置,新位置以参考讯号的 起始为基准,预设为参考讯号的最後位置 |
end |
| ReferenceInput | 设定参考讯号,StartPosition 是以此参考 讯号为准 |
0 |
范例
本范例以 Source/Noise 及 Sine Wave 为原始讯号,然後进行 Data Merge,产生一长度更长的讯号,然後进行运算,步骤如下:
Network 视窗下选择 Source / Noise,设定时间长度(TimeLength)为 2 秒丶振幅( Amplitude)为 1.5,另外再选择 Source / Sine Wave,设定讯号频率(SignalFreq)为 100 Hz丶时间长度(TimeLength)为 1.5 秒丶振幅(Amplitude)为 2,两个模组再各自接至 Viewer / Channel Viewer,所有设定如下图。




再将 Noise 及 Sine 连接至 Compute / Channel / Data Merge,设定 Data Merge 的参数 ReferenceInput 为 0: Noise,StartPosition 为 1.5,将 Data Merge 连接至 Viewer / Channel Viewer 显示结果。



将 Data Merge 连接至 Compute / TFA / Short-Term Fourier Transform,参数皆按照预设值,最後再将 STFT 计算结果以 Viewer / Time-Frequency Viewer 显示。可以看见 100 Hz 的 Sine 出现在 1.5 秒至 3 秒之间。


相关指令
Noise丶Sine Wave丶Short-Term Fourier Transform丶Channel Viewer丶 Time-Frequency Viewer
4.1.4 Data Selection
说明
选取某段时间内的讯号资料。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道 (Single Channel) 或多通道(Multi-Channel),Regular 的讯号(Signal)或声音讯号(Audio)输入。参数须设定起始与终点位置,其单位等於输入讯号的时间单位。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartPosition | 设定选取资料的时间起点 | 输入讯号的时间起点 |
| EndPosition | 设定选取资料的时间终点 | 输入讯号的时间终点 |
| DownSampleStep | 每多少个点重新取一个点, 用来降低取样频率 |
1 |
| NewCount | 撷取出新资料的数量 | 0 |
在使用【Data Viewer】的时候,可使用
图示自动产生本元件,此时 StartPosition 及 EndPosition 会自动设为【Data Viewer】中选取的资料范围。反之, StartPosition 及 EndPosition 也可以用【Data Viewer】设定。方法为点击 StartPosition 或 EndPosition 栏位最右方的
图示,此时会开启一个暂时性的【Data Viewer】视窗,同样在介面中选取一段资料范围,再按下
,则视窗会关闭,同时 StartPosition 及 EndPosition 会自动更新为所选取之资料范围,如下图:



范例
以 Source / Sine Wave 建立正弦波,在 Sine 元件的 Properties / Source,此例的取样频率(SamplingFreq)设定为预设值 1000 Hz,讯号频率(SignalFreq)设为 20 Hz,并用 Viewer / Channel Viewer 观察之。


原本讯号接上 Data Selection,并设定选取的起点与终点(在此例为起点 0.2 秒,终点 0.4 秒),可观察到该段时间内讯号被截取出来。注意选取部份不可超过原长度(以此例来说就是不在 [0,1] 的范围内),否则将无法运作。


相关指令
Channel Switch丶Channel Viewer丶Sine Wave
4.1.5 Dup
说明
复制 Network 视窗上的讯号源,或是某个计算元件内的数据(主要可应用为 Macro 之起点,详请参考 Macro。)
参数设定
Dup 接受所有讯号格式作为输入。参数定义如下面图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Copy Value | 设定是否复制一份输入的讯号至输出,否则输出的讯号直接参照(Reference)输入元件之输出,也就是说 Dup 输出连接的元件之输入直接抓自 Dup 输入的元件之输出。 | True |
参数 Copy Value 之预设为 True,在 Macro 起点应用时可保留一份输入讯号的资料在 Dup 元件内。如果资料量大,可考虑将之设定为 False,此时 Dup 元件内不保留资料,但是因为 Dup 的输出直接参照输入元件的输出,在删除 Dup 元件时会使上游连接的元件之输出一起被删除。
范例
将正弦波复制:
以 Source / Sine Wave 建立正弦波,并观察之。


在 Sine 元件的 Source / Properties,此例的取样频率(SamplingFreq)设定为预设值 1000 Hz,讯号频率(SignalFreq)设为 10 Hz。
原本讯号接上 Dup,可见复制出来者完全相同。


下面是将 Dup 应用於 Macro 的实例:
将讯号做傅立叶转换以算出频率;同时将原讯号做 Hilbert 转换,比较两者算出频率之异同。处理程序如下配置:

将此配置为 Macro(巨集),再汇入时会成为如下结果:

(刚汇入时计算并不会执行,要按下 Force Update 才会有结果)
由上图可见,若将原讯号置换为其他讯号以进行计算,是需要以手动方式将新讯号源接上 FFT 以及 Hilbert 模组。在要做更多处理时会愈加复杂,并易出错。
若现在将资料源与计算中间插入一 Dup 元件:

同样地,存为巨集然後汇入 :

可见到只要将资料替资并连结上 Dup,较之前方法方便极容易许多。
相关指令
4.1.6 Fill Null Value
说明
将缺值的资料补值。将输入讯号资料为\(X = \{x_0, x_1, \dots, \text{NaN}, \dots, \text{Null}, \dots, x_{N-1}\}\) 的 NaN(Not A Number)或 Null 之缺值部份补齐。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel ),Regular 的讯号(Signal)或声音讯号(Audio)输入。参数为 FillMethod,内有六个选项,相关定义与预设值整理如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FillMethod | 填补方法,有 FixedValue丶PrevValue丶 NextValue丶LinearInterpolation丶 SplineInterpolation 与 MonotonicCubic |
LinearInterpolation |
| 选项名称 | 选项定义 |
|---|---|
| FixedValue | 由使用者输入一个定值作为缺值的大小。 此参数下方会出现栏位 NullValue,即设定欲补入之数值 |
| PrevValue | 缺值处之值以前方最邻近非缺值之数值补值 |
| NextValue | 缺值处之值以後方最邻近非缺值之数值补值 |
| LinearInterpolation | 缺值处之值,以前後第一个非 Null 的两值做线性内插 |
| SplineInterpolation | 做三次曲线(Cubic Spline)内插补值 |
| MonotonicCubic | 为有 damping 的三次内插法,此法在处理在斜率很大的 讯号(如方波)时,可避免剧烈振荡,较 Cubic Spline 为佳 |
范例
填补缺值复制:
打开安装目录
C:\Program Files\AnCAD\Visual Signal\demo\Basic下的demo53.vsn专案档,可看见有缺值的讯号(注意,【Preference】 中 TextImporter 分类下的 TFA Null Value Handler 必须为 None,否则汇入资料时会自动依照设定补上缺值)。
在 demo53 中,利用 SplineInterpolation丶LinearInterpolation丶FixedValue丶 MonotonicCubic 四种方法补值,下图是以 SplineInterpolation 方法补值後的图形。


若是以 Linear Interpolation,补值後图形可知填补法明显不同。

在外部汇入资料时,Text Importer 也有一选项为填补缺值之功能,与本元件有一样的功能。

现在将一个缺值的讯号汇入此资料为将原本的方波随意去除部份值),汇入後不补值(将 Text Importer 的 Handle Null Values 设为 None),结果如下。


现在将原始输入讯号分别以 SplineInterpolation 以及 MonotonicCubic Interpolation 填补。

由此可看出两者填补的结果不尽相同,细黑线是 SplineInterpolation,蓝粗线为 MonotonicCubic Interpolation。

相关指令
4.1.7 Least Square Fill Null Value
说明
本元件跟【Fill Null Value】类似,但是利用了【Least Square Fit】的功能,将输入讯号用最小平方法算出讯号的回归线系数,用以估算出原讯号缺值的部分。详情请参阅上述两个元件的章节说明。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel ),Regular 的讯号(Signal)或声音讯号(Audio)输入。回归运算的参数请参考【Least Square Fit】章节说明。
范例
将 Noise丶Sine丶及 CustomWave 三个讯号源用 Mixer 合并,再接上 Replace Value 将讯号中段改成 Null 值,如下图所示:

参数设定如下(其他皆为预设值):
范例讯号源参数设定 元件 参数设定 Noise Noise Type: Gaussian
Sigma:0.2Sine SignalFreq: 15CustomWave Expression: 2.3 * tReplace Value ReplaceMethod: All
ReplaceValue:null
StartPosition:0.4
EndPosition:0.7接上 Channel Viewer 得到讯号图如下:

将讯号源後接上本元件,再接上原来的 Channel Viewer,如下:

本元件参数设定如下:

得到讯号图如下:

可以看到利用 PolynomialFourier 的回归算法可以重现缺值的缓增正弦波(此处以红色线显示)。
跟【Least Square Fit】一样,双击本元件的图示或是点击 View Fitting Parameters 栏位右方的
图示可以显示回归系数:
如将讯号源以【[Fill Null Value】补值,则无法做到上述的效果。以下用 MonotonicCubic 补值(此处以蓝色线显示):

相关指令
Noise丶Sine丶CustomWave丶 Mixer丶ReplaceValue
4.1.8 Input Switch
说明
可以从多个资料型态讯号中选择某一个通道讯号。
参数设定
本模组可以接受实数(Real Number)丶复数(Complex Number),单通道 (Single Channel)丶多通道(Multi-Channel),等间距(Regular)丶不等间距(Indexed),讯号(Signal)丶声音讯号(Audio)丶数值资料(Numeric)丶时频资料(Spectra)。各参数定义与预设值如下表:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Input Count | 显示进入此模组的输入数目 | |
| Active Input | 设定欲选取的输入资料 | Input 1 |
| Auto Name | 设定是否自动将显示在元件图示上的名称设为选取输入的名称。如欲显示【Module】项目的 Name 参数栏位设定的名称(请参考【元件名称】),则必须将此参数设为 False | True |
选择 Active Input 时,下拉选单会显示所有输入讯号的名称,并会在名称前面缀上输入的序列指数,如下图:

范例
本范例以 Source / Noise 为原始讯号,然後进行各种运算,产生各种格式资料,最後利用 Input Switch 选择出某个通道的讯号,步骤如下:
於 Network 视窗下选择 Source / Noise,取样频率(SamplingFreq)为 1000 Hz,时间长度(TimeLength)为 1 秒丶振幅(Amplitude)为 1。
将 Noise 依顺序接上 Compute / Transform / Fourier Transform丶Compute / HHT / RCADA EEMD丶Conversion / Convert to Audio丶Compute / TFA / Short Term Fourier Transform 并将 STFT 模组接上 Conversion / Convert to Matrix,所有模组设定都依照模组预设值。
将 Noise 及所有运算结果连接至 Compute / Channel / Input Switch,最後由 Input Switch 连接至 Viewer / Channel Viewer,并且调整 Input Switch 的参数 Active Input,可以观察 Noise丶FFT丶RCADA:EEMD 和 ToAudio 的结果。整体结构如下图:

注意:因为 Input Switch 的 Auto Name 预设为 True,此元件图示上显示的名称为预设选择的第一个输入名称「
FFT」。如果 Active Input 选择第四个输入名称「STFT」,则元件图示上的名称会随之改变,如下图:
此时将 Input Switch 连接至 Viewer 或 Time-Frequency Viewer 可显示选择输入之资料。承上图 Input Switch 切到 「
STFT」,并接上 TFViewer,显示时频资料如下图:
最後调整 Input Switch 的参数 Active Input 至 ToMatrix,可利用 DataViewer 观察 Input Switch 内矩阵资料。

相关指令
Noise丶Fourier Transform丶RCADA EEMD丶Convert to Audio丶Short-Term Fourier Transform丶Convert to Matrix
4.1.9 Peak Detection
Peak Detection 可用於截取讯号之峰值位置点,亦或是计算两峰值间的时间差。
说明
调整 Minima Interval 和 Peak Threshold,划分欲撷取之波峰值。
如讯号带有趋势性,可利用 Median Filter 滤除趋势。
依讯号特性,透过 Preprocess Transform 加强峰值显现。
此模组虽然会自动算出 Minima Interval 和 Peak Threshold,但如欲得到好的结果还是得要知悉 Minima Interval 和 Peak Threshold 的设定。 两峰值间隔须大於 Minima Interval 才视为是两个分别的峰值:
如使用 Minima Interval 的 auto 值,可能抓到同样高於界限值但却非需求的峰值,

此时可适当地增加 Minima Interval 的宽度,忽略过於靠近主峰值的 Peak。

界限值(Peak Threshold)上方视为上峰值:

在此值以上之峰值,会被 Peak Detection 撷取,以下者则略过;抓取下峰值则相反,界限值下方者视为下峰值,此值以上者则被忽略。

若讯号有趋势性,

则可使用 Median Filter 滤除趋势性,再做撷取:

参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )或声音讯号(Audio)输入;输出讯号格式受不同的 Output Type 影响。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| OutputType | 选择侦测波峰後输出的形式,包含:
|
PeakDetection |
| UseMedian Filter | 是否使用中值滤波器移除趋势性 | False |
| PeakType | 抓取 Upper(上)或 Lower(下)波峰 | Upper |
| PreprocessTransform | 在抓取峰值前根据选择下述的峰值特性
|
Extrema |
| MinimaInterval | 两波峰间的最短时间间隔 | Auto |
| PeakThreshold | 如讯号超过此界限值,则视为波峰 | Auto |
| 参数选项 | 选项定义 |
|---|---|
| PreprocessOutput | 输出前处理转换後的讯号,格式为 Indexed |
| PeakIntervalVsTime | 波峰间隔与时间关系,输出格式为 Indexed |
| PeakIntervalVsPeakNumber | 波峰间隔与波峰数的关系,输出格式为 Regular |
| PeakDetection | 抓取波峰,输出格式为 Indexed |
| RemovePeak | 移去峰值,输出格式为 Regular |
| 参数选项 | 选项定义 |
|---|---|
| None | 不使用任何前处理转换,输出移除均值後之讯号 |
| Width | 输出移除均值後的过零点及波宽值 |
| WidthByArea | 输出移除均值後的过零点和波宽值与波面积之乘值 |
| WidthByExtrema | 输出移除均值後的过零点和波宽值与局部极值之乘值 |
| Area | 输出移除均值後的过零点及波面积 |
| Extrema | 输出移除均值後的过零点及局部极值 |
范例
人工讯号的波型
利用 Source / CustomWave,参数皆为预设,Expression 为
sin(2*pi*10*t)*cos(2*pi*20*t),图形如下:
再将其接上 Peak Detection 参数全用预设,最後将其接至原本的 Viewer,然後调整 Viewer 的 Plot ElemEditor,将 Peak Detection 的 Line Width 调为 None,Marker Style 用 Circle。



红线为目前使用的 Threshold 位置。
若再将 Threshold 设定为 0.2,则可撷取较低的峰值。

调整 OutputType 为 RemovePeak,可得移去峰值後的讯号(红线)。


带有趋势的人工讯号
使用 Source / Custom Wave,Expression 为
cos(2*pi*20*t)+exp(2*t),其馀参数为预设,得到下图:
依 Peak Detection 的预设参数撷取峰值,无法得到正确的峰值。

开启 Peak Detection 的 UseMedianFilter 功能,并将 PreprocessTransform 设为 None:


利用 PreprocessTransform 加强讯号峰值特性
使用 Source / Custom Wave,Expression 为:
abs((sin(20*pi*t)-0.5)>0?(sin(20*pi*t)-0.5)/0.5:(sin(20*pi*t)-0.5)/1.5),其馀参数为预设,得到下图:

利用 Peak Detection 的所有预设参数,的确所有峰值都抓取到了:

但如果今天较细的峰值是不需要的,除了调整 Minima Interval 外,亦可利用 PreprocessTransform 加强峰值的特性;如此例,可知较宽的峰值有较大的面积或是较宽的波宽,改变 PeakDetection 的参数 OutputType 为 PreprocessOutput, PreprocessTransform 分别设为 Width 及 WidthByArea,如下图:




可看出不同的 PreprocessTransform 参数可针对不同波峰做特性强化。


脉诊仪资料
原始资料为下图:

直接使用 Peak Detection 的所有预设参数,但是效果不是很好;红线为 PeakThreshold 为 auto 时的位置。


此时有两种调整方式:
- 加大 MinimaInterval,忽略过近的峰值:

- 降低 PeakThreshold:

如需更进一步利用 Multi-Scale Entropy(MSE)分析心跳,可选择输出 PeakIntervalVsPeakNumber:

相关指令
CustomWave丶Multi-Scale Entroy (MSE)
4.1.10 Remove Channel
说明
将多通道(Multi-Channel)讯号中的某中一个通道的讯号移除。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),多通道(Multi-Channel),Regular 或 Indexed 的讯号(Signal)或声音讯号(Audio)输入,参数定义详见下面图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Channel Count | 显示输入讯号的总通道数 | |
| Remove Channel | 选定欲移除的资料 | Channel 1 |
| Select Last Channel | 是否设为选定最後一笔资料 | False |
选择 Remove Channel 时,下拉选单会显示所有输入通道的名称,并会在通道名称前面缀上通道的序列指数,如下图:

注意:Channel Switch 为将选取的资料留下,其馀删除;而 Remove Channel恰相反,删除选取讯号丶其馀保留。
范例
将正弦波丶三角波及方波结合为同一个多通道(Multi-Channel)讯号,再将其中某个通道讯号移除:
以 Source / Sine Wave丶Square Wave 及 Triangle Wave建立正弦波丶方波及三角波,并用 Conversion / Merge to Multi-Channel将三个输入讯号整合为一个多通道( Multi-Channel)讯号。在各波源的取样频率(SamplingFreq)皆为预设值 1000 Hz,而讯号频率(SignalFreq),分别为 5 Hz(Sine Wave)丶8 Hz (Square Wave)丶以及 15 Hz(Triangle Wave),以观察不同波形。



在 Merge to Multi-Channel 後连结上 Compute / Channel / RemoveChannel,预设为移除第一通道讯号(Sine Wave),可得如下页图之结果:


再改变 Remove Channel 的 Properties,将 Select Last Channel 调整为True,则 Remove Channel 将自动设为 Channel 3,为删除第三个通道资料,也就是 Triangle Wave 讯号。

相关指令
Merge to Multi-Channel丶Channel Switch
4.1.11 Replace Value
说明
将讯号中指定的数值取代为另一数值。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)与声音讯号(Audio)输入。参数定义与预设值整理如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ReplaceMethod | 选择取代的方法:
|
Expression |
| StartPosition | 设定被取代讯号范围的起始点 (预设为输入讯号的起始点) |
start |
| EndPosition | 设定被取代讯号范围的终点 (预设为输入讯号的终点) |
end |
取代方法为 All丶Expression丶Outlier 时,则可设定参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Replace Value Type | 选择取代条件成立时取代数值的型态:
|
Custom |
| Replace Value | Replace Value Type 选择为 Custom 时设定自订之取代值 | 0 |
取代方法为 Expression丶Outlier 时,则可设定参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Condition Expression | 输入要取代的条件式。可使用 +, -, *, /, <, >, ==, !=, &, 等运算元 |
y == null |
| Alternate Replace Value Type | 设定取代条件不成立时取代数值的型态:
取代方法为 Epression 时,「条件不成立」意为条件式不成立;取代方法为 Outlier 时,意为非异常值(非离群边值) |
None |
| Alternate Replace Value | Alternate Replace Value Type 选择为 Custom 时设定自订之取代值 | 0 |
取代方法为 Outlier 时,则可设定的参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Outlier Boundary | 设定离群边值(讯号标准差的倍数) | 3 |
| Sliding Window Mode | 设定开启 / 关闭滚动计算窗模式 | False |
在 Sliding Window Mode 为 False 时,是由 StarPosition 及 EndPosition 指定之资料范围内整体讯号标准差的倍数为来计算离群范围的上限与下限,超过此范围则判定为异常值。在 Sliding Window Mode 为 True 时则是以指定的滚动窗范围内的资料来计算离群范围。用滚动窗计算离群边值较能够精准的计算资料的动态异常值,但是计算量会大幅增加。
开启滚动窗计算时,会出现滚动窗相关的设定,用来控制做滚动窗计算时的计算窗大小丶单位丶及重叠等参数,详情请参阅【滚动窗计算】章节说明。
取代方法为 ByPass 时,则不取代任何资料点,即输入复制至输出。
范例
将一方波的峰值改变成另一数值:
以 Source / Square Wave 建立一方波,以 Viewer / Channel Viewer绘出。


将 Square 连上 Compute / Channel / ReplaceValue,设定 Properties / Condition Expression 为 y == 1,ReplaceValue 为 -0.5,StartPosition为 0.2 , EndPosition 为 0.6。


如此处理可将讯号中 0.2 秒到 0.6 秒中所有等於 1 的数值取代成-0.5。可见图形有明显不同:

再将 ReplaceValue 中 Properties / ReplaceMethod 调整为All,进一步设定 Properties / ReplceValue 为 0.2,StartPosition 为0.3 ,EndPosition 为 0.6,如下图。


相关指令
无
4.1.12 Resample
说明
Resample 为重新取样,常用的用途有下列两种:
当资料量过大时,用来降低资料量。
资料点数不足时,以内插的方式获得比原数据点数更多的资料。
不改变资料点数,但重设取样率。
降低取样率时可能会造成 混叠现象(Aliasing),本元件提供消除混叠(Anti-Aliasing)的滤波设定(见下述)。另外,内插方式的选择也会影响重新取样完的数据,若需做较精细的分析时,也应该考虑此因素来选择内插的方式。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道 (Single Channel) 或多通道(Multi-Channel),Regular 的讯号(Signal)与声音讯号(Audio)输入。
参数 Properties / Data 下显示输入讯号的频率单位丶取样频率与资料数量长度。

以下有提到原始资料的取样率(Sampling Frequency)时,以 \(S\) 代表;提到原始资料长度(Data Count)时,以 \(L\) 代表,即
\[ S = \text{Sampling Frequency}\] \[ L = \text{Data Count}\]
参数 Properties / Resample 定义详见下面图表。Resample Mode 决定重新取样的模式:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Resample Mode | 选择重新取样的模式:
|
Down |
降低取样模式
若 Resample Mode 为 Down 时进入降低取样模式,此时以整数的 Down-sampling Step( \(N\))为基准,Down-sampling Frequency 及 New Count 都会自动依照整数的 \(N\) 计算。相关参数如下:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Down-sampling Method | Resample Mode 设定为 Down 时,以及 Down-sampling Step (\(N > 1\))时,选择降低取样的方法:
|
Sample |
| Down-sampling Frequency | 设定降低取样的频率(\(S_d\))。此设定会自动转换为最接近的整数 \(N\),并依照整数 \(N\) 调整设定的频率及 New Count。 | \(S/N\) |
| Down-sampling Step | 设定将低取样阶数 \(N\),即每 \(N\) 个点取出一个点。此设定会重新计算 Down-sampling Frequency 及 New Count | 1 |
| New Count | 设定降低取样後的总点数。此设定会自动转换为最接近的整数 \(N\),并依照整数 \(N\) 调整设定的点数及 Down-sampling Frequency | \(L/N\) |
降低取样模式同时也提供了消除混叠(Anti-Aliasing)的滤波设定,可选择一个滤波器设定,在执行降低取样之前将原始资料中高频部分(降频後的 Nyquist Frequency \(F_{Nyquist} = S_d/2\) 以上的频率)滤掉。相关参数如下:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Anti-Aliasing Method | 当 Down-sampling Step \(N > 1\) 时,可选择是否使用消除混叠方法:
|
None |
| Filter Order | Anti-Aliasing Method 设定为 Butterworth 或 Chebyshev 时,可设定滤波阶数 1~12。Anti-Aliasing Method 设定为 IdealFilter 时, Filter Order 默认为资料长度。 | 10 |
| Ripple | Anti-Aliasing Method 设定 Chebyshev 时,可设定震荡参数(Ripple),即频率响应(frequency response)的幅度波动(overshoot 振幅),单位为分贝(dB) | 0.1 |
增加取样模式
若 Resample Mode 为 Down 时进入降低取样模式,此时以 Up-sampling Frequency 为基准,可以为任何 \(\ge S\) 的数值。相关参数如下:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Up-sampling Method | Resample Mode 设定为 Up 时,以及 Up-sampling Frequency (\(S_up > S\))时,选择增加取样的方法:
|
Linear |
| Up-sampling Frequency | 设定增加取样的频率 \(S_u\)。此设定会重新计算 Up-sampling Step 及 New Count | \(S\) |
| Up-sampling Step | 取样时,设定每 \(N\) 个点取出一个点,此设定会重新计算 Down-sampling Frequency 及 New Count | \(S_u/S\) |
| New Count | 设定降低取样後的总点数。此设定会重新计算整数 Down-sampling Step 及 Down-sampling Frequency | \(L*S_u/S\) |
重设取样模式
若 Resample Mode 为 Reset 时进入重设取样率模式,相关参数如下:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Reset Frequency | Resample Mode 设定为 Reset 时,设定重设之取样率,也就是改变原始资料取样率 \(S\) 的值,总点数 \(L\) 保持不变。 | \(S\) |
范例
范例 I:建立一取样频率较高的正弦波,并以 Down-sampling 降低取样。
以 Source / Sine Wave 建立正弦波,调整 Source 下的 SamplingFreq 以及 DataLength 为 100000 以及 100001,再接上 Viewer / Channel Viewer 观察之。

将 Sine 接至 Compute / TFA / Enhanced Morlet Transform 可以看到计算时间为 12.47 秒。

将 Sine 接至 Compute / Channel / Resampling ,於 Resampling 的 Property 中设定 Resample Mode 为 Down,更改 Down-sampling Step 为 2000,再接上 Viewer[1] 与原讯号一起比较(黑线为原始讯号,蓝线为 Resampling 後),可以看出此降低取样频率造成了资料失真。



故将 Resampling 的 Property 中更改 Down-sampling Step 为 500,再接上 Viewer[1] 与原讯号一起比较,可以看出此降低取样频率没有造成了资料失真,接着接至 Compute / TFA / Enhanced Morlet Transform 可以看到计算时间不需 1 秒,仅 0.12 秒就可计算完成。


范例 II:建立一取样频率太低的正弦波,并以 Up-sampling 增加取样。
以 Source / Sine Wave 建立正弦波,调整 Source 下的 SamplingFreq 以及 DataLength 为 100 以及 101,再接上 Viewer / Channel Viewer 观察之。可发现绘制正弦波因为取样点数不够多而有点失真。


将原本讯号 Sine 接上 Compute / Channel / Resample,设定 Resample 下的 Resample Mode 为 Up。 若将 Up-sampling Method 设定为 Spline 且 Up-sampling Frequency 提高至 500,再接上 Viewer / Channel Viewer,可以看出由於增加了采样频率而还原出较正确的正弦波。



亦可由其他 Up-sampling Method 取样法尝试,比较结果之异同。
范例 III:比较不同 Up-sampling Method 的差异。
由 Source 下产生 Square Wave,参数使用预设值,接上两个 Compute / Channel / Resampling,Resample Mode 设定为 Up,Up-sampling Method 分别设定为 Spline 与 MonotonicCubic,Up-sampling Step 设定为 100 (或 Up-sampling Frequency 设为 100000),并接上 Viewer / Channel Viewer,画在同一个 Viewer 上,比较不同的 Up-sampling Method 的差异。

注意到在边缘处,两者结果相当不同,放大图形来看为 (於 Viewer[1] 中 Property 将 XMin 改为 0.048, XMax 改为 0.054 )。如下图,其中黑细线为 Spline 的结果,蓝线为 MonotonicCubic,可见後者之结果较佳。

相关指令
Sine Wave丶Square Wave Enhanced Morlet丶 Channel Viewer
参考资料
Numerical Recipes 3rd Edition: The Art of Scientific Computing by H. Press, Saul A. Teukolsky , WilliamT. Vetterling , Brian P.Flannery
4.1.13 R-R interval
说明
R 波探测可为 ECG 讯号(心电讯号)诊断中最重要的问题。R 波时间间隔可为判段一人心跳是否异常,进一步诊断各种疾病。
一个典型的心电讯号如下图,可分类为多种波,如 P丶Q丶R丶S丶T 等。

实际量测时 P丶Q丶S丶T 常不如其中 R 波明显,因此通常以 R 波来计算时间间隔。将一量测到的 ECG 讯号输入本软体绘图,可见如下图:

经过本模组的计算後,可得到 X 轴为 R 波发生之时间(或心跳数)丶Y 轴为两 R 波之间的时间差之输出,如下图:

参数视窗中也有选项可开启 HRV 参数表格供使用者参考。
注意本模组判定标准较为严苛,需接受标准的 ECG 讯号,若为非标准之心电讯号,可使用 Peak Detection 模组达到抓取极值之功能。输入之 ECG 讯号可为两电极间的差值或两极之值,而数据前面 3000 点做为计算 R-R interval 的参考,故不列入计算。
参数设定
本模组需接受标准 ECG 讯号,可为两电极间的差值(DeltaVoltage)亦或两极之值( TwoElectrode),量测单位为伏特(Voltage)或微伏特(milli-Voltage)。输入资料最少为 3000 点(实际上,前三千点并不做计算,而是做为参考标准)。
本模组接受实数(Real Number),单通道(DeltaVoltage, Single)或双通道( TwoElectrode, Multi-Channel),Regular 的型式;输出讯号格式为 Indexed 型式丶单通道(Single)资料。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Input Channel Type |
设定输入的 ECG 为两电极间的差值(DeltaVoltage)亦或是两电极之绝对值(TwoElectrode) | DeltaVoltage |
| Outout Channel Type |
输出的结果有 HeartBeatIntervalVsBeatNumber (x 轴为 beat number,y 轴为两 R 波之间的时间差)或 HeartBeatIntervalVsTime (x 轴为 R 波发生之时间,y 轴为两 R 波之间的时间差)两种形式 | HeartBeatIntervalVsTime |
| Unit | 单位,可为 Volt 或 milliVolt | milliVolt |
| Gain | ADC 单位转换为物理单位的比例值,与 ECG 量测仪之规格有关 | 200 |
| DCvalue | ECG 量测仪之基准校正值 | 0 |
| View Time-Domain Measures.. |
打开 HRV 参数表 |
输出的结果可进一步分析得到 Heart Rate Variables(HRV),目前此模组可自动产生时域分析的 HRV,包括数值统计(Statistical)和几何(Geometric)两大部分,其详细的定义如下表。
| 分析值 | 数学式 | 说明 |
|---|---|---|
| Mean | 详见 Basic Statistics 的 Mean | 计算 R-R interval 算数平均值 |
| Variance | 详见 Basic Statistics 的 Variance | 计算 R-R interval 变异数(标准差的平方) |
| SDNN | 详见 Basic Statistics 的 StdDev | 计算 R-R interval 标准差 |
| SDANN | \(\sqrt{\frac{\sum_{i=1}^N (\overline{RR}_i-mean\overline{RR}_i)^2}{N-1}}\) | R-R interval 每五分钟平均值的标准差 |
| RMSSD | \(\text{RMS of} \Delta RR_i,\) \(\Delta RR_i = \vert RR_{i+1} - RR_i \vert\) |
相邻的 R-R interval 差值的 RMS |
| SDANN index | \(\frac{1}{M}\displaystyle\sum_{j=1}^M \sqrt{\frac{\sum_{i=1}^{N_j}(RR_i-meanRR_i)^2}{N_j-1}}\) | R-R interval 标准差指标,为每五分钟标准差的平均值 |
| SDSD | \(\text{StdDev of}\;\Delta RR_i\) | 相邻的 R-R interval 差值的标准差 |
| NN50 Count | \(\text{Count of}\;\Delta RR_i > 50\) | 相邻的 R-R interval 差值超过 50 毫秒的个数 |
| PNN50 | \({\text{NN50 count}} / {\text{Total RR intervals}}\) | 相邻的 R-R interval 差值超过 50 豪秒的个数与 R-R interval 总数百分比 |
| 分析值 | 数学式 | 说明 |
|---|---|---|
| HRV triangular index | ![]() \({\text{Total RR intervals}} / {Y}\) |
R-R interval 总数除上 R-R interval 直方图最高点 \(Y\) 值 |
| TINN | \(M - N\) | R-R interval 直方图底宽 |
范例
范例 I :以(MITDB)的 100 资料为例。
资料格式为 hea 档,汇入时会出现下面视窗,可发现资料为双通道(明显为双极资料),单位为 mV

资料汇入後,可利用 Viewer / Channel Viewer 观察之 (上图为 Viewer[1],下图为上图之放大图,於 Viewer[1] 中 Properties 将 XMin 改为 792.1丶XMax 改为 795.9)

再将资料接至 Compute / Channel / RRinterval 处理此资料,并将 Type 设定为 TwoElectrode,在将之接至 Channel Viewer 观察之 (Viewer[2])。



若将 Output Type 改为 HeartBeatIntervalVsBeatNumber,输出结果之 X 轴为 Beat Number,Y 轴为两 R 波之间的时间差,使用者可以自行调整观察。现在依然持续观察 HeartBeatIntervalVsTime 的结果,将 Viewe[1] 与 Viewer[2] 的 XMin 改为 0丶 XMax 改为 25,观察 R-R interval 的之输出,时间是由 9.1 秒开始,这是因为前面 3000 点做为计算 R-R interval 的参考,故不列入计算。

点选 View Time-Domain Measures…属性,其右方会出现一按钮,点选按钮可显示此元件的分析结果如下。

范例 II:此为一人躺在床上时量测到的 ECG 讯号,为两电极间的差值,单位为 Volt 。


再将资料接至 RRinterval 处理此资料,并将 Type 设定为 DeltaVoltage,得到结果如下图。

本模组对输入讯号之特性相当敏感,若以非标准 ECG 讯号输入之,会发出警告,并相当可能无法做计算。
若欲以非标准 ECG 讯号做 RRinterval 处理,请使用 Peak Detection 模组。
相关指令
参考资料
Heart rate variability ** European Heart Journal (1996) 17,354-381
4.1.14 Time Shift
说明
将讯号时间点移动,可以对讯号平移(ShiftStartTime)丶或直接设定欲移动处之时间点(SetStartTime)丶亦或指定起点时间日期(SetStartDateTime),即讯号的时间轴方向的平移。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道 (Single Channel) 丶多通道(Multi-Channel),Regular 的讯号(Signal)与声音讯号(Audio)输入。
主要参数为 ShiftMode,其中包括三个选项,ShiftStartTime丶SetStartTime丶 SetStartDateTime,每选项对应不同的设定,各选项设定之意义整理如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ShiftMode | 设定时间起点的方法:
|
ShiftStartTime |
| 选项名称 | 选项定义 | 选项参数 |
|---|---|---|
| ShiftStartTime | 将整个时间平移。 | ShiftValue |
| SetStartTime | 直接指定新的时间起点。 | StartValue |
| SetStartDate | 指定新时间起点的日期丶为年月日时分秒之型式。 | StartDate & StartTime |
范例
建立一正弦波,并以 Time Shift 平移。
以 Source / Sine Wave 建立正弦波,调整 Properties / TimeStart 为 3。可见得此正弦波初始点为第三秒。


将原本讯号 Sine 接上 Compute / Channel / TimeShift,设定移动方法为 ShiftStartTime,平移量为 2,可见时间起点改为第五秒。



若改用 SetStartTime,而起点 StartValue 设为 1,可发现时间起点移至第一秒。


注意:
RemoveDC 不只可移除直流讯(为讯号既有之纵向平移),亦可由 User_setting 让使用者设定纵向平移量,可与 TimeShift 作对应。
相关指令
4.1.15 Trigger Alignment
Trigger Alignment 可侦测讯号中的触发点(Trigger)并重新调整时间轴,使不同通道中的触发讯号能互相对齐,方便使用者做後续比较和分析。此元件适用於处理敲击讯号,可搭配不同厂牌的资料撷取卡和 DAQ 模组使用(Audio DAQ丶NI DAQ丶ADLINK DAQ)。
参数设定
本模组接受实数(Real Number),单通道(Single Channel) 或多通道 ( Multi-Channel),Regular 的讯号(Signal) 或声音讯号(Audio) 输入;输出讯号格式与输入讯号相同。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Sampling Frequency | 显示输入讯号的取样率 | |
| Data Count | 显示输入讯号的资料点数,即 \(\text{Sampling Frequency} * \text{Data Length}\) | |
| Channel Count | 显示输入讯号的通道数 | |
| Triggered Position | 显示输入讯号发生第一个触发点的时间点 | |
| Re-label Trigger | 将触发点重设为时间轴的零点 | False |
| Re-labeled Trigger Position | 当 Re-label Trigger 设为 True 时,会出现此参数,可以将触发点设定为之时间轴零点以外的时间点 | 0 |
| Pre-Trigger Length | 设定触发点之前要显示多少讯号的时间长度。设定「all」时包含触发点前所有输入讯号,根据实际触发点的时间点计算实际时间间隔并显示在栏位上 | all |
| Post-Trigger Length | 设定触发点之後欲显示多少讯号的时间长度。设定「all」时包含触发点後所有输入讯号,根据实际触发点的时间点以及数入讯号长度计算实际时间间隔并显示在栏位上 | all |
| New Count | 显示输出讯号的资料点数,即 Pre-Trigger 长度包含的点数加上 Post-Trigger 长度包含的点数以及包括触发点本身。如果两者皆设定为「all」,则 New Count 等於 Data Count |
下图用一个 Impulse 元件产生的位於 \(t = 0.25 s, \sigma = 0.05\) 的单脉冲讯号,示意设定预设 Pre-Trigger 跟 Post-Trigger 对输出讯号的影响。上升边缘触发位准设在 0.25(边缘触发设定见下文说明)。Pre/Post-Trigger Length 皆设为「all」时输出讯号跟输出讯号一样,New Count 跟 Data Count 相同,但是触发点位置(\(t = 0.217 s\))显示於Trigger Position 栏位:


上图可见设为「all」时自动算出的 Pre/Post-Trigger Length 值:触发点之前至输入讯号起始点有 0.217 秒,触发点之後至输入讯号结束点有 0.783 秒的间隔。如果将 Re-Label Trigger 设为 True,如下图:

则输出讯号的时间轴会将原点移至触发点(但是原触发点位置 0.217 仍然会显示在栏位上),如下图:

如果将Pre-Trigger Length 设为 0(舍弃触发点前所有讯号),Post-Trigger Lenth 不变,如下图:

则输出讯号变成入下图:

上图可见输出讯号直接从触发点开始,输出长度 New Count 变为 Post-Trigger Length 包含之资料点数加上触发点本身。
如果输入为多通道,本元件可在 Active Channel 参数栏位选择当作触发源的通道,并提供几种不同的触发模式,在 Trigger Type 参数栏位设定,如下:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Active Channel | 当输入为多通道时才会出现,可选择当作触发源的通道 | Channel 1 |
| Trigger Type | 选择触发讯号的种类,可选择:
|
Edge |
以下详述各触发模式及相关参数设定。
注意:以下图示皆为实际 Impulse 讯号依照相关触发模式触发而成,共同参数设定如下:
| 参数名称 | 设定值 |
|---|---|
| Re-label Trigger | True |
| Re-labeled Trigger Position | 0 |
| Pre-Trigger Length | all |
| Post-Trigger Length | all |
边缘触发(Edge Trigger)
边缘触发模式侦测讯号上升边缘或下降边缘超过所设定的位准,触发点为超过位准後的第一个资料点,如下图:


相关参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Trigger Slope | 选择触发讯号的斜率,可选择:
|
Rising |
| Trigger Level #1 | 设定触发位准 | 0 |
| Hysteresis | 设定触发位准迟滞。此为防止讯号杂讯在触发位准上来回跳动导致误触,因而设定讯号必须上升或下降超过一个范围内才判定为触发。迟滞单位为资料最大范围的百分比。此参数适用於每个触发模式,以下不再重复 | 2.5 |
参数 Hysteresis 可设定触发位准迟滞。当设定上升边缘触发位准时,如有讯号杂讯,会出现讯号超过位准但是又马上下降低於位准的情形,此状况可能会出现在讯号下降边缘,并不符合预期的触发条件,如下图讯号开始时的状态。此时设定位准迟滞,会在触发位准之前另设一个迟滞范围,当讯号上升进入该范围,必须等到讯号离开该范围超过所设定之触发位准,才算真正满足触发条件。此时触发点为超过迟滞范围後的第一个资料点:

当设定下降边缘触发位准时,如有讯号杂讯,会出现讯号低於位准但是又马上上升超过位准的情形,此状况可能会出现在讯号上升边缘,并不符合预期的触发条件,如下图脉冲开始时的状态。此时设定位准迟滞,会在触发位准之前另设一个迟滞范围,当讯号下降进入该范围,必须等到讯号离开该范围低於所设定之触发位准,才算真正满足触发条件。此时触发点为超过迟滞范围後的第一个资料点:

窗触发(Window Trigger)
窗触发模式侦测讯号进入或离开设定的位准范围(由第一位准及第二位准设定),触发点为讯号进入或离开为准范围後的第一个资料点。当触发方向设为「进入」时,此触发模式可以同时侦测讯号过高於范围下缘以及低於范围的上缘,如下图设定位准范围 0.25~0.5:


当触发方向设为「离开」时,此模式可同时侦测讯号过高於范围上缘以及低於范围下缘,如下图:


相关参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Window Direction | 定义窗触发讯号的方向,可选择:
|
Entering |
| Trigger Level #1 | 设定第一个窗触发位准 | 0 |
| Trigger Level #2 | 设定第二个窗触发位准 | 0 |
脉冲宽触发(Pulse Width Trigger)
脉冲宽触发模式侦测特定宽度的正负脉冲讯号。由脉冲的前缘(正脉冲时为上升,负脉冲时为下降)超过所设定的位准时开始算,至脉冲的後缘(正脉冲时为下降,负脉冲时为上升)的宽度,依照所设定的判定方法宽於或窄於所设定的时间间隔,即判定为触发,触发点为脉冲後缘超过位准後第一个资料点。
如下图所示,设定位准为 0.25,时间间隔判定条件为「Wider」宽於 0.1,位於图左的讯号脉冲宽度小於所设之Time Interval 参数,因此不符合触发条件,位於图中的讯号脉冲宽度大於所设之 Time Interval 参数,则判定为触发:

如下图所示,改判定条件为「Narrower」,此时位於图左的讯号脉冲宽度小於所设之 Time Interval 参数,因此判定为触发:

相关参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Trigger Level #1 | 设定脉冲宽触发位准 | 0 |
| Time Interval | 设定脉冲宽的时间间隔 | 0.1 |
| Pulse Polarity | 设定正脉冲或副脉冲,可选择:
|
Positive |
| Pulse Criteria | 设定与 Time Interval 时间间隔参数比对判定方法,可选择:
|
Wider |
脉冲宽窗触发(Window Pulse Width Trigger)
脉冲宽窗触发模式结合了脉冲宽触发以及窗触发,用来侦测讯号进入(或离开)所设定的位准范围并持续一段时间後再离开(或进入)。本触发模式的基本逻辑跟脉冲宽触发相同,只是改用窗触发的位准范围代替原有的单一位准来侦测何时开始计算脉冲的持续时间(宽度),然後由所设定之判定方法决定是否判定为触发,触发点为讯号离开位准范围後第一个资料点。本触发可以用来当做异常触发(Runt Trigger)模式,侦测某个震幅范围的脉冲是否超过特定的宽度。
如下图所示,设定「进入」位准范围 0.5~0.75 前置窗触发条件,时间间隔判定条件为「Wider」宽於 0.7,此时位於图左的第一个号脉冲宽度小於所设之 Time Interval 参数,第二个脉冲在前缘就超出位准范围,在范围内的持续时间也小於所设定之时间间隔,因此都不符合触发条件,而第三个讯号脉冲宽度大於所设之 Time Interval 参数,因此判定为触发:

改时间间隔判定条件为「Narrower」时,位於图左的第一个讯号脉冲宽度小於所设之 Time Interval 参数,因此首先判定为触发,如下图所示:

下图示范稍微不同的输入讯号,将前置窗触发条件改为「离开」,时间间隔判定条件为「Wider」宽於 0.1 ,此时位於图左的第一及第二个脉冲之间的间隔小於所设之 Time Interval 参数,因此不符合触发条件,而位於第二个及第三个脉冲之间的脉冲间隔大於所设之Time Interval 参数,则判定为触发:

时间间隔判定条件为「Narrower」时,第一个脉冲间隔的脉冲间隔小於所设之 Time Interval 参数,因此判定为触发,如下图:

相关参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Window Direction | 定义脉冲宽窗触发讯号的方向,可选择:
|
Entering |
| Trigger Level #1 | 设定第一个脉冲宽窗触发位准 | 0 |
| Trigger Level #2 | 设定第二个脉冲宽窗触发位准 | 0 |
| Time Interval | 设定脉冲宽窗的时间间隔 | 0.1 |
| Interval Criteria | 设定与 Time Interval 时间间隔参数比对判定方法,可选择:
|
Wider |
间隔触发(Interval Trigger)
间隔触发模式侦测讯号上升(或下降)时超过所设定的位准,隔一段时间後上升(或下降)时同条件再次触发的情形,两次触发的间隔依照所设定之时间间隔判定方法与设定之时间间隔比对,决定是否真正触发。本模式跟脉冲宽触发逻辑雷同,只是脉冲宽触发因为是要侦测脉冲宽,两次触发的条件相反(先上再下或先下再上),而本模式两次触发的条件相同(上升斜率时侦测一个脉冲上缘至下一个脉冲上缘的间隔,下降斜率时侦测一个脉冲的下缘至下一个脉冲下缘的间隔)。这个模式可以在脉冲串序列当中抓出不规则的状况。本模式的触发点为第二次触发後的第一个资料点。
下图示范输入讯号为有缺陷的脉冲串,上图缺单一脉冲,下图为单一脉冲过宽。此时设定间隔触发,上升斜率,时间间隔判定条件为「Wider」宽於 0.25,侦测一个脉冲上升缘及下一个脉冲上升缘的间隔是否宽於 0.25,则可同时侦测两种缺陷:

欲侦测脉冲串中有多馀的脉冲,如下图所示,则可改时间间隔判定条件为「Narrower」窄於 0.15,则可侦测脉冲间隔过小的情形:

相关参数如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Trigger Slope | 定义触发讯号的斜率,可选择:
|
Rising |
| Trigger Level #1 | 设定触发位准 | 0 |
| Time Interval | 设定间隔触发的时间间隔 | 0.1 |
| Interval Criteria | 设定与 Time Interval 时间间隔参数比对判定方法,可选择:
|
Wider |
范例
点选 Import Data
,从 C:\Program Files\AnCAD\Visual Signal\demo\Basic载入数据敲击讯号 右端 .tfa丶敲击讯号 左端.tfa丶敲击讯号 中间1.tfa,各自在後面接上 Comepute / Switch / Channel Switch 和 Compute / Channel / Trigger Alignment,再以 Viewer / Channel Viewer 显示。
下图为此三组讯号的原始图形,经由轮流敲击同一根铝棒的左端丶右端和中间,产生三组敲击讯号,黑色为敲击力道讯号,蓝色则为加速度讯号;由下图可看出三组数据的 Trigger 接发生在不同时间。



由 Trigger Alignment 的参数 Pre-Trigger Length 和 Post-Trigger Length 可调整时间轴并对齐触发讯号,Trigger Type丶Trigger Slope丶Trigger Level #1 和 Hysteresis 则可定义欲侦测的触发讯号。以「敲击讯号 右端」为例,Trigger Source=1:Force,其触发讯号振幅约 273N,因此我们将参数 Trigger Level #1 设定为 200, Pre-Trigger Length 和 Post-Trigger Length 设为 0.5 和 2,调整後的图形如下。

依照此逻辑,再将「敲击讯号 中间」的 Trigger Level #1 改为 250,「敲击讯号 左端」的 Trigger Level #1 改为 500,Pre-Trigger Length 和 Post-Trigger Length 皆设为 0.5 和 2,使其触发讯号发生的时间和「敲击讯号 右端」相同;调整完後图形如下。


将滑鼠移至图的左上角,将三张图设定为 X 轴同步(Group: 1,Sync: X),使用工具
Zoom X即可同步缩放X轴,方便使用者做细部比较。当数据中包含多次敲击讯号,使用 Trigger Alignment 调整时间轴後,亦可将讯号叠加以减小噪音的影响。
相关指令
Impulse丶 Audio DAQ丶NI DAQ丶ADLINK DAQ
参考资料
http://zone.ni.com/reference/en-XX/help/371526A-01/vbhelp/hysteresis_triggers/
4.2 Enhanced*
*This module is available in Professional only*
Fast Short-Term Fourier Transform:快速版本之STFT:就以相同长度的资料而言,此元件运行速度比传统 STFT快速,记忆体需求量低。
Remove Bump:将讯号中不连续点(Bump 或 Jump)移除,再以平滑曲线连接之,还原原本讯号。
Fast Trend Estimater:快速版本的 Trend Estimater。
Fast Iterative Gaussian Filter:快速版本的 Iterative Gaussian Filter。
Fast MSE:快速版本的 Multi-Scale Entropy。
Teager:计算讯号的瞬时频率与瞬时振幅。
Rolling MSE:时间随时及和不同尺度观察振幅的变化大小。
PCA:目的是将多笔混合讯号拆解为少笔讯号 。
ICA:将一组混合讯号拆解为另一组统计上互相独立的讯号 。
4.2.1 Fast Short-Term Fourier Transform*
*Only in Professional*
短时距傅立叶转换(Short-Term Fourier Transform, STFT),为传统 STFT的方法,此为快速版本,功能与标准版相同(仅使用介面些许有异)。
说明
此模组为快速版本之STFT:就以相同长度的资料而言,此模组运行速度快,记忆体需求量低(可以计算更多点数的讯号)。速度上 ,提升约百倍;而可以运算讯号长度,於3Gb 的记忆体而言(Windows XP 32bit 上限),标准板的 STFT能计算的讯号长度上限约为四百万点,而快速版本的上限约为两千两百万点,其他说明请参考标准版本的Short-Term Fourier Transform。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio)输入;输出讯号格式为复数,单通道的时频(Spectra)资料。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 设定计算方法,包含 FFT,SlidingFFT。FFT 提供 1st Order Solution,SlidingFFT 提供 1st丶 2nd Order Solution。SlidingFFT 的计算窗每次平移资料一点,所以计算结果的网格较密,但萤幕无法显示所有网格,若设定 FreqCount 或 TimeCount 小於计算的资料时间丶频率网格数,将需要设定参数 DisplayType。 | SlidingFFT |
| DisplayType | SlidingFFT 的结果中,若 FreqCount 丶TimeCount 小於计算的资料网格数,并藉由几个频率和时间的范围内资料取一点(Downsample)丶最大值(Maxima)丶最小值(Minima)丶平均值(Average), 以便降到设定展示网格数。取 Maxima丶Minima丶Average 是为了不因降低网格数无法看见其细部变化。 | Downsample |
| Order | 当使用 SlidingFFT,可以设定 First丶Second Order Solution。 FFT 只有提供 First Oder,无需设定。 | FirstOrder |
| FreqAxis | 时频图频率的分布可以设定为是 LinearAxis(线性尺度)或是 LogAxis(对数尺度), LogAxis 多用於声音讯号分析。 | LinearAxis |
| FreqMin;FreqMax | 透过设定此参数,可决定绘图时频率的上下边界。 | \(0\);\(0.5 \times \text{SampleFrequency}\) |
| FreqResolution | 此值会影响到窗函数的大小,设定的越低,窗函数会越长。 | \(\text{SampleFrequency} / 20\) |
| FreqCount | 显示STFT於频率方向之格点数。 | Auto |
| TimeCount | 显示STFT於时间方向之格点数。 | Auto |
| Window | 在STFT 分析,进行时间轴的分割时,会利用窗函数进行滤波,此处可选择不同窗函数。关於各窗函数的定义,请参阅 Fourier transform。 | Gaussian |
参数栏中还有 Remove DC 的相关选项。Remove DC 为嵌入元件,可以视为是将输入接到 Remove DC 後再接到本元件,因此相关参数可以直接参考【Remove DC】元件。
范例
在此以 FastSTFT 分析青蛙叫声为范例,元件在 Network 的配置如下。

得到的结果为下图。

若想要了解范围为 1000 Hz 至 3500 Hz 间,修改 FreqMax 与 FreqMin後得到下图。

频率上的解析度不是相当好,所以把 Frequency Resolution 修改为 75 (原本为225 ) 。

可发现频率上的解析度较方才为佳。
地震仪资料
有一笔地震仪量取的讯号,讯号点数约为八百万点。特别注意到,如此长度之资料若以标准板的STFT 做计算,会因记忆体需求量太大(超过3G)而无法处理。

经过补值与 RemoveBump 处理後资料图形如下图。


将此笔讯号接上 FastFrend 再接上 Fast STFT(参数全用预设),得到结果如下图。

可以知道低频部份没有完全滤除,所以把 Fast Trend 中的 trend frequency调为 3000(意指频率 3000Hz 以下者视为趋势,滤除之),得到结果如下

若想要了解范围为 10000 Hz 至 40000 Hz 间,重新设定 FreqMax 与 FreMin,结果如下图。

可发现频率上的解析度稍差了一些。调整 Frequency resolution为500(原为2500)後,结果为下图。

比较 FirstOrder 及 Second Order 的结果。
首先利用 Source / Sine Wave 产生 Sine,在接上两个 FastSTFT,最後以两个TF Viewer 显示其结果,TF Viewer 参数 YValueType 设定为 Gain。
由TF Viewer 中,可以看出 Second Order 在高频无讯号的范围内,计算出Amplitude 较 First Order 小。


以二十万点资料的 Noise 分别以 FastSTFT 与标准版的 STFT 做处理。

以同样的资料分别以 FastSTFT 与 STFT 处理,在 2.8GHz (Intel E6300 Dual Core) 的电脑上,计算时间分别为 0.35 秒与 21.84 秒。
将 Frequency Resolution 都设定为 250,快速版之计算时间为 0.3593秒,而标准版为 64.2343 秒。
相关指令
Short term Fourier Transform, Enhanced Morlet Transform。
参考资料
A Wavelet Tour Of Signal Processing (2nd Ed).
4.2.2 Remove Bump*
*Only in Professional*
各种的讯号都可能会因量测硬体的影响(如校正基准点产生偏差等 ),造成讯号产生不连续现象(Bump 或是 Jump ),如下面图形表示。

本元件目的在於可将上述不连续点移除,再以平滑曲线连接之,还原原本讯号:

说明
本元件是以两个条件之交集判定是否发生 Bump 或 Jump
判断讯号是否有一连串资料值皆超过临界值 \(J_{crit}\),并且连续递增或连续递减值。
另外判断该点资料之斜率是否超过临界斜率 \(S_{crit}\)。
在此说明 \(J\) 与 \(S\) 之不同:
下面讯号在0.4 秒时有一个突然 Bump处,放大该处范围并观察,可发现其为不连续五点


这六点(t 从 0.4s 到 0.405s, y 从 2.1756 到 5.0575)的最大 \(J\) 值为 5.50575-2.1756 = 3.33015。
这六点 \(S\) 的值如下图所表示

(利用 Compute / Math / Diff 将原讯号做微分,即为斜率)
若讯号中之点,\(S\) 与 \(J\) 皆超过临界值,则视为 Bump 并修正之。
参数设定
本模组接受实数(real number),单通道(single channel)或多通道(multi-channel),regular的讯号(signal)或声音讯号(audio)输入;输出讯号格式与输入讯号相同。各参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Output Type | Signal:移除 Bump 或 Jump 後的修正讯号。 Bump:Bump 或Jump 的讯号值。 | Singal |
| Jump Threshlod | \(J_{crit}\) 临界递增值:递增 / 减值超过此值者,将被视为 Jump / Bump 的候选值 | 整条讯号中,最大递增值的 90% |
| Jump Threshold Ratio | 设定 \(J\) 的比例系数 \(J_{ratio}\):整条讯号最大的 递增 / 减值 为 \(J_{max}\),则设 \(J_{crit} = J_{max} \times J_{ratio}\) | 0.3 |
| SlopeThreshold | \(S_{crit}\) 临界斜率:若斜率之绝对值超过此值者,为 Jump / Bump 候选值 | 整条讯号中,最大斜率的 90% |
| Slope Threshold Ratio | 设定 \(S\) 的比例系数 \(S_{ratio}\):整条讯号斜率最大绝对值为 \(S_{max}\),则设 \(S_{crit} = S_{max} \times S_{ratio}\) | 0.3 |
| Number of iterations | 重复次数,若参数的选择不佳,则有可能程式无法将不连续处完全移除。此参数为重复寻不连续处之次数(功用等同於将此模组重复串接)。 | 1 |
| StartPosition | 欲处理讯号不连续处之时间起点 | 整个讯号的时间起点 |
| EndPosition | 欲处理讯号不连续处之时间终点 | 整个讯号的时间终点 |
范例
下图为一笔地震仪之资料,在不同时间,地震仪之基准点不同:

再将原始讯号连接 Compute / Enhanced / RemoveBump,最後利用 Channel Viewer 观察结果,参数全用预设值,如下图所示。


可见到最大的两个不连续处已经被移除。 再原本的 RemoveBump 後方再接一个RemoveBump ,参数设定如下:

第二个 RemoveBump 的参数中的 Jump Threshold Ratio 与 Slop Threshold Ratio 皆设定为 0.1,其馀的参数皆用预设。
接下来的处理方法,有两种:
做法一

由上图可以发现在 t = 22.77 与 t = 41.27处似乎有不连续处,但放大後观察,发现非不连续现象。

,反是在 t = 37 至38 之间有不连续现象。

可发现在这区块,不连续现象已被移除

做法二
若不修改 StartPostion 与 EndPosition,但 Jump ThresholdRatio与Slop Threshold Ratio 皆设定为 0.1 :

输出为

相关指令
4.2.3 Fast Trend Estimater*
*Only in Professional*
Fast Trend Estimater 与标准版的 Trend Estimater完全相同,为速度较快,记忆体消耗量较少之版本。
说明
演算法请参阅 Iterative Gaussian Filter 章节。
参数设定
本模组接受实数(real number),单通道(single chtnnel)或多通道(multi-channel ),regular的讯号(signal)或声音讯号(audio)输入;输出讯号格式与输入讯号相同。各参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Filter Type | 与 Iterative GaussianFilter 的相同"
|
LowPass |
| Trend Basis | 以(Period)周期为参考设定参数或(Frequency)频率为参考设定参数 | Frequency |
若 Trend Basis 设定为 Period,其参数定义如下表。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Trend Period | 周期高於此值者,则视为趋势讯号。与 Iterative Gaussian Filter 对应则为: \[FL = 2 / TrendPeriod\] \[FH = 4 / TrendPeriod\] | 0 |
| Time Unit | 设定 TrendPeriod 的单位。 | Default |
| Default Time Unit | 输入讯号的原始时间单位。 | sec |
若 Trend Basis 设定为 Frequency,其参数定义如下表。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Trend Frequency | 频率低於此值者,则视为趋势讯号。与 Iterative Gaussian Filter 对应则为: \[FL = 2 \times TrendFrequency\] \[FH = 4 \times TrendFrequency\] | 0 |
| Frequency Unit | 设定 TrendFrequency 的单位。 | Default |
| Default Frequency Unit | 输入讯号的经傅立叶转换後的原始单位。 | Hz |
范例
请参考Trend Estimator。
以 CPU 速度 2.8 GHz(Intel E6300 )的电脑为测试机器,分别以标准版与快速版的 Trend Estimater计算不同长度的 Brown noise ,点数对运行时间的图形如下。

相关指令
Fast Iterative Gaussian Filter丶 Trend Estimater丶Iterative Gaussian Filter。
参考资料
1. Yih Nen Jeng, “Diffusive and Fast Filter Using Iterative Gaussian Smoothing”, Department of Aeronautics and Astronautics, National Cheng Kung University
2. Yih Nen Jeng 丶Yueh-Jiuan G. Hsu 丶You-Chi Cheng, 2004, “应用叠代式滤波法於潮汐数据修补的初步研究” ,第二十八届中华民国力学学会年会暨全国力学会议
3. YIH-Nen Jeng P. G. Huang You-Chi Cheng, 2007, “Decomposition of one-dimensional waveform using iterative Gaussian diffusive filtering methods”, Proc. R. Soc. A doi:10.1098/rspa
4. Yih-Nen Jeng, You-Chi Cheng, 2006, “Accuracy Comparison between Two Sharp and Diffusive Filters”, Proc.R. Soc. A doi:10.1098/rspa
5. http://www.ancad.com/blog/AnCADSupport/wp-connent/uploads/2008/05/it-gauss-2008-7.pdf
4.2.4 Fast Iterative Gaussian Filter*
*Only in Professional*
Fast Iterative Gaaussian Filter的演算法比较原本方法速度更快,记忆体消耗量较少,且结果更精确,尤其在边界上。
说明
请参考於【[Iterative Gaussian Filter]】的说明。
参数设定
本模组接受实数(real number),单通道(single channel)或多通道(multi-channel ),regular的讯号(signal)或声音讯号(audio)输入;输出讯号格式与输入讯号相同。各参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Filter Type | 选择 Iterative Gaussian Filter 的滤波形式:
|
LowPass |
| Attenuation | 设定衰减参数值(见【Interative Gaussian Filter】章节说明),建议 0.01 至 0.001 之间 | 0.01 |
| FH | 设定高频截止频率。 | 10 |
| Normalized FH | 显示相对於 Nyquist 频率的 FH 值。 | 10 |
| FL | 设定低频截止频率。 | 2 |
| Normalized FL | 显示相对於 Nyquist 频率的 FL 值。 | 10 |
| Freq Unit | 选择 FH 及 FL 的频率单位:
|
Default |
| Default Unit | Freq Unit 为 Default 时,显示自动设定之频率单位 | |
| Iteration | 显示滤波运算的重复次数 |
范例
这里以 CPU 速度 2.8GHz(intel E6300),3. 25GRAM的电脑为测试机器,分别以标准版与快速版的 Iterative Gaussian Filter计算不同长度的 Brown noise ,计算资料量对运算时间的图形如下。

然而更重要者,是标准版的 Iterative Gaussian Filter 在相同的记忆体量(3.25G)情况下,仅能处理最多 200 万个点的资料;而快速版本者,最多能处理1600 万点的资料。
相关指令
Trend Estimater,Iterative Gaussian Filter。
参考资料
1. Yih Nen Jeng, “Diffusive and Fast Filter Using Iterative Gaussian Smoothing”, Department of Aeronautics and Astronautics, National Cheng Kung University
2. Yih Nen Jeng 丶Yueh-Jiuan G. Hsu 丶You-Chi Cheng, 2004, “应用叠代式滤波法於潮汐数据修补的初步研究” ,第二十八届中华民国力学学会年会暨全国力学会议
3. YIH-Nen Jeng P. G. Huang You-Chi Cheng, 2007, “Decomposition of one-dimensional waveform using iterative Gaussian diffusive filtering methods”, Proc. R.Soc. A doi:10.1098/rspa
4. Yih-Nen Jeng, You-Chi Cheng, 2006, “Accuracy Comparison between Two Sharp and Diffusive Filters”, Proc. R. Soc. A doi:10.1098/rspa
5. http://www.ancad.com/blog/AnCADSupport/wp-connent/uploads/2008/05/it-gauss-2008-7.pdf
4.2.5 Fast MSE*
*Only in Professional*
原本 MSE 演算法中,计算一个 Scale 所耗的时间为讯号长度 N 的平方之正比(\(O(N^2)\) )。本元件采用了Sort(同为 \(O(M^2)\),但比例系数较小)以及 K-D Tree( \(O(M^{3/2})\),但需使用较多的记忆体)两种演算方法减少计算时间。
参数设定
本模组接受实数(real number),单通道(single channel)或多通道(multi-channel ),regular的讯号(signal)丶声音讯号(audio)输入;输出讯号格式为实数,单通道或多通道,regular的讯号。参数说明详见下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Entropy Method | 选择熵计算方法,详情请参考【MSE】 元件说明:
|
Sample |
| Algorithm | Entropy Method 选择 Sample 或 Approximate 时在计算熵时搜寻统计相似数列的演算法(详情请见【MSE】章节说明):
|
Auto |
| MinScale | 设定最小尺度。作多尺度分析时设定尺度缩放之下限值 | 1 |
| MaxScale | 设定最大尺度。作多尺度分析时设定尺度缩放之上限值 | 20 |
| ScaleStep | 设定尺度步长,於尺度上限以下取一步幅长,依此步幅长递增(减)尺度至最大(小)尺度。 | 1 |
| Match Points | Entropy Method 设定为 Sample 或 Approximate 时,可设定比较相似度之数列长度,即原【MSE】相关定义中之 \(m\) | 2 |
| Match Tolerance | Entropy Method 设定为 Sample 或 Approximate 时,设定判断相似度所设定的容忍误差值,即原【MSE】相关定义中的 \(r\),单位为输入资料之标准差 | 0.15 |
| BinCount | Entropy Method 设定为 Shannon 时,可设定计算概率之分格数,即原【MSE】相关定义中的 \(h\) | 10 |
| Enable Composite MSE | 设定是否开启组合式 MSE,即加入少量白噪音多次重复计算 MSE 後合并结果,可用较少的资料得出较平滑的 MSE 结果 | False |
范例
以测试的机器(Intel dual core E6300 2.8 GHz )为例,一般版本与快速版的MSE 的讯号点数对计算时间图,测试讯号为 pinknoise,其馀参数皆为预设值。

相关指令
参考资料
1. Pincus, S. M., Approximate entropy as a measure of systemcomplexity, Proceedings of the National Academy of Sciences, USA, Vol. 88, pp. 2297-2301 (1991).
2. Costa M., Goldberger A.L., Peng C.-K. Multiscale entropy analysis of physiologic time series. Phys Rev Lett 2002; 89:062102.
3. Costa M, Peng C-K, Goldberger AL, Hausdorff JM.Multiscale entropy analysis of human gait dynaiics. Physica A , 2003;330:53-60.
4. Costa M., Goldberger A.L., Peng C.-K.Multiscale entropy analysis of biological signals. Phys Rev E 2005;71:021906.
4.2.6 Rolling MSE*
*Only in Professional*
Rolling MSE 是对讯号(讯号资料长度 N ),取观察窗口(窗口长度 M)做MSE 计算,再平移窗口重复此步骤,最後结果绘为为三维度的Time-ScaleEntropy Plot 的分析方法。与 Fast MSE 相同,提供了三种演算法:Brute(原本的算法,单一尺度耗时 \(O(M^2)\))丶 Sort(同为 \(O(M^2)\),但比例系数较小)以及 SlidingKD tree(\(O(M^{3/2})\),但需使用较多的记忆体)。
说明
首先对原讯号(点数 N = 1001 ),取出一段资料,做 MSE(在此 t = 0,窗口宽为 0.2) :

再向右平移此窗口,再做 MSE (在此 t = 0.04,重叠量(overalp)为 160 点):

再度向右平移窗口,再进行 MSE。

直至窗口扫完整条讯号:

将在上述的所有平移窗口计算得的结果组合成三维图形,如下图显示个时间点结果。
t = 0

t = 0.04

t = 0.08

t = 0.8

将所有窗口的结果依序并排,并绘制为三维图,如下图。

演算法要求窗口 M 必须要大於 25 点;并且,M 必需要是 max scale的三倍以上才能做分析。
参数设定
本模组接受实数(realnumber),单通道(single channel)或多通道(multi-channel),Regular的讯号(signal)丶声音讯号(audio)输入;输出讯号格式为实数,单通道或多通道,Regular的讯号。参数与原本的MSE完全相同,仅多了演算法的选项:说明详见下表。

| 参数名称 | 参数意义 | 预设值 |
|---|---|---|
| GlobalSTD | 设定是否计算整段讯号的标准差,否则计算滚动窗窗内的标准差。 | False |
MSE 相关参数与前章快速 MSE 相同,详情请参阅【FastMSE】章节说明。Rolling Window 为辅助元件,相关参数用来控制做滚动窗计算时的计算窗大小丶单位丶及重叠等参数,详情请参阅【滚动窗计算】章节。
范例
以下这个范例是量测睡眠时的生理讯号,包括 EEG(脑波讯号)丶ECG(心电讯号)丶EOG (眼动肌动讯号)等,医生透过各种生理讯号的人为判断,分析出睡眠的分层。
下面这张图是睡眠时的 EOG 讯号。

将 EOG 讯号作 Rolling MSE,随着时间观察 MSE 的变化。

若将上图 Rolling MSE 的结果与下图医生根据各种讯後做的判读结果相当一致。

开启 demo73_1(C:\\Program Files\\AnCAD\\Visual Signal\\demo\\Enhanced\\demo73\_1 - RollingMSE.vsn),可以看见一个加速度讯号,量测电梯上升到停止的振动。

将振动讯号经由 Fast STFT 运算,再利用 TF Viewer 观察其结果,发现在 25 秒至 65 秒间有固定 20 Hz 的频率,也是电梯产生抖动的时间点如下图。

再将其经过 Rolling MSE 的分析,发现这段期间 MSE的值相较其他时间来的小,如下图。

相关指令
参考资料
1. L. Guzm´an-Vargas, A. Ram´ırez-Rojas, and F. Angulo-Brown:Multiscale entropy analysis of electroseismic time series;Nat. Hazards Earth Syst. Sci., 8, 855-860, 2008
2. Costa M, Peng C-K, Goldberger AL, Hausdorff JM. :Multiscale entropy analysis of human gait dynamics. Physica A2003;330:53-60。
3. Costa M., Goldberger A.L., Peng C.-K.:Multiscale entropy analysis of biological signals. Phys Rev E 2005;71:021906.
4. Costa M., Goldberger A.L., Peng C.-K :Multiscale entropy analysis of physiologic time series.Phys Rev Lett, 2002; 89 : 062102.
4.2.7 PCA*
*Only in Professional*
说明
PCA(Principle Component Anaylsis)的目的是将 \(k\) 笔混合讯号 \(X\),(Mixing signal)拆解为 \(q\) 笔讯号 \(Y\),而 \(k > q\),\(Y\) 为互相不相关(un-correlated)的讯号。如此可用较少的讯号个数来代表或重建此混合讯号。
假设输入的讯号 \(X\) 有 \(k\) 笔丶讯号长度为 \(N\);而输出的(拆解过的)讯号 \(Y\) 有 \(q\)笔,长度亦为 \(N\)。PCA 的目的是要找一个矩阵 \(W\),满足 \(Y = W^T X\)。其中 \(X\) 为混合讯号(\(X\) 需先移除 DC 值)。\(W\) 称之为主分量(principle component),\(Y\) 称之为 reconstructed signal。可以证明:\(W\) 为 \(X\) 的 covariance 矩阵的特徵向量(eigenvector),而其特徵值(eigenvalue)决定每一个 principle component 对於 \(X\) 的贡献。所以,可透过删除较小的特徵值,而以较少的笔数 \(q\) 来代表( resconstruct)此混合讯号。
注:
PCA 与 ICA 初看之下很容易混淆。PCA 乃将讯号拆解为彼此不相关的讯号;而ICA 乃将讯号拆解为彼此独立的讯号。「非相关」(un-correlated)的定义较「独立」( independent)的定义宽松许多。
其中,非相关的定义为:\(E(xy)=E(x)E(y)\),其中 \(E\) 为期望值。独立的定义为:
\[p(xy)=p(x) \cdot p(y) \implies E(g(x)g(y)) = E(g(x)) \cdot E(g(y))\]
参数设定
本模组接受实数(real number),单通道(single channel),多通道(multi-channel ),Regular讯号(signal)或声音讯号(audio)输入

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| PCA method | PCA 的求解方法,可为 Eig(特徵值法)或 SVD(Singular Valued Decomposition)。 | Eig |
| Small Eigenvalue Threshold | 特徵值大小在多少以下,视为冗馀讯号。 | 1E-08 |
| Number of Output Components | 求解出来的独立讯号数。 | 仅输出供使用者参考 |
| Report | 将特徵值,特徵向量以报表型式输出。 | 仅输出供使用者参考 |
范例
开启范例 demo 82(C:\\Program Files\\AnCAD\\Visual Signal\\demo\\Enhanced\\demo 82 - PCA.vsn),可以看到有三支股票GE丶INTEL丶 YAHOO,将 GE 及 INTEL 由 Mixer依照比列形成一档基金,如下图。

将两档股票与基金一起进行运算,基金与 GE丶INTEL 运算 PCA,在将 PCA 中的Report 展开,发现有 Eigenvalue 趋近 0,表示基金含有 GE 或 INTEL 的成分。


基金与 GE丶YAHOO 运算 PCA,在将 PCA 中的 Report 展开,发现有 Eigenvalue没有趋近於 0,表示基金不含有 YAHOO 的成分。

相关指令
ICA。
参考资料
1. Independent Component Analysis, ATutorial Introduction Ch10,James V. Stone, A Bradford Book
2. Independent Component Analysis, Aapo Hyvärinen, Juha Karhunen, Erkki Oja, A Wiley-Interscience Publication
4.2.8 ICA*
*Only in Professional*
说明
ICA 为 Independent Component Analysis 的缩写,为近十来年来发展的一个讯号分析演算法。
问题描述:
ICA 是将一组混合讯号 \(M\)(MixingSignal)拆解为另一组统计上互相独立的讯号 \(S\)( Source Signal)。
假设输入的混合讯号 \(M\) 有 \(d_m\) 笔长度为 \(N\),输出的拆解後原讯号 \(S\) 有 \(d_s\) 笔长度为 \(N\),ICA 的问题是要找一个矩阵 \(W\) 与独立讯号 \(S\) 满足 \(S = WM\), 亦可写成 \(M = AS, A=M^-1\),其中 \(A\) 为 \(d_s \times d_m\) 矩阵,\(W\) 为 \(d_m \times d_s\) 矩阵。
在 ICA 中有两个假设:一为 \(S\) 为互相独立(independent),二为最多一个 \(S\) 为 Gaussian 分布。
应用例 :鸡尾酒派对(Cocktail Part Problem)问题
ICA可用以处理混音分离之问题:假设声速为无穷快,以 \(d_m\) 只位置不同麦克风接收 \(d_s\) 个人说话的加总混音,由於每个人说话之音量,相对於麦克风位置皆不同,所以每只麦克风接收到的混音皆不同。ICA可将麦克风接收到的声音,拆解出每个人说话之原声。此外,若让麦克风数量 \(d_m\) 大於人数 \(d_s\)(如此在做拆解时,会有冗馀讯号,见下)时,做 ICA 分离有机会将杂讯极中於某一(冗馀)讯号,让拆解出来的讯号更接近原声,更利於做接下来的处理(如做频率分析)。因此,ICA 让做为语音辨识或除噪的数学工具。
演算法说明:
本模组采用 Fixed Point 方法求解 \(W\) 及 \(S\),描述如下:
信号之间的独立可用 Non-Gaussian 分布函数描述之,最大化此函数,以求到 \(S\)之间的独立。 此求法相当於求 Cost(Objective)Function的导数等於零的解,求解时使用牛顿法叠代求得 \(W\):
\[max(f) \to \frac{df}{dW} = 0\\ W_{n+1} = W_n - \frac{f(W_n)}{\frac{\Delta f}{\Delta W_n}}\\ n: 1 \to \text{Max Iteration}\]
在求解时,可一次求 \(W\) 的一个分量(一列),称之 Deflation Method;或同时求得所有 \(W\) 的分量,称之 Symmetric Method。(注意:因 Deflation 法很容易累积 Round-Off 之误差,所以除了少数情况外,Symmetric 法结果都较 Deflation 为佳。)
Cost Function 可为 Tanh, Kurtosis (Fourth Order Moment)丶Skewness(3rd Order Moment)。 一般情况下 Tanh 可得到较佳的准度。
在 \(M=AS\) 式中,\(A\) 与 \(S\) 皆为未知,故可改写为 \(m = \frac{1}{\alpha_i} A_i(\alpha_i S_i)\),其中 \(\alpha\) 为任意非零常数。则信号 \(\alpha_i S_i\) 亦为一解。这是 ICA 演算法本身的模糊性(Ambiguity)。若 \(\alpha_i\) 符号颠倒则讯号正负号将颠倒,有时颠倒的讯号会造成困扰:如鸡尾酒派对问题中,矩阵\(A\) 的的每一个元素,因为为非负的数(距离不该有负号)。因此,本模组提供选项Flip Signal Sign ,会自动将 \(A\) 的每一个元素调整为非负值。
\(d_m > d_s\) 的不等式发生於讯号有冗馀(Redundancy)的情况:Covariance Matrix(详见 PCA)的特徵值,表现了原始讯号间的关系。在特徵值有零的情况下,表示混合讯号有线性相依性(好比三个声源,却有五个麦克风),ICA将自动移除此讯号。使用者可选择特徵值在特定的 Threshold下时,自动删除该讯号。而因某些杂讯的特徵值相较於其他讯号小的多,故也可把ICA 当做一种除噪工具。
参数设定
本模组接受实数(Real Number),多通道(Multi-Channel),Regular 的讯号(Signal )或声音讯号(Audio)的输入。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ICA method | ICA 的求解方法,可为 Symmetric 或 Deflation。 | Symmetric |
| Cost function | 求解 ICA 时所用的分布函数,有 hyperbolicTan丶skewness 以及 kurtosis。 | hyperbolicTan |
| Max Iteration Steps | 迭代次数的最大值。 | 100 |
| Epsilon | 收敛与否的判断标准。 | 0.0001 |
| Neglect small Eigenvalue | 特徵值大小在多少以下,视为冗馀讯号 | 1E-08 |
| Flip Signal Sign | 输出时,是否要将讯号做反转。 | True |
| Number of Independent Components | 求解出来的独立讯号个数 | 仅输出供使用者参考 |
| ComputedIteration Steps | 计算时,实际的迭代次数 | 仅输出供使用者参考 |
| Report | 将特徵值,特徵向量以报表型式输出 | 仅输出供使用者参考 |
范例
开启 demo79 (C:\Program Files\AnCAD\Visual Signal\demo\Enhanced\demo79 - ICA.vsn), 可见原讯号 Bird and Frog是由两支麦克风录制录制两种青蛙的叫声,其中一种青蛙声音类似鸟叫,可以按下Viewer 左上角的 Play,分别听两支麦克风录到的蛙叫声 。


其中一支麦克风的声音讯号经过 Fast STFT计算结果如下图,可以看出有高频及低频声音。

再将两支麦克风讯号经过 ICA 拆解,可以看结果如下,亦可以按下 Viewer 左上角的 Play,分别听拆解出来各别的蛙叫声


相关指令
PCA。
参考资料
1. Independent Component Analysis by by Aapo Hyvtirinen, Juha Karhunen, and Erkki Oja A Wiley-Interscience Publication
2. E. Bingham and A. Hyv¨arine,. A fast fixed-point algorithm for independent component analysis of complex-valued signals. Int. J. of Neural Systems, 10(1):1-8, 2000.
3. A. Hyv¨arinen. A family of fixed-point algorithms for independent component analysis.In Proc. IEEE Int. Conf. on Acoustics, Speech and Signal Processing (ICASSP’97), pages 3917-3920, Munich, Germany, 1997.
4. A. Hyv¨arinen. Fast and robust fixed-point algorithms for inde7endent component analysis. IEEE Trans. on Neural Networks, 10(3):626-634, 1999.
5. Z. Koldovský, P. Tichavský and E. Oja, “Efficient Variant of Algorithm FastICA for Independent Component Analysis Attaining the Cramér-Rao Lower Bound”, IEEE Trans. on Neural Networks, Vol. 17, No. 5, Sept2006.
4.2.9 Teager*
*Only in Professional*
Teager 能量运算子(Teager Energy Operator)是基於时-频乘积的非线性微分算子,可用以分析讯号的调变(modulation)。在调变的基础上,得以定义讯号的瞬时频率与瞬时振幅。
说明
基於调变(AM-FM model),讯号可写为下面型式(desa1演算法):
\[x(t) = a(t) \cos\bigg[\Omega_c t + \Omega_m \int_0^t q(m) dm + \theta\bigg],\]
其中 \(\Omega_c\) 为 Carrier frequency,\(q(t)\) 为 information signal \(|q(t)| < 1\) ,\(\Omega_m\) 为最大偏差频率 \(0 < \Omega_m < \Omega_c\),\(a(t)\) 为瞬时振幅, \(\theta\) 为初始相角。
令定义 Teager 能量运算子为:
\[\Psi_d[x(t)] = \frac{x^2(t)-x(t-\Delta t) \cdot x(t+\Delta t)}{T^2},\]
其中 \(T\) 为取样周期。在线性调变,与调变波为窄波的基础下,代入 \(x(t)\) 上式可有下面近似:
\[\Psi[x(t)] \approx a^2(t) \sin^2(\Omega_i(t))\]
另外再定义 \(y(t) = x(t) - x(t-\Delta t)\)(backward difference,反向差),可得:
\[\frac{1}{2}(\Psi[x(t)]+\Psi[y(t)]) \approx 4a^2(t) \sin^2\bigg[\frac{\Omega_i(t)}{2}\bigg] \sin^2[\Omega_i(t)]\]
此时可算出瞬时频率与瞬时振幅:
\[\Omega_i(t) = \cos^{-1}\bigg(1 - \frac{\Psi[y(t)]+\Psi[y(t+\Delta t)]}{4 \Psi[x(t)]}\bigg)\]
\[|a(t)| = \Bigg< \frac{\Psi[x(t)]} {\frac{\Psi[y(t)]+\Psi[y(t+\Delta t)]}{4 \Psi[x(t)]}}\Bigg>\]
参数设定
本模组接受实数(real number),单通道(single channel)或多通道(multi-channel), Regular的讯号(signal)或声音讯号(audio)输入;输出讯号格式与输入讯号相同。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| OutputType | 设定输出选项,可为 TEO(Teager Energy Operator)丶InstantAmplitude 与 InstantFrequency。 | TEO |
范例
使用 Source / Custom wave 自行设定讯号 ,取样频率设定为 1,TimeLength 为200,共 201 个点,Expression为 (1+0.25*cos(pi*t/100))*cos(0.2*pi*t+pi*pow(t-100,2)/4000)


使用 Teager 模组分析之,OutType 为 TEO,结果以 Channel Viewer 显示结果。


OutType 为 InstantAmplitude,结果以 Channel Viewer 显示结果。

OutType 为 InstanceFrequency,结果以 Channel Viewer 显示结果。

4.3 External*
*Available in Professional only*
4.3.1 ExternalDll*
*Only in Professional*
本模组主要是帮助使用者嵌入各种独自开发的演算法丶讯号来源的介面等,使用者可以利用Visual C#丶Visual Basic丶Visual C++ 产生各种应用的 DLL(Dynamic Link Library ),本模组便可以在 Visual Signal 的环境下使用该 DLL。
说明
首先产生 DLL,在 Visual Studio 环境下,Project 选择为
Class Library,并在 References 加入:C:\Program Files\AnCAD\Visual Signal\External\vsmExternalBase.dll并且记得
using VSignal.ExternalBase;
所撰写的 Class 必须继承 TExternalBase,并且改写两个主要方法:
Init():主要在於设定名称丶参数设定丶模组基本设定等,DoCompute():目的在於接收输入讯号丶使用者处理讯号的演算法丶输出讯号设定等。
所有设定可以参考 ExternalBase Class Library 或 Visual Signal下 Help / Reference Guides / ExternalBase Class Library 。
产生 DLL 范例可以参考:
C:\Program Files\AnCAD\Visual Signal\External\api\cs\VSignalExternalDllDemo。
若将产生的 DLL 档放置於以下资料夹:
C:\Program Files\AnCAD\Visual Signal\External或
【使用者文件夹】\AnCAD\VisualSignal\External则 Visual Signal 会自动在【Network Editor】的「元件功能选单」内之「External」项目下产生一个选项,点选择会生成该 DLL 对应的 ExternalDLL 元件,如下图显示 External 项目内 VisualSignal 内建的各范例 External DLL:

参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| External Path | 设定外接 DLL 的路径。 | None |
| Module | 选择外接 DLL 内包含之模组。 | None |
| LocalCopy | 设定为 True,储存专案时会将 DLL 档案复制到专案资料夹。 | False |
| SystemCopy | 设定为 True,会将 DLL 档案复制到 Visual Signal 专用资料夹(C:\Program Files\AnCAD\Visual Signal\External\...)。 |
False |
| Auto-name | 自动设定元件名称为外接模组名称。 | True |
| DllProperties | 包含使用者设计及定义 DLL 模组的参数设定,或者 API Version 等。 | None |
范例
开启 Compute / External / ExternalDll,然後 ExternalPath 中开启:
C:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll然後在 Module 可以看到许多模组,如下图。

首先将 Module 选择为 demo1,然後在 DllProperties 类别中出现Multiplier1 代表第一个讯号的加权,Multiplier2代表第二个讯号的加权,最後再将加权後的讯号相加为输出讯号。

将 Noise 及 Sine Wave 接至 demo1 元件,再利用 Channel Viewer连接观察其结果,如下图。


再开启一个 ExternalDll,ExternalPath 中开启:
C:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll,最後将 Module 选择为 YahooStocks,这个 DLL 的 YahooStocks 将会至 Yahoo将某个时段丶某支股票的资料抓取下来。

DllProperties 中的 Company 可以输入公司缩写,例如
2330.TW(台积电)等,再将其接至 Channel Switch 选择 开盘价丶收盘价丶成交量等,最後用 Channel Viewer 连接观察其结果。


相关指令
4.3.2 ExternalViewer*
*Only in Professional*
本模组主要让使用者在 Visual Signal 下嵌入各种图片,使用者可以利用 Visual C#丶 Visual Basic丶Visual C++ 产生各种应用的 DLL(Dynamic Link Library),本模组便可以在 Visual Signal 的环境下使用该 DLL 展示图片。
说明
首先产生 DLL,在 Visual Studio 环境下,Project 选择为“Class Library”,并在 References 加入:
C:\Program Files\AnCAD\Visual Signal\External\vsmExternalBase.dll,并且记得
using VSignal.ExternalBase;
所撰写的 Class 必须继承 TExternalViewer,并且改写两个主要方法:
Init():主要在於设定名称丶参数设定丶模组基本设定等,DoCompute():目的在於接收输入讯号丶使用者处理讯号的演算法丶绘图程式等。
所有设定可以参考 ExternalBase Class Library 或 Visual Signal下 Help / Reference Guides / ExternalBase Class Library。
产生 Viewer DLL 范例可以参考:
C:\Program Files\AnCAD\Visual Signal\External\api\cs\VSignalExternalDllDemo。中之「
demo06.cs」相关程式。
若将产生的 Viewer DLL 档放置於以下资料夹:
C:\Program Files\AnCAD\Visual Signal\External或
【使用者文件夹】\AnCAD\VisualSignal\External则 Visual Signal 会自动在【Network Editor】的「元件功能选单」内之「External」项目下产生一个选项,点选择会生成该 DLL 对应的 External Viewer DLL 元件,如下图显示 External 项目内 VisualSignal 内建的「
Demo06」范例:
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| External Path | 设定外接 DLL 的路径。 | None |
| Module | 选择外接 DLL 内包含之模组。 | None |
| LocalCopy | 设定为 True,储存专案时会将 DLL 档案复制到专案资料夹。 | False |
| SystemCopy | 设定为 True,会将 DLL 档案复制到 Visual Signal 专用资料夹(C:\Program Files\AnCAD\Visual Signal\External\...)。 |
False |
| Auto-name | 自动设定元件名称为外接模组名称。 | True |
| DllProperties | 包含使用者设计及定义 DLL 模组的参数设定,或者 API Version 等。 | None |
| BackColor | 设定绘制图形的底色。 | White |
| Auto Resize Viewer | 设定 True,根据外接显示器大小去设定图表大小,反之则为依照使用者设定。 | False |
| ViewerWidth | 设定绘制图形的宽度,以 pixels 为单位。 | default (750) |
| ViewerHeight | 设定绘制图形的高度,以 pixels 为单位。 | default (180) |
| ListOrder | 设定图形於绘图视窗中的排序。 | 依照 Viewer 的建立顺序排列 |
| RetainPlot | 设定是否要保留图形,如果设定 True,图形还是会被保留,若设定 False,则图形被消除。若将连接至 Channel Viewer 的模组删除, | False |
| Show Title | 图表中显是标题名称。 | True |
| Title | 标题名称。 | {default} |
范例
开启 Compute / External / ExternalViewer,然後 ExternalPath 中开启:
C:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll,然後在 Module 可以看到许多模组,如下图。

首先将 Module 选择为 demo6,然後在 DllProperties 类别中出现 Path,可以任意选择一张图片,将其透过 ExternalViewer 来展示。


相关指令
4.4 Filter
本模组提供数种常见之滤波器,以滤除讯号中特定的资料内容。
FIR Filter:基本的有限脉冲响应滤波器 (Finite Impulse Response Filter)。
Median Filter:对抑制脉冲杂讯效果显着的中值滤波器。
Moving Average Filter:移动平均滤波器可消除随机产生之杂讯。
Iterative Gaussian Filter(*Only in Professional):此元件目的在於滤除讯号非周期之部份。
Trend Estimator(*Only in Professional):为 Iterative Gaussian Filter 之简化版,可抓取非周期讯号。
Notch Filter:此元件目的在於滤除讯号中的某个频率。
Comb Filter:为一梳形滤波器,用於滤除一系列等间距的频率。
IIR Filter:基本的无限脉冲响应滤波器 (Infinite Impulse Response Filter
4.4.1 FIR Filter
有限脉冲响应(Finite Impulse Response) 滤波器,是讯号处理中基本(Basis)滤波器原型,可针对高频丶低频或指定的频段滤波。有限(Finite)是指此滤波器对於讯号的反应时间是有限的。
说明
假设有一讯号,为如下图形:

傅立叶转换後图型如下,在此希望将其高频部份滤除,只保留低频部份:

(黑细线为原本讯号的傅立叶转换,红粗线为希望保留与滤除的频率分界)
因此,在傅立叶空间定义出上述红线的函数,并将此函数与原本讯号的傅立叶转换相乘:

再做傅立叶逆转换,就可得到滤除高频部份的图型 :

以上是为低通(LowPass) 滤波器,若为高通(HighPass) 则为:

带通(BandPass):

反带通或称带阻(BandStop)

ByPass 则为全通。
参数设定
本模组接受实数(Real Number),单通道(Single Channel) 或多通道(Multi-Channel ),Regular 的讯号(Signal) 或声音讯号(Audio)输入;输出讯号格式与输入讯号相同。
FIR Filter 的主要参数为 FilterType,预设包括LowPass丶HighPass丶BandPass丶 BandStop丶ByPass 等五种型态。LowPass表示过滤掉频率 F1 以上的讯号,HighPass 则过滤频率 F1以下的讯号。BandPass 代表保留频段 F1 至 F2 间的讯号,BandStop则是滤掉频段 F1 至 F2 间的讯号。ByPass 则为所有频率皆可通(即为原输入讯号)。各参数定义与预设值如下表:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FilterType | 预设五种形态,包括 LowPass丶HighPass丶BandPass丶BandStop丶ByPass | LowPass |
| IdealFilter | 设定是否使用理想化过滤器,意即频率响应曲线为方形(截止频率为垂直线而非高斯曲线) | True |
| RemovePhaseShift | 设定是否移除过滤後的相位偏移 | True |
| F1 | 对於 LowPass 以及 HighPass 而言,F1 代表滤波器过滤频段的分界点;对於 BandPass丶BandStop,F1 代表滤波器过滤频段的起始点,单位为 Hz | 10 |
| F2 | 对於 FilterType 选择 BandPass 与 BandStop 者,会出现滤波器过滤频段不终点 F2,单位为 Hz | 50 |
| Freq Unit | 选择 F1 及 F2 的频率单位:
|
Default |
| Default Unit | Freq Unit 为 Default 时,显示自动设定之频率单位 | |
| FilterOrder | 当使用非 Ideal Filter 时滤波器转换函数的离散点,N 即为 N-order Filter;当使用 Ideal Filter 时 Order 自动设为讯号长度,无须设定 | 101 |
| Window | 指定计算 FIR 滤波器系数的窗函数,包括 Bartlett丶Blackman丶Hamming丶Hann丶Rectangle | Bartlett |
范例
本范例将示范以三个频率各为 10丶51丶193 Hz 的 Sine Wave 加上振幅 0.3 的White Noise 当作输入讯号,再用 FIR Filter 过滤不同频率的讯号,步骤如下:
Network 视窗下选择 Source / Noise 产生一个白色杂讯,设定 Properties / Amplitude 为 0.3,再用 Source / Sine Wave 产生三个 Sine Wave,并改变其 Properties / SignalFreq 为 10丶51丶193 Hz,最後以Compute / Mathematics / Mixer 将上述讯号混合(将各讯号源之 Output拉至 Mixer 的 Input),用 Viewer / Channel Viewer 绘出。



可以将 Mixer 的结果接上 Compute / Transform / Fourier Transform,以观察频谱图,以方便接下来的 FIR Filter 设计

於 Mixer 图示选择 Compute / Filter / FIR Filter,调整 Properties / F1 为 25 Hz,FilterType 预设为 LowPass,用 Channel Viewer显示滤波结果。观察结果,输入讯号在频率 25 Hz以上的部份皆被滤除,输出讯号类似 10 Hz 的 Sine Wave,不过因 FilterOrder 仅101,所以波形有所影响。




重覆步骤 2 新增一 FIR Filter,调整参数 FilterType 等於 HighPass,F1改为 100 Hz,FilterOrder 为 500,结果如下图所示,滤波器过滤掉频率100 Hz 以下之讯号,结果为频率 193 Hz 的 Sine Wave 加上 White Noise。



再重覆步骤 2 新增一 FIR Filter,调整参数 FilterType 为 BandPass,F1改为 25 Hz,再设定频率下限 F2 为 100 Hz,FilterOrder 设为500,在频段 25~100 Hz 的讯号会通过,其它讯号则被滤掉,所以结果为 51 Hz 的 Sine Wave。



相关指令
参考资料
1. http://en.wikipedia.org/wiki/Finite_impulse_response
2. http://cnx.org/content/m11918/latest/
4.4.2 Median Filter
Median Filter 是一维的非线性滤波器,计算滤波范围(filter order)内讯号之中位数作输出结果,对於抑制脉冲杂讯(Speckle noise)效果显着,同时能保持讯号波形边缘的可辨度(edge detection)。
说明
\(X = \{x_0, x_1 \dots x_{N-1}\}\) 代表长度为 \(N\)之输入讯号,\(Y = \{y_0, y_1 \dots y_{N-1}\}\) 为滤波後的讯号,\(M\)为作滤波计算时所取的讯号长度,则 Median filter 定义为:
\[y_i = median(\{x_k\}), {i - \frac{M - 1}{2}} \leq k \leq {i + \frac{M + 1}{2}} \]
上式表示,在第 \(i\)个位置为中心,前後分别取 \(\frac{M - 1}{2}\) 个点成为一组数列,再找出该数列的中位数以取代讯号第 \(i\)个位置的值;若点数不足时如(\(M > N\),或在 \({N - i} < \frac{M - 1}{2}\)),则将范围内最边界点的值复制,用以填补至足够的点为址。程式预设\(M\) 为奇数,若输入为偶数,则自动将个数加一,以使成为为奇数。
参数设定
本模组接受实数(Real Number),单通道(Single Channel) 或多通道(Multi-Channel ),Regular 的讯号(Signal) 或声音讯号(Audio)输入;输出讯号格式与输入讯号相同。

| 参数名称 | 参数定应 | 预设值 |
|---|---|---|
| FilterType | 为设定滤波器对讯号高丶低频段的过滤,选项为 LowPass丶HighPass 及 ByPass。 | LowPass |
| FilterOrder | 作Median filter 所选取的数列长度,即为 M,设定为奇数,如输入偶数,则程式自动加1变为奇数。 | 101 |
范例
本范例(Example) 将示范以一个方波加上 Speckle Noise 当作输入讯号,再用Median filter 滤波的过程,步骤如下:
於 Network 视窗下按右键,选择 Source / Noise 产生一个杂讯,设定Properties / NoiseType 为 Speckle,Probability 设为 0.25,另外选择Source / Square Wave 产生一方波,以 Compute / Mathematics / Mixer将两讯号混合,用 Viewer / Channel Viewer 显示於视窗。



另点选 Mixer 图示选择 Compute / Filter / Median Filter,调整Properties / FilterOrder 为 5,再用 Viewer / Channel Viewer显示滤波结果。



步骤 2 已可得到不错的滤波效果,如再调整 Median Filter 的参数FilterOrder 为 21,结果如下图所示,FilterOrder 增加了约 4 倍,不但speckle noise 已经完全滤掉,而且在波形边缘仍维持良好的陡峭度。


最後回到 Noise 图示,将 NoiseType 由 Speckle noise 改为 White noise藉此测试 Median filter 的特性,结果如下,可观察到 Median filter无法完全过滤 White noise造成的影响,但波型边缘仍大部份维持着,此即为 Median filter的主要功用。

相关指令
Noise丶Square Wave丶 Mixer丶Moving Average Filter
参考资料
http://en.wikipedia.org/wiki/Median_filter
4.4.3 Moving Average Filter
Moving Average Filter 是藉由对滤波范围内讯号取平均值,目的为降低离散时间讯号中的杂讯,增加峰值的可辨度。其特点为理论简单,计算快速。
说明
令\(X = \{x_0,\,x_1 \dots x_{N-1}\}\)代表长度为 \(N\)之输入讯号,\(Y = \{y_0, y_1 \dots y_{N-1}\}\)为滤波结果,若滤波范围为(Average Length)为 \(M\) 个讯号,则其输出为:
\[y_i = \frac{1}{M} \displaystyle\sum_{j = -\frac{M - 1}{2}}^{\frac{M - 1}{2}} x_{i + j} \]
上式的意义为:总面积为 1,时间轴上长度为 \(M\)的长方形滤波器对输入讯号做折积( Convolution)。
参数设定
本模组接受实数(Real Number),单通道(Single Channel) 或多通道(Multi-Channel ),Regular 的讯号(Signal) 或声音讯号(Audio)输入;输出讯号格式与输入讯号相同。
Moving Average Filter 包括两个参数:FilterType 与AverageLength,AverageLength 代表求平均所取的讯号个数M,单位为时间。FilterType为设定滤波器高丶低频段的过滤,内有三个选项分别为 LowPass丶HighPass 及ByPass,LowPass 即为执行上述理论的计算值;HighPass 则为输入讯号减去LowPass 之计算结果;而 ByPass 的输出,即等於输入讯号 (因为 HighPass + LowPass = 原讯号),参数预设值详见下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FilterType | 选择滤波器对讯号高丶低频段的过滤类别:
|
LowPass |
| AverageLength | 作平均所设定的讯号长度,单位为时间 | 0.05 |
| AverageCount | 显示 AverageLength 所对应的讯号个数 | 依 AverageLength 而自动调整。 |
本元件还包括辅助元件 Rolling Window,可以设定 Moving Average 所用之滚动窗相关参数,详情请参阅【滚动窗计算】章节。设定平均计算设定之讯号长度 AverageLength 决定了滚动窗大小,而移动平均定义为每次移动计算窗一个资料点,因此这些参数都不需要设定,只需设定 Window Mode 参数,其他参数都使用其预设值。
范例
本例将混合一个频率为 2Hz丶振幅为 1丶长度 2 秒的方波与一个振幅为0.5,长度为 2秒的 White Noise,以 Moving Average Filter滤波,并设定不同的 AerageLength 观察对原讯号所造成的影响。
按右键选用 Source / Square Wave 创造方波,改变 Properties / TimeLength 栏位为 2,SignalFreq 栏位改为 2。接着再按右键点选 Source / Noise/White Noise 创造 White Noise,TimeLength设为 2,Amplitude设为 0.5。最後按右键选 Compute / Channel / Mixer 将两讯号相加,再用Viewer 绘出。




於 Mixer 按右键选择 Compute / Filter / Moving Average,对输入讯号作Moving Average,可於 Properties / AverageLength 栏位看到预设值等於0.1s, AverageCount 栏位显示共 101 个资料,代表 MA输出的每一点为其输入讯号前後共 101 个资料点的平均,FilterType / LowPass 表示输出为 Moving Average 的计算值,最後用 Viewer / Channel Viewer 将结果绘出。



按照步骤 2 对 Mixer 再做一次 Moving Average,产生名为 MA2图示,但改变其 AverageLength 为 0.2,并将结果用 Viewer 绘出。



比较步骤 1丶2丶3 的结果,可发现调高 Average Length可明显降低输入讯号的杂讯,但是此滤波器之缺点为:原始方波讯号陡峭的边界随着Average Length 提高而变的越来越平缓。
再对 Mixer 做 Moving Average,将 FilterType 修改为HighPass,可看到结果等於输入讯号减去 MA2 的输出讯号。



相关指令
参考资料
http://www.dspguide.com/ch15.htm
4.4.4 Iterative Gaussian Filter*
*Only in Professional*
各种讯号大部分可视为一周期性讯号加上非周期性讯号。透过 Iterative Gaussian Filter(Smoothing) 得到其周期性部分或非周期性部分的讯号。
产生一个 Sine 波(Sine wave),经由 Fourier Transform会产生如下图所示的一个单一峰值的频谱。由此可知 Sine 波的频率为 3Hz。


但如下图所示的讯号 (Sine + Exponential term);其频率或周期为何?将此讯号透过 Fourier Transform则得到如下图所示的频谱:讯号多分布在低频处,它掩盖了 Sine波的频率特徵而不是我们希望得到的答案(3Hz)。为解决此问题,我们可把此讯号拆成一个 Sine波加上一个指数函数;换言之我们希望把一个讯号拆解成一个周期性讯号(periodic signal) 加上一个非周期性讯号 (non-periodic signal)。如此对此讯号我们希望同时回答两件事:(1)讯号的周期性部分为何?或其频谱为何?(2) 其趋势(trend) 为何?


说明
但讯号也可能是因为量测时间不够长(小於一个周期),使得此讯号看起来含有非周期性讯号。那讯号的趋势究竟为何?我们可以平均的概念描述之。对讯号 \(\{y_i\}\) 每一点而言,其高斯平均(Guassian Average):
\[y_i = \frac{1}{L} \displaystyle\sum_{i = -\infty}^\infty \mathrm{e}^{\frac{(t_i - t_j)^2}{2 \sigma^2}} \]
此数学式说明\(\{\bar{y_i}\}\) 点的值乃由其邻近的点的平均值来代表,离 \(j\) 点愈远其权重愈小。\(\{\bar{y_i}\}\)所组成的新讯号较\(\{y_i\}\)平滑,也就是其高频部分 \(\{y_j^1\} = \{y_j - \bar{y_j}\}\) 被平滑化後消失了。再将 \(\{y_j^1\}\) 做高斯平均,叠代(反覆此步骤) 若干次後得到的 \(\{y_j^m\}\),(\(m\) 为叠代次数)的总和即为周期性讯号趋势讯号。原讯号减去周期性讯号即为其较低频的趋势讯号。数学上可证明 Gaussian Filter 相当於如下图的滤波器。

以趋势讯号(Low-Pass Filter)为例,会将小於\(F_L\)的部分完全通过,而滤除(绝大部分)大於\(F_H\)而中间的部分则为高斯分布。叠代次数 \(m\)与参数\(\sigma\)可由\(F_L\)丶 \(F_H\)以及 \(b\)(Attenuation Factor)求得。\(b\) 为很小的值,较常用的值为 0.01 或 0.001,\(F_H/F_L\) 可选定为 2 至 10。
参数设定
本模组接受实数(Real Number),单通道(Single Channel) 或多通道(Multi-Channel ),Regular 的讯号(Signal) 或声音讯号(Audio)输入;输出讯号格式与输入讯号相同。各参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Filter Type | 选择 Iterative Gaussian Filter 的滤波形式:
|
LowPass |
| Attenuation | 设定衰减参数值(见前述说明 \(b\) 之定义),建议 0.01 至 0.001 之间 | 0.01 |
| FH | 设定高频截止频率。 | 10 |
| Normalized FH | 显示相对於 Nyquist 频率的 FH 值。 | 10 |
| FL | 设定低频截止频率。 | 2 |
| Normalized FL | 显示相对於 Nyquist 频率的 FL 值。 | 10 |
| Freq Unit | 选择 FH 及 FL 的频率单位:
|
Default |
| Default Unit | Freq Unit 为 Default 时,显示自动设定之频率单位 | |
| Iteration | 显示滤波运算的重复次数 |
范例
范例为将一个 \(\mathrm{e}^{at} + sin(\omega t)\) 形式的讯号(即如一开始图型的讯号) ,以Iterative Gaussian Filter 滤除掉 \(\mathrm{e}^{at}\) 部份。
建立一个 Sine Wave,设定时间长度为 10秒,频率为 3 Hz;再建立一个Custom Wave ,在 Expression 内输入
exp(t/3.2),同样时间长度设为10 秒。之後将此两讯号以 Mixer 混合,并接上Channel Viewer 绘制图形。

(可将此讯号接上傅立叶转换以观察其特性)
之後由 Mixer 处,连结上 Iterative Gaussian Filter,并设定 Filter Type 为 HighPass丶FH 为 0.5,FL 为 0.1 (因为已知 Sine 的频率为3Hz,是故只要设定 FH 为一低於3 Hz ,以让 Sine Wave 通过)。


滤除後结果接上 Channel Viewer,可发现结果还算接近原本的 Sine Wave。而在讯号尾端,滤除结果与原本 Sine讯号有差异,是滤除不够乾净,而需调整参数以获得更佳结果。

(细黑线:为原本的 Sine;粗红线:为经滤波後还原的结果。)
可将 Iterative Gaussian Filter 里的 FH 设为 2.5丶FL 设为0.01,再重新计算一次。在此可发现滤波效果更佳丶更接近原本的 Sine。

相关指令
Trend Estimator丶CustomWave丶 Fourier Transform
参考资料
1. Yih Nen Jeng, “Diffusive and Fast Filter Using Iterative Gaussian Smoothing”, Department of Aeronautics and Astronautics, National Cheng Kung University
2. http://www.ancad.com/blog/AnCADSupport/wp-content/uploads/2008/05/it-gauss-2008-7.pdf
4.4.5 Trend Estimator*
*Only in Professional*
Trend Estimator 是 Iterative Gaussian Filter 的简易参数版,详细可参阅Iterative Gaussian Filter。在对讯号特性掌握较不完全时,无需详细设定,即可用 Trend Estimator 算出其趋势。也可利用 Trend Estimater 帮助找出地层下陷丶大气温度丶股票等讯号的长时间趋势。
说明
演算法请参阅 Iterative Gaussian Filter 章节。
参数设定
本模组接受实数(Real Number),单通道(Single Channel) 或多通道(Multi-Channel ),Regular 的讯号(Signal) 或声音讯号(Audio)输入;输出讯号格式与输入讯号相同。各参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Filter Type | 与 Iterative Gaussian Filter 的相同:
|
LowPass |
| Trend Basis | 以(Period) 周期为参考设定参数或(Frequency) 频率为参考设定参数。 | Frequency |
若是 Trend Basis 设定为 Frequency,其参数定义如下表。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Trend Frequency | 频率低於此值者,则视为趋势讯号。与 Iterative Gaussian Filter 对应则为: \[F_L = 2 \times \text{TrendFrequency}\] \[F_H = 4 \times \text{TrendFrequency}\] | 0 |
| Freq Unit | 选择 Trend Frequency 的频率单位:
|
Default |
| Default Unit | Freq Unit 为 Default 时,显示自动设定之频率单位 |
若是 Trend Basis 设定为 Period,其参数定义如下图表:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Trend Period | 周期高於此值者,则视为趋势讯号。与 Iterative Gaussian Filter 对应则为: \[F_L = 2 / \text{TrendPeriod}\] \[F_H = 4 / \text{TrendPeriod}\] | 0 |
| Time Unit | 设定 Trend Period 的时间单位:
|
Default |
| Default Time Unit | Time Unit 为 Default 时丶显示自动设定之时间单位。 |
范例
产生一个 Noise 讯号,将类别设为 Brown,其他参数皆预设值,接上 Channel Viewer 後讯号图如下:

将讯号源接上 Trend Estimator,其中参数皆为预设值,最後将结果接至同一个 Channel Viewer 显示其结果,黑线为原始资料,红线为趋势。


相关指令
Noise丶Channel Viewer丶 Iterative Gaussian Filter
参考资料
1. Diffusive and Fast Filter Using Iterative Gaussian Smoothing, Yih Nen Jeng, Department of Aeronautics and Astronautics, National Cheng Kung University
2. http://www.ancad.com/blog/AnCADSupport/wp-connent/uploads/2008/05/it-gauss-2008-7.pdf
4.4.6 Notch Filter
Notch Filter为带拒滤波器,也可称为带阻滤波器,目的在将某一特定频率滤除。
说明
Notch Filter 的主要滤除某一特定频率,若假设滤波器设计为滤除为 60 Hz的讯号,其 Frequency Response Function 如下图。

参数设定
本模组接受实数(Real Number),单通道(Single Channel) 或多通道(Multi-Channel ),Regular 的讯号(Signal) 或声音讯号(Audio)输入;输出讯号格式与输入讯号相同。各参数定义如下:

| 参数名称 | 参数定应 | 预设值 |
|---|---|---|
| FilterType | 为设定滤波器对讯号进行带阻或带通的过滤,选项为 BandStop丶BandPass 及 ByPass。 | BandStop |
| CenterFrequency | 被滤除的中心频率。 | 60 |
| Freq Unit | 设定 CenterFrequency 的频率单位。 | Default |
| Default Unit | 输入讯号经傅立叶转换後的原始单位。 | Hz |
| DecibelPoint | 设定衰减点,设定的越小所产生带拒越尖锐。 | -3 |
| BandWidth | 设滤波器带宽,定义为衰减点的带宽,单位为(\(\pi \times \text{弧度} / \text{取样频率}\))。 | 0.01 |
| PhaseCorrection | 开启修正相位偏差功能,选 True 开启此功能,选 False 则不启用。 | True |
范例
建立一个 Source / Advanced / Impulse,设定 ImpulseShape 为Square,而且 SingleImpulse 为 True,再接上 Compute / Transform / Fourier Transform,最後以 Channel Viewer 观察频率分布。


在 Impulse Source 後面接上 Compute / Filter / Notch Filter,在 Notch後面接上 Compute / Transform / Fourier Transform,最後以 Channel Viewer 观察频率分布可以清楚看见滤除 60 Hz。


改变 Notch Filter 中 DecibelPoint 为 -10,以及 BandWidth 为0.001,被滤除的频率和范围变得更尖锐。

相关指令
4.4.7 Comb Filter
Comb Filter 为梳型滤波器,目的在将某一系列等间距的频率滤除或保留。
说明
Comb Filter 的频率响应函数(Frequency Response Function) 如下图。

本模组接受实数(Real Number),单通道(Single Channel) 或多通道(Multi-Channel ),Regular 的讯号(Signal) 或声音讯号(Audio)输入;输出讯号格式与输入讯号相同。各参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FilterType | 滤波形态,包含 CombNotching丶CombPeaking。 | CombNotching |
| NotchNum | 设定 0 至取样频率之间的带拒数目,若滤波型态为 CombPeaking,实际带拒数目 = 设定带拒数目 - 1。 | 4 |
| DecibelPoint | 设定衰减点,设定的越小所产生带拒越尖锐。 | -3 |
| BandWidth | 设滤波器带宽,定义为衰减点的带宽,单位为(\(\pi \times \text{弧度} / \text{取样频率}\))。 | 0.01 |
| PhaseCorrection | 开启修正相位偏差功能,选 True 开启此功能,选 False 则不启用。 | True |
范例
建立一个 Source / Advanced / Impulse,设定 ImpulseShape 为Square,而且 SingleImpulse 为 True,再接上 Compute / Transform / Fourier Transform,最後以 Channel Viewer 观察频率分布。


在 Impulse 後面接上 Compute / Filter / Comb Filter,在 Comb 後面接上Compute / Transform / Fourier Transform,FFT 的 Max设定为讯号取样频率 1000,最後以 Channel Viewer观察频率分布可以发现频率是呈现等间距滤除。

改变 Comb Filter 中 FilterType 为 CombPeaking,以及 NotchNum 为11,滤波结果为保留一系列的频率,其他则滤除。


相关指令
4.4.8 IIR Filter*
*Only in Professional*
IIR Filter 全名为无限脉冲响应滤波(Infinite Impulse Response Filter)。属於滤波器的一种,相对於【FIR filter】有限脉冲响应滤波而言,IIR 对於脉波输入讯号的响应是无限延续的。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Filter Type | 为设定滤波器对讯号高丶低频段的过滤,选项为
|
LowPass |
| IIR Type | 设定无限脉冲滤波器的型态,选项为
|
Butterworth |
| F1 | 设定 LowPass 和 HighPass 的截止频率 | 50 |
| Normalized F1 | 显示以输入讯号之 Sampling Frequency 为依据,正规化後的 F1 值 | |
| Freq Unit | 选择 F1 的频率单位:
|
Default |
| Default Unit | Freq Unit 为 Default 时,显示自动设定之频率单位 | |
| FilterOrder | 滤波器转换函数的离散点,N 即为 N-order Filter,其值介於 1~12 | 10 |
| Ripple | IIRType 选择 Chebyshev 时,需设定 Ripple 值 | 0.1 |
范例
资料合成:从 Source / Sine Wave 和 Source / Noise 新增两讯号源 Sine Wave 和 Noise,并用 Compute / Mathematics / Mixer 将两者叠加,Gain1 和 Gain2 皆设为 1;叠加後图形如下。

FFT 频谱:从 Compute / Transform / Fourier Transform 新增 FFT 并接在 Mixer後面,再用 Viewer / Channel Viewer 观察此混和讯号的频谱图,10 Hz 为 Sine Wave 的频率,Noise 的频率则均匀分布在整个频谱图上。

设定 IIR 滤波器:从 Compute / Filter / IIR Filter 新增 IIR Filter,以 F1=20Hz 为门槛,使用低通滤波器将 Noise 过滤掉。

下图为 FilterOreder=10 运算的结果,尝试不同的 FilterOrder 并观察图形变化。

相关指令
参考资料
1. https://en.wikipedia.org/wiki/Infinite_impulse_response
2. http://www.ym.edu.tw/~cflu/MedSigProcess_Class07_CFLu.pdf
4.5 HHT(Hilbert-Huang Transform)
Hilbert-Huang Transform(HHT)是一种根据经验而来的讯号处理方式,利用这个方式可由非稳态(Unsteady)及非线性(Nonlinear)的讯号中提取有物理意义的资讯。一般传统的讯号处理方式多半建立於线性和稳态的假设上,一直到近年才发展出一些数学方法处理非稳态或非线性的讯号,但现实生活中很多情况是需要处理同时具有非稳态和非线性的讯号,这正是做讯号处理时令人头痛的难题,然而由黄锷博士所发展的一套数学方法 — Hilbert-Huang Transform(HHT)— 即针对上述情况提供一种解决方案。HHT 计算包含两个部份:EMD(Empirical Mode Decomposition)和 Hilbert Spectrum,结合 EMD 与Hilbert Transform 让此方法具有处理非稳态且非线性讯号的潜力,特别是需要同时知道时间丶频率丶能量的变化关系时。在多数研究中,HHT 可得到更丰富的时间丶频率丶能量的关系,且在很多情形下,我们可藉由 HHT 提取出更有物理意义的资讯,从而解释物理现像,并解决工程问题。
RCADA EEMD:中央大学数据中心所提供的一种 EEMD 演算法。
IMFProperty:列出各 IMF 的过零点个数丶极值个数丶过零点个数的平均频率丶各 IMF 间的正交性丶各 IMF 具有的功率比例。
AnCAD EMD(*Only in Professional):逸奇科技所提供的各种不同的 EMD 拆解演算法,提供使用者更多选择。
4.5.1 RCADA EEMD
EMD 为 Empirical Mode Decomposition,是个依照讯号特性将讯号分解成数个 IMFs (Intrinsic Mode Functions) 和一个剩馀讯号(Residual)的数学工具。较傅立叶级数分解更为优异的是,EMD 分出的 IMF,其振幅和瞬时频率可以随时间变化,并包留了原讯号中非线性和非稳态的特性。EMD 原理之详细说明请参考【AnCAD EMD】章节。
EEMD 为 Ensemble EMD,是在计算 EMD 的基础上加入少许乱数噪讯重复计算并平均各尺度之 IMF,可更有效拆解出各尺度的 IMF。
RCADA EEMD 为中央大学数据中心的最新(2009)EEMD 演算法,此模组的预设条件与数据中心提供 MATLAB 原始码的 EEMD 函式相同,但本模组更提供多种边界条件丶乱数产生方式等参数选择,以供使用者选择,并且运算速度较原本数据中心提供 MATLAB 原始码增加 200 倍以上。
说明
详请参考http://rcada.ncu.edu.tw/research1.htm。
参数设定
本模组接受实数(Real Number)讯号。RCADA EEMD 仅接受单通道(Single Channel), Regular 的讯号(Signal)或声音讯号(Audio)输入。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Spline Type | 选择三种边界条件(Boundary Conditions),包括 Clamped Spline丶Natural Cubic Spline丶Not A Knot。下面表格将说明 | NotAKnot |
| Number of Ensembles | 运行 EEMD 时,添加 Noise 的次数,并且会计算出多少组的 IMF 结果再进行平均。例如预设为 20,将原讯号加入 20 次的 Noise ,并个别计算出 20 组 IMF 结果,并平均之 | 20 |
| Noise Level | 即在运行 EEMD 时,添加的 Noise 之振荡,相对於原本讯号标准差之比值 | 0.1 |
| UserDefineSeed | 设定是否使用自订乱数种子。使用自订乱数种子可保证每次执行 EEMD 时加入的 Noise 产生都一样,方便测试比对结果 | False |
| Seed | 如使用自订乱数种子,此参数设定种子之数值 | 24205798 |
| Number of IMFs | 显示拆解出来的 IMF 通道总数 | |
| Modify Envelope Endpoints | 设定包络线端点是否要进行外插计算 | True |
| Use Guassian Noise | 设定是否使用 Guassian Noise,否则将使用 White Noise | Fasle |
| Sigma | 如使用 Gaussian Noise,设定标准差(Sigma )值 | 0.1 |
| Max. Sifting Iterations | 设定 EEMD 求解时叠代次数的上限 | 10 |
| Energy Integrity | 显示拆解出之 IMF 总能量与原讯号能量比,值为 1 时代表两者相等 |
| 边界条件 | 定义 |
|---|---|
| NotAKnot | 边界(最邻近)上的点,其三次导数相等。此预设边界条件等同於中央大学数据中心的 MATLAB 原始码的 EEMD,但由於 Visual Signal 与 MATLAB 的乱数产生不相同,拆解结果会稍有不同 |
| NatureCubicSpline | 边界上的点,其二次导数为零 |
| ClampedSpline | 边界上的点,其一次导数为定值(=0) |
跟AnCAD EMD一样,本元件输出为多通道讯号,包括所有的 IMF 讯号加上一个 Residual 讯号。欲观察各 IMF 的特性及了解 EMD 否适当的将讯号分离,可双击本元件图示开启IMF Property Reporter。各 IMF 参数的详细解说请参考【IMF Property】章节说明。
范例
本范例是采用中央大学网站上提供的范例资料(gsta.dat)。为一年一笔之地球表面平均温度之资料,可以参考
C:\Program Files\AnCAD\Visual Signal\demo\HHT\demo68.vsn。
再将原讯号连接 Compute / HHT / RCADA EEMD 做拆解,参数设定为预设,其结果如下,注意到 Residual(即最後一条讯号,淡蓝色线条),代表温度的趋势:


再对相同的讯号,比较 RCADA 提供 MATLAB 原始码在 MATLAB 程式 与 Visual Signal 的速度,\(\sin(5\cdot 2\pi t)+\sin(30\cdot 2\pi t)+\sin(50\cdot 2\pi t)+\sin(100\cdot 2\pi t)\),讯号长度为 20000,RCADA EEMD 拆解後结果如下:


在 Intel Dual Core E6300(2.8GHz)的电脑上,Visual Singal 的所花费计算时间为 1.65 秒,MATLAB 为 376.60 秒, 速度相差超过 200 倍。
先参考
C:\Program Files\AnCAD\Visual Signal\demo\HHT\中的demo68\_1专案,里面资料(Wave)为录制一段 Hello 的声音,如下两张图:

在 RCADA : EEMD 的参数中,Number of Ensembles 为 200,Noise Level 为 0.25,并观察第三个通道的讯号,结果如下图。。

在 RCADA : EEMD2 的参数中,Number of Ensembles 为 1,Noise Level 为 0.1,并观察第三个通道的讯号,结果如下图。。

两个拆解出来的讯号听起来,发现第一个 EEMD 拆解出来的声音比较清楚,第二个 EEMD 的结果含有一些噪音干扰。
相关指令
RCADA Instant Frequency丶RCADA Spectrum丶AnCAD EMD
参考资料
1.http://rcada.ncu.edu.tw/research1_clip_reference.htm
2. Norden E. Huang, Zheng Shen, Steven R. Long, Manli C. Wu, Hsing H. Shih, Quanan Zheng, Nai-Chyuan Yen, Chi Chao Tung and Henry H.Liu :“The Empirical Mode Decomposition and the Hilbert Spectrum for Nonlinear and Non-Stationary Time Series Analysis” , Proceedings of the Royal Society , Vol.454, No.1971, 1998
3. Huang, N. E., M. L. Wu, S. R. Long, S. S. Shen, W. D. Qu, P. Gloersen, and K. L. Fan (2003): “A confidence limit for the Empirical Mode Decomposition and Hilbert Spectral Analysis”, Proc. Roy. Soc. London, 459A, 2317-2345.
4. ZhaoHua Wu and Norden E. Huang, 2009, " Ensemble Empirical Mode Decomposition : A Noise-Assisted Data Analysis Method " , Advances in Adaptive Data Analysis, Vol. 1, No. 1 (2009) 1-41
4.5.2 IMF Property
讯号经过各种 EMD 运算後,可分解成数个 IMF 和一个 剩馀讯号,IMF property的功能是观察各 IMF 的特性,目的是了解各种 EMD 是否适当的将讯号分离。
说明
EMD 分解出的 IMF 有零点和极值之数量差小於一的特性,为验证 EMD分解讯号的能力,可由此元件观察各 IMF 的特性。此元件列出各 IMF的过零点个数丶极值个数丶过零点个数的平均频率丶各 IMF 间的正交性丶各 IMF具有的功率比例。
参数设定

点击 Report 栏位右侧之
图示,或是双击本元件图示,可开启 Reporter 显示各 IMF 参数。Report 说明请参考【Reporter】章节说明。
如范例图示,参数显示分为两大表格:General Properties 及 Orthogonality,说明如下:
基本参数(General Properties)
| 参数名称 | 参数定义 |
|---|---|
| Zero Crossings | 显示各通道讯号的过零点次数 |
| Extrema Counts | 显示各通道讯号局部最大或最小峰值的次数 |
| Zero Crossing Freq. | 显示各通道讯号用过零点次数计算出的平均频率,单位为\(1/\text{原讯号之时间单位}\) |
| Zero Crossing Period | 显示各通道讯号用过零点次数计算出的平均周期,单位为原讯号之时间单位 |
| Average Freq. | 显示各通道讯号用 FFT 计算出的平均频率,单位为\(1/\text{原讯号之时间单位}\) |
| Average Period | 显示各通道讯号用 FFT 计算出的平均周期,单位为原讯号之时间单位 |
| Power | 显示各通道的能量,为各个通道占原讯号总能量(不算残馀讯号 Residual)的百分比 |
IMF 正交性(Orthogonality)
此表格显示输入讯号之各通道彼此之间的正交性矩阵,请参考【正交性矩阵】元件说明。
范例
范例以 IMF Property 元件观察 RCADA EEMD 运算分解後之讯号特性,点选 EMD运算元件,按右键选择 Compute / HHT / IMF Property,如下图所示。分析的各个 IMF 特性可在属性中,点选 Report…属性,其右方会出现一按钮,点选按钮可显示此元件的分析结果,显示的结果如下。



相关指令
EMD丶Channel Viewer
4.5.3 AnCAD EMD*
*Only in Professional*
EMD 全名为 Empirical Mode Decomposition,是个依照讯号特性将讯号分解成数个 IMFs (Intrinsic Mode Functions) 和一个剩馀讯号(Residual)的数学工具。较傅立叶级数分解更为优异的是,EMD 分出的 IMF,其振幅和瞬时频率可以随时间变化,并包留了原讯号中非线性和非稳态的特性。
说明
EMD 可依据讯号特性将原讯号分解为多个子讯号。相较於其他数学方法,EMD是一个适应性的运算方法,无论讯号为何,这个方法皆可以把讯号初步分解成较具意义的分量,但是要分得好就需要一点经验与技巧了。这个讯号处理方法假设每一个讯号内部都包含不同的简单振动模态,此振动模态称为Intrinsic Mode Function(IMF),理想的 IMF 均包含下面几个特性:
零点和极值的数量相差在一个以下。
任一处的上包络线(由局部极大值定义)和下包络线(由局部极小值定义)的平均值为零(即对称)。
Sifing 是做 EMD 计算时,从讯号中提取 IMF 的过程,依据上述对 IMF的 述, Sifting 的运算流程如下:
取得一段要处理的讯号 \(x(t)\),找出其局部极大值所在点,并以 Cubic Spline 方法将所有局部极大值相连,可得此讯号的上包络线。
同样的找出此讯号的局部极小值并以 Cubic Spline方法相连,可得讯号的下包络线。
计算上包络线和下包络线的平均值,可得一平均线,令此平均线为 \(m(t)\)。
将原讯号和平均线相减,令相减後所得的讯号为 \(h(t)\),则 \(h(t) = x(t) - m(t)\)。
上述由 \(x(t)\) 减去上下包络线的平均线 \(m(t)\),求得 \(h(t)\) 的过程即为 Sifting。
本模组提供两种 Sifting 叠代终止准则:
Cauchy 收敛测试,叠代过程中连续两次 Sifting 後的讯号标准差\(SD_k\) (参数 StandardDeviation)小於一给定的数值,则终止後续的 Sifting 动作
\[SD_k = \frac{\sum_{t=0}^T|h_{k-1}(t)-h_k(t)|^2}{\sum_{t=0}^T h_{k-1}^2(t)}\]
先选定一个筛选次数上限,将原讯号做Sifting,直到新讯号过零点个数和极值个数之差小於 1为止,但筛选次数不超过所选定的次数上限(参数 Max. Sifting Iterations )。注意,此条件与论文中的不一样,但是为避免筛选後的讯号无法收敛到终止条件,而做此设计。
1 与 2 两种准则是同时比较,两者只要满足其一即达收敛标准,Sifting动作就结束。 Visual Signal 会将拆解出来的结果依高频至低频方式输出(Channel 1 频率最高, Channel 2 次之,以此类推),残馀讯号放在最後一条Channel。
EMD 的运算如下:将一原始讯号做若干次 Sifting後,讯号上丶下包络线的平均线会渐渐和水平轴重合,直至讯号的上丶下包络线对称於水平轴。此新讯号即为第一个IMF,故称为 IMF1。将 IMF1 从原始讯号减去,得到第一个残馀讯号 (First Residual),称为 r1,将 r1 依同样方式做若干次 Sifting,可获得 IMF2,再将IMF2 从 r1 扣除,得到第二个残馀讯号r2,依此规则重复计算,则可将原始讯号拆解成数个 IMF和最後的残馀讯号,此即为 EMD 的运算流程。
参数设定
本模组接受实数(Real Number)丶单通道(Single Channel),Regular 的讯号(Signal )或声音讯号(Audio)输入,其参数意义与设定如下:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 设定 EMD 运算时的方式,以下介绍可设定的功能:
|
IntermittencyTest |
| Normalized IMF | 将所有 IMF 正规化 | False |
| StandardDeviation | 设定门槛值,即公式中的 \(SD_k\)。利用 Sifting 前後讯号的平方差小於门槛值时停止 Sifting。见说明叠代终止准则 1 | 0.3 |
| Max. Sifting Iterations | Sifting 的最高次数。见说明叠代终止准则 2 | 10 |
| MaxImfCount | 决定每次 EMD 运算时,提取 IMF 的最大个数 | 11 |
若是 Method 为 IntermittencyTest,必须有多一个参数 Intermittency 要设定,如下表:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Intermittency | 两极值间的最大的点数间距。超过的此范围的极值会被忽略。此数值在每一模态中会自动增加成前一模态的两倍 | 4 |
若是 Method 为 EnsembleEMD,多出的参数设定与 RCADA EEMD 一致,请参考【RCADA EEMD】章节说明。
跟【RCADA EEMD】一样,本元件输出为多通道讯号,包括所有的 IMF 讯号加上一个 Residual 讯号。欲观察各 IMF 的特性及了解 EMD 否适当的将讯号分离,可双击本元件图示开启IMF Property Reporter。各 IMF 参数的详细解说请参考【IMF Property】章节说明。
范例
示范一混合讯号作 EMD 分析:
於 Project 视窗选择 Source / Sine Wave 产生讯号,并设定其参数,时间长度为 1.5秒,频率为 20 Hz;并再设定一Custom Wave 为 \(exp(1.8*t)\),一样时间长度为 1.5秒。以 Compute / Math / Mixer 混合两者:


在 Mixer 後接上 Compute / HHT / EMD,再以 Channel Viewer 绘制计算结果,於 Viewer 的 Properties / Channel / Multi-Channel Display 选择 List,将每个 IMF 分开显示,其图示如下。



在此可发现原本的 Sine 函数与 Exponential 函数被彻底拆解,原本的 Sine 为Channel 4,Exponential 函数则为残馀讯号 (因为 Exponential函数毫无周期性,无法再从中拆解出其他讯号)。其馀三笔讯号(Channel 1 ~3)是 EMD 在计算上过渡出来的结果,并无实质意义。
特别注意,EMD 具有自发性的依频率拆解能力。若我们将不同频率的 Sine Wave混合,间隔 30 Hz,由频率 10 Hz 至 130 Hz,再以 EMD处理後接上傅立叶转换,可得下面结果:




在此可发现 EMD 把讯号依频率分离,但并没有分的十分清楚。
EMD 使用上多结合 Hilbert transform 与 Hilbert Spectrum,做为 HHT标准程序。
EMD 输出结果接上 Channel Switch ,选择有兴趣的通道後再连结上 Hilbert Transform 可求得该通道之瞬时频率;亦可将 EMD 输出直接接上 Hilbert Spectrum,观查 EMD 拆解後的 HHT 时频图。
相关指令
Hilbert Transform丶IMF Properties丶Hilbert Spectrum
参考资料
Norden E. Huang, Samuel S.P. Shen, “Hilbert-Huang transform and its applications,” London : World Scientific, c2005
4.6 Mathematics
本模组群可对讯号之间或是对讯号的内容作数学计算,模组元件如下:
RemoveDC:消除讯号之直流部份。
Mixer:将输入之多笔讯号依据相同之时间座标相加(减)。
Multiplier:将输入之多笔讯号依据相同之时间座标相乘。
Math:可输入数学方程式,计算输入讯号。
Diff:计算输入讯号之微分近似值。
Integrate:计算输入讯号之累加式积分近似值。
DoMatlab:可将输入讯号连接至 Matlab,编译并执行 Matlab 程式码。
RMS:代表一段时间内的方均根 (Root Mean Square),可代表振动能量的平均值。
Normalize:将讯号正规化,即讯号除以正规化参数。
4.6.1 Diff
可对输入讯号做前後两元素相减或对讯号微分。
说明
\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表长度 \(N\) 之讯号,则:
Forward difference:(Simple)
\[\Delta x_i = x_{i+1} - x_i\text{,}\]
得出结果为 \(Y = \{\Delta x_0, \Delta x_1, \dots, \Delta x_{N-2}\}\),长度为 \(N -1\)。若输出长度欲与输入长度一致,则需在输出前端或後端补植(见下面 Padding 说明)。
若再除以取样周期 \(h\),则得到微分近似值:
\[\frac{\Delta x_i}{h} = \frac{x_{i+1}-x_i}{h} \cong \frac{dx_i}{dt}\text{。}\]
Central difference:(Symmetrized)
\[\Delta x_0 = x_1-x_0\text{,}\] \[\Delta x_i = \frac{x_{i+1}-x_{i-1}}{2}\text{,}\] \[\Delta x_{N-1} = x_{N-1}-x_{N-2}\text{,}\]
得出结果为 \(Y = \{\Delta x_0, \Delta x_1, \dots, \Delta x_{N-1}\}\),长度为 \(N\),与输入长度一致,无须补值。
若再除以取样周期 \(h\),则得到微分近似值:
\[\frac{\Delta x_i}{h} = \frac{x_{i+1}-x_{i-1}}{2h} \cong \frac{dx_i}{dt}\text{。}\]
Smooth-noise Robust difference:(Robust)
\[\Delta x_i = \sum_{k=1}^M c_k (x_{i+k}-x_{i-k})\text{,}\]
where \(c_k = \frac{1}{2^{2m+1}} \left[ \left(\begin{array}{c}2m \\ m-k+1\end{array}\right) - \left(\begin{array}{c}2m \\ m-k-1\end{array}\right)\right]\),\(m = \frac{N-2}{2}\),\(M = \frac{N-1}{2}\),
得出结果为 \(Y = \{\Delta x_0, \Delta x_1, \dots, \Delta x_{N-1}\}\),长度为 \(N\),与输出长度一致,无需补植。本算法输出在资料两端近似於 Symmetrized 算法之输出。
若再除以取样周期 \(h\),则得到微分近似值:
\[\frac{\Delta x_i}{h} = \frac{1}{h} \sum_{k=1}^M c_k(x_{i+k}-x{i-k}) \cong \frac{dx_i}{dt}\text{,}\]
其中 \(N\) 为数值微分的取样点数,表示共由多少离散函数点来决定此点的微分值,\(N\) 值越大越能准确地估计出微分值。详细推导请见参考资料1。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)与声音讯号(Audio) 输入。
提供之选项包括微分与否,方法选项,补值与否等。相关参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 选择微分方法:
|
Simple |
| Differentiate | 设定是否将结果除以取样周期 \(h\),得到微分的近似值。 | False |
| Padding | Method 选择 Simple 时,选择是否补值,保持与输入讯号长度相同,选项包含:
|
None |
| Padding Method | 选择补值时之补值方法:
|
Zero |
| Padding Value | 补值方法选择 Fixed 时,此参数可自订补值 | 0 |
当 Method 选择 Symmetrized 或 Robust 时,因输出长度等於输入长度,无需补值, Padding 相关选项会自动关闭。选择 Robust 时会出现额外参数 FilterLength,说明如下:
| 选项名称 | 选项定义 | 预设值 |
|---|---|---|
| FilterLength | 滤波器长度为数值微分的取样点数,表示由多少离散函数点来决定此点的微分值;需介於 5~999 之间,并小於讯号长度的奇数 | 9 |
范例
示范对 Sine Wave 作微分:
於 Network 视窗下按右键,选择 Source / Sine Wave产生一个正弦波,并用 Viewer / Channel Viewer 显示於视窗。


另点选 Sine 图示後,按右键选择 Compute / Math / Diff,再用 Viewer / Channel Viewer 绘制计算结果,图示如右下图。结果呈现正弦波经 Diff後变为馀弦波的讯号,但由於参数 Differentiate 预设为False,所以振幅很小。


调整 Diff 的 Properties / Differentiate 为True,即可得到微分近似值,以此例来说:Source / Sine Wave的讯号为 \(\sin{(2\pi ft)}\),其中 \(f\) 是讯号频率, \(t\) 是讯号时间,正弦波微分的值应为 \(2\pi f \cdot \cos{(2\pi ft)}\)。回到本范例\(f\) 是 10,\(2\pi \approx 6.28\),所以振幅最大值应为\(2\pi f \approx 62.83\),经比对下图结果,验证结果无误。

相关指令
参考资料
4.6.2 DoMatlab
透过 DoMatlab 可将 Visual Signal 元件的资料输入至 MATLAB Engine,再执行 MATLAB 语法运算,运算之後再传回 Visual Signal 显示结果,等同於让使用者创造出拥有独特演算法的模组。
安装设定
DoMatlab 接受 Visual Signal 所有元件的输出格式。元件一但连接 DoMatlab,程式会自动开启 MATLAB Command Window 视窗,Command Window 具有基本的 MATLAB 功能譬如 Workspace Browser丶Path Browser 等,操作上使用者必须参阅 MATLAB 说明文件。每次启动 MATLAB Command Window 需要耗费一定时间,开启後可以选择一直保持其开启的状态,每次连接新的 DoMatlab 元件时则不需耗时再开启 MATLAB Command Window。

须注意执行 DoMatlab 前,系统必须已安装 The MathWorks, Inc 所出品的 MATLAB Version 6.5 以上的版本 ,并执行以下设定步骤:
MATLAB 在安装後必须被注册为 COM Server。方法为以系统管理员权限开启 Windows 的【执行】开启命令提示字元视窗(执行
cmd),然後在命令提示字元视窗下键入matlab /regserver,如下:
以上方法在 MATLAB 2020a 以後的版本可能有问题,MATLAB 提供了新的
comserver指令,注册方法如下:- 开启 MATLAB,在 指令视窗中输入
comserver('register')即可。 - 欲确认注册状态,可输入
comserver('query'),可看到管理员跟使用者两者注册 MATLAB 执行档的路径,例如:

- 开启 MATLAB,在 指令视窗中输入
将以下三个路径依序加入 Window 的
Path环境变数:<MATLAB_INSTALL_FOLDER>\bin\win64<MATLAB_INSTALL_FOLDER>\runtime\win64<MATLAB_INSTALL_FOLDER>\bin
其中
<MATLAB_INSTALL_FOLDER>为 MATLAB 安装的路径。以 MATLAB 2021a 为例,<MATLAB_INSTALL_FOLDER> = C:\Program Files\MATLAB\R2021a。注意不同的 MATLAB 授权版本可能会有不同的安装路径,安装後必须实际去确认再设定Path环境变数。以 Windows 10/11 为例,设定
Path环境变数之步骤如下:- 开启 Windows 【设定】 / 【系统】 / 【系统资讯】
- 找到并点击开启【进阶系统设定】(注意 Windows 10 与 11 位置不同)
- 点击开启视窗下方【环境变数设定】
- 在【系统变数】的栏位中找到
Path,双击打开设定视窗 - 点击【新增】後直接输入上述路径之一,或是点击【浏览】搜寻并选择正确路径
- 重复以上步骤直到三个路径都设定好
- 点击【确定】离开设定视窗
注意,如有安装其他 MATLAB 旧版本,上述路径必须放置在其他版本路径之前,确保最新路径可被读取。
Visual Signal 在执行 DoMatlab 时如果出现 KMP/OMP 的错误讯息,则必须新增环境变数
KMP_DUPLICATE_LIB_OK,值设定为TRUE。新增环境变数步骤如下:- 开启 Windows 【设定】 / 【系统】 / 【系统资讯】
- 找到并点击开启【进阶系统设定】(注意 Windows 10 与 11 位置不同)
- 点击开启视窗下方【环境变数设定】
- 在【系统变数】的栏位点击【新增】
- 在变数名称栏位输入
KMP_DUPLICATE_LIB_OK - 在设定值栏位输入
TRUE - 点击【确定】离开设定视窗
注意以上设定完成後必须重启系统。
参数设定
DoMatlab 的 Properties 的参数如下图所示,各参数意义整理如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| MatlabEditor | 在栏位右方有 按钮可以开启 DoMatlab Editor,提供程式码编辑器撰写 MATLAB 程式。此外,双击 DoMatlab 元件图示也可以开启 DoMatlab Editor。 |
显示目前撰写之部分 MATLAB 程式 |
| Column-Vectors | 讯号传入 MATLAB 时,资料排列格式是否为直列优先(Column-wise)。 | True |
| ServerVisible | 是否显示 MATLAB Command Window | True |
| DumpOutput | 回传 MATLAB 产生的讯息,结果将显示在 MATLAB Script Output Dump 视窗(见下说明)。 | False |
| BufferLength | 当 DumpOutput 为 True,会出现此参数,设定回传讯息字元个数的最大值。 | 5000 |
| ViewBuffer | 当 DumpOutput 为 True,会出现此参数,可以按栏位右方 按钮开启 MATLAB Script Output Dump 视窗列出 MATLAB 产生的讯息。 |
无 |
| ReferenceInput | 若有多个输入讯号,此参数决定输出变数之预设时间轴是要参考那一个输入讯号。 | 第一个输入讯号 |
| AsSource | 设定 DoMatlab 是否要转变为一个讯号源,由 DoMatlab 产生讯号资料。 | False |
DoMatlab 内建有范例程式,依照 AsSource 参数的设定可切换计算功能或讯号源功能(详情见後叙述)。范例程式提供以下几个客制参数:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Length | 当程式设定为讯号源功能时输出讯号之长度 | 1001 |
| Type | 当程式设定为计算功能时可选择函式类别:
|
Square |
| Polynomial Coefs | 当 Type 设定为 Poly 时,以逗号分隔,设定多项式中 \(a_0, a_1, a_2 \dots\) 之系数,未列出之系数都默认为零(换句话说,可决定多项式之最高次数)。 | 1, 2, 3 |
| Output Spectra | 当程式设定为讯号源时决定是否输出时频讯号。 | False |
DoMatlab Editor 介面说明
DoMatlab Editor 是 DoMatlab 的程式码编辑器,下面将详细说明 DoMatlab Editor 使用说明。

上图为 DoMatlab Editor 的外观。编辑器有三个分页,说明如下:
| 分页 | 说明 |
|---|---|
| Script | 此分页为程式码编辑区。如图所示 DoMatlab 已内建一范例程式。 |
| Script Properties | 此分页可设定程式码之客制参数,详情请参阅後述。 |
| Help & Examples | 文字说明撰写 DoMatlab 程式码时一些注意事项,详细地介绍 DoMatlab 对於输入丶输出格式的规则,与简单的范例,以方便使用者查询。 |
DoMatlab Editor 工具列在不同分页有不同排列,如下图显示:
| 分页 | 工具列 |
|---|---|
| Script | ![]() |
| Script Properties | ![]() |
| Help & Examples | ![]() |
各项图示功能分别在下表说明:
| 图示 | 说明 |
|---|---|
![]() |
汇入已存在之 M file,可以引入 DoMatlab Editor。 |
![]() |
汇出 DoMatlab Editor 之内容,储存为 M File。 |
![]() |
移除目前所选择之客制参数。 |
![]() |
设定偏好编辑器类别:
在 Visual Signal Preference 设定 Script Editor Type 参数同时会设定一开启 DoMatlab Editor 时预设之编辑器。例如如果 Preference 的参数设定为 MATLAB Editor,则一开启 DoMatlab Editor 时则会选择并开启 MATLAB Editor。 |
![]() |
编辑器选择 MATLAB 或 Custom Editor 时会出现本图示,可开启 MATLAB 或 Custom 编辑器。同时原编辑区也会锁成唯读状态,此时双击编辑区则会也有同样功能。编辑完毕後储存档案即可更新原编辑区的内容。 |
![]() |
清除编辑区新编辑的内容,回溯至一开始开启 DoMatlab Editor 时的状态。 |
![]() |
执行 Script 内容。 |
输入讯号之变数储存格式
DoMatlab 允许输入多个讯号源,依照输入顺序,讯号将依序被定义为 X1丶X2 …Xn,然後每个讯号到 DoMatlab,DoMatlab 会新增五个变数X丶Xn丶Xn_DATA丶Xn_DESC丶 Xn_Freq,DoMatlab 的输出讯号仅允许一个输出讯号,定义为变数 Y。下面说明各变数的意义。
X:为方便使用者操作的预设变数,定义为第一个输入讯号内的第一个通道 (1st Channel) 值,即 X = X1_DATA{1}。
Xn_DATA:定义为第 \(n\) 个输入讯号之完整的输入讯号值,因讯号可为多通道讯号( Multi-Channel),所以使用 cell array 的格式储存,不同通道的讯号资料依序存在不同的 cell 内。
Xn:定义为第 n 个输入讯号之第一个通道的讯号值,即 Xn = Xn_DATA{1},资料以 double array 储存。
输入讯号类别可分为三大类,分别为讯号(Signal)(包含时间序列与频谱分析结果)丶时频分析结果(Spectra) 以及数值资料(Numeric),如 Basic Statistics 模组的计算结果。下表说明这三大类输入讯号是如何被存为变数 Xn_DATA。
| 资料类型 | 内容格式说明 |
|---|---|
| 讯号(Signal) | 如果 Column-Vectors 为预设 True,则讯号为 \(m \times 1\) 的 double array 或 Complex double array ,其中 \(m\) 为资料长度,若 Column-Vectors 为 False 则相反。 |
| 时频(Spectra) | 如果 Column-Vectors 为预设 True,则讯号为 \(m \times n\) 的 Complex double array,其中 \(m\) 为时域的离散长度,\(n\) 为频率域的离散长度,每元素即对应到该位置的时间与频率,若 Column-Vectors 为 False 则相反。需注意时频分析 (Spectra) 资料仅支援单通道。 |
| 数值(Numeric) | 如果 Column-Vectors 为预设 True,则为 \(m \times 1\) 的 double array 或 Complex double array,若 Column-Vectors 为 False 则相反。 |
Xn_DESC 以 structure array 储存讯号的各项资讯,资讯存於不同栏位(field),各栏位名称丶MATLAB 格式与其意义整理如下表。
| 栏位名称 | 说明 | 格式 |
|---|---|---|
name |
显示输入讯号名称。 | Char [1 * length] |
type |
显示讯号类型,目前有 Signal丶Numeric丶Spectra 三种类型。 |
Char [1 * length] |
channelcount |
输入讯号的 channel 数量 | Integer |
channelnames |
Channel 名称,如 CH1。 | Char array [nch * max(length)] |
lengths |
Channel 中的资料长度。 | Integer array [ndim * 1] |
starts |
讯号起始的时间点,对 Numeric 来说此栏无意义。 |
Double array [ndim * 1] |
intervals |
讯号的取样周期,对 Numeric 来说此栏无意义。 |
Double array [ndim *1] |
units |
讯号 X 轴的单位可能为时间或频率单位。 | Char array [ndim * max(length)] |
formats |
讯号时间轴的格式,目前有 Regular 与 Indexed。 |
Char array [ndim * max(length)] |
coords |
输入讯号 X 轴的座标值,对时列讯号(Signal)与时频(Spectra)来说是时间,对频谱讯号(Signal) 来说是频率。 |
Double array [ndim * max(length)] |
注:Char 为字串,Length 为字元或数值长度,ndim 是矩阵维度(若讯号为Numeric),nch 是通道数量,max 为最大值。
Xn_FREQ 储存输入讯号的取样频率。若资料与取样相关 (如Signal丶Spectra),取样频率会储存至 Xn_FREQ,若资料无关取样 (如数值 Numeric),则 Xn_FREQ 会储存 1。
输出讯号之变数储存格式
变数 Y 是 DoMatlab 的输出变数,讯号格式储存在变数Y_DESC,内容与输入讯号的 Xn_DESC 相同。Y_DESC 预设值与 DoMatlab 的 Properties / ReferenceInput 设定的输入讯号格式相同,使用者也可自行修改Y_DESC 内容,DoMatlab 最後会依据 Y_DESC 的设定决定输出讯号为何种讯号。下表整理 Y_DESC 每个栏位的意义丶预设值与必要性。
| 栏位名称 | 说明 | 必要性 | 预设值 |
|---|---|---|---|
name |
显示输入讯号名称。 | Optional | DoMatlab |
type |
显示讯号类型,目前有 Signal丶Numeric丶Spectra。 |
Optional | Signal |
channelnames |
Channel 名称,如 CH1。 | Optional | 无 |
starts |
讯号起始的时间点,对 Numeric 来说此栏无意义。 |
Optional | 0 |
intervals |
讯号的取样周期,对 Numeric 来说此栏无意义。 |
Required | 无 |
units |
讯号的单位可能为时间或频率单位。 | Optional | sec |
formats |
讯号时间轴的格式,目前有Regular丶Indexed。 |
Optional | Regular |
coords |
输入讯号 X 轴的值,对时列讯号(Signal)与时频(Spectra)来说是时间,对频谱讯号(Signal)来说是频率。 |
Required (若 formats 是 Indexed) |
无 |
客制参数
切换到分页 Script Properties 时可设定 DoMatlab Script 中可使用的客制参数。这些设定好之参数会出现在 DoMatlab 元件的参数栏位中(如前述)让使用者输入数值或选择选项,并可以在 Script 中当合法变数直接使用(例如内建之范例程式中 Length丶 Type丶Coefs丶OutputSpectra)。下图为 Script Properties 分页,显示已经内建设定了四个参数供内建范例程式使用:

下表详细解说分页中之栏位:
| 栏位 | 说明 |
|---|---|
| Property Name | 参数名称。此为 Script 中之合法变数名称。不可有空白字元。 |
| Read Only | 勾选时此参数只能用来显示数值,使用者无法从 DoMatlab 元件的参数栏中设定数值。 |
| Property Type | 参数类别。有以下类别可选:
|
| Default Value | 设定参数之预设值。在选择某些参数类别後,点击此栏位会自动设定一个预设值,例如 Int32 会设定 0,Double 会设定 0.0,Enum 会设定第一个选项等等。 |
| Property Info | 当设定之参数中有 Enum 或 File 类别会出现此栏位。
以上 |
| Category | DoMatlab 元件参数栏中之分类名称。可有空白字元。 |
| Display Name | DoMatlab 元件参数栏中之显示名称。可有空白字元。 |
| Description | DoMatlab 元件参数栏中之说明文字。可有空白字元。 |
| Property Order | DoMatlab 元件参数栏中之顺序。 |
范例
除了参考内建范例程式与相关客制参数之外,以下另举三个例子示范 DoMatlab 的操作。
DoMatlab 基本变数结构
先以 Source / Sine Wave 与 Square Wave 产生两组讯号,其中 Square Wave 後连接 Compute / HHT / AnCAD EMD 产生一组多通道(Multi-Channel)讯号,Sine 与 AnCAD:EMD 都连接至 DoMatlab。

产生 DoMatlab 元件後会自动跳出 MATLAB Command Window,先在 MATLAB Command Window 中键入
whos查看目前 MATLAB 的变数有那些。
因有两笔输入讯号,DoMatlab 定义了
X1与X2两组变数群,X1_Data为 Single Channel 的 Sine Wave,X2_Data为 Multi-Channel 的 AnCAD:EMD 讯号,而预设变数X与X1则为第一个输入讯号的第一个通道值,X2为第二个输入讯号的第一个通道值。我们可以在 DoMatlab Editor 中以plot指令绘出X丶X1丶X2等等,例如:plot(X1)(见下图):
whos列表还可看到 DoMatlab 内建客制参数之设定所定义的Coefs丶Length丶OutputSpectra丶Type这四个变数。可以去 Script Properties 分页将这四个参数删除,或是忽略它们(两者皆不影响接下来的范例操作)。至 Script 分页,将原有的范例全部删除,并输入以下简单程式:

键入指令後,直接按下
或者关闭此 Editor,便会开始执行 DoMatlab,图形如下,两组讯号完全重合。
但由於还没有定义输出讯号
Y,程式会跳出错误讯息提醒使用者输出讯号尚未定义。
若需要查询输入讯号之基本资料。譬如在 Command Window 中键入
X2_DESC,按下 Enter,就能得到输入讯号X2的资料。
步骤 3 的查询也可利用 DoMatlab 的参数 DumpOutput 达成。先将 DoMatlab Editor 之内容改为
X2_DESC,并保留Y = X1;以定义输出讯号(如下图)。
关闭 Editor 并将 Properties / DumpOutput 调为 True,调整 DumpOutput 之後 DoMatlab 会把 Command Window 所出现的讯息记录下来。

Properties / ViewBuffer 可观看 DumpOutput 的记录,这样在执行 DoMatlab 时若出现错误 ,仍然能得到 Matlab 产生的错误讯息。

这里将示范参数 ReferenceInput 的意义。回到 Visual Signal 的 Network 视窗,点选 Sine,将 Properties / Time Unit 设为 min(分钟),SamplingFreq 调为 300 Hz,TimeStart 调为 0.5。

然後再开启 DoMatlab Editor,键入
Y_DESC,关闭 Editor 之後用 ViewBuffer 看 MATLAB 输出的讯息。
发现虽然在 DoMatlab Editor 中并没有设定输出讯号,即变数
Y,但是Y_DESC的部份内容已经依照参数 ReferenceInput 作了设定,如下图Y_DESC.starts丶Y_DESC.intervals丶Y_DESC.units丶Y_DESC.coords都跟 ReferenceInput(Sine ) 相同。
注意 DoMatlab 的参数 ReferenceInput 与其它元件( Merge to Multi-Channel丶 Merge to Complex丶 Math)的 ReferenceInput 在运作上略有不同,此参数在 DoMatlab 是作为预设输出讯号的时间轴座标;在其它元件则会直接将所有输入讯号的时间轴座标值替换为ReferenceInput 设定的讯号时间轴座标值。
使用 DoMatlab 呼叫已存在之 M-file
下面示范如何将已编写好的 M-file,藉由 DoMatlab 执行。有一个档名为 round2.m 的 M-file 储存在路径 C:\M File 中,其内容为 B = round(10 * A) / 10,现在要将 A 代入 X2 第一个通道的讯号资料计算结果,其步骤如下。
首先建立一个名为
C:\temp的资料夹,并在其中建立一名为round2.m的文字档,内容只有一行:B = round(10 * A) / 10此 MATLAB 程式作用为对
A内容之小数点以下一位做四舍五入。在 Editor 中键入以下程式:

程式解说如下:
- 把路径(current directory)设定至
C:\temp资料夹 - 将第二输入之第一通道(
X2) 代入A - 执行
round2得结果B - 最後将
B代入 DoMatlab 内定输出变数Y中。
- 把路径(current directory)设定至
关闭 Editor,并以 Viewer / Channel Viewer 绘出 DoMatlab 结果。可看到对 EMD 第一个通道中的资料做四舍五入的结果。


使用 DoMatlab 产生新的 Source
以 Compute / Math / DoMatlab 产生一个 DoMatlab,将 Properties / AsSource 设为 True,可将 DoMatlab 由计算元件变为讯号源元件,并由红色元件变成青绿色,原本蓝色的输入埠也消失。



此时 DoMatlab 内建之范例程式的讯号源模式会依照 Length 及 OutputSpectra 客制参数自动产生不同讯号。例如所有参数在预设值状态下,将 DoMatlab 接上 Viewer 会产生如下图:

此处将从无到有产生新的讯号源,同时透过
Y_DESC改变输出变数Y的资料型态。首先将内建的范例程式以及客制参数全部清除(客制参数可先选择一行参数再使用
图示或 Delete键逐行清除):

接下来以 Properties / MatlabEditor 产生讯号。藉由设定
Y_DESC,基本上 DoMatlab 可以产生所有格式的资料。本步骤示范产生一个 Impulse Signal。在编辑视窗下键入程式码以产生一个 Impulse 讯号,程式内容如下。

建立变数
p = 0.001作为取样周期,变数t是各讯号资料点对应的时间,变数n是讯号长度,变数Y就是输出讯号,所有资料点的值先设为 0,并在讯号长度约一半的位置将值设为 1,这样输出讯号Y的数值部份已经创造完成。最後设定讯号的时间轴定义变数Y_DESC中之时间间隔(intervals),将之设定为p(0.001)。DoMatlab 为方便使用者操作,已预设输出讯号的 type 为
Signal丶开始时间starts为 0丶时间单位units为 sec丶离散格式formats为Regular等参数,因此预设的参数值就是上图注解的部分,使用者仅需设定取样周期Y_DESC.intervals,就可以Y输出为正确格式。现在关闭 DoMatlab Editor 回到 Network 视窗,在 DoMatlab 後面接上 Channel Viewer 可以看到产生了一组 Impulse 讯号。

本步骤利用 MATLAB 内建的函式 peaks 产生大小为 49 * 49 的矩阵,并将其讯号格式设为时频分析资料(Spectra) 输出。新开一个 Project,按照步骤 2 产生 DoMatlab 讯号源,并打开 Properties / MatlabEditor。先产生一个 peaks 作为输出讯号
Y,然後定义Y_DESC的所有栏位,如下图:
栏位设定说明如下:
Y_DESC 栏位设定 设定项目 程式码 说明 输出资料名称 Y_DESC.name = "PEAKS";设定讯号名称为 PEAKS。输出讯号类别 Y_DESC.type = "Spectra";设定讯号类别为 Spectra。X 轴丶Y 轴之离散点个数 Y_DESC.lengths = [49, 49];因为 Y是二维矩阵,所以需依序设定横列(row)与纵列(column)的长度;如果对应 Spectra 对两轴的定义的话,横列代表不同时间,即 x 轴;纵列代表不同频率,即 y 轴。X 轴丶Y 轴起始点 Y_DESC.starts = [0 0];设定两轴之起始值都为零。 X 轴丶Y 轴之的间隔 Y_DESC.intervals = [1 1];将两轴的间隔均设为 1。 X 轴丶Y 轴之单位 Y_DESC.units = ['sec'; 'Hz'];设定 x 轴之单位为秒,y 轴的单位为赫兹。 X 轴丶Y 轴之离散方式 Y_DESC.formats = ['Regular'; 'Regular'];设定两轴的离散方式都为 Regular 等间隔分布。 上表之 X丶Y 轴与横列(row)丶纵列(column)的关系是以 Column-wise 设定为前提。栏位
Y_DESC.coords是只有当座标轴格式是 Indexed 才必须设定的参数,在此例无须设定。关闭 DoMatlab Editor 後开始执行 DoMatlab,回到 Network 视窗,此时点选 DoMatlab,看 Properties / OutputDataType,输出讯号格式为 Real Single-Channel Spectra of Rank-2(Regular : Regular) Data,而且能够以接上 Viewer / Time-Frequency Viewer 画出时频图。



相关指令
Sine丶Square丶 AnCAD EMD丶 Merge to Multi-Channel丶Merge to Complex丶 Math丶Diff丶Integrate丶
4.6.3 Integrate
对讯号做累积数值积分。
说明
\(X_T = \{x_{t_0}, x_{t_1}, \dots, x_{t_{N-1}}\}\) 代表长度为 \(N\) 的讯号, \(\Delta t = t_{n+1} - t_n\) 为时间间隔,以长方形法(Simple) 作数值积分可由下式表示:
\[\begin{aligned} y_i &= \int_{t_0}^{t_i} x dt\\ &= \sum_{k=0}^i x_k \Delta t, \quad 0 \leq i < N \end{aligned}\]
若以梯形法(Trapezoidal)计算积分,计算方法等同於 Matlab 中的 “cumtrapz”, 计算式为:
\[\begin{aligned} y_i &= \int_{t_0}^{t_i} x dt\\ &= \sum_{k=0}^i \frac{1}{2}(t_{k+1} + x_k) \Delta t, \quad 0 \leq i < N \end{aligned}\]
若以辛普森法(Simpson’s Rule) 计算积分,计算式为:
\[\begin{aligned} y_i &= \int_{t_0}^{t_i} x dt\\ &= \sum_{k=0}^i \frac{2 \Delta t}{6} \left[x_k + 4x_{k+1} + x_{k+2}\right], \quad 0 \leq i < N \end{aligned}\]
若以 FFT 计算积分
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel) 或多通道(Multi-Channel),Regular 或 Indexed 的讯号(Signal)丶声音讯号(Audio )与数值资料(Numeric)输入。相关参数说明如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 数值积分的方法,可选择:
|
Trapezoidal |
| StartPosition | 设定横轴上的积分起始值。 | 输入讯号的起始值 |
| EndPosition | 设定横轴上的积分终点值。 | 输入讯号的终点值 |
| IsDefinite | 设定「True」时计算定积分/累积和。 | False |
| Const | 设定积分後纵轴方向的平移量。 | 0 |
| Output Unit | 显示输出值单位。 |
上述数值积分方法中,CumulativeSum 跟其他积分方法的差别为此方法为单纯累加数值,其他方法为积分,因此会乘上资料点间隔。差别可由 Output Unit 显示看出:如果输入讯号时间单位为秒(sec),则选择 CumulativeSum 时 Output Unit 显示为 Data Unit;而选择其他积分法时 Output Unit 显示为 Data Unit * sec。
范例
对正弦波进行积分:
於 Network 视窗下按右键,选择 Source / Sine Wave 创造一个正弦波,改变其 Properties / SignalFreq 为 1 Hz,SamplingFreq 为 20 Hz,TimeLength 设定为 1 秒,再用 Viewer / Channel Viewer 显示於视窗,图示如左下图。


为了使每个点的位置看的更清楚,点选 Viewer[1] 元件下的 Properties / Representation / PlotElemEditor 的 PlotEditor,会跳出 Plot Element Setting 视窗,选择 Marker Style 为’+’,在讯号线上每个时间点就会画出「+」号。



对正弦波作 Compute / Math / Integrate 数值积分,再如步骤 1丶2 改变 Marker Style 为「x」,绘出的图就是积分後的结果。


调整 Int 的 Properties / StartPosition 为 0.3,计算结果改变如下图所示,再使用 DataViewer 看 Int 输出的讯号资讯,可发现 DataCount 由原本的 21 变为 15,因此须注意改变 Integrate 的参数 StartPosition 与 EndPosition 会影响输出的讯号长度。



定积分
呈上例,将 Int 的 Properties / IsDefinite 设为 True,如下图:

此时可以看到计算後 Viewer2 出现惊叹号,如下图:

这表示计算出来的资料不适合用 Channel Viewer 显示。这时可用 DataViewer 看 Int 输出的资料资讯,可发现输出资料只有一个数值(即定积分值),资料型态为「Numeric」,此时 DataViewer 会采用纯表格型式显示资料,如下图:

相关指令
4.6.4 Math
将输入之讯号做点对点的数学运算。
说明
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)丶多通道(Multi-Channel), Regular 或 Indexed 的讯号(Signal)丶 Regular的音讯(Audio)丶 Rugular 或 Indexed 的一维及二维的矩阵(Numeric)丶及 Regular 的图像(Image)输入。
操作方法为一:用滑鼠双击 Math 元件,或二: 点选 Expressions 参数栏位右方的
按钮,即会跳出 Multi-Channel Expression Editor,视窗介面如下图所示。


此视窗分作三大部份:输入讯号清单(Input List)丶工具列以及输出通道栏(Output Channel)。运作流程如下:由输入讯号清单中选择讯号,於工具列中的 Expression 栏输入数学运算式;完成後将算式新增到输出栏作为输出讯号其中一个通道。第一次开启时会预设将所有输入讯号的所有通道都复制为输出通道。以下就说明各功能。
输入讯号清单:
输入讯号清单(Input List) 显示连接到 Math 元件的输入讯号。输入讯号预设为多通道讯号,并以树状图方式列出输入讯号内个通道(如下图所示),第一笔输入讯号在工作列 Expression 中以代号
X1表示,第二笔讯号以X2表示,以下类推,代号後方接中括号,里面的数字代表该通道编号,例如X1[1]代表第一笔输入讯号的第一个通道资料,
操作注意事项入下:
双击树状图的单笔输入讯号通道可将该通道新增於 Expression 栏中,例如双击输入讯号
X1的通道1则会在 Expression 栏中新增X1[1]。另外也可直接在 Expression 栏中输入X1或X表示X1[1]。倘若仅单纯欲将选取之输入讯号通道复制为输出值而不计算,则可利用
键将该通道传至输出讯号清单。於树状图上用勾选框(checkbox)选择多个讯号进或通道可执行多样化集体运算。详情请看工具列功能说明表。以下说明勾选框运作模式:
勾选输入讯号时,会自动勾选所有通道。此时按下工具列上的运算键会在 Expression 栏中新增代表对所有通道执行点对点运算的算式。
勾选输入讯号後再取消时,不会自动取消勾选所有通道。此时形同手动勾选多通道(见下)。
不勾选输入讯号,但勾选单一讯号中多个通道,此时按下工具列上的运算键会在 Expression 栏中新增代表对所勾选的通道执行点对点运算的算式。
勾选多个输入讯号,此时按下工具列上的运算键会在 Expression 栏中新增针对所勾选的输入讯号执行通道对通道运算的算式。
工具列

此为 MultiChannel Expression Editor 的工具列。工具列上图示与功能整理如下表:
工具列图示 运算工具 功能说明 
可清空输出讯号清单(Output Channel) 内的所有讯号。

於 Expression 栏中新增加丶减丶乘丶除号,等於直接在栏位里输入
+丶-丶*丶/,可针对数值做基本运算,或是或通道向量做向量运算。除此之外,依照所选取的输入或通道模式,按下这四个运算键有以下几种集体运算型式:选择一个输入:按下运算键会在 Expression 栏中加入
add()丶sub()丶mul()丶div(),可对所有通道的执行点对点的加减乘除运算,计算结果为多通道讯号,例如选择X1输入讯号後按下+会产生add(X1)。当输入通道数目更动时会自动包括所有通道。选择多个通道:按下运算键会在 Expression 栏中加入代表对多重选取的多个通道作通道对通道的运算式,计算结果为单通道讯号,例如选择
X1输入讯号中通道1, 2及X2输入讯号中通道3, 4後按下+会产生X1[1]+X1[2]+X2[3]+X2[4]。选择多个输入:按下运算键会在 Expression 栏中加入代表对多重选取的多个输入讯号作讯号对讯号的运算式,计算结果为多通道讯号,例如选择
X1, X2输入讯号(每个讯号有两个通道),会产生X1[1]+X2[1]; X1[2]+X2[2];。
於 Expression 栏中新增圆周率 \(\pi\)。 
於 Expression 栏中新增时间轴的向量 \(t\),为输入讯号所对应的时间轴向量。 
开启函式浏览器(如下图所示),选择一函式後以双击或按下键盘 Enter 键方式即可於 Expression 栏新增该函式,等於在 Expression 栏中直接键入函式。如事先有用游标选择一段算式再选择新增函式,则会自动将所选取之算式包入函式的括号中(例如选取 X1[1]後再选择新增sin函式,则会在 Expression 栏中出现sin(X1[1]))。Expression 栏位 编辑数学算式的文字输入栏位。 
可将 Expression 栏位的数学算式加入输出讯号清单 (Output Channel) 
将选择输出讯号清单中某个通道内的数学算式,替换为 Expression 中的数学算式。 函式浏览器如下图所示:

函式列表中标示的函示格式为:
<func_name>(<input_type>):<output_type>。其中:<func_name>为函式名称(abs丶sin等)。<input_type>为输入类别。<output_type>为输出类别。
函示浏览器中显示的输出/入类别有以下几种:
CHANNEL:一个通道的向量值。CHANNEL[]:多个通道的向量值,通常是一个输入讯号的所有通道。
跟函数外的向量运算一样,向量类别(
CHANNEL)的变数(例如X1[1]丶\(t\) 等)可经由四则运算转换为新的向量输入给函数,例如:abs(X1[1]*2+5)将X1[1]的所有值乘2加5後再输入abs()函数;sin(2pi*10*t)则将\(t\) 时间轴向量的所有值乘上 \(2 \pi 10\) 再输入给sin()函数(即产生一个 10Hz 的正弦波)。多通道向量(CHANNEL[])不支援以上运算。常用内建函式清单内容与说明如下表。
常用内建函式 函式 函式说明 函式 函式说明 abs取绝对值。 ceiling小数点以下无条件进位。 floor无条件舍去小数点以下。 round小数点以下四舍五入。 sin正弦运算。 asin逆正弦运算。 cos馀弦运算。 acos逆馀弦运算。 tan正切运算。 atan逆正切运算。 sinhHyperbolic sine (双曲正弦)。 coshHyperbolic cosine(双曲馀弦)。 tanhHyperbolic tan(双曲正切)。 exp指数函数运算 exp(x)等於\(e^x\),\(e\) 为自然数。log自然对数。 log10对数运算(10 为底数)。 pow指数运算 pow(x,a)等於\(x^a\)。 sqrt平方根运算 sqrt(x)等於\(\sqrt{x}\)。 square平方运算 \(x^2\)。 sign取正负符号,数值大於 0 取 1,小於 0 取 -1。 truncate小数点以下,往 0 的方向取整数,若 \(x < 0\),则 truncate(x)等於ceiling(x),若 \(x > 0\),则truncate(x)为等於floor(x)。conj输入为复数讯号 \(a+ib\),则将取其共轭 \(a-ib\)。 另外提供了 大於 “>” 丶小於 “<” 丶 大於等於 “>=”丶小於等於 “<=”丶 等於 " == " 丶不等於 " != ",当满足条件将回传 1,若不满足条件则回传 0。下面范例将会提供如何使用以上功能。
输出讯号清单:
输出讯号清单(Output Channels)显示目前输出的各通道及其计算的数学式( Expression)。
在输出栏中通道的顺序即为输出讯号的通道编号顺序。利用清单右方的按钮可编辑输出讯号之通道。输出通道可用滑鼠单选或复选,复选操作如同 Windows 档案管理员选档案操作,可同时按 Shift 键圈选或 Ctrl 键多选。选好通道後,
与
可将所选之通道向上或下移动调整通道顺序,
则可删除所选的通道。我们也可以直接於输出栏中编辑通道名称与修改数学式。滑鼠双击欲修改名称的通道( Channel)栏位,即可编辑该通道的名称;若要改变数学式,先点选要变更通道的 Expression,再以滑鼠左键点击一次(动作上序似双击,但速度较慢),就可直接修改算式。
在输出讯号清单上按滑鼠右键可开启选单,提供三项功能:

- 显示/隐藏左方之输入讯号清单
- 删除所选的通道(等同点击
键) - 删除所有通道(等同选择所有输出通道再点击
键)
范例
下面将示范各种运算的方法及功能之使用:
首先以 Source / Triangle Wave 产生一个三角波,再以 Compute / HHT / AnCAD : EMD运算,目的是产生一组 Multi-Channel 讯号,以 Viewer / Channel Viewer 绘出,改变 Channel Viewer 的 Multi-Channel Display 参数为 List,便能将各通道的讯号分开显示。


仿照步骤1,不过将三角波换成方波(Square Wave)。


将 AnCAD:EMD 与 AnCAD:EMD2 连至 Compute / Mathematics / Math,再叫出 Expression Editor 操作介面,於输入清单点击 Input 前的
+号打开 Input 树状图。

此时可看到预设将所有输入讯号之所有通道复制为输出通道。用前述方法删除所有预设输出通道。
若要将 X1 的 CH2 加上 X2 的 CH4,先选取 CH2 与 CH4,再点选基本运算工具
,即可将运算式新增於 Expression 栏,也可直接输入 X1[2]+X2[4]。
按下
键即可将 Expression 内的算式传至输出栏(Output Channels)。
下一步,将 X1 的 CH9 乘以相对应的时间 t,再加上X2 之CH1。点击 X1 下面 CH9 两下,可直接新增 CH9 於 Expression 栏,再选择基本运算工具内的运算元完成算式,或直接输入
X1[9]*t+X2[1]。
若想对
X1[9]*t取绝对值,可以直接改变 Expression 为abs(X1[9]*t)+X2[1],或者以游标选择X1[9]*t区域,再点击
开启函式浏览器以滑鼠双击或按下键盘 Enter 键方式选取内建函式清单中之 abs,即可将选取范围内的算式包入abs()中计算,所有的内建函式均可藉上述方法完成。最後须记得点击
键将 Epression 栏内的算式传至输出讯号清单。



如果要对两个以上的输入讯号作通道对通道(
X1[1]+X2[1]丶X1[2]+X2[2]…)的计算,则可以直接勾选欲计算之输入讯号。以本例而言,选取输入清单中X1与X2,再点击基本运算工具中的
键,就会将运算式新增至 Expression 栏中。最後记得点击
键将 Expression 栏内的算式传至输出讯号清单。
看输出讯号清单的部份,除先前的两运算式之外,又新增了 10 个输出通道的算式,由於
X1有 10 个通道,X2有 8 个,故最後两个通道等同X1[9]+0及X1[10]+0。
如果要对单一输入讯号的所有通道做点对点的运算,则可直接勾选一个通道。以本例而言选取输入清单中
X1再点击基本运算工具中的
键,就会将运算式 add(X1)新增至 Expression 栏中,再点击
键後则将 Expression 栏内的算式传至输出讯号清单。

另外 Expression 也可进行大於丶小於丶等於丶不等於运算,首先在 Network 下产生 Noise 元件,NoiseType 调整为 Brown,利用 Viewer / Channel Viewer 显示其结果。

将 Noise 元件连接 Compute / Mathematics / Math,Math 元件最後以 Channel Viewer 显示结果。

要将原本 Noise 中,只要振幅介於 0 至 10 的讯号以 Sine 取代 ,其中在 Expression 的方程式内容为:

将 Math 元件连接至於 Noise 连接的 Channel Viewer,在同一个 Vewer 下比较结果。

相关指令
4.6.5 Mixer
将多笔资料混成为一笔讯号。
说明
有 \(N\) 组讯号源 \(x_{t_i}^{(n)}\),其中每组讯号的时间轴\(t_i\) 丶取样频率不一样,混合後之讯号 \(Z_{t_i}\) 为
\[Z_{t_i} = a \cdot x_{t_i}^{(1)} + b \cdot x_{t_i}^{(2)} + c \cdot \sum_{k = 3}^N x_{t_i}^{(k)}\]
,其中 \(a\)丶\(b\)丶\(c\) 为增益数。
由於本模组假设输入讯号的时间轴并不一致,因此会先行侦测输入讯号中最小的取样频率 \(Freq_{min}\),其它讯号再依照 \(Freq_{min}\) 重新取样,统一所有输入讯号的时间轴後再做叠加。需注意,本模组将第三笔後的混合增益数皆视为 \(c\) 。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号 ( Signal)丶声音讯号(Audio) 输入,并接受多个讯号输入。
参数 Gain1丶Gain2丶GainN 分别为第一丶第二及第三笔之後输入讯号的增益数。此模组与 Math 的差异在於,Mixer 可较快速的处理加减运算,而且可对於讯号长度不同的讯号做加减运算,这一点是 Math 没有支援。

| 参数名称 | 参数定应 | 预设值 |
|---|---|---|
| Gain1 | 设定第一笔资料的增益数。 | 1 |
| Gain2 | 设定第二笔资料的增益数。 | 1 |
| GainN | 设定第三笔以後资料的增益数。 | 1 |
范例
将时间轴相异的正弦波与方波混合为同一笔资料。
以 Source / Sine Wave 产生一讯号频率(SignalFreq) 为 5 Hz丶取样频率( SamplingFreq)为 1000 Hz丶时间长度(TimeLength) 为 1.5秒的正弦波;另外再产生一讯号频率(SignalFreq) 为 10 Hz丶取样频率(SamplingFreq)为 300 Hz丶时间长度(TimeLength) 为 1.3秒,时间起始点(TimeStart) 为 0.333 秒的方波。然後以 Viewer / Channel Viewer 先观察波形。

Sine 的参数设定内容 Properties 如下图所示。

Square 的参数设定内容 Properties, 如下图所示。


设定 Channel Viewer 的 Properties / Plot Elem Editor,将 Sine的线条加上符号 ‘o’,Square 线条加上符号 ‘x’,并使用 Zoom X工具放大两讯号时间重叠处,可以看到讯号资料点在 X轴方向上的分布完全不同。Plot Elem Editor 的设定如下。

将 Channel Viewer 的结果放大如下。

将此两讯号相加输出成一个新的讯号。以 Compute / Math / Mixer混合,如下图 Network 所示,Mixer 的第一个 Input 为 Sine,对应 Mixer的参数 Gain1,第二个 Input 为 Square,对应参数 Gain2,参数预设值皆为1。再来以 Viewer / Channel Viewer 绘出 Mixer 之波形,其结果如下。



现在用 Data Viewer 检视 Mixer 输出讯号的取样频率与讯号时间,Mixer输出讯号的取样频率(Sampling Frequency) 为 300 Hz,讯号时间由 0秒开始到 1.63333 秒结束。Mixer的计算方法就是以合并输入讯号的时间轴作为时间总长度,取样频率采取输入讯号中的最小值,将各输入讯号乘以对应的加权数累加。因此在使用Mixer 时对於输入讯号与输出讯号的取样频率需加以留意。

注意三笔以上资料依然可以混合,但第三笔以後的加权数皆设定为GainN,故单一 Mixer 不建议连结三笔以上的资料。建议使用多层 Mixer以实现三笔以上资料相加,下图就是利用这个方式累加多笔讯号。

相关指令
Channel Switch丶 Multiplier丶Sine Wave丶Square Wave
4.6.6 Multiplier
将多笔输入讯号相乘。
说明
以数学来表示,有 \(N\) 组讯号源 \(x_{t_i}^{(n)}\),其中每组讯号的时间轴\(t_i\) 丶取样频率不需要一样,混合後之讯号 \(Z_{t_i}\) 为
\[Z_{t_i} = x_{t_i}^{(1)} \cdot x_{t_i}^{(2)} \cdot \dots \cdot x_{t_i}^{(N)}\]
由於本模组假设输入讯号的时间轴并不一致,因此会先行侦测输入讯号中最小的取样频率 \(Freq_{min}\),其它讯号再依照 \(Freq_{min}\) 重新取样,统一所有输入讯号的时间轴後再做相乘。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal ) 与声音讯号(Audio)与输入,并接受多个讯号输入。本模组无须设定参数,并可对讯号长度丶取样频率不同的讯号源进行相乘的运算。
范例
将正弦波与三角波相乘。
以 Source / Sine Wave丶Triangle Wave 建立正弦波与三角波,三角波的Properties / SignalFreq 调整为 5 Hz,以 Viewer / Channel Viewer观察其原本波形。



将此两讯号以 Compute / Math / Multiplier 相乘,输出波形如下图所示。


如同 Mixer,Multiplier 允许两讯号的取样频率与时间长度(TimeLength)不相同,输出讯号之取样频率为输入讯号最小的取样频率,仅在输入讯号时间轴交集的部份相乘,没交集的讯号则维持原貌。调整三角波的SignalFreq 为 100 Hz,TimeLength 为 2 ,则运算结果的 Signal Frequency将会等於 100 Hz,Time Length 为等於 2 秒。


相关指令
4.6.7 Normalize
Normalize(正规化)之功能为将不同讯号数列,以线性投影方式投射至特定值域。
说明
计算方式是以原始讯号值除以正规化参数,即
\[\frac{y(t)}{Normalized factor}\text{。}\]
正规化可将讯号值去单位并将其数值限制在某一区间,便於比较数值之间的大小比例。
参数设定
本模组接受实数 (Real Number),单通道 (Single Channel) 或多通道 (Multi-Channel) ,Regular 的讯号 (Signal) 或声音讯号 (Audio) 输入。主要参数为 Normalization Type,内有六个选项,相关定义与预设值整理如下表。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Remove Mean | 去除讯号中的平均值 | True |
| Normalization Type | 正规化参数(Normalized Factor)的定义,共有Absolute Max丶Custom丶Integrate丶Max Range丶Root Mean Square丶Standard Deviation六种可选,详见以下介绍 | Standard Deviation |
| Normalized Type | 定义 |
|---|---|
| Absolute Max | 以讯号中最大值做为标准化的基准,即归一化 |
| Custom | 自订标准化的基准(Custom Normalization Value) |
| Integrate | 以数据对时间轴的积分值做为基准 |
| Max Range | 以纵轴差的最大值做为基准 |
| Root Mean Square | 以数据的均方根值做为标准化基准 |
| Standard Deviation | 以原始讯号的标准差做为基准 |
范例
从
C:\Program Files\AnCAD\Visual Signal\demo\Basic载入潮高变化资料tide.tfa,用 Viewer / Channel Viewer 显示数值。
在 tide 後接上 Compute / Mathematics / Normalize,将数据正规化,再接上一个 Channel Viewer 汇出图形。

点 Normalize 方块於 Property / Normalize / Remove Mean 选择 True, Normalization Type 选择 Absolute Max。

数据归一化後如下图,用上方工具列的”Show Value”
,可观察各时间点潮高占原始数据中最大值的比例。
Normalization Type 改选 Custom,并在 Custom Normalization Value 输入100。

改变正规化基准後,新讯号的数值被限制在 -10 到 10 之间。

4.6.8 Remove DC
将讯号的直流部份消除,即消除讯号之平移值。
说明
讯号源为\(X = \{x_0, x_1, \dots, x_{N-1}\}\),讯号平均值为\(\bar{x}\),而此平均值即为 DC,今将\(Y = \{x_0-\bar{x}, x_1-\bar{x}, \dots, x_{N-1} - \bar{x}\}\),是 Remove DC。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio) 输入。参数为 DC type,内有四个不同演算法计算讯号在 Y 轴方向,对 \(y = 0\)的平移量,预设方式是 Mean,各计算方式的意义详列如下表。

| DC type 参数选项 | 选项定义 |
|---|---|
| Mean | 算数平均数。 |
| DC type 参数选项 | 选项定义 |
| DFTZerothTerm | 将原资料做傅立叶变换後,定义 X 轴为零,该点之数值为 \[DC = \frac{a_0}{2} = \int_{-\infty}^\infty f(x)\mathrm{e}^{-i \omega t} dt, \omega = 0\] |
| TrapezoidIntegration | 以较精确的积分矩型法计算後,再除以总点数为 DC。 |
| UserSetting | 使用者自行输入欲上下平移的数值,可以 由此功能设定上下平移量。 |
| User DC Value | 输入平移量。 |
范例
建立一个 Y 轴平移过的正弦波讯号,并用 RemoveDC 消除平移 。
以 Source / Sine Wave 建立正弦波,调整 Properties / Source / AmplitudeOffset 为 1.2,可将讯号对 Y 轴往正方向平移 1.2,再以 Viewer / Channel Viewer 观察。



将原本讯号 Sine 接上 Compute / Math / RemoveDC,并设定 DCType下的方法为 Mean ,再将结果以 Viewer / Channel Viewer显示结果,可发现平移量被消除了。



可尝试调整不同之 DC Type,如DFTZerothTerm,但对此范例来说并不影响结果。

可将讯号接上 Compute / Transform / Fourier Transform做傅立叶转换。关掉 FourierTransform 下的 Remove DC,可发现在时间原点的值确实为 1.2 之 2 倍。



注意:欲做时间横向的平移量请参考 Time Shift 模组。
相关指令
4.6.9 RMS
RMS(Root Mean Square)为工业界中最为普遍用来评估振动的参考值,代表一段时间内振动能量的平均值,在主轴和轴承等回转机械制造商皆大量利用RMS 值作为品管和检测的重要指标,主轴制造商量测主轴运作中振动加速度 \(G\),最後计算後 RMS 值,也被广泛称为 \(G\)值,用来判断主轴或轴承的组装精密度及稳定性。
理论
\[\begin{aligned} \text{RMS} &= \sqrt{\frac{1}{T} \int_0^T a^2 (t) dt}\\[0.5em] \text{Peak} &= \sqrt{2} \times \text{RMS}\\[0.5em] \text{Peak-to-Peak} &= 2 \sqrt{2} \times \text{RMS}\\ \end{aligned}\]
其中 \(T\) 表示某段时间,\(a(t)\) 主要表示振动的加速度 \(G\),也可以以振动速度或位移来表示。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道(Multi-Channel), Regular 的讯号(Signal) 输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 数值积分的方法,可选择:
|
Trapezoidal |
| StartPosition | 设定时间轴或横轴上的积分起始值。 | 输入讯号的起始值。 |
| EndPosition | 设定时间轴或横轴上的积分终点值。 | 输入讯号的终点值。 |
Vibration Level 中的 Type 选项定义如下,根据 ISO15242-1(2004) 提供 RMS丶Peak 和 PeaktoPeak 计算方法,预设为 RMS。
| 选项名称 | 选项定义 |
|---|---|
| RMS | 计算一段时间内振动的能量平均值。 |
| Peak | 假设振动讯号为正弦波,正弦波的振幅最大值为正弦波的 RMS 的 \(\sqrt{2}\) 倍。 |
| PeaktoPeak | 假设振动讯号为正弦波,正弦波的振幅最大值与最小值的差距为 \(2 \times Peak\)。 |
参数栏中还有 Remove DC 以及 Rolling Window 的相关选项。Remove DC 为嵌入元件,可以视为是将输入接到 Remove DC 後再接到 RMS,因此相关参数可以直接参考【Remove DC】元件。
Rolling Window 为辅助元件,相关参数用来控制做滚动计算时的计算窗大小丶单位丶及重叠等参数,详情请参阅【滚动窗计算】章节。
范例
以下范例为一加速规震动讯号:
C:\Program Files\AncAD\Visual Signal\demo\Enhanced\Acceleration.vsb,汇入後接上 Channel Viewer 以及 RMS 元件,如下图:
RMS 的滚动计算窗参数 Window 设定为 5000 (即 1 秒的资料点数),Overlap 设定为最大重叠量,(即每次计算窗移动一个资料点,重叠量为 4999),其他参数保留预设值,即可以观察观察振动能量的变化,如下图(Viewer 中 RMS 讯号的线条调为稍粗,颜色为红色):


将 Window 调为 \(1/10\) (即半秒的资料点数 500),Overlap 设定为 0,即可观察到震动能量变化不同的细节,如下图:


相关指令
参考资料
ISO Standard 2372,ISO Standard 10816
4.7 Matrix*
*This module is available in Professional only*
4.7.1 Matrix Operation*
*Only in Professional*
说明
本模组用以处理 \(A\)丶\(B\) 两矩阵间的计算问题:
矩阵加法:\(A+B = a_{ij}+b_{ij}\),其中矩阵 \(A\) 与 \(B\) 的大小必须一致,皆为 \(M \times N\)。
矩阵减法:\(A-B = a_{ij}-b_{ij}\),矩阵 \(A\) 与 \(B\) 的大小必须一致,皆为 \(M \times N\)。
矩阵乘法:\(A \times B = \sum_k a_{ik} b_{kj}\),\(A\) 的大小为 \(M \times N\), \(B\) 的大小为 \(N \times P\)。
矩阵左除法:\(A\backslash B = A^{-1}B\),\(A\) 的大小为 \(M \times N\),\(B\) 的大小为 \(M \times P\)。
矩阵右除法:\(A/B = AB^{-1}\),\(A\) 的大小为 \(M \times N\),\(B\) 的大小为 \(P \times N\)。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number)丶Numeric的数值资料,而输出亦为同型态的资料。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Input A | \(A\) 矩阵的名字 | 仅输出供使用者参考 |
| Input B | \(B\) 矩阵的名字 | 仅输出供使用者参考 |
| Alpha | \(A\) 的加权数\(\alpha\),详见下。 | 1 |
| Beta | \(B\) 的加权数\(\beta\),详见下。 | 1 |
| Operation | 运算元,可为加,减,乘,左除与右除。 | addition |
| Auto-name | 若为 true,在 \(A+B\) 的情况下,模组的名为 \(A+B\)(随运算元而不同改变);反之则为 Mop。 | true |
| By Element | 设为 True 时,运算模式为每个元素做运算,而非矩阵运算。 | False |
| Operation statement | 运算表示式 | 仅输出供使用者参考 |
以加法为例:输出的矩阵为 \(C = \alpha A + \beta B\),\(\alpha\) 与 \(\beta\) 分别为 \(A\)丶\(B\) 两矩阵的权数。
范例
以 DoMatlab 模组产生一乱数 \(3 \times 3\) 的方阵:
矩阵内容如下:
\(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)
以 Inverse Matrix 求解反矩阵,得到结果如下:

\(\begin{pmatrix} -3.44 & 8.05 & -5.49 \\ 3.09 & -0.87 & -0.69 \\ -1.79 & 0.39 & 2.47 \\ \end{pmatrix}\)
可把这结果与原本的矩阵相乘,确定相乘後的结果为单位矩阵。


相关指令
参考
Gilbert Strang: Linear Algebra and Its Applications 3rd edition
4.7.2 Inverse Matrix*
*Only in Professional*
说明
计算矩阵 \(A\)(必须为方阵)的反矩阵 \(A^{-1}\),使 \(AA^{-1} = I\),\(I\) 为单位矩阵。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number)丶Numeric的数值资料,而输出亦为同型态的资料。
范例
以 DoMatlab 模组制造一乱数 \(3 \times 3\) 的方阵:
矩阵内容如下:
\(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)
以 Inverse Matrix 求解反矩阵,得到结果如下:

\(\begin{pmatrix} -3.44 & 8.05 & -5.49 \\ 3.09 & -0.87 & -0.69 \\ -1.79 & 0.39 & 2.47 \\ \end{pmatrix}\)
可把这结果与原本的矩阵相乘,确定相乘後的结果为单位矩阵。
若输入的矩阵为 Singular,好比\(\big[\begin{smallmatrix}1&1\\1&1\end{smallmatrix}\big]\),用此模组做计算,会发出 Warning 说明此矩阵为 Singular:

相关指令
参考
Gilbert Strang: Linear Algebraand Its Applications 3rd edition
4.7.3 Transpose*
*Only in Professional*
说明
将矩阵 \(A\) 做转置(\(A^T\)),并可选择是否做共轭(\(A^{\dagger}\))。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number)丶Numeric的数值资料,而输出亦为同型态的资料。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Complex Conjugate | 若矩阵为复数矩阵,是否要取共轭。 | true |
范例
假设有 \(2 \times 3\) 的 \(A\) 矩阵,矩阵内容如下:
\(\begin{pmatrix} 2+8i & 3 & 4+9i \\ 5 & 6 & 7 \\ \end{pmatrix}\)
取转置,但不取共轭,则输出的 \(A^T\) 矩阵为:
\(\begin{pmatrix} 2+8i & 5 \\ 3 & 6 \\ 4+9i & 7 \\ \end{pmatrix}\)
若同时取共轭,输出的 \(A^{\dagger}\) 矩阵为:
\(\begin{pmatrix} 2-8i & 5\\ 3 & 6\\ 4-9i & 7\\ \end{pmatrix}\)
参考
Gilbert Strang: Linear Algebra and Its Applications 3rd edition
4.7.4 Extract Region of Interest*
*Only in Professional*
由矩阵 \(A\) 中截取矩阵 \(S\)。由 Start Indexes 为 \((a_x , a_y)\)开始截取一段长度为 \(L_x\)(Row)丶\(L_y\)(Column)的矩阵。其 End Indexes 为\((a_x + L_x - 1, a_y + L_y - 1)\),若 End Index 超过 \(A\) 的范围则会在 \(S\) 中填零。
说明
非常类似矩阵定义中的 Sub-Matrix 定义,但此模组可用以处理更高维度的资料,此外超过原矩阵范围者,本模组会填补上零。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number)丶Numeric的数值资料,而输出亦为同型态的资料。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Start Indexes | 截取的起点座标。 | (0 , 0) |
| ROI Dimensions | 截取的 Row 长度及 Column 长度。 | 原矩阵的 Row 长度及 Column 长度 |
范例
以 DoMatlab 模组制造一乱数 \(3 \times 3\) 的方阵
矩阵内容如下
\(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)
若截取的起点座标为 (0 , 0),ROI Dimensions 为 (3 , 1),截取到矩阵为
\(\begin{pmatrix} 0.86 \\ 0.22 \\ 0.99 \\ \end{pmatrix}\)
若起点为 (2 , 2) ,ROI Dimensions 为 (3 , 3) (超过范围),截取到矩阵为
\(\begin{pmatrix} 0.78 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{pmatrix}\)
超过范围部份补零。
参考
Gilbert Strang: Linear Algebra and Its Applications 3rd edition
4.7.5 Extract Vector*
*Only in Professional*
说明
将向量由矩阵(或阵列,不见得必须为二维)中提取出来。若提取的范围超过原阵列大小,超出部份填补零。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number)丶Numeric的数值资料,而输出亦为同型态的资料。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Vector Direction | 截取矩阵的方向,从零开始。好比有个四维阵列,若输入的方向为 2,即是延着第三个维度的方向(通常称为深度)截取。 | 0 (行方向) |
| Column-Vector | 设定为 True,输出矩阵以一行(Column) 为主依序排列,反之则相反。 | True |
| Start Indexes | 截取的起点座标 | (0 , 0) |
| Vector Length | 截取的长度 | 原阵列在某各方向上的长度 |
范例
假设一个 \(2 \times 3\) 的 \(A\) 矩阵:
矩阵内容如下
\(\begin{pmatrix} 0.27 & 0.95 & 0.15 \\ 0.54 & 0.96 & 0.97 \\ \end{pmatrix}\)
设定 Column Vector 设为 True:截取方向为 0(行方向),起点为 (0 , 0),长度为 3(超过范围)的向量。
所得到的结果为
\(\begin{pmatrix} 0.27 \\ 0.54 \\ 0 \\ \end{pmatrix}\)
参考
GilbertStrang: Linear Algebra and ItsApplications 3rd edition
4.7.6 Diagonal Vector*
*Only in Professional*
说明
本模组用以截取矩阵(必须为方阵)的对角元素,并排列为一向量。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number)丶Numeric 的数值资料,而输出亦为同型态的资料。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Column-Vector | 设定为 “True”,输出矩阵以一行(Column)为主依序排列,反之则相反。 | True |
范例
以DoMatlab 模组制造乱数 \(3 \times 3\) 的方阵,矩阵内容如下:
\(\begin{pmatrix} 0.03 & 0.67 & 0.39 \\ 0.84 & 0.75 & 0.65 \\ 0.93 & 0.74 & 0.17 \\ \end{pmatrix}\)
截取得到的 Diagonal Vector 为
\(\begin{pmatrix} 0.03 \\ 0.75 \\ 0.17 \\ \end{pmatrix}\)
参考
Gilbert Strang: Linear Algebra and Its Applications 3rd edition
4.7.7 Reciprocal Matrix Condition Number*
*Only in Professional*
计算 \(1 / C\)。其中 \(C\) 为矩阵的 Condition Number。
说明
给定一个矩阵 \(A\),其 Condition Number 定义为 \(C=\|A\|\|A^{-1}\|\)。\(C\) 可用 \(L_1\) 或 \(L_{\infty}\) 量测,分别称 \(C_1\) 与 \(C_{\infty}\)。 其分别对应於以不同方式量测到之 \(A\) 的 Norm。\(\|A\|_1\) 与 \(\|A\|_{\infty}\) 的计算采用如下定义(与线性代数教科书略有不同):
\[\|A\|_1 \triangleq \max_j \sum_i |a_{ij}|\]
\[\|A\|_{\infty} \triangleq \max_i \sum_j |a_{ij}|\]
其中 \(i\)丶\(j\) 为列与行的 Index。
Condition Number 的意义:
用来量度 \(A\) 的 Stiffness:也就是特徵值(eigenvalue)的大小分布状况 \(\lambda_{max} / \lambda_{min}\)。
线性方程组 \(Ax = b\) 解对於机器误差(round-off error)的敏感度。也就是说当 \(b\) 稍微改变时,\(x\) 变化的程度:
\[A(x+\delta x) = b + \delta b\]
注:\(A\) 必需为一方阵。若 \(A\) 不为方阵时可用 SVD 法求得,但目前版本并不支援这项计算。
参数设定
本模组接受实数(Real number)丶复数(Complex Number)丶Numeric 的数值资料,而输出在 Properties 的 Reporter。


范例
以 DoMatlab 模组制造乱数 A 的方阵:
矩阵内容如下
\(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)
若其 Condition Number 很接近零,则矩阵是 Singular,反矩阵不存在。
以本模组检测之


发现 Norm 的值并不是非常接近零,所以其反矩阵是存在的。(可以 Inverse模组计算之)
相关指令
Matrix Inverse丶Matrix Operation
参考
Gilbert Strang: Linear Algebra and Its Applications 3rd edition
4.8 SVM*
*Only in Sound and Vibration Module*
SVM(Sound and Vibration Module)建立在 Visual Signal快速丶便利丶多样性的平台架构,提供语音丶噪音丶振动及回转机械故障的完整解决方案。SVM具有适合各领域研究人员所需的分析演算法,并且提供符合工业界规范的检测方法,方便线上人员即时检测,最後可由各种图形表现。除了传统的傅立叶频谱,以及时频分析等演算法之外,还有振动及噪音的特殊分析演算法,例如RMS 分析可以作为震动品质检测的依据,Crest Factor 帮助了解撞击讯号强度变化,OrderSpectrogram除了振动及噪音讯号之外,还需要输入转速计讯号,可以将原本频率对时间的变化量转变为阶次对转数的变化量,可以将倍频现象利用阶次表现出来。Envelope 可以将撞击讯号的包络线解析出来。如此之外,对於声音的处理,提供权重函数将原本的频谱或是时频图加权为人耳感官到的频谱图,还提供 Octave 分析功能。提供工业界进行各种应用及研究,相关应用如工具机丶主轴,马达丶齿轮箱等检测,或是主轴跑合系统应用。
4.8.1 Crest Factor*
*Only in Sound and Vibration Module*
Crest Factor (峰值因素)为波形的一个参数,为波形峰值与有效值的比率,用来评估振动中的极端讯号,包含冲击讯号的大小。主轴和轴承等回转机械制造商可以利用 Crest Factor 值评估轴承内环丶外环丶滚珠之间是否有撞击讯号产生,可以弥补 RMS 只能评估整体振动的不足,可发现更微小的敲击,为判断轴承是否有缺陷的重要指标。
理论
输入讯号以滚动计算窗分割(详见【Rolling Window】章节说明),计算每个滚动窗的 CrestFactor,即为每个滚动窗内的最大峰值除以 RMS 值,如下:
\[\text{CrestFactor} = \frac{\text{TruePeak}}{\text{RMS}}\]
此处 RMS 计算方法采用积分法(详见【RMS】章节说明)。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道 (Multi-Channel), Regular 的讯号(Signal)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 数值积分的方法,可选择:
|
Trapezoidal |
| StartPosition | 设定时间轴或横轴上的积分起始值。 | 输入讯号的起始值。 |
| EndPosition | 设定时间轴或横轴上的积分终点值。 | 输入讯号的终点值。 |
除了积分相关参数之外,本元件还嵌入 Remove DC 元件,可移除输入讯号直流部分,相关参数请参考【Remove DC】章节说明。滚动窗相关参数请参考【Rolling Window】章节说明。
范例
以下范例为读入任一加速规讯号,计算并比较其 RMS 及 CrestFactor。以主选单之 File / Open Project 打开位於安装目录下 demo\SVM 资料夹(预设为 C:\Program Files\AnCad\Visual Signal\demo\SVM)的 Crest Factor.vsn 专案档。开启後如下图:

因为滚动窗计算的设定,计算後会有剩馀资料点,因此 RMS 与 CrestFactor 元间皆有警告标示出现,可以将其忽略,或是改变滚动窗设定。
下图为计算後之 RMS 值和两种不同滚动窗大小之 CrestFactor 值与原讯号的比对:

可以见到相较於 RMS ,CrestFactor 较能显示出原讯号中异常峰值的部分,调整 CrestFactor 的滚动窗大小则可改变其解析度。
相关指令
4.8.2 Peak*
*Only in Sound and Vibration Module*
Peak(峰值)主要是为评估振动讯号中每个时段内最大值及最小值计算出的真实峰值。在工业界中,手持量测系统皆有用来评估振动的参考值,回转机械制造商量测振动加速度经计算後,求得 Peak 值用来判断各种机械的撞击程度。
理论
输入讯号以滚动计算窗分割(详见【Rolling Window】章节说明),计算每个滚动窗的峰值:
\[\begin{aligned} \text{Max} &= \max[a(t)], \quad 0 \leq t \leq T\\ \text{Min} &= \min[a(t)]. \quad 0 \leq t \leq T\\ \text{TruePP} &= \text{Max} - \text{Min}\\ \text{TruePeak} &= \text{TruePP}/2 \end{aligned}\]
其中 \(T\) 为滚动窗大小(以时间为单位),\(a(t)\) 主要表示震动的幅度,\(\text{Max}\) 为滚动窗内的最大正值,\(\text{Min}\) 为滚动窗内的最小负值。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道(Multi-Channel), Regular 的讯号(Signal)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Type | 设定抓取峰值的类别:
|
TruePeak |
如上所述,本元件还嵌入了滚动窗相关参数,请参考【Rolling Window】章节说明。
范例
以下范例为读入任一加速规讯号,计算并比较其 RMS 及 Peak。以主选单之 File / Open Project 打开位於安装目录下 demo\SVM 资料夹(预设为 C:\Program Files\AnCad\Visual Signal\demo\SVM)的 Peak.vsn 专案档。开启後如下图:

因为滚动窗计算的设定,计算後会有剩馀资料点,因此 RMS 与 Peak 元间皆有警告标示出现,可以将其忽略,或是改变滚动窗设定。
下图为计算後之 RMS 值和两种不同峰值类别(TruePeak vs. Min)之 Peak 值与原讯号的比对:

可以见到相较於 RMS ,Peak 能显示出原讯号中峰值的部分,改变峰值类别可观测不同的峰值类别,同时改变 Peak 的滚动窗大小也可改变其解析度。
相关指令
4.8.3 Digital Tachometer*
*Only in Sound and Vibration Module*
转速计为量测转速的量测工具,但是量测到的原始讯号为脉冲讯号,透过此模组运算,可以将脉冲讯号转为回转机械实际转速。
理论
原始转速计量测的脉冲讯号如下图:

假设测脉冲讯号为 \(S_n = \{S_0, S_1, \dots, S_{N - 1}\}\),其每个资料点对应的时间为 \(t_n = \{t_0, t_1, \dots, t_{N - 1}\}\),其中 \(0 \leq n < N\),则定义脉冲出现间距的方式有三种:
Rising
抓取脉冲上升缘值超过超过门槛值 \(S_{th}\) 的时间点,如下:

\[\begin{aligned} \text{If}& \quad S_{n+1} \geq S_{th}, \quad S_n < S_{th}\\ \text{then}& \quad t_{pulse} = t_{n+1} \end{aligned}\]
Falling
抓取脉冲下降缘低於门槛值 \(S_{th}\) 的时间点,如下:

\[\begin{aligned} \text{If}& \quad S_{n+1} \leq S_{th}, S_n > S_{th}\\ \text{then}& \quad t_{pulse} = t_{n+1} \end{aligned}\]
Center
抓取原始量测讯号中上升缘超过与下降缘低於门槛值 \(S_{th}\) 之脉冲中心点的时间点,如下:

\[\begin{aligned} \text{If}& \quad S_{n_1+1} \geq S_{th}, S_{n_1} < S_{th} \\ &\text{and} \quad S_{n_2+1} \leq S_{th}, S_{n_2} > S_{th} \\ \text{then}& \quad t_{pulse} = (t_{n_1 + 1} + t_{n_2 + 1}) / 2 \end{aligned}\]
取得各脉冲的抓取点的索引後,计算索引抓取脉冲之间的间距,计算间距的时间,其值的倒数即为转速。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道(Multi-Channel), Regular 的讯号(Signal)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Express Type | 选择输出转速单位:
|
RPM |
| SlopeType | 定义如何抓取通过门槛值 \(S_{th}\) 的方法(见前文理论说明):
|
Center |
| SmoothType | 将 Tachometer 讯号中不平滑部分,做内插平滑,有两种方法:线性(Linear)及曲线近似(Spline) | Spline |
| Threshold | 脉冲门槛值(即前文理论说明中之 \(S_{th}\)),超过此门槛值才为脉冲。 | 1 |
| PulsePerRevolution | 量测的时候转动一圈会出现几个脉冲,一般而言,量测只有贴一个反光片就有一个脉冲。如需更准确量测转速,可以在等间距贴上反光片,并且输入转动一圈的所通过反光片数目。 | 1 |
范例
本范例以安装目录下 demo\SVM 资料夹(预设为 C:\Program Files\AnCad\Visual Signal\demo\SVM)下找到 VT.mat 以「Regular」格式汇入,如下图:

并拉成如以下之流程图(Channel Switch 要切换到「CH2」,其他参数皆为预设):

Switch 出来的为一转速计讯号,如下图。

透过 DigitalTacho 可以将转速计的脉冲讯号转换为转速讯号,其结果如下:

4.8.4 OrderSpectrogram*
*Only in Sound and Vibration Module*
阶次频谱图目的在於方便观察各种机械倍频,观察倍频能量随着转速产生的变化,阶次频谱通常需要两种讯号:基本的振动或噪音讯号和转速计(Tachometer)的原始脉冲讯号,便可以将原本只有震动或噪音的时频图为转变为阶次频谱图。
理论
阶次频谱通常应用在回转机械上面,因为时频图上倍频的频率会随着转速改变,而不利於後续的分析。因此将原来的量测讯号从时间域转到角度域,让每一转的采样数量都一样多,经过时频分析,就可将转速的因素去掉,得到一张阶次频谱图,其中“阶次”表达了为转速的几倍频率。更详细说明何谓阶次频谱,可见以下为一般变转速讯号之时频图:
阶次频谱分析的计算方式可分成两个步骤,第一步骤将震动或噪音讯号从时间域转换成角度域,第二步是将角度域的讯号进行时频转换:
原始震动或噪音讯号是为等时间间距,首先利用转速计(Tachometer)讯号的脉冲间内插取样出等角度间距,再将振动或噪音讯号依等角度间距进行内插取样,最後得到等角度间距的振动或噪音讯号。
再将等角度间距讯号经过时频转换得到阶次(倍频)——转动圈数频谱。时频转换有【STFT】,【FastSTFT】丶【Enhanced Morlet】等选择,请见个别章节说明。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道(Multi-Channel), Regular 的讯号(Signal)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| SamplePerRev | 每一转内插的点数 | auto(100) |
| Method | 选择计算时频图的方法:
|
FastSTFT |
| MinOrder | 决定计算及绘图阶次的下边界 | 0 |
| MaxOrder | 决定计算及绘图阶次的上边界 | \(SamplePerRev/2\) |
| OrderResolution | 设定窗函数的范围,此值会影响到窗函数的大小,设定的越小,窗函数会越小 | \(MaxOrder/20\) |
| OverlappedFactor | 设定 Enhanced Morlet Transform 的重叠参数 | 1 |
| OrderCount | 设定阶次方向之离散网格数 | 512 |
| XAxisCount | 设定转动圈数方向之离散网格数 | 1024 |
| Window | 在STFT / FastSTFT 分析,进行窗函数的分割时,会利用窗函数进行滤波,此处可选择各种窗函数 | Hanning |
| SlopeType | 选择如何抓取通过 Threshold 的方法(见【Digital Tachometer】章节说明):
|
Rising |
| Threshold | 脉冲门槛值,超过此门槛值才为脉冲(见【Digital Tachometer】章节说明) | 1 |
本元件还嵌入 Remove DC 元件,可移除输入讯号直流部分,相关参数请参考【Remove DC】章节说明。
范例
以主选单之 File / Open Project 开启:
C:\Program Files\AnCAD\VisualSignal\demo\SVM\Order Tracking.vsn,
可看到如下图所示之连接图:

首先可看到由真实量测到回转机件的振动(Acc.wav)及转速变化(Tacho.wav)的资讯汇入,观察加速规及转速计的原始讯号,其中黑色代表振动讯号,蓝色则代表转速计讯号,由脉冲的间距可知回转机械的转速越来越高,如下图:

首先利用 Compute / Enhanced / FastSTFT 计算振动讯号之时频图,可利用 Time-Frequency Viewer 观察出频率随着时间不断地增加,但是无法分出各个斜直线属於当时转速的第几个倍频,如下图:

利用【Digital Tachometer】可计算出真正的转速,单位为 RPM,如下图:

最後将振动讯号以及转速计讯号输入至 OrderSpectrogram ,选择预设 STFT 方法,可以得到 Order-Revolution 图,如下图:

上图可以清楚看到转速倍频的变化,在频谱图上发现 10~15 倍频及30 倍频左右皆有特别明显的振幅,由此可以粗略判断回转机械可能有轴不对心的情形。
本范例还使用 Order Info 观测转动圈数及转速的关系,请参考下章【OrderInfo】说明。
相关指令
FastSTFT丶 Time-Frequency Viewer丶 Digital Tachometer丶 OrderInfo
4.8.5 OrderInfo*
*Only in Sound and Vibration Module*
OrderInfo 元件主要搭配【Order Spectrogram】,可以帮助使用者知道转动圈数与时间或转速的相关资讯。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| XType | 选择 X 轴显示类别:
|
Revolution |
| YType | 选择 Y 轴显示类别:
|
RPS |
| SlopeType | 定义如何抓取通过 Threshold 的方法(见【Digital Tachometer】章节说明):
|
Rising |
| Threshold | 脉冲门槛值,超过此门槛值才为脉冲(见【Digital Tachometer】章节说明) | 1 |
范例
以主选单之 File / Open Project 开启:
C:\Program Files\AnCAD\VisualSignal\demo\SVM\Order Tracking.vsn,
可看到如下图所示之连接图:

如【Order Spectrogram】所述,振动讯号及转速计讯号输入至 OrderSpectrogram 後,选择预设 STFT 方法,可以得到 Order-Revolution 图,如下图:

将转速计讯号接至 OrderInfo,调整Property / Axis Display / YType 为 RPS,最後利用 Channel Viewer 观看其结果,可以对照阶次图了解圈数当时的转速:

相关指令
Order Spectrogram丶Digital Tachometer
4.8.6 Cepstrum*
*Only in Sound and Vibration Module*
Cepstrum (倒频谱)为 「Spectrum」 中「spec」的反写,工业界上主要用来检测齿轮箱损坏和观察倍频的关系,在机车丶汽车齿轮箱和回转机械制造商皆可利用Cepstrum作为品管和检测齿轮断齿等损伤的重要工具。或着利用於语音辨识的领域。
理论
假设 \(X\) 为一 10 Hz 的三角波讯号如下:

傅立叶转换(FFT)後其频谱为(转换为 dB 显示其增益):

可以看到三角波除了 10 Hz 的主频之外有众多倍频,而这些倍频是以每 20 Hz 一次的「频率」规律性地出现。这个「频率」习惯称之为「Quefrency」(「倒频率」,也是「Frequency」的反写),单位为时间单位「秒」:
\[ \text{Quefrency} = 1 / 20Hz = 0.05 s \]
要观测这个倍频的「倒频率」,只要再做一次傅立叶转换即可,因为要得回时间单位的倒频率,因此习惯做傅立叶反转(IFFT),此称为 Cepstrum(倒频谱),如下图:

可以看到在 0.05 秒处有一根与 \(1 / 20 Hz\) 对应的倒频率。因为是频谱中频率间隔的倒数,因此越靠左的倒频率对应的频率间隔越大,基本上可视为最明显的频率规律。
Cepstrum 有实数倒频谱及复数倒频谱的分别,本元件采用实数倒频谱,定义如下。假设 \(X\) 为振动的讯号,经过傅立叶转换後,取其绝对值(Magnitude)的自然对数(Natural Logarithm),最後经傅立叶反转换:
\[C_{real} = IFFT(\ln|FFT(X)|)\]
取自然对数的的好处利用 FFT 及自然对数的特性:
- 两个在时域叠积(convolution)的讯号经傅立叶转换後在频域中为相乘的讯号。
- 两个相乘的讯号经自然对数後变为两个相加的讯号。
因此在时域叠积的讯号(例如声音经过某腔室的过滤,或地震波通过某地形的折返等)在 Cepstrum 里经过 FFT -> Natural Log -> 及 IFFT 後会变成线性相加的讯号,可以很清楚地的在 Cepstrum 中分离出来。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道(Multi-Channel), Regular 的讯号(Signal)丶声音讯号(Audio)输入。各参数定义详如下方图表。

如上文理论所述,本元件会嵌入 FFT 及 IFFT 两个元件之参数,包括各自内嵌之 Remove DC 及 Windowing 元件之参数,请参考【FFT & IFFT】丶【Remove DC】丶【Windowing】章节说明。
范例
以上三角波范例可以在安装目录下 demo\SVM 资料夹(预设为C:\Program Files\AnCad\Visual Signal\demo\SVM)下找到 Cepstrum.vsn,开启後专案连接图如下:

相关指令
4.8.7 Envelope*
*Only in Sound and Vibration Module*
包络讯号(Envelope Detection) 为检测机械故障相当有效的方式,因为机械故障杂音大部分以撞击形式产生,使用者所关注的是每秒撞击的次数,透过傅立叶频谱并无法有效分析。包络频谱分析是取得讯号的包络线,即是将讯号的峰值连接起来, 再针对该讯号进行傅立叶转换,进一步了解碰撞的频率,推估出何种机械元件产生了碰撞。
理论
有两种方式取得包络讯号:
Hilbert Transform
第一种方法是利用 Hilbert 转换产生一个解析讯号 (Analytic Signal),解析讯号为一个复数讯号,实数部分为原始讯号,而虚部为原始讯号的 Hilbert 转换结果(请参考【Hilbert Transform】章节说明。
若 \(X(t)\) 代表原始讯号,则它的 Hilbert 转换 \(Y(t)\) 定义为:
\[Y(t)=\frac{1}{\pi}P.V.\int_{-\infty}^{\infty}\frac{X(\tau)}{t-\tau}d\tau\]
并定义一解析函数 \(Z(t)\):
\[Z(t)=X(t)+iY(t)\]
则定义实数包络讯号为
\[S(t)=|Z(t)|=\sqrt{X^2(t)+Y^2(t)}\]
Spline Curve
第二种方法利用 Cubic Spline 将峰值连接起来而成为包络讯号,可选择上包络线(只连接正峰值)丶下包络线(只连接负峰值)丶中包络线(上下包络线之平均)。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道(Multi-Channel), Regular 的讯号(Signal)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Envelope Type | 选择包络线计算方式:
|
Spline |
| Spline Envelope | Envelope Type 选择 Spline 时,可选择包络线种类:
|
Upper |
| Iteration | 设定重复次数(即计算包络线的包络线),设为 1 则不重复 | 1 |
本元件还嵌入 Remove DC 元件,可移除输入讯号直流部分,相关参数请参考【Remove DC】章节说明。
范例
以下范例为利用一个重复的衰减 Impulse 讯号及 Sine 波形相乘模拟一个敲击讯号(Beating Signal),如下图:


Impulse 及 Sine 讯号源参数如下:

再分析其频谱图以及时频图:



FFT 及 FastSTFT 元件参数如下:

可以发现此撞击讯号在频谱以及时频图下皆显示最主要的频率为 10 Hz,此频率为每次敲击时的震荡频率(即原模拟讯号的正弦波部分),并无法展现使用者所需的资讯,此时可以转换为包络讯号并且进行频谱分析(Envelope 及 FFT 元件皆为预设参数),如下图:

将 Envelope 方法设为 Hilbert 可得到下图(与原讯号重叠显示,红色为包络线):

将 Envelope 再接 FFT,其频谱则变为如下图:

由此可以发现最主要的频率为 1 Hz,亦即敲击频率被解析出来为每秒一次。
相关指令
Hilbert Spectrum丶Sine丶Impulse丶 FFT丶FastSTFT
4.8.8 Bearing Defect*
*Only in Sound and Vibration Module*
轴承损坏特徵检测(Bearing Defect)为计算轴承损坏频率工具,输入轴承规格,则可以计算内外环或滚珠损坏的特徵频率。
理论
轴承基本构造如下图:

由图中所示的三个基本参数:滚珠直径 \(d\)丶轴承轨道直径(轴承内环直径加上滚珠直径) \(D\)丶接触角度 \(\alpha\),加上滚珠数量 \(N\) 及轴承秒转速 \(R\) (RPS 或 Hz),可以计算出以下特徵频率:
外环损伤特徵频率
此为轴承滚珠通过轴承外环上缺陷的频率:
\[Freq_{outer} = R \times \frac{N}{2} \bigg(1-\frac{d}{D} \times \cos \alpha \bigg)\]
内环损伤特徵频率
此为轴承滚珠通过轴承内环上缺陷的频率:
\[Freq_{inner} = R \times \frac{N}{2} \bigg(1+\frac{d}{D} \times \cos \alpha \bigg)\]
滚珠损伤特徵频率
此为轴承滚珠上的缺陷在自转时通过轴承内环或外环的频率:
\[Freq_{roller} = R \times \frac{D}{d} \bigg(1-\big(\frac{d}{D} \times \cos \alpha \big)^2 \bigg)\]
保持器损伤特徵频率
此为轴承滚珠保持器(保持滚珠间距的装置)的频率:
\[Freq_{outer} = R \times \frac{1}{2} \bigg(1-\frac{d}{D} \times \cos \alpha \bigg)\]
参数设定
本模组接受实数(Complex Number),单通道(Single Channel),Regular的频谱讯号,输出轴承滚珠的特徵频率。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Bearing Diameter | 轴承直径 | 0 |
| Contact Angel | 接触角 | 0 |
| Roller Diameter | 滚珠直径 | 0 |
| Roller Number | 滚珠数量 | 0 |
| Rotation Speed | 轴承滚动速度,单位为 RPS(每秒几转) | 0 |
| MaxHarmonicOrder | 最大显示倍频,算出特徵频率後,在图上显示的倍频数 | 5 |
Characteristic Frequency 下参数代表之意思:
| 参数名称 | 参数定义 |
|---|---|
| FreqCageDefect | 保持器损伤特徵频率 |
| FreqInnerDefect | 内环损伤特徵频率 |
| FreqOuterDefect | 外环损伤特徵频率 |
| FreqRollerDefect | 滚珠损伤特徵频率 |
范例
取得振动讯号之後,透过傅立叶转换进行频谱分析,可以利用 Bearing Defect比对频谱,检视特徵频率是否靠近损坏频率。


黑色的为原始讯号之频谱,蓝色为外环损伤频谱,红色为内环损伤频谱,绿色为滚珠损伤频谱,比对原始频谱以及此三个频谱,若是原始讯号的特徵频率有靠近损坏频谱误差於5% 之内,则可以辨识出损伤部位。
4.8.9 Octave*
*Only in Sound and Vibration Module*
八音度(Octave)或称倍频程,这一名词是从音乐中借用而来。例如钢琴的中音C,到下一个音阶(高八度)的 C,其频率比正好是两倍,称为一个八音度。将一个八音度分为三份,每一份称为 1/3 八音度或 1/3 倍频程。将一个八音度分为 12 份,每一份称为 1/12 八音度或 1/12 倍频程。
本元件虽以业界常用八音度为主,也可以设定为十倍频(Decade),见以下说明。
理论
八音度(Octave)
八音度分析中每个频带的上限频率和下限频率之比为常数,其关系满足:
\[f_2 = 2^n \cdot f_1\]
其中 \(n\) 为八音度数,例如:\(n = 1\),为八音度;\(n = 1/3\),为 1/3 八音度;\(n = 1/12\),为 1/12 八音度。频带的中心频率 \(f_c\) 为上丶下限频率的几何平均值,即
\[f_c = \sqrt{f_1 f_2} = 2^{n/2}f_1 = 2^{-n/2} f_2\]
频带宽度 \(BW\) 为
\[BW = f_2 - f_1 = (2^{n/2}-2^{-n/2})f_c = \beta_2 f_c\]
由此可知:对八度音,\(n = 1\),\(\beta_2 = 0.707\);对 1/3 八度音,\(n = 1/3\), \(\beta_2 = 0.231\);对 1/12 八度音,\(n = 1/12\),\(\beta_2 = 0.0578\)。
十倍频(Decade)
本元件也可以设定为十倍频(Decade),每个频带的上限频率和下限频率之比为常数,其关系满足:
\[f_2 = 10^n \cdot f_1\]
其中 \(n\) 为十倍频度数,例如:\(n = 1\),为十倍频;\(n = 1/10\),为 1/10 十倍频;\(n = 1/20\),为 1/20 十倍频。频带的中心频率 \(f_c\) 为上丶下限频率的几何平均值,即
\[f_c = \sqrt{f_1 f_2} = 10^{n/2}f_1 = 10^{-n/2} f_2\]
频带宽度 \(BW\) 为
\[BW = f_2 - f_1 = (10^{n/2}-10^{-n/2})f_c = \beta_{10} f_c\]
由此可知:对十倍频,\(n = 1\),\(\beta_{10} = 2.846\);对 1/10 十倍频,\(n = 1/10\), \(\beta_{10} = 0.231\);对 1/20 十倍频,\(n = 1/20\),\(\beta_{10} = 0.115\)。
参数设定
本模组接受复数(Complex Number),单(Single Channel)丶多通道(Multi-Channel),Regular 的频谱讯号(Signal)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Output Type | 选择输出种类:
|
Bar |
| Octave Unit | 选择倍频单位:
|
|
| Octave Type | 选择频带宽度。若 Unit 为 Octave,选择为:
若 Unit 为 Decade,选择为:
|
ThirdOctave |
| Spectrum Type | 选择在统计倍频带前将输入频谱转换成频谱类别:
|
Gain |
| Value Type | 选择输出资料类别:
|
Sum |
| Use Std Reference | 设定是否用标准音频压力增益参考值(20 \(\mu Pa\)),因增益计算使用功率频谱所以参考值会自动平方。使用此标准参考值时输入的单位必须为 \(Pa\) | False |
| Gain Reference | 设定计算增益 dB 值所需之参考值。使用标准参考值时此此栏位会强制自动设定为标准值。 | 1 |
范例
以下范例为一个含倍频的鸟叫讯号(Chirp Signal),利用 Fourier Transform 分析其频谱图,再由 Octave 元件转换为倍频带,最後由 Channel Viewer 之 Stem 形式绘图:


Octave 元件之参数全为上述之预设值,Channel Viewer 的显示模式设定如下图:

Octave 输出类别为 Bar 时也可接上 Bar Viewer,结果如下:

Bar Viewer 的显示模式设定如下:

注意以【Channel Viewer】显示时,因为频率轴预设为 LinearAxis ,因此可以看到每个频带以对数间隔绘出;以【Bar Viewer】显示时,每个频带是以同等间隔绘出。【Channel Viewer】的 XAxisType 参数若是设定为 LogAxis 也可以有同样效果。
4.8.10 Weighting*
*Only in Sound and Vibration Module*
人耳对於各种频率的感受度并不相同,因此透过傅立叶转换或是时频分析出来的结果并非实际人耳听到的频谱,必须透过加权函数(Weighting Filter)才能转换为实际听到的频谱。
理论
Weighting 区分为三种:A丶B 或C,这三种都是频率响应的标准,不同的曲线是设计去给与在读取声压位准 (Sound Pressure Level, SPL)时,能很好的对应人类对声频的反应,有最少的差异,我们可从 Fletcher-Munson的等响曲线 (Equal Loudness Level Contours) ,去了解我们人类耳朵是怎麽的听闻声频的,以频率 1 KHz为中心点,在较低的声频部份是低感度的,为了要显示我们人类耳朵听闻声频的特性,因此加权函数的用意是去减少音压表的灵敏感度,这是当音压低於某一程度,就人类的耳朵感观,它会对低频方面较不灵敏。
A 加权曲线是基於 40 Phon 的 Fletcher-Munson Equal Loudness Contour,当量测较低位准的声音时,建议使用它较佳。
B 加权曲线是基於 70 Phon 的 Fletcher-Munson等响度曲线,当量测中段位准的声音时建议使用它较适合,在量测时使用 A 及 B加权,又称为加权声音电平位准(Weighted Sound Level)。
C 加权在本质上是近似平坦,它是利用在高响度位准的声音时。
声压位准在 20~55 dB SPL 范围内,建议使用 A 加权曲线网路,声压位准在55~85 dB SPL 范围内,建议使用 B 加权曲线网路,声压位准在 85~140 dB SPL范围内,建议使用 C 加权曲线网路:
A-Weighting

\(W_A = 10\log\bigg[\frac{1.562339 f^4}{(f^2+107.65265^2)(f^2+737.86223^2)}\bigg]+ 10\log\bigg[\frac{2.242881 \times 10^{16}f^4}{(f^2+20.598997^2)^2(f^2+12194.22^2)^2}\bigg]\)
B-Weighting

\(W_B = 10\log\bigg[\frac{1.025119 f^2}{f^2+158.48932^2}\bigg]+ 10\log\bigg[\frac{2.242881 \times 10^{16}f^4}{(f^2+20.598997^2)^2(f^2+12194.22^2)^2}\bigg]\)
C-Weighting

\(W_B = 10\log\bigg[\frac{2.242881 \times 10^{16}f^4}{(f^2+20.598997^2)^2(f^2+12194.22^2)^2}\bigg]\)
参数设定
本模组接受复数(Complex Number),单(Single Channel)丶多通道(Multi-Channel),Regular 的讯号(Signal);复数(Complex Number),单通道(Single Channel), Regular 的时频(Spectra)输入。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Weighting Type | 决定为何种权重滤波:
|
By Pass |
| Slope Value | 权重相对於频率的斜率。 | 1 |
范例
以下范例为一个鸟叫讯号 (Chirp Signal),档案位於 C:\Program Files\AnCAD\VisualSignal\demo\Basic\chirp1000.tfa ,利用 Visual Signal 分析其频谱图以及时频图。



加乘上 A-Weighting之後


4.8.11 Scale*
*Only in Sound and Vibration Module*
Scale 主要是利用仪器的 Sensitivity将各种量测的电压讯号转换成具有工程单位(EU)的讯号,如加速度丶速度丶位移丶声压丶温度丶应变等。
理论
转换式如下:
\[EU = \frac{x}{S}\]
其中 x 表示电压讯号,单位为 volts(V),S 表示 Sensitivity,单位通常为 \(mV/EU\) 。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道(Multi-Channel), Regular 的讯号(Signal)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Engineering Units | 用来表示转换成的工程单位,如 \(g\)丶\(m/s^2\)丶\(Pa\)丶\(N\) 等。 | g |
| Sensitivity | 由感测器或仪器的 Specification 得知 Sensitivity,一般而言,其单位为 \(mV/EU\),如加速规为 \(mV/g\)丶麦克风为 \(mV/Pa\) 等。 | 1000 |
范例
以下范例利用一个实际量测主轴振动,而所得加速规的讯号。
首先将电压讯号经过 Scale 转换,Properties / Engineering Units 设定为\(g\) ( \(m/s^2\)),Properties / Sensitivity 根据加速规 Specification 设定100.6 ( \(mV/g\)),再以 Channel Viewer 观察,如下图。



4.8.12 GearBox Creator
说明
藉由设定不同组合的「主轴」丶「轴承」丶「齿轮」丶及齿轮啮合的配置,计算齿轮箱运转时各零件的各种特徵频率;藉由此模组可判断齿轮箱经过长时间运转後,可能出现异常的位置。
理论
本齿轮箱设定对话窗除了设定不同齿轮箱的配置之外,还能计算出以下的特徵频率:
齿轮
| 名称 | 代号 | 说明 |
|---|---|---|
| 旋转频率 | RF | 齿轮旋转频率,等同该齿轮主轴的转速转换成频率 |
轴承
| 名称 | 代号 | 说明 |
|---|---|---|
| 外环损伤频率 | BPFO | 轴承滚珠通过轴承外环上缺陷的频率 |
| 内环损伤频率 | BPFI | 轴承滚珠通过轴承内环上缺陷的频率 |
| 滚珠损伤频率 | BSF | 轴承滚珠上的缺陷在自转时通过轴承内环或外环的频率 |
| 保持器损伤频率 | FTF | 轴承滚珠保持器(保持滚珠间距的装置)的频率 |
轴承特徵频率在【Bearing Defect】章节中有详细说明。如果轴承有缺陷或损伤,在运转时以上特徵频率会变得比较明显,可以依其频率判断是哪一个轴承有异常。不同厂牌型号的轴承会有不同系数可计算出以上特徵频率,本齿轮箱设定对话窗内建常用轴承之资料库,亦可自订新轴承(见後文说明)。
齿轮啮合处
| 名称 | 代号 | 说明 |
|---|---|---|
| 齿轮啮合频率 | GMF | 两齿轮啮合转动时啮合处的频率,即齿轮旋转频率 RF 乘上轮齿数 |
| 齿轮组相位频率 | APPF | 齿轮组相位数为两啮合齿轮之轮齿数的共同质数因子,例如两齿轮齿数分别为为 \(49 =7 \times 7\) 以及 \(63 = 7 \times 9\) ,则相位数为 \(7\),相位频率则为 GMF 除以相位数。 |
| 追逐齿频率 | HTF | 两齿轮啮合转动时啮合之同一对轮齿再次相遇的频率,即齿轮旋转频率 GMF 除以两齿轮齿数的最小公约数 |
如果齿轮啮合滑顺,在运转时以上特徵频率在频谱中并不会太明显,一旦齿轮轮齿有缺陷或损伤则会变得比较明显,可以依其频率判断是哪一组齿轮有异常。
参数设定
此功能位於 Compute / Sound and Vibration / Gearbox Creator,在 Network Editor 空白处新增一 Gearbox Creator。在元件上双击滑鼠左键,开启 Gearbox Creator 的设定对话窗。如为第一次开启则如下图:

点选 New 後则如下图:

无论哪种情况,点选 Open(上图蓝色反白处),开启示范档案 DemoModelA(下图蓝色反白处)。

选择 DemoModelA 後点选 OK 则会读入该范例之齿轮箱设定,如下图:

左边红框上栏位可新增或编辑零件:Shaft(主轴,以 S 开头编号)丶Gear(齿轮,以 G 开头编号)丶Bearing(轴承,以 B 开头编号),下栏位则可新增或编辑齿轮啮合的连结(以 C 开头编号)。右边蓝框则是各零件的编号与位置(绿色S0-S3 为主轴丶黄色 B0-B4 为轴承丶浅蓝色 G1-G4 为齿轮,T 则为该齿轮的齿数)。右下方绿框则显示机台名称(Machine Name)和驱动转速(Drive Speed)。第一主轴(S0)默认为驱动轴,而最後一个主轴(这里为 S3)默认为输出轴。
滑鼠双击任一齿轮,可从 Spur Gear Setting 修改齿轮齿数:

滑鼠双击任一轴承,可从 Bearing Setting 选择轴承型号,或新增自订型号:

红框下栏有三种连接设定:NEUTRAL丶LOW丶HIGH,分别对应三种不同齿轮啮合档位。选择 NEUTRAL 可看到只有 S2 轴的 G1 齿轮对接输出轴 S3 的 G1 齿轮,驱动轴S0 空转。选择 LOW 则可看到驱动轴 S0 经过齿轮啮合一直传送动力至输出轴 S3。勾选 Connectivity,可设定新的齿轮啮合设置,所有齿轮的栏位左方会出现勾选的方框,勾选两个啮合的齿轮(必须为邻近两个主轴的齿轮)後,啮合的两个齿轮在右方零件图中以桃红色显示:

此时在红框上栏上方选择 Frequency 页面,即可算出本齿轮箱在 LOW 档位的连接状态下各零件及齿轮啮合处之各种特徵频率(详见前文所述)。如果有前一次的计算结果,选择 Frequency 页面时会跳出以下对话窗确认是否重新计算,否则会显示旧的计算结果:

下图显示切换至 Frequency 页面时的状态:

左侧红框为各零件的转速及特徵频率,右侧蓝框为零件位置。
红框左上方之下拉选单可以切换不同档位,点选右方之按钮
则可开启 Frequency Viewer,可显示所有计算出的特徵频率,如下图:

滑鼠单击 Frequency Viewer 表格上方的栏位名称,表格会自动按照该栏位的数值大小排序(例如点选「Frequency [Hz]」,便可依照各零件的频率大小排序,方便找最大或最小值);点选
图示,可直接将资料汇出至 Excel 或其他Spreadsheet 应用程式。
回到齿轮箱设定对话窗主介面的 Frequency 页面。在频率显示栏位上任选一个零件或齿轮啮合处,在任一特徵频率上按滑鼠右键,可针对该频率增加边频(Sideband)或倍频(Harmonic)设定,如下图:

点选 Add Sideband 和 Add Harmonic,会跳出下图之视窗,设定好参数後按 OK 即可新增。

新增的 Sideband 和 Harmonic 会出现在该频率下方(下图红框处)。

范例
异音分析简介:当机台因长时间运转而造成零件磨损,开始产生异常的声音或振动讯号,藉由分析异常讯号,可以有效率的找出问题零件并加以解决。本案例分析的数据为机台运转的异音讯号,使用短时傅立叶转换(STFT)和二次频谱计算异音的特徵频率,再使用 GearBox 建立机台模型丶计算每个零件的理论频率,藉由核对两者的计算结果,让使用者能快速丶有效地找出产生异音的零件。

分析步骤:
点选 Import Data ,从
C:\Program Files\AnCAD\Visual Signal\demo\SVM载入音讯档Gearbox.wav,并用 Viewer / Channel Viewer 显示。此为一机台运转时的声音,其中包含较低频的异音,按“Play键”
可拨放此音讯档。
使用 Compute / Transform / Fourier Transform 分析音讯档
Gearbox.wav,并接上 Viewer / Channel Viewer 显示其计算结果。
下图为 Fourier Transform 的分析结果,最高的 peak 其对应频率约为 120Hz,但异音频率一般介於 1Hz 到 50Hz 之间,120Hz并不是异音的频率;由此可知,Fourier Transform 并非分析异音问题的有效工具。

欲有效分析异音问题,在异音音讯档後依序接上 Shor-Term Fourier Transform 和 Secogram(两功能皆位於Compute / TFA)并皆以 Viewer / Time-Frequency Viewer 显示,Secogram 後再接上 Compute / TFA / Marginal Time,并以 Viewer / Channel Viewer 显示。

下图为 Short Term Fourier Transform 的参数设定和时频图,另外可调整 Time-Frequency Viewer 的参数 CMax,改变时频图的颜色分布。


下图为 Secogram 的参数设定和时频图,另外可调整 Time-Frequency Viewer 的参数 CMax,改变时频图的颜色分布。


在 Secogram 後接上 Marginal Time,即对原时频图的横轴积分,得到下图结果;由此结果可看出 10Hz 和 2Hz 的异音问题较明显。

接下来将使用 Compute / Sound Vibration / Gearbox Creator 计算机台每个零件的转速,找出产生异音的位置。
用 Windows 档案总管开启图档
Gearbox.png(档案位於C:\Program Files\AnCAD\Visual Signal\demo\SVM)。此为工具机台构造的简图,共有四个主轴和六个齿轮,马达转速为 1800RPM;我们可以用 Gearbox Creator 做出此机台的模型,并计算各零件的频率。
在 Network 视窗空白处,从 Compute / SVM 新增元件 Gearbox Creator,并打开设定视窗。
点选 Add Shaft,新增四根主轴:

在主轴(Shaft)上按右键,选择 Add Gear 增加齿轮:

设定齿轮齿数:在齿轮(Gear)上双击滑鼠左键,输入该齿轮的齿数:

设定齿轮啮合:勾选 Connectivity,再勾选两个互相啮合的齿轮,被勾选的齿轮会以桃红色显示(如下图蓝框处,已设定 G1 和 G0 咬合),设定好的齿轮组合会条列在左下角绿框处,在右侧的零件图中以桃红色显示:

切换至 Frequency 页面,再点选
开启 Frequency Viewer:
开启 Frequency Viewer,Drive Speed 输入 1800 RPM,即可浏览每个零件的转速:

关闭 Frequency Viewer,在齿轮箱对话窗主介面中点选 Update 後,关闭对话窗,在 Gearbox 元件後接上 Channel Viewer,则可看到各特徵频率的分布,也可以与前述范例的
Gearbox.wav分析後之实际频谱比对:
相关指令
Bearing Defect丶 FFT丶 Secogram丶 Marginal Time丶 Channel Viewer丶 Time-Frequency Viewer
4.8.13 Rotational Speed
*Only in Sound and Vibration Module*
Rotational Speed(转动速度)元件可利用转动机械之震动讯号萃取出转速资讯。
理论
一个震动讯号 \(X(t)\) 如果是由一转动机械产生,其震动资讯必然包含机械转动时的转动频率,可由以下运算萃取出:
带通 FIR 滤波
\[X_{[f_1,f_2]}(t) = FIR_{[f_1,f_2]}[X(t)]\]
\(f1,f2\) 为带通之上下频率,取其转速可能变化的频率范围,滤掉其他无关频率。
Hilbert 转换(取 Unwrapped Phase)
\[\theta(t) = Hilbert_{unwrapped\ phase}[X_{[f1,f2]}(t)]\]
Hilbert 转换可得出讯号之复数解析讯号 \(Z(t)\),进而得出相位角变化 \(\theta(t)\),如果相位角过 \(360^\circ\) 不归零则为「Unwrapped phase」(详见【Hilbert Transform】章节说明)。此资料形式方便下一步微分。
微分
\[RotSpeed(t) = \frac{d \theta(t)}{dt} / 360^\circ\]
将相位角微分即得角速度,除上 \(360^\circ\) 即得转速,其单位为 Revolution / 输入讯号时间单位。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)丶Regular 的讯号(Signal)或声音讯号(Audio)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Output Unit | 显示输出单位,基本为「Revolution / 输入讯号时间单位」 | Revolution / sec |
依上述理论说明,本元件嵌入了 FIR 滤波丶Hilbert 转换丶及 Diff 微分三种计算元件,其参数设定请参考【FIR】丶【Hilbert Transform】丶及【Diff】元件说明。如果 Hilbert 转换设定了「ByEnvelope」模式,Hilbert 转换之後还会用【Fast Trend Estimator】 取低频趋势,参数设定请参考元件说明。以下列出元件中固定或预设之参数值:
| 元件名称 | 固定参数 | 固定或预设值 |
|---|---|---|
| FIR | Filter Type | BandPass |
| Hilbert Transform | Output Type | UnwrappedPhase |
| Diff | Padding Padding Method Normalized |
First Slope True |
| FastTrendEstimator | TrendFrequency | \((FIR.F1 + FIR.F2) / 10\) |
范例
将本章结尾参考资料连结下载之 rotational.zip 档解压缩後其中转动机械加速规讯号 g.vsb 汇入,用【Data Selection】撷取0.3 ~ 1.0 sec 的资讯,再接上对应之【Channel Viewer】,其馀参数皆为预设,连接图如下:

原讯号及 Data Selection 後的讯号图如下:

接着在 Data Selection 之後接上本元件及【Channel Viewer】,如下:

由原讯号资料来源我们得知对应之平均转速可能为 30000 RPM,也就是 500 RPS(Hz),因此实际转速可能在 500 RPS 上下。将本元件中 FIR 之 F1 及 F2 参数设为495 及 505 Hz),如下:

计算後得出由震动讯号自萃出的实际转速变化:

本元件在实际转速变动太大时(例如原输入讯号之实际转速为由零至最高转速大幅变动)会产生误差极大的结果,因此本范例用 Data Selection 撷取一小段震动讯号来计算。另外,因为 FIR 及 Hilbert Transform 的一些特性,在选择带通频率时必须微调,放止微分後得出震荡过大或不合理变动的结果。
相关指令
参考资料
转动机械之加速规以及转速讯号范例:http://www.ancad.com.tw/VisualSignal/examples/rotational.zip
4.8.14 Rotational Correction
*Only in Sound and Vibration Module*
Rotational Correction(转速校正)元件可以利用自萃(见【Rotational Speed】元件)或外部连接之转速资讯校正转动机械之震动讯号的时间轴,以解决散频问题。
理论
假设有一组旋转机械之震动讯号如下图:

其时间轴为等时间间距 \(\Delta t\):
\[\Delta t = \frac{1}{\mathcal{SampleRate}} = \frac{t_{max}}{(n - 1)}\]
其中 \(t_{max}\) 为时间轴最大时间, \(n\) 为资料长度。此讯号每个时间点有对应的转速(大约 3000 RPM 或 50 RPS 上下),如下图:

转速积分後可得转动圈数(Revolution,也叫做阶次 Order,请参考【OrderSpectrogram】章节介绍)随着时间的变化,如下图:

虽然震动讯号的时间轴为等时间间距,但是因为转速的变化,以转动圈数(阶次)来说则变成不规则阶次间距。换句话说,如果在旋转过程中在每一圈的固定地方有异常震动,如果转速不是固定的,则异常震动发生的时间则变成不规则,单纯以等间隔时间之撷取之震动讯号做时谱分析则会出现散频现象。
我们可以将原始震动讯号及对应之阶次资讯合并:
先确认两者的时间轴间隔相等(如果不相等则必需用内插法将阶次资讯的时间轴调整为与原始讯号的时间轴一样)
然後以每个时间点之阶次资讯为 X 轴,震动讯号为 Y 轴,得出震动 vs. 阶次的资讯,如下图:

如果转速变化不大,则与原始讯号形状相差不大,但是仔细比对还是会有细微的差距。放大其中一段讯号可以看见每个点的阶次间距并不相同:

接下来我们可以将此震动 vs. 阶次的资讯用内插法转成等间隔:
先计算出阶次间隔 \(\Delta \mathcal{order}\):
\[\Delta \mathcal{order} = \frac{\mathcal{order}_{max}}{(n - 1)}\]
其中 \(\mathcal{order}_{max}\) 为阶次资讯中最大的阶次。
用内插法将最近的资料点移到等阶次间隔处,如下图红色三角点所示:

最後,假设转速固定,则每个等间距的阶次与原始讯号等间距的时间间隔为线性关系:
\[\mathcal{RevSpeed}_{fixed} = \frac{\Delta \mathcal{order}}{\Delta t}\]
我们可以直接将内插後的震动讯号的 X 轴直接替换为原始时间轴,得出校正後的震动讯号,如下图红线:

参数设定
本模组接受实数(Real Number),单通道(Single Channel)丶Regular 的讯号(Signal)或声音讯号(Audio)输入。各参数定义详如下方图表。
单输入(只有震动讯号)参数:

双输入(震动讯号 + 转速资讯)参数:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Interpolation Method | 选择时间轴校正内插法:
|
Linear |
如果只有一个输入,即无外部转速资讯,则本元件会自动启动自萃转速计算,嵌入【FIR】丶【Hilbert Transform】丶【Diff】丶【Fast Trend Estimator】等元件计算,其参数设定请见【Rotational Speed】章节以及各嵌入元件章节说明。
范例
将本章结尾参考资料连结下载之 rotational.zip 档解压缩後其中转动机械加速规讯号 g.vsb 以及对应之转速资讯档 rotspeed.vsb 汇入,并接上本元件,以及个别对应之【Channel Viewer】,如下:


可以看到转速在 0 ~ 30000 RPM 之间变动。本元件校正後之震动讯号如下:

将原始震动讯号以及校正後之讯号都接上【FastSTFT】以及【TF Viewer】,如下图所示:

可以很明显看出两者的差别:

校正後的震动讯号因为解决了散频问题,在时频图中可以看到更多动态的细节。
相关指令
Rotational Speed丶Channel Viewer丶FastSTFT丶TF Viewer
参考资料
转动机械之加速规以及转速讯号范例:http://www.ancad.com.tw/VisualSignal/examples/rotational.zip
4.8.15 Sound Anomaly Index
*Only in Sound and Vibration Module*
Sound Anomaly Index(异常声音指数 SAI)是一个判断声音讯号中是否出现异常的指数。
理论
假设有一声音讯号及其 FFT 频谱如下,(可由本章结尾参考资料连结中取得):

用【FastSTFT】取其时频图(Freq Count 设为 240,Time Count 设为 6704, WindowSize 设为 1280),如下图:

由此复数时频资讯 \(X_{t,f}\) 之能量累加可估算出讯号总能量 \(E_{T}\):
\[E_{T} = \sum_t{\sum_f{|X_{t,f}|^2}} / m\]
其中 \(m\) 为时频资讯之时域资料长度,\(|X_{t,f}|^2\) 为时频复数值之能量:
\[|X_{t,f}|^2 = \mathcal{Re}\{X_{t,f}\}^2 + \mathcal{Im}\{X_{t,f}\}^2\]
从以上讯号可以看出有规律性的异音,但是其频谱及时频图中夹杂其他频率,并无法分辨出哪个频率是属於异常声音。不过,我们知道取其二次频谱(请参考【Secogram】章节说明)可以抓出时频资料中每个频率段中发生有规律性讯号的频率分布,如果每个频段都发生同样的分布,也就是说有一个或多个跨频谱的有规律性的讯号,我们可以将之定义为异常讯号,将其能量做纵向累加(请参考【Marginal Time】章节说明)便可以放大这个异常讯号,同时其他正常讯号的频率在累加的过程中则其比例相对缩小。
如上述,我们利用 Secogram 可得出二次频谱 \(\mathcal{Sec}_{f', f}\) ,可看到二次频谱之异常峰值,如下图:

再用 Marginal Time 将二次频谱之能量做纵向累加(MarginalMethod 设为 PowerSpectrum),可得将异常峰值比例放大的频谱 \(\mathcal{MT}\):
\[\mathcal{MT}_{f'} = \sum_f{|\mathcal{Sec}_{f',f}|^2}\]
得出如下图:

将此频谱累加可以得到异常值放大的能量 \(E_{SAI}\):
\[E_{SAI} = \sum_{f'}{\mathcal{MT}_{f'}}\]
并计算出相对於上面时频资讯估算出之总能量之百分比,可得出第一个指数 \(\mathcal{SAI}\):
\[\mathcal{SAI} = \frac{E_{SAI}}{E_T} \times 100\]
此时我们可以设一异常峰值之阈值(观察二次频谱图可以设大约为 \(10^{-5}\)),利用【ReplaceValue】(Condition Expression 设为 y>1E-5,Replace Value Type 设为 Null)及【FillNull】(FillMethod设为预设之 Linear),移除 Marginal Time 之异常峰值:
\[\mathcal{MT'}_{f'} = \mathcal{FillNull}(\mathcal{ReplaceValue}(\mathcal{MT}_{f'}))\]
得出如下图:

将此频谱累加可以得到移除异常峰值的能量 \(E_{ugly}\):
\[E_{ugly} = \sum_{f'}{\mathcal{MT'}_{f'}}\]
并计算出相对於上面时频资讯估算出之总能量之百分比,可得出第二个指数 \(\mathcal{SAI}_{ugly}\):
\[\mathcal{SAI}_{ugly} = \frac{E_{ugly}}{E_T} \times 100\]
最後,将两个能量相减可得异常峰值之能量,并得出第三个指数 \(\mathcal{SAI}_{intermittent}\):
\[\mathcal{SAI}_{intermittent} = \frac{E_{SAI} - E_{ugly}}{E_T} \times 100\]
以上演算可以写成以下 DoMatlab 程式,并依序输入下列资料:

| Input | Data |
|---|---|
| Input 1 | \(X_{t,f}\) |
| Input 2 | \(\mathcal{MT}_{f'}\) |
| Input 2 | \(\mathcal{MT'}_{f'}\) |
用【DataViewer】观看可以看到计算出之三个指数:

以上运算可以用一个元件连结图总结:

本元件将以上运算整合为一个元件,接受一声音或震动讯号并输出三个指数。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)丶Regular 的讯号(Signal)及声音讯号(Audio)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FillMethod | 替换异常值方法,见【FillNull】元件说明 | Linear |
| Spike Threshold | 上述理论中中判断为异常峰值的阈值,即【ReplaceValue】中 Condition Expression y>\(V_{th}\) 之 \(V_{th}\) 值。 |
1E-5 |
依照上文理论中提到的的 STFT 及 Marginal Time 步骤,本元件还嵌入了【FastSTFT】丶【Secogram】丶【Marginal Time】丶【ReplaceValue】丶【FillNull】等元件,其参数设定请参阅各元件章节说明。Secogram 之参数皆固定为预设值,因此未开放给使用者设定。
范例
将以下参考资料连结下载之 sai_input.vsb 汇入,并接上本元件,如下:

参数设定如下:

结果可由【DataViewer】观看,跟上面理论章节中范例得出相同的数值:

相关指令
FastSTFT丶Secogram丶Marginal Time丶 Channel Viewer丶 TFA Viewer
参考资料
范例声音讯号:http://www.ancad.com.tw/VisualSignal/examples/sai_input.zip
4.8.16 ISORMS
*Only in Sound and Vibration Module*
有别於【RMS】元件,ISORMS 是用 ISO-10816/20816 规范(见本章结尾参考资料)计算加速度讯号之震动速度RMS 值。
理论
假设有一长度为 \(n\) 之震动加速度讯号 \(A = \{a_0, a_1, \dots, a_{n-1} \}\),其频谱之震幅可由 FFT 计算为:
\[F_A = \{a_{f_0}, a_{f_1}, \dots, a_{f_{m-1}}\}\]
其中 \(a_f\) 为 各频率之复数震幅 \(z_f\) 之绝对值:
\[a_f = |z_f| = \sqrt{\mathcal{Re}\{z_f\}^2 + \mathcal{Im}\{z_f\}^2}\]
而 \(F = \{f_0, f_1, \dots, f_{m-1}\}\) 则为其对应之频率,\(m\) 为频谱长度。
依照 ISO-10816/20816-1 规范,震动速度的 RMS 值可以由以下算式计算:
\[v_{rms} = \frac{10^3}{2 \pi} \sqrt{ \left(\frac{a_0}{f_0}\right)^2 + \left(\frac{a_1}{f_1}\right)^2 + \dots + \left(\frac{a_{m-1}}{f_{m-1}}\right)^2 }\]
本元件利用滚动窗(请见【Rolling Window】章节说明)计算每个滚动窗的 \(v_{rms}\) 值:
\[V_{rms} = \{v_{rms}^0, v_{rms}^1, \dots, v_{rms}^{N-1}\}\]
其中 \(N\) 为滚动窗数目,此处 \(n\) 则为每段滚动窗的长度。
参数设定
本模组接受实数(Real Number),单(Single Channel)丶多通道 (Multi-Channel), Regular 的讯号(Signal)及声音讯号(Audio)输入。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartPosition | 计算起始时间 | start (0) |
| EndPosition | 计算结束时间 | end (资料结束时间) |
| Type | 选择振动指标:
选择 Peak 为 RMS 值的 \(\sqrt{2}\) 倍;选择 Peak to Peak 则为 RMS 值 \(2 \sqrt{2}\) 倍。 |
RMS |
本元件还嵌入了 【Remove DC】 元件及 【Rolling Window】 计算,相关参数设定请参考各章节说明。
范例
利用一 Gausian Noise 模拟加速规讯号,接入本元件计算出震度速度的 RMS 滚动值,并用 Channel Viewer 观看,元件连接如下:

其中 Noise 参数设定如下:

本元件参数设定如下:

得出结果为(上图为 Gausian Noise 模拟之加速规讯号,下图为 ISORMS 元件计算出之震动速度 RMS 值):

欲与【RMS】元件比较,可以将原 Noise 做积分(将加速度转成速度)再接上 RMS,如下图:

其中 RMS 参数设定如下:

得出结果为(上图为积分後的 Noise,下图为 RMS 图):

可以看到 ISORMS 相较於 RMS 除了多了 ISO 规范的 \(\times 1000 / 2 \pi\) 之外,形状也略有不同,能显示较多细节。将 ISORMS 及 RMS 的 Overlap 设定增为 750 可以看到 ISORMS 显示更多细节:

相关指令
参考资料
ISO-10816/20816:https://www.iso.org/standard/75440.html
4.9 Statistics*
*This module is available in Professional only*
本模组群提供计算讯号各项统计值之工具,包含的模组如下:
Basic Statistics:计算讯号之基本统计参数,诸如最大值丶最小值丶平均丶标准差等。
Covariance Matrix:计算多笔讯号之共变异数矩阵。
Correlation Matrix:计算多笔讯号之相关系数矩阵。
Equiphase Statistics:计算输入讯号之等相位统计值。
Kernel Smoothing Density:利用特定之核函数(kernel function)计算出输入讯号之机率密度线,并将其平滑化。
Orthogonality Matrix:对多笔讯号计算出彼此之正交性矩阵。
Quartiles and Quantiles:可计算讯号之各种分位数与四分位数。
Rolling Statistics:计算讯号之滚动统计值。
Hypothesis Test:对资料及讯号进行设定假设丶选择检定方法丶判断是否接受假设。
Least Square Fitting:以最小平方法对讯号做回归曲线,从一组时间序列或两组时间序列中的找出最佳的相关曲线。
4.9.1 Basic Statistics*
*Only in Professional*
Basic statistics 是一项让使用者能快速检视输入数列之基本统计数据的工具。
说明
令\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表长度为 \(N\) 的数列(不限定为时间序列),\(T = \{t_0, t_1, \dots, t_{N-1}\}\) 为对应之座标值,Basic Statistics 将计算下列各项统计资讯。
| 统计值 | 数学式 | 说明 |
|---|---|---|
| Sum | \[\sum_{i=0}^{N-1} x_i\] | 资料中每个元素的总合 |
| Min | 资料中的最小值 | |
| Max | 资料中的最大值 | |
| Mean | \[\frac{1}{N} \sum_{i=0}^{N-1} x_i\] | 计算资料算数平均值 |
| Geometric Mean | \[\left(\prod_{i=0}^{N-1} x_i\right)^\frac{1}{N}, \quad x_i > 0, \; \textit{for all i}\] | 计算资料几何平均值,多用於计算比率丶人口成长等呈几何变化的数列 |
| Harmonic Mean | \[N \left(\sum_{i=0}^{N-1} \frac{1}{x_i}\right)^{-1}, \quad x_i > 0, \; \textit{for all i}\] | 计算调合平均数,多用於计算平均速率 |
| Trimmed Mean | 截头尾平均数,算法为先设定的滤除比例(%),将资料 X 排序後,头尾各滤除比列的部份的数列部份滤除,剩下的讯号值作算数平均,如此可排除数列中极端值所造成的影响 | |
| Median | 资料的中位数 | |
| MinIndex | \[i_{min}, x_{i_{min}} = x_{min}\] | 资料中最小值的索引值 |
| MaxIndex | \[i_{max}, x_{i_{max}} = x_{max}\] | 资料中最大值的索引值 |
| MinCoordinate | \[t_{i_{min}}, x_{i_{min}} = x_{min}\] | 资料中最小值的座标值 |
| MaxCoordinate | \[t_{i_{max}}, x_{i_{max}} = x_{max}\] | 资料中最大值的座标值 |
| MeanCoordinate | \[\bar{t} = \frac{\sum_{i=0}^{N-1} x_i t_i} {\sum_{i=0}^{N-1} x_i}\] | 平均座标值,即用每个座标的资料值为权重的平均值 |
| StdDev | \[\sigma = \left(\frac{1}{N}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\right)^{\frac{1}{2}}\] | 标准差,可推估母体资料距离平均值的离散程度,假设此资料为样本,无法利用样本去推估母体标准差(Biased Moment Estimation) |
| Variance | \[\sigma^2 = \frac{1}{N}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\] | 母体资料的变异数(标准差的平方),假设此资料为样本,无法利用样本去推估母体变异数(Biased Moment Estimation) |
| Variation Coefficient | \[\frac{\sigma}{\bar{x}} \times 100\%\] | 母体变异系数,表示标准差占平均值的百分比,用於比较多组资料个别间的离散程度(Biased Moment Estimation) |
| Skewness | \[g_1 = \frac{1}{N \cdot \sigma^3} \sum_{i=0}^{N-1} (x_i-\bar{x})^3\] | 母体偏度,用以推估资料分布图形的对称性,即第三中央惯性矩除以标准偏差的三次方(Biased Moment Estimation) |
| Kurtosis | \[g_2 = \frac{1}{\sigma^4} \sum_{i=0}^{N-1} (x_i-\bar{x})^4 - 3\] | 母体峰度,用来推估资料分布图形是高瘦或者是矮胖,即第四中央惯性矩除以标准偏差的四次方减 3 (Biased Moment Estimation) |
| Semi Variance | \[\frac{1}{N} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2, \quad b_i = \begin{cases} 1, & \; x_i < \bar{x}\\ 0, & \; x_i > \bar{x}\\ \end{cases}\] | 计算母体资料之半变异数,预设以数列平均值 \(\bar{x}\)为门槛值(Biased Moment Estimation) |
| Semi Standard Deviation | \[\sqrt{\frac{1}{N} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2}\] | 将母体资料之半变异数开根号即为资料之半标准偏差(Biased Moment Estimation)。 |
| StdDev (Unbiased) |
\[s = \left(\frac{1}{N-1}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\right)^{\frac{1}{2}}\] | 标准差,当此资料为样本,计算样本不偏估之标准差(Unbiased Moment Estimation),可以用来推估母体标准差。 |
| Variance (Unbiased) |
\[s^2 = \frac{1}{N-1}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\] | 当此资料为样本,计算样本不偏估之变异数(Unbiased Moment Estimation),可以用来推估母体变异数。 |
| Variation Coefficient | \[\frac{s}{\bar{x}} \times 100\%\] | 当此资料为样本,计算样本不偏估之变异系数(Unbiased Moment Estimation),可以用来推估母体变异系数。 |
| Skewness | \[G_1 = \frac{\sqrt{N(N-1)}}{N-1} \cdot g_i\] | 当此资料为样本,计算样本不偏估之偏度(Unbiased Moment Estimation),可以用来推估母体偏度。 |
| Kurtosis | \[G_2 = \frac{n(n+1) \cdot \sum_{i=0}^{N-1} (x_i-\bar{x})^4} {(n-1)(n-2)(n-3)s^4} - \frac{3(N-1)^2}{(N-2)(N-3)}\] | 当此资料为样本,计算样本不偏估之峰度 (Unbiased Moment Estimation),可以用来推估母体峰度。 |
| Semi Variance | \[\frac{1}{N-1} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2\] | 当此资料为样本,计算样本不偏估之样本半变异数(Unbiased Moment Estimation),可以用来推估母体之半变异数。 |
| Semi Standard Deviation | \[\sqrt{\frac{1}{N-1} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2}\] | 当此资料为样本,计算样本不偏估之样本半标准差(Unbiased Moment Estimation),可以用来推估母体半标准差。 |
参数设定(Properties)
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)输入,相关参数定义详列如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Stats Mode | 如果输入讯号为多通道,此参数将会被开启,选项为:
|
PerChannel |
| Stats Type | 选择统计计算种类:
|
All |
| View Statistics… | 在 Stats Mode = PerChannel 及 Stats Type = All 的情况,可开启 Reporter 视窗显示模组元件计算结果。也可双击元件图示开启 Reporter | |
| Unbiased Moment Estimation | 如果输入资料为样本(Sample),则选择 True(Unbiased Moment Estimation)进行统计量修正,进一步去推估母体(Population)的统计量。反之若资料为母体(Population),即可以设定 False(Biased Moment Estimation),计算母体统计量 | True |
| Trimmed Fraction | 截头尾平均的截去比例,以百分比表示 %。 | 0.05 |
| Trimmed at Ceiling | 当截去比例下之资料点位置为小数点时,选择取前一点(参数设为 False)或是後一点(参数设为 True)作为 Trimmed 的点数 | False |
| Start Position | 设定统计计算之资料范围起始点。可点击本栏右方之 开启资料范围圈选对话窗,请参考【Data Selection】章节说明 |
start |
| End Position | 设定统计计算之资料范围结束点。可点击本栏右方之 开启资料范围圈选对话窗,请参考【Data Selection】章节说明 |
end |
范例
计算白色杂讯与方波的基本统计分析:
於 Network 视窗下选择 Source / Noise 创造一个杂讯(预设为白色杂讯),後接上 Compute / Statistics / Basic Statistics 以上述预设参数计算,再点选 Basic Statistics 的Properties / View Statistics… (或双击元件图示)显示计算结果。


若是开启【Data Viewer】则可看见输出资料格式:

另新增一正弦波,用 Conversion / Merge to multi-channel 将此波与Noise 结合为 Multi-channel 讯号,先以 Viewer / Channel viewer绘制结果,再拉入 Stats,点选 Basic Statistics 的 Properties / View Statistics…,Basic Statistics 视窗即更新如下。

结果如下图:

设定 Reporter 工具列上的参数,使数值显示为Scientific,小数点位数调整为 5 位,最後记得按 Refresh 钮更新,其结果显示如下。

另外在一个新的专案中,Source / Noise 产生一个 White Noise,再将其接至 HHT / RCADA EEMD,将 RCADA EEMD 连接至 Compute / Statistics / Basic Statistics,然後 Properties / Stats Mode 选择 AcrossChannels,如下图:


若是开启【Data Viewer】则可看见输出资料格式:

【Data Viewer】一次只能显示 16 个通道,可在上方 Channel 栏位设定要浏览之通道,及用下方之滑杆看其他的统计值通道。若将 Stats Mode 设定为其他单一统计值,则只会输出一个通道。
相关指令
Equiphase Statistics丶Rolling Statistics丶Merge to Multi-Channel
参考
1. Michel Loeve, “Probability Theory”, Graduate Texts in Mathematics, Volume 45, 4th edition, Springer-Verlaf, 1977
2. Joanes, D. N.&Gill, C. A.(1998) Comparing measuresof sample skewness and kurtosis. Journal of the Royal Statistical Society (Series D): The Statistician 47 (1), 183-189.
4.9.2 Bayesian Inference*
*Only in Professional*
Bayesian Inference 是一项让使用者能用贝氏推论估算常态分布的工具。
说明
贝氏推论利用贝氏定理结合「事前机率」及新的证据,得到「事後机率」,且贝式推论可以迭代计算,将事後机率当成事前机率,配合更新的证据资料数据,即算出下一代的事後机率。贝氏定理定义如下:
\[P(H|E)=\frac{P(E|H) \cdot P(H)}{P(E)}\]
其中:
- \(H\) 为「假说」(hypothesis),假说可以有很多种,即 \(H_0, H_1, \dots, H_n\),所有假说皆为互斥,贝氏推论的目的即为找出在现有证据下机率最高的假说
- \(P(H)\) 为「事前机率」(prior probability),即在没有证据资料数据时该假说发生的机率
- \(E\) 为「证据」(evidence),对应实验或取样得到的新资料数据
- \(P(H|E)\) 为「事後机率」(posterior probability),即在证据成立的条件下该假说成立的机率
- \(P(E|H)\) 通常称之为「概似率」或「似然率」(likelihood),为该假说成立的条件下,证据成立的机率,换句话说,为实验或取样得到的证据资料数据与该假说匹配的可能性
- \(P(E)\) 通常称之为「边际概似率」(marginal likelihood),即所有可能的假说的机率之总和,即:\(P(E) = \sum_{i=0}^{n}{P(E|H_i) \cdot P(H_i)}\)
事前及事後机率可为机率分布,如果两者皆为同类分布时,事前及事後分布称之为「共轭分布」(conjugate distribution),而事前机率分布则称之为概似率函数的「共轭事前」(conjugate prior)。如果概似率函数为高斯函数(即正常分布),则可依照事前分布的参数(称之为超参数 hyperparameters)计算出事後分布参数。
假设有一组长度为 \(N\) 的资料 \(X = \{x_0, x_1, x_2, \dots, x_{N-1}\}\),其平均为:
\[\bar{x} = \frac{\sum_{i=0}^{N-1}{x_i}}{N}\]
而变异数为:
\[s^2 = \frac{\sum_{i=0}^{N-1}{(x_i - \bar{x})^2}}{N}\]
假设其 likelihood 为正常分布(normal distribution),分布之参数为平均(mean) \(\mu\) 及变异数(variance)\(\sigma^2\),则有以下三种可能:
Variance \(\sigma^2\) 已知,Mean \(\mu\) 未知:
假设共轭事前分布为正常分布,其超参数(hyperparameters)为 \(\mu_0\) 及 \(\sigma_0^2\),则事後分布也是正常分布,其超参数为:
\[\mu' = \sigma' \left(\frac{\mu_0}{\sigma_0^2} + \frac{N \bar{x}}{\sigma^2} \right)\]
\[\sigma' = \left(\frac{1}{\sigma_0^2} + \frac{N}{\sigma^2} \right)^{-1}\]
原正常分布之 Likelihood 的未知 Mean \(\mu\) 可以反推估为 \(\mu'\)。
Mean \(\mu\) 已知,Variance \(\sigma^2\) 未知:
假设共轭事前分布为 inverse-gamma 分布,其超参数为 \(\alpha\) 及 \(\beta\),则事後分布也是 inverse-gamma 分布,其超参数为:
\[\alpha' = \alpha + \frac{N}{2}\]
\[\beta' = \beta + \frac{N s^2}{2}\]
原正常分布之 Likelihood 的未知 Variance \(\sigma^2\) 可以反推估为 \(\frac{\beta'}{\alpha' + 1}\)。
Mean 及 Variance 皆未知:
假设共轭事前分布为 normal-inverse-gamma 分布,其超参数为 $_0, $lambda, \(\alpha\) 及 \(\beta\),则事後分布也是 normal-inverse-gamma 分布,其超参数为:
\[\mu' = \frac{\lambda \mu_0 + N \bar{x}}{\lambda'}\]
\[\lambda' = \lambda + N\]
\[\alpha' = \alpha + \frac{N}{2}\]
\[\beta' = \beta + \frac{N s^2}{2} + \frac{N \lambda}{\lambda'} \frac{(\bar{x} - \mu_0)^2}{2}\]
原正常分布之 Likelihood 的未知 Mean 及 Variance \((\mu, \sigma^2)\) 可以反推估为 \((\mu', \quad \frac{\beta'}{\alpha' + 1.5})\)。
参数设定(Properties)
本模组接受实数(Real Number)丶单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)或音讯(Audio)输入,相关参数定义详列如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Parameters | 选择未知之常态分布参数:
|
Variance |
| KnownMean | Parameters 选择 Variance 时,可设定已知常态分布平均值(Mean) | 0 |
| KnownVariance | Parameters 选择 Mean 时,可设定已知常态分布变异数(Variance) | 1 |
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Mu0 | Parameters 选择 Mean 或 MeanAndVariance 时,可设定贝氏先验常态或常态-逆伽玛分布之「超参数」:\(\mu_0\)(平均)。计算完後会更新为事後分布的参数。如输入为多通道,可设定每个通道的参数 | 0 |
| Sigma0Squared | Parameters 选择 Mean 时,可设定贝氏先验常态分布之「超参数」: \(\sigma_0^2\)(变异数)。计算完後会更新为事後分布的参数。如输入为多通道,可设定每个通道的参数 | 1 |
| Alpha | Parameters 选择 Variance 或 MeanAndVariance 时,可设定贝氏先验逆伽玛或常态-逆伽玛分布之「超参数」:\(\alpha\)。计算完後会更新为事後分布的参数。如输入为多通道,可设定每个通道的参数 | 1 |
| Beta | Parameters 选择 Variance 或 MeanAndVariance 时,可设定贝氏先验逆伽玛或常态-逆伽玛分布之「超参数」:\(\beta\)。计算完後会更新为事後分布的参数。如输入为多通道,可设定每个通道的参数 | 0 |
| Lambda | Parameters 选择 MeanAndVariance 时,可设定贝氏先验常态-逆伽玛分布之「超参数」:\(\lambda\)。计算完後会更新为事後分布的参数。如输入为多通道,可设定每个通道的参数 | 1 |
范例
计算白色杂讯与方波的基本统计分析:
於 Network 视窗下选择 Source / Noise 创造一个杂讯,类别设为 Gaussian ,参数设定如下:
Noise 参数设定值 参数名称 Noise 参数值 Noise2 参数值 Sigma 1 2 AmplitudeOffset 0 0 再将两个 Noise 元件接上 Conversion / MergeToMultiChannel,再接上 ChannelViewer 及 Compute / Statistics / Bayesian Inference 以上述预设参数计算,如下图:


点击 Bayesian 元件後开启【Data Viewer】则可看见输出资料格式:

可以看到在 Variance 模式下,使用预设之超参数(
Alpha = 1, Beta = 0)以及已知的 Likelihood 正常分布Mean = 0,第一次计算结果推估的未知 Variance 为 ~0.910 及 ~3.89。更新後的 Posterior 分布超参数如下图:
此时按下
图示,Noise 及 Noise2 元件会以同样参数更新,模拟由同 Likelihood 正常分布取样得到新的证据资料,此时 Bayesian 元件会使用先前更新後的超参数重新计算。每次按下
就会叠代更新,每次更新则可以在 DataViewer 里看到Variance 推估值趋近 Noise 及 Noise2 原始设定的 Sigma 平方值(1&4)。此时改变 Noise 及 Noise2 之 Gaussian 参数如下:
Noise 参数设定值 参数名称 Noise 参数值 Noise2 参数值 Sigma 1 1 AmplitudeOffset 1 2 并设定 Bayesian 元件参数更新如下:

点击 Bayesian 元件後开启【Data Viewer】则可看见输出资料格式:

可以看到在 Mean 模式下,使用预设之超参数(
Mu0 = 0, Sigma0Squared = 1)以及已知的 Likelihood 正常分布Variance = 1,第一次计算结果推估的未知 Mean 为 ~0.987 及 ~2.02。更新後的 Posterior 分布超参数如下图:
此时按下
图示,Noise 及 Noise2 元件会以同样参数更新,模拟由同 Likelihood 正常分布取样得到新的证据资料,此时 Bayesian 元件会使用先前更新後的超参数重新计算。每次按下
就会叠代更新,每次更新则可以在 DataViewer 里看到 Mean 推估值趋近 Noise 及 Noise2 原始设定的 AmplitudeOffset 值(1&2)。此时改变 Noise 及 Noise2 之 Gaussian 参数如下:
Noise 参数设定值 参数名称 Noise 参数值 Noise2 参数值 Sigma 2 3 AmplitudeOffset 3 5 并设定 Bayesian 元件参数更新如下:

点击 Bayesian 元件後开启【Data Viewer】则可看见输出资料格式:

可以看到在 MeanAndVariance 模式下,使用预设之超参数(
Mu0 = 0, Lambda = 1, Alpha = 1, Beta = 0),第一次计算结果推估的未知 Mean 为 ~3.00 及 ~5.10,未知 Variance 为 ~3.89 及 ~9.58。更新後的 Posterior 分布超参数如下图:
此时按下
图示,Noise 及 Noise2 元件会以同样参数更新,模拟由同 Likelihood 正常分布取样得到新的证据资料,此时 Bayesian 元件会使用先前更新後的超参数重新计算。每次按下
就会叠代更新,每次更新则可以在 DataViewer 里看到 Mean 及 Variance 推估值趋近 Noise 及 Noise2 原始设定的 AmplitudeOffset 值(3&5)及 Sigma 值(2&3)。
相关指令
Noise丶MergeToMulti丶 ChannelViewer丶Data Viewer
参考
https://en.wikipedia.org/wiki/Conjugate_prior
4.9.3 Covariance Matrix*
*Only in Professional*
共变异数是计算两组数列各自对其平均值的变化相关程度,若值为正,代表两数列呈正相关,值为负代表两数列呈负相关。倘若有多比数列资料互相比较,则可将各资料对应之共变异数组成一个共变异数矩阵。
说明
\(X = \{x_0, x_1, \dots, x_{N-1}\}\),\(Y = \{y_0, y_1, \dots, y_{N-1}\}\)为两组数列,则总量之共变异数(Covariance)计算如下:
\[cov_{xy}^{(b)} = \frac{1}{N} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]
其中\(\bar{x}\)丶\(\bar{y}\)分别为两数列的平均值。若考虑样本不偏估之估计量( Unbiased estimator),则方程式为
\[cov_{xy}^{(s)} = \frac{1}{N-1} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]
若有一组多通道(Multi-Channel)的数列,通道数为 M,则各通道间对应的总量/ 样本相关系数可表示为共变异数矩阵
\[[C_{lk}] = cov_{lk},\]
其中 \(l\),\(k\) 为数列通道编号。其中矩阵的对角项(Diagonal terms)就是该通道数列的变异数,即:
\[cov_{kk}^{(b)} = \frac{1}{N} \sum_{i=0}^{N-1} (x_i^{(k)}-\bar{x}^{(k)})(y_i^{(k)}-\bar{y}^{(k)})\]
\[cov_{kk}^{(s)} = \frac{1}{N-1} \sum_{i=0}^{N-1} (x_i^{(k)}-\bar{x}^{(k)})(y_i^{(k)}-\bar{y}^{(k)})\]
参数设定
本模组接受实数(Real Number),多通道(Multi-Channel),Regular 的讯号(Signal ) 输入。输出为一个 M * M 的方形矩阵,其中 M 为通道数,输出格式是 Indexed 的数值资料。

参数为 Unbiased Moment Estimation,可选择是否计算样本不偏估之共变异数矩阵,预设为 False。
点击 Properties / View Matrix… 栏位右侧的
即可开启 Reporter 视窗,或双击元件图示,即可看到计算结果(见下面范例)。Reporter 详细说明请看【Reporter】章节。
范例
以不同相位角与频率的正弦波为输入讯号计算其相关系数矩阵:
於 Network 视窗下按右键,选择 Source / Sine Wave 创造一个正弦波,此波预设频率为 10 Hz,接着再创造两个正弦波,一个波设定其 Properties / SignalFreq = 5Hz,另一个波设定其 Properties / Phase=180 度(单位为 Degree),最後使用 Conversion / Merge to Multi-Channel 将三个讯号结合成一个 Multi-Channel 的讯号。以上步骤将创造一个频率为 10 Hz 的正弦波,频率为 5 Hz 的正弦波以及相位角偏移 180 度的正弦波。以 Viewer / Channel Viewer 绘出结果,其中黑线代表 Sine,蓝线代表 Sine2,红线代表 Sine3。


Sine2 的参数设定如上图。

Sine3 的参数设定如上图。

在 ToMulti 後方接上 Compute / Statistics / Covariance Matrix,点选其 Properties / View Matrix…跳出计算结果。矩阵元素\(C_{ij}\)为各讯号对自己的共变异数,也就是各讯号的变异数约 0.499,\(C_{12}\)丶\(C_{21}\)是 Sine 与 Sine2 的比较,其值极小,表示两讯号无相关性,\(C_{23}\)丶\(C_{32}\)同样为极小值,同理 Sine 与 Sine2 也是无相关性;Sine 与 Sine3 为与 X 轴对称的两数列,其计算结果为 -0.499,代表两讯号为负相关。



再开一个新的专案,以 Source / Triangle Wave 产生一组三角波,再接上 Compute / HHT / RCADA EEMD 计算出三角波的 IMF,计算结果以 Channel Viewer 绘出。Viewer 的 Properties / Multi-channel Display 调为 List,Viewer Height 调为 350,可以看到共分出 9 个通道的讯号。


於 RCADA EEMD 後面再接上 Compute / Statistics / Covariance Matrix,计算各 IMF 之间的共变异数矩阵。


共变异数值的大小可衡量两数列值变化的程度,值为正代表两数列值相对於平均的变化趋势相同,为正的线性相关,值为负代表两数列值相对於平均的变化趋势相反,为负的线性相关。另外可注意到矩阵的对角项为各通道的变异数。
相关指令
Correlation Matrix丶Orthogonality Matrix丶Merge To Multi-Channel丶RCADA EEMD
参考
N.G. van Kampen, Stochastic processes in physics and chemistry. New York: North-Holland, 1981.
4.9.4 Correlation Matrix*
*Only in Professional*
相关系数(Correlation Coefficient)即是正规化的共变异数,可指出两组数列的相关程度,倘若有多笔数列相互交差比较,则可将各相关系数组成相关系数矩阵。
说明
令\(X = \{x_0, x_1, \dots, x_{N-1}\}\),\(Y = \{y_0, y_1, \dots, y_{N-1}\}\)为两组数列,则相关系数(Correlation Coefficient) 之计算如下:
\[\rho_{xy} = \frac{1}{N\sigma_x\sigma_y} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]
其中 \(\bar{x}\)丶\(\bar{y}\) 分别为两数列的平均值, \(\sigma_x\)丶\(\sigma_y\) 分别为两数列的标准偏差。若考虑样本不偏估之估计量(Unbiased Moment estimator),则方程式为
\[r_{xy} = \frac{1}{(N-1)s_x s_y} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]
其中\(r_{xy}\)为两样本数列的相关系数,\(s_x\)丶\(s_y\)分别为两数列的样本标准偏差。相关系数之定义可视为共变异数除以两数列之标准偏差。
若有一组多通道(multi-channel) 的数列,通道数为 M,则各通道间对应的总量 /样本相关系数可表示为相关系数矩阵
\[[R_{lk}] = r_{lk},\]
其中 \(l\),\(k\) 为通道代码。
参数设定
本模组接受实数(Real Number),多通道(Multi-Channel),Regular 的讯号(Signal ) 输入。输出为一个 \(M \times M\) 的方形矩阵,\(M\) 为 channel 数,输出格式是 Indexed 的数值资料。

参数为 Unbiased Moment Estimation,可选择是否计算样本不偏估之相关系数矩阵,预设为 False。
点击 Properties / View Matrix… 栏位右侧的
即可开启 Reporter 视窗,或双击元件图示,即可看到计算结果(见下面范例)。Reporter 详细说明请看【Reporter】章节。
范例
以不同相位角与频率的正弦波为输入讯号计算其相关系数矩阵结果:
於 Network 视窗下按右键,选择 Source / Sine Wave 创造一个正弦波,此波预设频率为 10Hz,接着再创造两个正弦波,一个波设定其 Properties / SignalFreq = 5Hz,另一个波设定其 Properties / Phase = 180 度(单位为 Degree),最後使用 Conversion / Merge to Multi-channel 将三个波结合成一个 Multi-Channel 的讯号。以上步骤将创造一个频率为 10Hz 的正弦波,频率为 5Hz 的正弦波以及相位角偏移 180 度的正弦波。以 Viewer / Channel Viewer 绘出结果,其中黑线代表 Sine,蓝线代表 Sine2,红线代表 Sine3。


Sine2 Properties

Sine3 Properties

在 ToMulti 後方接上 Compute / Statistics / Correlation Matrix,点选其 Properties / View Matrix…跳出计算结果。矩阵对角项\(R_{ij}\)为各讯号对自己的相关系数,因此为 1 完全相关,\(R_{12}\)丶\(R_{21}\)是 Sine 与 Sine2 的比较,其值约为\(7.91537 \times 10^{-14}\),表示两讯号无相关性,\(R_{32}\)丶\(R_{23}\) 同样为极小值,同理 Sine 与 Sine2 也是无相关性;Sine 与 Sine3 为与 x 轴对称的两数列,其计算结果为 -1,代表完全负相关。


再开一个新的专案,以 Source / Triangle Wave 产生一组三角波,再接上 Compute / HHT / RCADA EMD 计算出三角波的 IMF,计算结果以 Channel Viewer 绘出。Viewer 的 Properties / Multi-channel Display 调为 List,Viewer Height 调为 350,可以看到共分出 10 个通道的讯号。

结果如下图:

於 RCADA EMD 後面再接上出 Compute / Statistics / Correlation Matrix,这样可计算出各 IMF 之间的相关系数。


矩阵的对角项为各通道对自己的相关系数,所以等於 1;除了对角项之外,值最大的相关系数为 IMF_h5 与 IMF_h1,表示这两组讯号有较强的相关性,其馀大多数的相关系数值都小於正负0.1,代表其馀 IMF 彼此间的相关性很小。
相关指令
Covariance Matrix丶OrthogonalityMatrix丶Merge To Multi-Channel丶Channel Viewer 丶RCADA EMD
参考
Cohen, J., Cohen P., West, S.G.,&Aiken, L.S. (2003). Applied multiple regression/correlation analysis forthe behavioral sciences. (3rd ed.) Hillsdale, NJ: Lawrence Erlbaum Associmtes.
4.9.5 Equiphase Statistics*
*Only in Professional*
等相位统计值,为设定一段长度为 \(M\) 的周期,在此周期下计算每个同相位元素的统计值,譬如计算月均值,周均值等,此计算方式即为 Equiphase Statistics。
说明
\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 为一组个数为 \(N\) 的数列,而 Equiphase Statistics 所设定的周期大小为 \(M\),\(M < N\),则此数列可分作 \(K = Ceiling(N / M)\) 个小数列,\(Ceiling()\)表示小数点後无条件进位,令小数列为 \(P_j^k\),\(k\) 标示小数列编号,\(j\) 标示数列内之元素,则
\[P_j^k = \{x_{k\cdot M + j}\}, \\ 0 \leq j \leq {M-1}, 0 \leq k \leq {K-1}\]
如下图所示:

Equiphase Statistics 就是抽出每个 \(P_j^k\) 中相同相位的元素作为一组,计算其统计值,譬如equiphase mean 的计算如下。
\[EM_j = \frac{1}{K} \sum_{k=0}^{K-1} P_j^k, \\ 0 \leq j \leq {M-1}\]

须注意当 \(N / M\) 不整除时,最後一组小数列长度 \(M_{last} < M\),因此当相位元素\(j \leq M_{last}\) 时,计算之元素数量为\(K\),当元素 \(j > M_{last}\) 时,计算元素数量为 \(K-1\)。
Equiphase statistics 可计算多种统计值,其中大部份与 Basic statistics模组相同,此处不再赘述,算式请参照 Basic statistics 内容,其它部份,譬如First quartile丶 Third quartile 与 Quantile 的详细定义请参考 Quartiles and Quantiles 模组。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel ),Regular 的讯号(Signal)丶声音讯号(Audio)输入。参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Period | 设定周期,单位为时间。 | 输入讯号时间总长的百分之十 |
| Period Start | 设定起始点位置,单位为时间。 | 0 |
| TimeUnit | 时间单位。 | sec |
| Type | 设定要计算的统计量。 | Mean |
Type 选项定义如下,计算於窗内范围的统计量。
| 选项名称 | 选项定义 |
|---|---|
| Sum | 数列总合。 |
| Min | 数列中最小值。 |
| Max | 数列中最大值。 |
| Mean | 平均值。 |
| Geometric Mean | 几合平均数。 |
| Harmonic Mean | 调合平均数。 |
| Trimmed Mean | 截尾平均数。 |
| First quartile | 数列值四分位值。 |
| Median | 数列的中位数。 |
| Third quartile | 数列的四分之三位值。 |
| Quantile | 数列的分位数。 |
| StdDev | 数列的标准偏差。 |
| Variance | 数列的变异数。 |
| VarianceCoef | 变异系数。 |
| Skewness | 数列的偏度。 |
| Kurtosis | 数列的峰度。 |
| SemiVariance | 半变异数。 |
| SemiStdDev | 半标准偏差。 |
部分选项会再出现参数需要设定,Quantile 的参数请参阅 Quartiles and Quantiles 模组说明,其馀统计量的定义请参考模组Basic Statistics内容。
范例
以一组 Brownian Noise 为输入讯号,计算 Equiphase Statistics的各项统计值。
於 Network 按右键新增 Source / Noise,调整 Properties / Noise Type为 Brown,以 Viewer / ChannelViewer 绘出结果。



於 Noise後方接 Compute / Statistics / Equiphase Statistics,其统计值预设为 Mean,调整 Properties / Period 为0.1,让它以 0.1秒为周期,计算该周期下每个元素的平均值。最後以 Viewer / Channel Viewer 输出结果。



调整 Type 为 Third Quartile,则模组会计算周期下每个元素位置的四分之三位值。


相关指令
Basic Statistics丶Rolling Statistics丶Quartiles and Quantiles丶 Channel Viewer
参考
1. Michel Loeve, “Probability Theory”, Graduate Texts in Mathematics, Volume 45, 4th edition, Springer-Verlaf, 1977
2. Joanes, D. N.&Gill, C. A. (1998)Comparing measures on sample skewness and kurtosis. Journal of the Royal Statistical Society (Series D): The Statistician 47 (1), 183-189.
4.9.6 Kernel Smooth Density*
*Only in Professional*
Kernel smoothing density estimation 是以非参数化(non-parametric)的方法计算出数列的机率密度函数(probability density function)。
说明
设数列为\(X = \{x_0, x_1, \dots, x_{N-1}\}\),则数列的 kernel density estimation 为:
\[\hat{f}_h(x) = \frac{1}{N h} \sum_{i=0}^{N-1} K(\frac{x-x_i}{h})\]
其中 \(h\) 是控制平滑程度的参数,即平滑窗(smoothing window)的长度,\(K\)是核函数 (kernel function)。此方法是将离散分布之每个点代入核函数中,再叠加每个点的核函数计算结果,以达到平滑之目地。在概念上与作统计直方图类似。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel ),Regular 的讯号(Signal)输入;输出讯号格式为实数,多通道,Regular 的讯号。
参数定义整理如下表。须注意 KS Density输出的讯号格式,一组输入讯号会产生一组两个通道的输出讯号,第一个通道为 X轴资料,以资料的极大及极小为上下界限,第二个通道为 Y轴资料,为数列数值相对应之机率密度值。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Type | 核函数的种类,内建函数包括Uniform丶Triangle丶Epanechnikov丶Quartic丶Triweight丶Gaussian丶Cosine,其定义整理至下一个表格中。 | Gaussian |
| No. of Points | 输出讯号之离散点数。 | 100 |
| Width | 平滑窗之宽度, 即 \(h\),为控制平滑程度的常数,预设值 Auto 是假设标准常态分布下计算最佳的宽度。 | Auto |
下表整理常见核函数之定义。
| 核函数名称 | 定义 |
|---|---|
| Uniform | \[K(u) = \begin{cases} \frac{1}{2}, & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\] |
| Triangle | \[K(u) = \begin{cases} 1 - \mid u \mid, & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\] |
| Epanechnikov | \[K(u) = \begin{cases} \frac{3}{4}(1-u^2), & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\] |
| Quartic | \[K(u) = \begin{cases} \frac{15}{16}(1-u^2)^2, & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\] |
| Triweight | \[K(u) = \begin{cases} \frac{35}{32}(1-u^2)^3, & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\] |
| Gaussian | \[K(u) = \begin{cases} \frac{1}{\sqrt{2 \pi}} \mathrm{e}^{-\frac{1}{2}u^2}, & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\] |
| Cosine | \[K(u) = \begin{cases} \frac{\pi}{4}\cos(\frac{\pi}{2}u), & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\] |
范例
建立一个 Source / Noise,调整其 Properties / Noise Type 为Gaussian,Time Length 设为 10 秒,再接上 Kernel Smooth Density,连结上 XY Plot。


另一方面将 Noise 直接以 Viewer / Histogram Viewer 绘出,将 Histogram的 Properties / BinCount 调整为 50,Percentage 调为True,则可画出下面的直方图。



这两张图的基本概念是相同的,kernel smooth density 是以 kernel function 将数值出现的机率转为连续的密度函数表示,而 histogram是以值区间计算每个区间内数值发生的机率;且本模组所计算的密度函数其 X轴以上的面积为 1,而 histogram 的 Y 轴直接是发生次数。
将 KSDensity 的 Properties / Width 调大一点,调整到1.2,可看到结果更为平顺。


相关指令
Histogram丶Noise丶XY Plot
参考
T. Hastie, R. Tibshirani and J. Friedman, The Elements of Stbtistical Learning, Chapter 6, Springer, 2001.
4.9.7 Mean Frequency*
*Only in Professional*
Mean Frequency 是一项能让使用者计算滚动平均频率的工具。
说明
假设有一组长度为 \(N\) 的讯号资料 \(X = \{x_0, x_1, x_2, \dots, x_{N-1}\}\),资料点之间的时间间隔为 \(\Delta_t = 1 / f_s\)(\(f_s\) 为取样率),取一从第 \(j\) 点开始长度为 \(M\) 的滚动窗:
\[X_j = \{x_j, x_{j+1}, x_{j+2}, \dots, x_{j + M - 1}\}\] \[0 \le j < N - W\]
可先取滚动窗之傅立叶转换:
\[Y_k^j = FFT(X_j) = \{y_0^j, y_1^j, y_2^j, \dots, y_{M / 2}^j\}\]
对应之频率轴为(每个滚动窗的频率轴都相同):
\[F_k = \{f_0, f_1, f_2, \dots, f_{M / 2}\}\] \[f_0 = 0\] \[f_{M / 2} = \frac{f_s}{2}\]
再用加权平均法算出该滚动窗之平均频率:
\[\bar{f}_j = \frac{\sum_{k = 0}^{M / 2}{y_k^j f_k}}{\sum_{k = 0}^{M / 2}{y_k^j}}\]
假设滚动窗向右移动一点计算一次,会得到一个平均频率的系列:
\[\bar{F} = \{\bar{f}_0, \bar{f}_1, \bar{f}_2, \dots, \bar{f}_{N - M - 1}\}\]
参数设定(Properties)
本模组接受实数(Real Number)丶单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)或音讯(Audio)输入,相关参数定义详列如下表。

本元件本身没有其他参数,但内嵌了滚动窗计算及 FFT 元件,可参考【Fourier Transform】及【滚动窗计算】章节说明。FFT 元件自身也内嵌了【RemoveDC】及【Windowing Function】,请参考各章节说明。
范例
计算白色杂讯与方波的基本统计分析:
於 Network 视窗下选择 Source / Advanced / Jaehne 创造一个 Chirp 讯号,後接上 Compute / Statistics / Mean Frequency 以上述预设参数计算,同时也接上Compute / Transform / Hilbert Transform (OutputType 设为 InstantFrequency)以比较 Hilbert Transform 的瞬时频率功能。所有元件再接上 ChannelViewer,如下图。

Jaehne/Chirp 讯号如下:

Mean Frequency 输出如下:

Hilbert Transform 瞬时频率输出如下:

可以看见相较於 Hilbert Transform 顺时频率在讯号起始及结束两端有震荡的现象, Mean Frequency 利用滚动窗计算 FFT 平均的做法可以显示更平滑的即时频率。
相关指令
Jaehne丶Hilbert Transform丶 Channel Viewer
4.9.8 Orthogonality Matrix*
*Only in Professional*
正交性矩阵是计算数列间的正规化的内积 (Dot Product),若两讯号正交,则其值为零,可以用在 EMD 计算的 IMF 上,判断各 IMF 彼此间是否正交。
说明
令\(X = \{x_0, x_1, \dots, x_{N-1}\}\),\(Y = \{y_0, y_1, \dots, y_{N-1}\}\)为两组数列,则其正交性定义为两数列的内积,计算如下:
\[orth_{xy} = \frac{X \cdot Y}{\|X\| \|Y\|} = \frac{\sum_{i=0}^{N-1} x_i y_i}{\sqrt{\sum_{i=0}^{N-1} x_i^2 \sum_{i=0}^{N-1} y_i^2}}\]
若有 \(M\) 组数列,与其对应的正交性矩阵表示如下:
\[[O_{lk}] = orth_{lk}\]
其中 \(l\),\(k\) 为通道编号。
参数设定
本模组接受实数(Real Number),多通道(Multi-Channel),Regular 的讯号(Signal ) 输入。输出为一个 \(M \times M\) 的方形矩阵,\(M\)为输入讯号的通道数,输出格式是 Indexed 的数值资料。於 Properties/View Matrix…即可用 Reporter 视窗看到计算结果。

点击 Properties / View Matrix… 栏位右侧的
即可开启 Reporter 视窗,或双击元件图示,即可看到计算结果(见下面范例)。Reporter 详细说明请看【Reporter】章节。
范例
以不同相位角与频率的正弦波为输入讯号计算,正交性矩阵:
於 Network 视窗下按右键,选择 Source / Sine Wave 创造一个正弦波,此波预设频率为 10 Hz,接着再创造两个正弦波,一个波设定其 Properties / SignalFreq = 5Hz,另一个波设定其 Properties / Phase =180 度(单位为 Degree),最後使用 Conversion / Merge to Multi-channel 将三个波结合成一个 Multi-Channel 的讯号。以上步骤将创造一个频率为 10Hz 的正弦波,频率为 5Hz 的正弦波以及相位角偏移 180 度的正弦波。以 Viewer/ Channel Viewer 绘出结果,其中黑线代表 Sine,蓝线代表 Sine2,红线代表 Sine3。


Sine2 Properties

Sine3 Properties

在 ToMulti 後方接上 Compute / Statistics / Orthogonality Matrix,点选其 Properties / View Matrix…跳出计算结果。矩阵对角项 \(O_{ij}\) 为各讯号对自己的正交性,也就是讯号对自己作内积,其值为 1;\(O_{12}\)丶\(O_{21}\) 是 Sine 与 Sine2 的比较,其值极小,表示两讯号相互正交,\(O_{32}\)丶\(O_{23}\) 同样为极小值,同理 Sine 与 Sine2 也是相互正交;Sine 与 Sine3 为对 X 轴对称的两数列,因此其计算结果为 -1。



相关指令
Covariance Matrix丶Correlation Matrix丶Merge To Multi-Channel丶Channel Viewer
参考
Probability, Random Variables and Stochastic Processes. McGraw-Hill, 211.
4.9.9 Quartiles and Quantiles*
*Only in Professional*
四分位数与分位数。分位数为一数列经排序後,其分布位置占总量某个百分比的数值,而四分位数是在总量 25%丶50%丶75% 的位置的数值。
说明
令\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 为一组个数为 \(N\) 的数列,则四分位数可表示为
\[P(X \leq x_q) \leq p = \frac{1}{4}\]
若以较明确的说法,一数列的四分位数是其累积分布函数等於 25% 的数值,位置\(q\) 在 \(N \times 0.25 - 1\) 处,中位数与四分之三位数也是相同的概念。分位数 Quantile 则是更一般化的分位数,以百分比为标准,如 17 位数(17th quantile) 代表在数列中累积分布函数等於 17% 的数值。
若估计分位数时,该分位位置在两点之间 (即 \(q = N \times p - 1\) 不为整数),则需要推估该分位的位置,估计方法众多,本元件整理五种较常用的计算式供使用者选择。
| 内插方法 | 定义 | 说明 |
|---|---|---|
| Linear | \(x_q = x_i + (q-i)(x_{i+1}-x_i)\) 其中 \(i\) 代表 \(q\) 的整数部分 |
分位位置的前一点与下一点的数值作线性内插计算分位数。 |
| Next | \(\begin{cases} x_{floor(q)}, & \quad r=0\\ x_{floor(q+1)}, & \quad r>0\\ \end{cases}\) | 以分位位置下一点的数值当作分位数。 |
| Average | \(x_q = \frac{1}{2}(x_{i+1}+x_i)\) | 分位位置的前一点与下一点的数值取平均作为该分位数。 |
| Weighted Average | \(x_q = x_{i+1}+g(x_{i+2}-x_{i+1})\) 其中 \(i\) 是 \((N-1) \times p\) 的整数部份, \(g\) 是小数部份。 |
分位位置的前一点加上前後两点之差的加权值,此方法被 Microsoft Office Excel 所采用。 |
| Nearest | \(\begin{cases} x_i, & \quad g<0.5\\ x_{i+1}, & \quad g \geq 0.5\\ \end{cases}\) 其中 \(i\) 是 \((N-1) \times p\) 的整数部份, \(g\) 是小数部份。 |
离分位位置最近的位置作分位数。 |
参数设定

本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)输入。
参数设定介面如下图,本模组预设就计算数列的四分位数丶中位数丶四分之三位数等 Quartiles 值,另外可在参数 Quantile Fractions 下设定希望计算的 Quantiles 值。
点击 Properties / View Matrix… 栏位右侧的
即可开启 Reporter 视窗,或双击元件图示,即可看到计算结果(见下面范例)。Reporter 详细说明请看【Reporter】章节。
参数 Quantile Method 则可选择 Quantile 的估计方法。下面就各参数内容分项说明。

上图 Reporter 视窗,每一笔讯号的计算结果以 Column 为单位呈现,第一个 Column 显示 Quartile 与 Quantile 名称,第二 Column 之後每个 Column 都对应至输入讯号每个 Channel,前三 Rows 计算三个四分位值,後面的 Rows 计算 Quartiles,使用者利用参数 Quartile Fractions 来设定。下面将介绍参数 Quantile Fractions。
Quantile Fractions 有两种方式可以设定分位数。第一种方法是直接在栏位里更改数据,譬如在 0.1 与 0.25 之间键入「0.2,」(如下图),就可以新增分位数。

第二种方法是按下 Quantile Fractions 右方
钮,跳出分位数编辑视窗 (如下图),如果一次需要新增或移除很多个分位数,可以采取此作法。左边为设定的 Quantile Member,使用者可以用下面的 Add / Remove 按钮新增/移除计算项目,另外可以在右边视窗编辑每个 Member 要计算的 Quantile 的比例,如 0.01 代表 1% Quantile,编辑完成後,按下 OK 钮即完成设定。设定後这些 Quantiles 的计算结果会显示在成 View Quartiles and Quantiles…视窗中。

Quantile Method 内有五种方法,分别为 linear丶next丶mean丶weighted mean丶nearest ,其估计原理在理论中都有详述。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| View Quartiles and Quantiles | 显示计算的 Quartiles 和 Quantiles 结果。 | |
| Quantile Method | 选择内插方法(见上述说明):
|
Linear |
| Quantile Fractions | 可设定多个 Quantile 的百分比。 | 0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99 |
范例
以一组 Brownian Noise 为输入讯号,计算 Quartiles 与 Quantiles。
於 Network 按右键新增 Source / Noise,调整 Properties / Noise Type 为 Brown,以 Viewer / Channel Viewer 绘出结果。


结果如下图:

於 Noise 後方接 Compute / Statistics / Quartiles and Quantiles 计算各项分位数值,打开 Reporter 检视结果。



点选 Properties / Quantile Fractions 来编辑不同的分位值,按下编辑介面的 Add 按钮(如下图),会在 Members 处新增一个值为 0 的 member。

接下来,於编辑介面的右边可设定分位数的百分比,譬如说设定为 0.17,完成後按下 OK 钮。

再次打开 Reporter,可以看到已经新增了一个 17th Quantile。

相关指令
Basic Statistics丶Rolling Statistics丶Channel Viewer
4.9.10 Rolling Statistics*
*Only in Professional*
滚动统计值,为设定一段元素数量为 \(M\) 的窗,统计函数计算窗内部份的统计值,譬如平均值,并且移动此窗以计算出的新的数列,此计算方式即为Rolling statistics。
说明
令\(X = \{x_0, x_i, \dots, x_{N-1}\}\) 为一组个数为 \(N\) 的数列,而 Rolling statistics 所设定的窗 \(W_j\) 长度为 \(M\),\(M < N\),则此窗内的元素可表示为\(W_j = \{x_j, x_{j+1}, \dots, x_{j+M-1}\}\),其中 \(0 < j < {N-M}\),Rolling statistics 就是计算此窗内的统计值,譬如 Rolling mean
\[\mu_i = \frac{1}{M} \sum_{j=i}^{i+M-1} x_j, 0 \leq p < M\]
另外定义一个 overlap 值 \(p\),\(p\) 代表计算下一段窗时,有多少窗内的元素是与前一段重叠的。以 Rolling means为例,设定窗大小 \(M = 10\),则输出值第一点
\[\mu_0 = \frac{1}{10} \sum_{j=0}^9 x_j\]
即下图

范围是讯号位置 0 至 9 ,如上图所示,若 \(p = 9\),则计算下一段窗的范围是在讯号位置 1至 10处,即
\[\mu_0 = \frac{1}{10} \sum_{j=1}^{10} x_j\]

两段相比有 9 个位置重叠。倘若 \(p = 7\),则
\[\mu_0 = \frac{1}{10} \sum_{j=3}^{12} x_j\]

与前段相比有 7 个讯号位置重叠,以此类推,输出数列的长度为
\[K = \frac{N-p}{M-p}\]
须注意当 \(m - p < 1\) 时,输出数列的长度 \(K\)可能无法整除的状况,而处理方式为舍去馀数,仅保留完整的窗所计算的结果,因此
\[K = floor(\frac{N-p}{M-p})\]
Rolling statistics 可计算某种统计值,项目与 Basic statistics模组相同,此处不再赘述。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道 (Single Channel) 或多通道(Multi-Channel),Regular 的讯号(Signal)输入。参数定义如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Type | 可选择想要计算的统计值,详细清单请见上图,各统计量定义请参考【Basic Statistics】说明。 | Mean |
部分统计量选项会再出现参数需要设定,如下图:

详情以及各统计量的定义请参考【Basic Statistics】章节说明,Quantile 的参数请参阅【Quartiles and Quantiles】章节说明,有关 Rolling 计算的参数设定可参考【滚动窗计算】章节说明。
范例
以一组 Brownian Noise 为输入讯号,计算 Rolling statistics 的各项统计值。
於 Network 按右键新增 Source / Noise,调整 Properties / Noise Type 为 Brown,以 Viewer / Channel Viewer 绘出结果。接着於 Noise 後方接 Compute / Statistics / Rolling Statistics,其统计值预设为Mean,window 预设为 100, Overlap 为 0。以Channel Viewer 输出结果。


Rolling Statistics 结果为:

调整 Overlap 大小为 99 ,算出的结果如下图所示;

相关指令
Basic Statistics丶Equiphase Statistics丶Quartiles and Quantiles丶Merge To Multi-Channel丶Channel Viewer
4.9.11 Hypothesis Test*
*Only in Professional*
先针对母体做出一个适当暂时性假设,再依据随机样本统计量的抽样分配,定义出一个拒绝假设的标准,如果样本统计量计算後落在拒绝区,则推翻原先建立之暂时性假设,否则必须接受暂时性假设。
理论
实验所得到数据包含机会误差丶真实误差以及其他影响,利用假设检定来解决这类问题。一般而言包含三个步骤,设定假设丶选择检定方法丶判断是否接受假设。
虚无假设(Null Hypothesis):实验数据间的差异属於机会误差。
对例假设(Alternative Hypothesis):实验数据间的差异属於真实误差。
Z-test:
Z-test 中为输入讯号的平均(样本平均),为假设母体平均,为母体标准差,
n 为输入讯号数量(样本数量)。
T-test:
T-test 中为输入讯号的平均(样本平均),为假设母体平均,为样本标准差,n 为输入讯号数量(样本数量)。
实验过程中,进行重复相当多次的实验,实验结果的平均将会呈现常态分布(如下图),若要检验某次实验结果是否拥有机会误差,可以利用 Z-test丶T-test,计算出此次实验平均结果座落常态分布何处。研究者假设一个拒绝虚无假设范围,(以占常态分布面积的比例,又称Significant Level),再依照检定方法 Null(双尾)丶RightTail (右尾) 和LeftTail(左尾)( 如下图),判断实验平均结果是否落入拒绝范围。



Var-Test(Chi-square variance test):
Var-test 中为样本变异数,为母体变异数, n 为输入讯号数量(样本数量)。
Runs-Test(Runs test of Randomness, Geary test):
在 Runs-Test中,为样本中大於样本平均值的数量,为样本中小於样本平均值的数量, R为由 a , b 的交替出现次数,列如 aaabbaaba,则 R=5。
参数设定
Hypothesis Test 目前有四种 One-sample检定方法,下面将个别介绍四种检定方法的参数设定,各参数定义与预设值如下:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| View Test Results | 利用 Hypothesis Test 检视计算结果。 | 无 |
| TestType | z_Test丶t_Test丶var_Test丶runs_Test。 | z_Test |
如果按下 View Test Result 将会出现检定结果,显示结果如下表。
| 参数名称 | 参数定义 |
|---|---|
| Rejected | 显示检定结果落入拒绝范围,若显示 True,表示可以反对虚无假设,反之则只能接受假设。 |
| SignificanceLevel | 显示输入资料平均值落在母体分布何处。 |
| CI-Low | 虚无假设的范围的最小值,也是信赖区间的最小值。 |
| CI-High | 虚无假设的范围的最大值,也是信赖区间的最大值。 |
| Run Count | 参考理论(Theory),此值显示即为 Runs-Test 的 R。 |
| Above Threshold | 资料中大於设定门槛的数量。 |
| Below Threshold | 资料中小於设定门槛的数量。 |
| z-Value | 此结果只出现在 Runs-Test 中,表示计算出的 Z 值。 |
Z-Test

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Mean | 设定母体的平均值。 | 0 |
| Sigma | 设定母体的标准差。 | 1 |
| SignificanceLevel | 设定拒绝虚无假设的范围,占常态分布面积的比例。一般常见设定为 0.1丶0.05 或 0.01,设定越小,要拒绝虚无假设就越严苛。 | 0.05 |
| Hypothesis | 设定检定方法为:
|
Null |
T-Test

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Mean | 设定母体的平均值。 | 0 |
| SignificanceLevel | 设定拒绝虚无假设的范围,占常态分布面积的比例,一般常见设定为 0.1丶0.05 或 0.01,设定越小,要拒绝虚无假设就越严苛。 | 0.05 |
| Hypothesis | 设定检定方法为:
|
Null |
Var-Test

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Variance | 设定母体的变异数。 | 0 |
| SignificanceLevel | 设定拒绝虚无假设的范围,占常态分布面积的比例,一般常见设定为 0.1丶0.05 或 0.01,设定越小,要拒绝虚无假设就越严苛。 | 0.05 |
| Hypothesis | 设定检定方法为:
|
Null |
Runs-Test

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| RunsMethod | AboveBelow,UpDown。 | AboveBelow |
| IsExact | 计算 P-Value 是否用正确的演算法,此参数只存在 RunsMethod = AboveBelow。 | True |
| RunThreshold | 设定门槛,决定资料是否大於小於门槛,如果为(Auto),则是输入资料的平均值。 | (Auto) |
| SignificanceLevel | 设定拒绝虚无假设的范围,占常态分布面积的比例,一般常见设定为 0.1丶0.05 或 0.01,设定越小,要拒绝虚无假设就越严苛。 | 0.05 |
| Hypothesis | 设定检定方法为:
|
Null |
范例
本范例将举出几个范例,解释各种检定方法的使用。
范例一
假设一个秤重仪器,仪器释格指出无载重时,平均重量为 0.0,标准差为0.03,每次做实验之前,需要经校正,利用无秤重时,读取其显示重量值,假设读取1001次资料,利用这些资料判断其仪器是否有偏差,首先虚无假设为仪器无偏差,进行z-test 检定。
首先以 Source / Square Wave 产生一组量测磅秤的资料,Amplitude 设定为0.1,再连接至 Compute / Statistics / BasicStatistics,在 Basic Statistics 按下 View Statistics,观察 Mean。




将 Square 接至 Hypothesis Test,设定 TestType = z_Test,Sigma = 0.03,然後再以 View Test Results,观察其检定的结果,资料计算出的SignificanceLevel大於预设值,虚无假设无法被拒绝,所以只能相信虚无假设,仪器并无偏差产生。



若再设定 Hypothesis Test 中 SignificanceLevel 为0.1,将拒绝虚无假设的范围加大,然後再以 View Test Results,观察其检定的结果,资料计算出的 SignificanceLevel小於设定值,虚无假设被拒绝,所以否定虚无假设,故仪器有偏差产生,需重新加以校正。


范例二
假设一个班级有 51人,因为班上导师请假,想了解班上总成绩是否因故下滑,而全校成绩平均55 分,假设虚无假设为班上成绩并无因为老师请假而下滑,进行 t-Test。
首先以 Source / Noise 产生一组学生的成绩,SamplingFreq 设定为50,Amplitude 为 30,AmplitudeOffset 为 50,再连接至 Compute / Statistics / Basic Statistics,在 Basic Statistics 按下 View Statistics,观察 Mean。



将 Noise 接至 HypothesisTest,设定 TestType = t_Test,Mean = 55,然後再以 View Test Results,观察其检定的结果,资料计算出的SignificanceLevel小於预设值,虚无假设被拒绝,所以因为老师请假而导致班上成绩下滑。



若再设定 Hypothesis Test 中 SignificanceLevle 为0.01,将拒绝虚无假设的范围变小,然後再以 View Test Results,观察其检定的结果,资料计算出的 SignificanceLevel大於设定值,虚无假设无法被拒绝,所以相信虚无假设,并不因为老师请假而造成成绩下滑。


范例三
假设某银行有五个窗口进行处理,客户等待时间变异数为 10分钟,如今改成单一窗口处理,针对 101位客户进行调查,检验是否因为改成单一窗口之後,因此等待时间变异数变小,虚无假设为并无因为改变成单一窗口而使等待时间变异数变小,进行Var-Test 。
首先以 Source / Noise 产生 101 位客户等待的时间资料,SamplingFreq设定为 100 ,Amplitude 为 4.5,AmplitudeOffset 为10,再连接至 Compute / Statistics / Basic Statistics,在 BasicStatistics 按下 View Statistics,观察 Variance。



将 Noise 接至 HypothesisTest,设定 TestType = var_Test,Variance = 10,因为资料的变异数小於预设变异数,所以设定 Hypothsis = LeftTail,然後再以 View Test Results,观察其检定的结果,资料计算出的SignificanceLevel小於预设值,虚无假设被拒绝,因此推断单一窗口等待时间的变异数变小。



相关指令
Noise丶Square Wave丶Basic Statistics
4.9.12 Least Square Fitting*
*Only in Professional*
用最小平方法算出两组讯号的回归线,包括线性回归丶多项式回归丶指数回归等。此功能如同 Excel 图表里加上趋势线的功能。元件上显示的名称为 LeastSquareFit 。
说明
最小平方法是用来计算回归曲线的一种方法,藉由此元件计算出来的回归曲线来近似数据与时间或是两组数据之间的关系。本元件提供之回归曲线种类,其方程式,以及系数说明如下表:
| 回归曲线种类 | 方程式 | 系数说明及单位 |
|---|---|---|
| Linear 线性回归 |
\[y = a_0 + a_1 x\] | \(a\): Slope(斜率)[y_unit/x_unit]\(b\): Intercept(截距) [y_unit] |
| Polynomial 多项式回归 |
\[y = a_0 + a_1 x + a_2 x^2 + a_3 x^3 +\dots\] | \(a_0\): Constant(常数)[y_unit]\(a_n\): \(n^{th}\) Polynomial Coefficient (第 \(n\) 系数) [y_unit/x_unit^n] |
| PowerLaw 幂次回归 |
\[y = a x^b\] | \(a\): Scale(比例)[y_unit/x_unit^Exponent]\(b\): Exponent(指数) |
| Exponential 指数回归 |
\[y = a e^{b x}\] | \(a\): Scale(比例)[y_unit]\(b\): Rate(速率) [1/x_unit] |
| Logarithm 对数回归 |
\[y = a + b \ln x\] | \(a\): Constant(常数)[y_unit]\(b\): Scale(比例) [y_unit/ln(x_unit)] |
| Fourier 傅立叶回归 |
\[\begin{aligned} y(x) = \ &a_0 + a_1 cos(\omega x) + b_1 sin(\omega x) + \\ &a_2 cos(2 \omega x) + b_2 sin(2 \omega x) + \dots \end{aligned}\] | \(a_0\): Constant(常数)[y_unit]\(a_n\): \(n^{th}\) Cosine Coefficient (第 \(n\) 馀弦系数) [y_unit]\(a_n\): \(n^{th}\) Sine Coefficient (第 \(n\) 正弦系数) [y_unit]\(\omega\): Fundamental Frequency (基础频率) [1/x_unit] |
| Polynomial+ Fourier 多项式+ 傅立叶回归 |
\[\begin{aligned} y(x) = \ &a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \dots \\ &b_1 cos(\omega x) + c_1 sin(\omega x) + \\ &b_2 cos(2 \omega x) + c_2 sin(2 \omega x) + \dots \end{aligned}\] | \(a_0\): Constant(常数)[y_unit]\(a_n\): \(n^{th}\) Polynomial Coefficient (第 \(n\) 系数) [y_unit/x_unit^n]\(b_n\): \(n^{th}\) Cosine Coefficient (第 \(n\) 馀弦系数) [y_unit]\(c_n\): \(n^{th}\) Sine Coefficient (第 \(n\) 正弦系数) [y_unit]\(\omega\): Fundamental Frequency (基础频率) [1/x_unit] |
上表中 [x_unit] 为 X 讯号的资料单位,在 TimeSeries 模式(见下文说明)下为 Y 资料的时间轴单位;[y_unit] 则为 Y 讯号的资料单位。
线性模型
本元件采用线性模型来计算各种回归曲线的系数。假设有一组 \((X, Y)\) 的序列:\(X = \{x_1, x_2, \dots, x_N\}\) 代表长度为 \(N\) 的 X 数列,\(Y = \{y_1, y_2, \dots, y_N\}\) 代表长度为 \(N\) 的 Y 数列,如果X 与 Y 的关系可用线性模型描述,即 \(M\) 个任意已知函数 \(f_i(x)\) 之线性组合,由模型之参数 \(p_i\) 控制每个函数 \(f_i\) 在线性组合里的占比(\(f_i\) 独立於所有参数 \(p_i\)),即:
\[y = p_1 f_1(x) + p_2 f_2(x) + \dots + p_M f_M(x)\]
则回归问题可写成一个超定义的 M 次线性方程组,用矩阵式描述为:
\[\mathbf{Y} = \mathbf{F} \mathbf{P}\]
\[\begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_N \end{pmatrix} = \begin{pmatrix} f_1(x_1) & f_2(x_1) & \dots & f_M(x_1) \\ f_1(x_2) & f_2(x_2) & \dots & f_M(x_2) \\ \vdots & \vdots & \ddots & \vdots \\ f_1(x_N) & f_2(x_N) & \dots & f_M(x_N) \\ \end{pmatrix} \begin{pmatrix} p_1 \\ p_2 \\ \vdots \\ p_M \end{pmatrix}\]
此矩阵式可转换为「正常方程式(Normal Equation)」,并可快速的以【科列斯基分解】方法解出参数 \(p_i\):
\[\begin{aligned} \mathbf{Y} &= \mathbf{F} \mathbf{P} \\ \mathbf{F}^T \mathbf{Y} &= \mathbf{F}^T \mathbf{F} \mathbf{P} \end{aligned}\]
以下列出目前支援之回归曲线对应之线性模型中之各矩阵,
| 回归曲线种类 | 线性模型中之各矩阵 |
|---|---|
| Linear 线性回归 |
\[\mathbf{F} = \begin{pmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_N \end{pmatrix}, \mathbf{P} = \begin{pmatrix} a_0 \\ a_1 \end{pmatrix}\] |
Polynomial 多项式回归 |
\[\mathbf{F} = \begin{pmatrix} 1 & x_1 & x_1^2 & \dots & x_1^L \\ 1 & x_2 & x_2^2 & \dots & x_2^L \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_N & x_N^2 & \dots & x_N^L \\ \end{pmatrix}, \mathbf{P} = \begin{pmatrix} a_0 \\ a_1 \\ \vdots \\ a_L \end{pmatrix}\] 其中 \(L = M - 1\) 为多项式回归之次数 (见 Fit Order 参数)。 |
| PowerLaw 幂次回归 |
\[\mathbf{F} = \begin{pmatrix} 1 & \ln x_1 \\ 1 & \ln x_2 \\ \vdots & \vdots \\ 1 & \ln x_N \end{pmatrix}, \mathbf{Y} = \begin{pmatrix} \ln y_1 \\ \ln y_2 \\ \vdots \\ \ln y_N \end{pmatrix}, \mathbf{P} = \begin{pmatrix} \ln a \\ b \end{pmatrix}\] 计算出 \(\ln a\) 後可用指数函数算出 \(a\) 值。 |
| Exponential 指数回归 |
\[\mathbf{F} = \begin{pmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_N \end{pmatrix}, \mathbf{Y} = \begin{pmatrix} \ln y_1 \\ \ln y_2 \\ \vdots \\ \ln y_N \end{pmatrix}, \mathbf{P} = \begin{pmatrix} \ln a \\ b \end{pmatrix}\] 计算出 \(\ln a\) 後可用指数函数算出 \(a\) 值。 |
| Logarithm 对数回归 |
\[\mathbf{F} = \begin{pmatrix} 1 & \ln x_1 \\ 1 & \ln x_2 \\ \vdots & \vdots \\ 1 & \ln x_N \end{pmatrix}, \mathbf{P} = \begin{pmatrix} a \\ b \end{pmatrix}\] |
| Fourier 傅立叶回归 |
\[\mathbf{F} = \begin{pmatrix} 1 & c_1(x_1) & s_1(x_1) & \dots & c_L(x_1) & s_L(x_1) \\ 1 & c_1(x_2) & s_1(x_2) & \dots & c_L(x_2) & s_L(x_2) \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 1 & c_1(x_N) & s_1(x_N) & \dots & c_L(x_N) & s_L(x_N) \end{pmatrix}\] 其中 \(c_i(x) = \cos i \omega x\), \(s_i(x) = \sin i \omega x\), \(\omega\) 为基础频率,必须由其他方法估算,请见下文以及参数说明。 \[\mathbf{P} = \begin{pmatrix} a_0 \\ a_1 \\ b_1 \\ a_2 \\ b_2 \\ \vdots \\ a_L \\ b_L \end{pmatrix}\] 其中 \(L = (M - 1) / 2\) 为傅立叶回归次数 (见 Fourier Fit Order 参数)。 |
| Polynomial+ Fourier 多项式+ 傅立叶回归 |
\[\mathbf{F} = \begin{pmatrix} 1 & x_1 & \dots & x_1^K & c_1(x_1) & s_1(x_1) & \dots & c_L(x_1) & s_L(x_1) \\ 1 & x_2 & \dots & x_2^K & c_1(x_2) & s_1(x_2) & \dots & c_L(x_2) & s_L(x_2) \\ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 1 & x_N & \dots & x_N^K & c_1(x_N) & s_1(x_N) & \dots & c_L(x_N) & s_L(x_N) \end{pmatrix}\] 其中 \(c_i(x) = \cos i \omega x\), \(s_i(x) = \sin i \omega x\), \(\omega\) 为基础频率,必须由其他方法估算,请见下文以及相关参数说明。 \[\mathbf{P} = \begin{pmatrix} a_0 \\ a_1 \\ \vdots \\ a_K \\ b_1 \\ c_1 \\ \vdots \\ b_L \\ c_L \end{pmatrix}\] 其中 \(K + 2 L + 1 = M\), \(K\) 为多项式回归次数 (见 Fit Order 参数), \(L\) 为傅立叶回归次数 (见 Fourier Fit Order 参数)。 |
如未指明,以上模型之 \(\mathbf{Y}\) 皆为:
\[\mathbf{Y} = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_N \end{pmatrix}\]
不合法值之处理
当输入资料之一组 X-Y 值不合法,则忽略该组 X-Y 值,用其他合法值计算。以下列出不合法的定义:
- X 值或 Y 值为 空值或无限大
- 选择 PowerLaw 时,X 或 Y 小於或等於 \(0\)
- 选择 Exponential 时,Y 小於或等於 \(0\)
- 选择 Logarithm 时,X 小於或等於 \(0\)
R-Square 值
欲判定回归线的准确度时,通常会利用 R square 值来说明数据点与线性方程相近的程度,也用来评估以此线性方程式来代表两数据关系的是否可信。R sqaure 的计算可见【Coefficient of Determination】,是一介在 0-1 之间的数值,1 代表完全吻合丶0 代表完全不吻合。因此若是要说算出来的回归曲线可以代表此输入之 X-Y 数据的话,通常会要求 R square 值在 0.95 以上 (更严格的会要求 0.99)。
傅立叶回归之估算基础频率
傅立叶回归算式中需要基础频率 \(\omega\),因其不属於线性模型中的参数,无法用线性模型方法计算,必须用其他方式估算。本元件采用【牛顿法】自动估算,步骤如下:
- 选择起始频率
起始频率可以选择自动估算,或是由使用者直接输入,见 Auto Initial Freq 参数说明。如果选择自动估算,则会将输入讯号做 FFT 运算,取其 PowerSpectrum 中最大值的频率。
- 牛顿法
取得起始频率後,则代入线性模型算出参数及其 R-Square 值,再用牛顿法叠代算出 R-Square 最大值,则最应之频率为最佳基础频率。牛顿法定义如下:
定义用 \(\omega\) 及输入之 X-Y 值用线性模型计算出参数後再计算 R-Square 值的步骤为一函数 \(f(\omega) = R^2\)(因为每次叠代都用同样的 X-Y 值计算,因此 \(f\) 只与 $相关),则 \(f\) 的一次微分 \(f''\) 及二次微分 \(f''\) 可由以下算式估算出:
\[\begin{aligned} f'(\omega) &= \frac{f(\omega + \delta \omega) - f(\omega - \delta \omega)}{2 \delta \omega} \\ f''(\omega) &= \frac{f(\omega + \delta \omega) - 2 f(\omega) + f(\omega - \delta \omega)}{\delta \omega^2} \end{aligned}\]
其中 \(\delta omega = \omega_{\text{initial}} \text{eps}\)。牛顿法(【最速下降法】)则可以算出下一叠代之 \(\omega\) 值:
\[\omega_{\text{new}} = \omega - \frac{f'}{f''}\]
当新旧 \(\omega\) 值绝对差 \(|\omega_{\text{new}} - \omega|\) 小於 \(\text{eps}\)则叠代计算停止,\(\omega_{\text{new}}\) 为估算出之基础频率。阈值 \(\text{eps}\) 可由使用者设定(见参数 Stop Threshold )。
物理意义
以线性回归为例,用方程式 \(y = ax + b\) 可说明 \(X\) 和 \(Y\) 两组数据之间代表的物理型态。例如在验证虎克定律的实验里面,通常会量测两组数据:挂在弹簧上的砝码重以及弹簧的总长度。接着可利用弹簧总长对砝码重作图,来求得弹簧的弹性系数 \(k\),如下图:

上图黑点为量测的数据点,蓝线为经由线性回归算出来的直线。求得的线性回归的方程式为
\[\text{Spring length(弹簧总长)} = 0.0907 \times \text{Force(受力)} + 4.99\]
此即弹簧总长以及受力之间的关系,同时比对虎克定律 \(F = kx\),上述式子可写成
\[\text{Force} = 1 / 0.0907 \times (\text{Spring length} - 4.99)\]
因此可知道弹簧原长为 4.99 cm,弹簧的弹性系数为 11.02 g/cm。由此例子见到我们可藉由线性回归式得到两组数据(弹簧长度与受力)之间的关系。虽然量测数据点是离散的,但也可藉由线性回归式来推测没有数据之处的数值,例如从上图可以推测受力为 20 g 时弹簧的总长约为 8.6 cm 。对於在介在数据范围内里面不知道的 \(x_j\),可以透过 \(a x + b\) 来得到 \(y_j\); 而数据范围外的部分也可以利用线性回归式来求得,但是由於线性方程是最简单的近似模型,数据范围外的预测可能会比较不准。
使用说明
本元件把回归分成两种类型:
TimeSeries(线性回归方程式为 \(y = a t + b\))
XY(线性回归方程式为 \(y = a x + b\))
参数视窗(Property Window)可看到的目前所使用的形式,注意所使用形式是无法手动修改的,本元件中会依照输入数据的格式来自动判断应该选用 TimeSeries 或是 XY,所以务必确认是使用正确的方式连接此元件。
首先,先决定您想要知道的是 1. 一组数据与时间的关系或是 2.两组数据之间的关系 ,再依照下列所叙述的方法来连接。
一组数据与时间的关系:形式为 TimeSeries 。
将讯号直接与本元件连接,并用【Channel Viewer】来观看结果。如以下流程图:

依照上述流程图, Viewer 画出来的图表中有两条线,一条为原来的时间序列,另一条为回归後的曲线(下图使用线性回归),经过 Viewer 的编辑後,可以得到下列图表。

特别注意当为时间序列时,用【Channel Viewer】来观看结果,不需要用到【XY Plot】。
欲得知此回归後的系数,找到属性视窗中的 View Regression Parameters,或双击元件图示,会开启如以下的系数报表对话窗(报表对话窗请参考【Reporter】章节说明):

即可查询回归曲线的方程式(Fitting Form)以及其相关系数。以线性回归为例,方程式为\(y(x) = Intercept + Slope \times x\),Slope 为斜率,即前述线性方程式中的系数\(a\);Intercept 为截距,即前述线性方程式中的 \(b\)。Error StdDev 为每一数据点与回归误差的平均标准差,用来得知回归线之可信度;R square 值为【Coefficient of Determination】,也是用来得知回归线的可信度,详见前文及参考资料。
报表列出的系数及其单位会依照回归的种类而有所不同。系数的
y_unit单位为输入讯号的 Data Unit 单位,如为空白则以y_unit显示;系数如有时间单位则为输入讯号的时间单位。请参考前文各回归类别的方程式,系数,及相关单位列表。如果时间轴的起始点不为零,或是时间轴为时日轴,或是某些回归种类不允许时间轴起始点为零(例如对数回归等),计算系数时可能会需要重设时间轴起始点(请参考後文有关 Enable Time Shift 参数的说明)。报表上的 Parameter Based On 栏位会显示「Shifted 或 Original Time Axis」,注明计算系数时是根据原始时间座标或是重设後的时间座标。
以傅立叶回归为例,将上文之流程图之 TimeSeries 的讯号源改成一个有周期性(主频率 \(\omega\) 大约为 2.35 Hz)的讯号,设定 Fourier Fit Order 为 3,Auto Initial Freq设为 True, 计算出回归线後得出如下图:

与回归线对应的系数报表对话窗如下:

可以看到报表显示出傅立叶回归的方程式(Fitting Form),以及计算出的傅立叶系数,因为 Fourier Fit Order 设为 3,系数有 \(a_0, a_1, b_1, a_2, b_2, a_3, b_3\)。另外,用前述方法(FFT + 牛顿法)自动计算出之主频率 \(\omega\) 为 2.36 Hz,非常接近原始讯号。Error StdDev 及R-Square 值均表示回归线可信度极高。
两组数据之间的关系:形式为 XY
将第一组数据 X 与第二组数据 Y 依序连接至本元件,再将 LeastSquareFit 的结果与数据 X 和 Y 连接至 Merge to Multi-Channel 合并成多通道,最後接入【XY Plot】观看结果。连接方式如下面的流程图:

注意在连接至 ToMulti 时,连接顺序必须是 LeastSquareFit, X, Y 或是 X, Y, LeastSquareFit 才能在 XY Plot 图表中正确的显示。上述流程范例可经过 XY Plot 的编辑,产生如下图:

报表对话窗显示的线性回归系数如下:

系数的
x_unit单位为第一输入讯号(即 X 讯号)的 Data Unit 单位,如为空白则以x_unit显示;系数的y_unit单位为第二输入讯号(即 Y 讯号)的 Data Unit 单位,如为空白则以y_unit显示。
以上两种方式为使用本元件的基本方法。
LeastSquareFit 在判断要使用 TimesSeries 或 XY 时,是从输入的数目来判断。如果只有一个输入,LeastSquareFit 会将此输入中每一个通道的时间与数值做回归,而输出 \(y = a t + b\) 中的 \(y\),可接至【Channel Viewer】。若有两个输入,则第一个输入为 X,第二组输入为 Y,使用 XY 方式做回归後,输出回归方程式里 \(y = a x + b\) 的 x 与 y。若一个输入含有多通道时,其中 TimeSeries 可以依照前文 1. 中流程图把每通道中的回归曲线以及原本数据画出,但是使用 XY 线性回归时,两输入的第一通道会互相配对做回归(第二通道互相配对丶第三通道互相配对…以此类推),而输出通道依序为 x1, y1, x2, y2…等等。若要将所有 X-Y 配对之数据以及其回归曲线画出,特别注意输入 XY Plot 的通道顺序必须要是 x1, y1, x2, y2,…(即奇数通道与偶数通道配对),才能在图表中正确显示。可以参阅【XY Plot】 的说明。
参数说明
本元件接受实数(Real Number),单或多通道(Single or Multiple Channel), Regular 的讯号(Signal)或声音讯号(Audio)输入。相关参数说明如下图表。

| 参数名称 | 参数意义 | 预设值 |
|---|---|---|
| Fitting Type | 选择回归种类:
|
Linear |
| View Fitting Parameters | 显示系数报表 | |
| Enable Time Shift | 在 TimeSeries 回归模式下,可设定是否重设时间轴的起始点。 此参数可用於时间轴的起始点不为零,或是时间轴为时日轴,或是某些回归种类不允许时间轴起始点为零(例如对数回归等)的情况。 计算系数时会根据重设之时间轴计算,此时报表上的 Parameters Based On 栏位会标注是根据 Shifted Time Axis。输出时则会移回原始时间座标,以便与原始资料比对。 当时间轴为时日(DateTime)轴时本参数强制设定为 True 并隐藏之。计算系数时会先将时日轴转成数字时间轴,计算完再转回原始时日轴。 本参数开启之後会内嵌 Time Shift 元件,其参数设定可参考【Time Shift】章节说明。 |
False |
| Input Type | 显示输入类别(即回归模式):
此为根据输入模式而自动判别,使用者无法自行设定。 |
|
| Fit Order | 选择多项式或多项式+傅立叶回归时,可用此参数设定多项式最大的次数。次数为 1 时等同线性回归,多项式的常数即为线性的截距,第一次方的系数则为线性的斜率。 | 1 |
| Fourier Fit Order | 选择傅立叶或多项式+傅立叶回归时,可用此参数设定傅立叶是最大的次数。见前文说明。 | 1 |
| Auto Initial Freq | 设定「True」时会利用 FFT 估算出牛顿法叠代计算的起始频率,「False」则让使用者设定。 | True |
| Initial Freq | 当 Auto Initial Freq 设为「False」时,可设定牛顿法叠代计算的起始频率。 | 0 |
| Maximum Iterations | 可设定牛顿法最大叠代次数。 | 10000 |
| Stop Threshold | 可设定牛顿法的停止阈值 \(\text{eps}\),见前文说明。 | 1E-6 |
| X Output Source | 选择输出 X 资料来源:
XInputChannel 选项取输入之 X 通道资料来计算新的输出 Y 值; AutoRegular 选项则自动由输入之 X 通道资料范围产生一个递增的数列来计算新的输出 Y 值。 |
AutoRegular |
相关指令
Channel Viewer丶XY Plot丶Merge To Multi-Channel
参考资料
Coefficient of Determination : http://en.wikipedia.org/wiki/Coefficient_of_determination
4.10 TFA(Time-Frequency Analysis)
本模组群提供时频分析之计算:
Short Term Fourier Transform:短时傅立叶转换。
Morlet Transform:小波转换,此处之母函数为 Morlet function。
Enhanced Morlet Transform(*Only in Professional):改良过的 Morlet转换,融合了 Morlet 与短时傅立叶之特性。
Hilbert Spectrum:将输入讯号经 Hilbert Transform後,计算出每个时间点的瞬时频率。
Marginal Frequency / Marginal Time:将计算出之时频分析结果对频率域 /时域作积分计算。
Transpose Spectra:将时频图的时间轴与频率轴对换。
Secondary Spectrum:将时频图再做一次时频转换。
4.10.1 Short-Term Fourier Transform
傅立叶转换(Fourier Transform)是将时间讯号转换至频率域。相较於傅立叶转换,仅能呈现讯号振幅与相位随频率变化,但无法知道该频率发生的时间点。而短时傅立叶转换( Short-Term Fourier Transform, STFT, or spectrogram)用以计算讯号强度与相位随时间与频率的分布,解决傅立叶转换(Fourier Transform)无法得知频率发生的时间的缺点。
说明
数学式为
\[STFT[x(t)] = X(\tau,\omega) = \int_{-\infty}^{\infty} x(t) \omega(t-\tau) \mathrm{e}^{-i \omega t} dt\]
其中,\(x(t)\) 是输入讯号,\(\omega(t-\tau)\) 是一个窗函数。数学式中的意义为:每一时间点 \(\tau\) 对 \(x(t)\omega(t-\tau)\) 作傅立叶转换,再将窗函数沿着时间轴方向挪移并计算得到的结果即为 \(X(t,\tau)\) 代表了讯号某一时间与频率上的强度或相位。各窗函数的定义,请参阅【Signal Windowing】元件说明。
窗函数大小(Windows Size)与频率解析度之间的关系如下:
\[\textit{Window Size} = \frac{f_s}{\delta f}, \quad \textit{Freq Resolution} = 2 \cdot \frac{f_s}{\textit{Window Size}}\]
其中,\(f_s\) 为取样率(Sample Frequency)。
窗函数设定越长,频率解析度越小,所以频率越不确定,时间越确定。窗函数设定的越短,频率解析度越大,频率越确定,时间越不确定。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio)输入;输出讯号格式为复数,单通道的时频(Spectra)资料结构。各参数定义详如下方图表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FreqAxis | 时频图频率的分布可以设定为是 LinearAxis(线性尺度)或是 LogAxis(对数尺度),LogAxis 多用於声音讯号分析 | LinearAxis |
| FreqMin | 设定计算时频资讯之最低频率 | 0 |
| FreqMin | 设定计算时频资讯之最高频率 | \(f_s / 2\) |
| FreqCount | 设定计算时频资讯之频域格数 | 256 |
| TimeCount | 设定计算时频资讯之时域格数 | 2048 |
| Window | 在 STFT 分析,进行时间轴的分割时,会利用窗函数进行滤波,此处可选择不同窗函数。关於各窗函数的定义,请参阅【Signal Windowing】元件说明 | Gauss |
| WindowSize | 设定窗函数大小,与频率解析度成反比,见前文说明 | \(f_s / 40\) |
与【Fourier Transform】元件类似,本元件有内嵌 Remove DC 元件,可选择在计算 STFT 之前移除输入讯号中的直流部分,参数可参考【Remove DC】元件说明。
范例
以下范例以一个鸟鸣讯号(Chirp)作输入,利用 STFT 作时频分析,可以出现频率随时间线性变化。
按下 Network Window 工具列的
,或以 Source / Import Data 读取讯号档,档案 chirp1000.tfa 位在安装目录下 data 资料夹(预设为 C:\Program Files\AnCad\Visual Signal\demo\Basic)。(类似的鸟鸣讯号也可以用 Source / Advanced / Chirp 元件)
点选 chirp1000 图示,其 Properties 下显示此讯号的通道数(Channel Count) 为 1 ,取样频率(Sampling Frequency)为 1000 Hz,再用 Viewer / Channel Viewer 绘制讯号。可观察此讯号频率随时间渐增。



选择 Compute / TFA / Short Term Fourier Transform 直接对此讯号作 STFT,以 Viewer / Time Frequency Viewer 绘出计算结果。观察时频图,讯号频率随时间呈一直线的变化,且由结果可得到某个时间点讯号的频率值。


若是改变 STFT 的参数 TimeCoant 或 FreqCount,则 STFT 会根据新设定的网格数量重新计算,因此会影响计算结果的解析度以及运算时间。现在改变 TimeCount 为 50,则运算速度变快,但结果的解析度亦变差。

若是改变 FreqMin 或 FreqMax 参数,STFT 仍然会对原频率范围作计算,不过仅截取参数设定范围内的资料作输出,不会影响作 STFT 的计算量。改变 FreqMax 为 50,计算时间并未因此缩短。

以下范例使用 Impulse 讯号接上 STFT 示范 Window Size 参数与时域精确度的关系。
以 Source / Advanced / Impulse 接上 STFT 再接上合适的 Viewer,如下图:

将 Impulse 的参数设为位於 0.5s 的单一脉冲(Start = 0.5,SingleImpulse = True),其他参数皆为预设值,如下图:

STFT Window Size 参数为 25 的预设值时,时频图如下:

接着将 Window Size 设为 5,可以看到降低 Window Size 时 Frequency Resolution 上升,频域收敛,但是时域扩散精确度下降,如下图:

接着将 Window Size 设为 100,可以看到提高 Window Size 时 Frequency Resolution 下降,频域扩散,但是时域收敛精确度提高,如下图:

以下范例使用 Sine Wave 讯号接上 STFT 示范 Window Size 参数与频域精确度的关系。
承上,将 Impulse 换成 Source / Sine Wave ,如下图:

将 Sine Wave 的频率设为 200 Hz,其他参数皆为预设值,如下图:

STFT Window Size 参数为 25 的预设值时,时频图如下:

接着将 Window Size 设为 5,可以看到降低 Window Size 时 Frequency Resolution 上升,频域收敛,精确度上升,如下图:

接着将 Window Size 设为 100,可以看到提高 Window Size 时 Frequency Resolution 下降,频域扩散,精确度下降,如下图:

相关指令
Fourier Transform丶Signal Windowing丶Remove DC丶Impulse丶Sine Wave
参考资料
Stepphane Mallat, a Wavelet Tour of Signal Processing (2nd Ed), 1999.
4.10.2 Morlet Transform
小波分析(Wavelet Analysis)或小波转换(Wavelet Transform)是指用有限长或快速衰减的丶称为母小波(Mother Wavelet)的振荡波形来表示讯号。该波形被缩放和平移以匹配输入的讯号。Morlet transform 即运用母小波 Morlet wavelet,对讯号进行小波分析的方法。
说明
与傅立叶转换最大的不同,小波转换将讯号转为时间-频率的讯号,根据测不准原理,频率以及时间解析度的乘积为固定值,即是频率解析度佳,则时间解析度一定差,反之亦然。短时傅立叶转换的高低频率带的时间与频率频解析度皆为定值,但是在处理上,会希望在高频带的时间解析度佳,在低频带的频率解析度较佳,唯有小波转换,才能达到这样的处理结果。小波转换的方程式如下:
\[X_w(a,b) = \frac{1}{\sqrt{|(a)|}} \int_{-\infty}^{\infty} x(t) \Psi \left[ \frac{t-b}{a} \right] dt\]
其中,\(a\) 参数为母小波缩放参数,\(b\) 为平移参数。再藉由转换,将 \(a\) 值转换为频率。母小波 \(\Psi(t)\) 必须符合三个条件
\(\int_{-\infty}^{\infty} |\Psi(t)|^2 dt = 1\),
\(\int_{-\infty}^{\infty} |\Psi(t)| dt < \infty\),
\(\int_{-\infty}^{\infty} \Psi(t) dt = 0\)。
而 Morlet Transform 属於小波转换,其母小波的定义为
\[\Psi_{\sigma}(t) = \mathrm{e}^{i \alpha t} \mathrm{e}^{\frac{-|t|^2}{2}}\]
在 Visual Signal 中 \(\alpha = 6\)。

参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio)输入;输出讯号格式为实数,单通道,Regular 的时频(Spectra)资料。参数须设定起始与终点位置,其单位等於输入讯号的时间单位。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FreqAxis | 时频图频率的分布可以设定为是 LinearAxis(线性尺度)或是 LogAxis(对数尺度),LogAxis 多用於声音讯号分析 | LinearAxis |
| FreqMin | 设定计算时频资讯之最低频率 | 0 |
| FreqMax | 设定计算时频资讯之最高频率 | \(f_s / 2\) |
| FreqCount | 设定计算时频资讯之频域格数 | 256 |
| TimeCount | 设定计算时频资讯之时域格数 | 2048 |
与【STFT】元件一样,本元件有内嵌 Remove DC 元件,可选择在计算 STFT 之前移除输入讯号中的直流部分,参数可参考【Remove DC】元件说明。
范例
以下范例为一个鸟鸣讯号(Chirp),利用 Visual Signal 分析其时频图,可以发现一个频率随时间线性变化。
按下 Network Window 工具列的
,或以 Source / Import Data 读取讯号档,档案 chirp1000.tfa 位在安装目录下 data 资料夹(预设为 C:\Program Files\AnCad\Visual Signal\demo\Basic),以 Viewer / Channel Viewer 绘出。(类似的鸟鸣讯号也可以用 Source / Advanced / Chirp 元件)

以 Compute / TFA / Morlet Transform 对输入讯号作计算,再以 TFA Viewer 绘出,可明显看到在越高频的地方,频率散布范围越大,转换的效果越差。


本元件的演算法可改良以改善高频发散的问题,请见【Enhanced Morlet】元件说明。
相关指令
Short Term Fourier Transform丶Remove DC丶 Enhanced Morlet Transform
参考资料
1. Stepphane Mallat, A Wavelet Tour of Signal Processing (2nd Ed), 1999.
2. Y.-N.Jeng, C.-T. Chen and Y.-C. Cheng, ”The Enhanced Morlet Transform via Iterative Filter to Study Turbulent Data Strings”, The 6th Aslan Computational Fluid Dynamics Conference Taiwan, August, 2005.
4.10.3 Enhanced Morlet Transform*
*Only in Professional*
Morlet Transform 的缺点是在高频部分,由於频率解析度下降的关系,所以高频会发散,(请见【Morlet Transform】元件说明)。Enhanced Morlet transform 预先以 Gauss 函数处理,以解决高频处能量发散的状况。
说明
在小波转换之前,会先乘上一个高斯函数,拿掉较边缘丶低振幅的讯号,使高频解析度增加。此转换的方程式如下,见 Morlet 章节:
\[X_w(a,b) = \frac{1}{\sqrt{|(a)|}} \int_{-\infty}^{\infty} x(t) \Psi \left[ \frac{t-b}{a} \right] G(\sigma, b, t) dt\]
其中 \(G(\sigma, b, t)\) 为高斯函数:
\[G(\sigma, b, t) = \sqrt{\frac{1}{4\pi} \frac{1}{\sigma}} \mathrm{e}^{\frac{1}{4 \sigma} (t-b)^2}\]
由於高频部分,Morlet 小波的 Scale 参数 \(a\) 会减小,导致高频的解析度会变差,於是在进行小波转换之前,会先对 Morlet Wavelet 乘上一个 Gaussian Window \(G(\sigma,b,t)\) 使得频率解析度增加。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio)输入;输出讯号格式为实数,单通道,Regular 的时频(Spectra)资料。各参数定义详如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| FreqAxis | 时频图频率的分布可以设定为是 LinearAxis(线性尺度)或是 LogAxis(对数尺度),LogAxis 多用於声音讯号分析 | LinearAxis |
| FreqMin | 设定计算时频资讯之最低频率 | 0 |
| FreqMax | 设定计算时频资讯之最高频率 | \(f_s / 2\) |
| OverlappedFactor | Gaussian window 移动时之重叠量,即为原式的 \(\sigma\) | 1 |
| FreqCount | 设定计算时频资讯之频域格数 | 256 |
| TimeCount | 设定计算时频资讯之时域格数 | 2048 |
与【STFT】元件一样,本元件有内嵌 Remove DC 元件,可选择在计算 STFT 之前移除输入讯号中的直流部分,参数可参考【Remove DC】元件说明。
范例
以下范例为一个鸟鸣讯号(Chirp),利用 Visual Signal 分析其时频图,可以发现频率随时间线性变化。
按下 Network Window 工具列的
,或以 Source / Import Data 读取讯号档,档案 chirp1000.tfa 位在安装目录下 data 资料夹(预设为 C:\Program Files\AnCad\Visual Signal\demo\Basic),以 Viewer / Channel Viewer 绘出。
以 Compute / TFA / Enhanced Morlet Transform 对讯号作转换, 以 TFA Viewer 绘出,可明显看到在高频段效果较 Morlet Transform 来的好。


相关指令
Short Term Fourier Transform丶Morlet Transform丶Remove DC
参考资料
1. “观察一维紊流數据的一种有效之新拆解法”, 郑育能, 陈季聪, 郑又齐,第十二届全国计算流体力学学术研讨会。
2. Stepphane Mallat, A Wavelet Tour of Signal Processing (2nd Ed), 1999.
4.10.4 Hilbert Spectrum
Hilbert Spectrum 利用【Hilbert Transform】,计算讯号每个时间点的瞬时频率与瞬时振幅,并输出为时间 - 频率的矩阵。在 HHT 过程中,EMD 後将 IMF 由讯号中提取出来後,我们可顺利的把 Hilbert Transform 应用在各个 IMF 上,观看 Hilbert Spectrum 得出之时频分析结果。利用模组【Haar Transform】之输出结果也可直接接上 Hilbert Spectrum。
说明
在此模组内,包含了两种 Hilbert Transform 的方法,请参考 Hilbert Transform 元件中的叙述。
我们可对 \(x(t)\) 计算得到其 Hilbert Transform \(y(t)\) 如下:
\[H[x(t)] = y(t) = \frac{1}{\pi} P.V. \int_{-\infty}^{\infty} \frac{x(\tau)}{t-\tau} dt\text{,}\]
其中 \(y(t)\) 称为 \(x(t)\) 的 Hilbert pair。上式相当於 \(x(t)\) 和 \(1/t\) 的 Convolution 後,再除以 \(\pi\),即 \([x(t) * (1/t])] / \pi\) 。(P.V. 为 Cauchy Principle Value)
\[z(t) = x(t) + iy(t) = a(t) \mathrm{e}^{i\theta(t)}\]
\[a(t) = \sqrt{x^2 + y^2}\]
\[\theta(t) = \tan^{-1}{\frac{y(t)}{x(t)}}\]
定义 \(\omega(t) = \frac{d\theta(t)}{dt}\) 为瞬时角速度,而 \(\frac{1}{2\pi}\omega(t)\) 即为瞬时频率。
因此,Hilbert Transform 後,可以得到 \(y(t)\)丶\(z(t)\)丶\(\omega(t)\)。
如欲画为时频图,则依时间 \(t\) 操作 \(a(t)\)丶\(\omega(t)\):
在时间为 \(t\) 时,有频率 \(\omega(t)/{2 \pi} \to\) 可得在 Y 轴上之高度
在时间为 \(t\) 时,有强度 \(|a(t)| \to\) 可得在 Z 轴上之大小
所有时间点操作,既可化为时频图,此为 Hilbert Transform 。而如此之操做实为将不连续的点画在图上,故多会插入高斯函数柔化数值。
若把 Multi-Channel 全部做 Hilbert transform 後,原讯号可表示成如下的形式(多用於 EMD 拆解後之下一步处理):
\[\sum x_j(t) = Re \left( \sum a_j(t) \mathrm{e}^{i\int \omega_j dt} \right)\]
其馀操作同 Single Channel。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel ),Regular 的讯号(Signal)丶声音讯号(Audio)输入;输出讯号格式为实数,单通道,Regular 的时频(Spectra)资料。参数定义整理如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 选择 Hilbert Spectrum 计算的方法:
|
HilbertSpectrum |
| FreqAxis | 时频图频率的分布可以设定为是 LinearAxis(线性尺度)或是 LogAxis(对数尺度),LogAxis 多用於声音讯号分析 | LinearAxis |
| FreqMin | 显示 Hilbert Spectrum 时设定的最小频率 | 0 |
| FreqMax | 显示 Hilbert Spectrum 时设定的最大频率 | Sample frequency / 2 |
| FreqCount | 设定 Hilbert Spectrum 於频率之离散网格数 | 256 |
| TimeCount | 设定 Hilbert Spectrum 於时间之离散网格数 | 1024 |
| Inst. Freq. Method | 计算瞬时频率的方法(请参考微分【Diff】元件):
|
Simple |
| Filter Length | 瞬时频率方法选择 Robust 时,可设定滤波器长度,为数值微分的取样点数,表示由多少离散函数点来决定此点的微分值;需为介於 5~999 间,并小於讯号长度的奇数 | 51 |
| Smoothing | 因 Hilbert Spectrum 为离散之数值, Smoothing 是利用 Gaussian 函数使其平滑 | True |
范例
按下 Network Window 工具列的
,或以 Source / Import Data 读取讯号档,档案 chirp1000.tfa 位在安装目录下 data 资料夹,预设为:C:\Program Files\AnCad\Visual Signal\demo\Basic,以 Viewer / Channel Viewer 绘出。


在 Chirp_1000 後接上 Compute / HHT / RCADA EEMD 计算出 IMF(Intrinsic Mode Function),再以 Viewer / Channel Viewer 绘出。


因 EMD 会计算出多通道讯号,用上图表示不够清楚,可以将 Channel Viewer 的 Properties / ViewerHeight 调整为 300,Multi-Channel Display 调为 List 使绘图更清析可辨。

RCADA EEMD 後接上 Compute / TFA / Hilbert Spectrum,再以 Viewer / Time-Frequency Viewer 绘出结果,此程序即为运用黄锷法计算瞬时频率。


Hilbert Spectrum 也可由 Haar Wavelet Transform 计算瞬时频率。在 Chirp1000 後方接上 Compute / Transform / Haar Wavelet Transform,再把 Properties / FilterBank Levels 调为 9,Resampling method 选 Spline,最後仿照步骤 2~3 进行时频计算。





相关指令
RCADA EEMD丶IMF Properties丶Haar Transform丶Diff
参考资料
1. Proc. R. Soc. Land A 1998 (903-995)
2. The Hilbert-huang Transform And Its Applications Huang, by Norden E. (EDT)/Shen, Samuel S. (EDT) World Scientific Pub Co Inc
4.10.5 Marginal Time / Marginal Frequency
利用时频分析将一时域讯号 \(x(t)\) 转为时频二维阵列 \(X(t,\omega)\) 之後,提供使用者对频率轴 / 时间轴积分 後的时间域 / 频率域分布。
说明
在已处理过时频分析的讯号,\(X(t,\omega)\),针对频率轴积分,得到以时间为参数的分布。数学上,这样的操作可写为:
\[x(t) = \int_{-\infty}^{\infty} X(t, \omega) d\omega\]
其中 \(X(t, \omega)\) 为时频二维阵列,\(x(t)\) 为时间域分布,此即为Marginal Time。若针对时间轴积分,得到以频率为参数的分布。这样的操作可写为:
\[x(\omega) = \int_{-\infty}^{\infty} X(t,\omega)dt\]
\(x(\omega)\) 为频率域分布,此即为 Marginal Frequency, 而若此 \(X(t, \omega)\)是由 \(STFT[x(t)]\) 处理而得者,\(x(\omega)\) 将与做傅立叶转换无异。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel),Regular 的时频(Spectra)资料输入;输出讯号格式为实数,单通道,Regular 的讯号(Signal)。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| MarginalMethod | 选择时频资讯在时间轴/频率轴积分时针对复数阵列的处理方法:
选项详细说明请见下面表格,或【Convert From Complex】元件说明 |
Magnitude |
| IntegrationMethod | 选择积分方法:
选项详细说明请见【Integrate】元件说明 |
CumulativeSum |
| Normalize | 设定是否将积分规一化:
|
False True |
| 选项名称 | 选项定义 |
|---|---|
| Complex | 分别对实丶虚部积分。 \[Re[x(t)] = \int Re[X(t,\omega)] d\omega, \quad Im[x(t)] = \int Im[X(t,\omega)] d\omega\] \[Re[x(\omega)] = \int Re[X(t,\omega)] dt, \quad Im[x(\omega)] = \int Im[X(t,\omega)] dt\] |
| Magnitude | 对时频讯号取 \(Norm\) 後再积分。 \[x(t) = \int \sqrt{Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2} d\omega\] \[x(\omega) = \int \sqrt{Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2} dt\] |
| RealPart | 对时频讯号实部积分。 \[x(t) = \int Re[X(t,\omega)] d\omega\] \[x(\omega) = \int Re[X(t,\omega)] dt\] |
| ImagPart | 对时频讯号虚部积分。 \[x(t) = \int Im[X(t,\omega)] d\omega\] \[x(\omega) = \int Im[X(t,\omega)] dt\] |
| PowerSpectrum | 对时频讯号取 \(Norm^2\) 後再积分。 \[x(t) = \int Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2 d\omega\] \[x(\omega) = \int Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2 dt\] |
范例
范例以声音讯号 hello.wav 作为讯号源,利用 Visual Signal 中的 Enhanced Morlet Transform 分析其时频图,再以 Marginal Time 计算讯号时间域的分布。
按下 Network Window 工具列的
,或以 Source / Import Data 读取讯号档,档案 hello.wav 位在安装目录下 data 资料夹(预设为 C:\ Program Files\AnCad\Visual Signal\demo\Basic),接着做 Compute / TFA / Enhanced Morlet Transform(FreqCount 设为预设的两倍:256),再以Viewer / Time Frequency Viewer 绘出结果。

於 EnMorlet 後面作 Compute / TFA / Marginal Time,MarginalMethod设定为 Magnitude 计算,以 Channel Viewer 绘出,图中纵轴为振幅。


将 MarginalMethod 调整为 Complex,代表 Marginal Time直接对时频讯号作积分。

再於 EnMorlet 後面作 Compute / TFA / Marginal Frequency,其计算结果之横轴为频率,纵轴为振幅。


相关指令
Short-Term Fourier Transform丶Enhanced Morlet Transform丶 Convert From Complex丶Integrate
4.10.6 Transpose Spectra
将时频图或阶次圈数图(Spectra)进行转置,将资料的 X 轴和 Y 轴对调。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel),Regular 的时频(Spectra)资料输入
范例
以下范例为 OrderSpectrogram by STFT的计算结果再经过转置的结果,流程如如下图。


将 OrderSpectrogram by STFT 结果接至 Transpose Spectra转换之後,最後利用 TF Viewer 观看其结果。

相关指令
OrderSpectrogram by STFT丶OrderSpectrogram by EnMorlet丶STFT
4.10.7 Secogram
Secogram 为二次频谱(Secondary Spectrum)的缩写,将经过时频分析(TFA)的时频资料再做一次 FFT 转换,可看出原始讯号中每个基频出现的频率分布。
说明
假设一原始讯号经过时频分析後得出一时频阵列:
\[TFA[x(t)] = X(t, f)\]
其中 \(x(t)\) 是输入讯号,\(t\) 为时间,\(f\) 为频率。此讯号可以视为是一组不同基频的时域讯号序列:
\[X(t, f) = X_F(t) = \{X_{f_0}(t), X_{f_1}(t), X_{f_2}(t) \dots X_{f_{N-1}}(t)\}\]
其中 \(F = \{f_0, f_1, f_2, \dots f_{N-1}\}\),\(N\) 为时频阵列的频率网格数(例如 STFT 中的 FreqCount 参数)。如果再针对每一个 \(X_{f}(t)\) 做 FFT 则可得二次频谱:
\[\begin{aligned} S(f', f) &= \{FFT[X_{f_0}(t)], FFT[X_{f_1}(t)], \dots FFT[X_{f_{N-1}}(t)]\}\\ &= \{X'_{f_0}(f'), X'_{f_1}(f'), \dots X'_{f_{N-1}}(f')\} \end{aligned}\]
因为时频阵列 \(X\) 可能为复数,因此在做 FFT 前可先转换为实数,接着也可选择取对数後再做 FFT(见下面 LogMode 参数说明)。
参数设定
本模组接受时频讯号,输出讯号格式为复数丶单通道的时频 (Spectra)资料结构。各参数定义详如下表。

| 参数名称 | 参数说明 | 预设值 |
|---|---|---|
| LogMode | 设定在 FFT 前对时频图计算对数模式:
以上可参考【Convert From Complex】元件说明 |
None |
| SortType | 选择输出统计报表中,各通道排序的依据:
|
Energy |
| TopN | 设定输出统计报表中显示的通道数量 | 10 |
| View Output Information | 显示输出统计报表。按下右边Dots,或双击元件图示,可开启【Reporter】视窗显示输出统计报表。 |
本元件嵌入了 FFT 元件,而 FFT 元件同时也嵌入了 Remove DC 以及 Windowing 元件,因此本元件还包括了所有嵌入元件的相关参数。详情请参考 【FFT】丶【[Remvoe DC]】丶【Windowing】等元件说明。
范例
载入一双通道音讯档「钢琴版小星星教学」(可由下面参考资料中之连结取得),接上 Compute / Channel / Channel Switch 和 Viewer / Channel Viewer,再用 TFA / Short Term Fourier Transform 或 Enhanced / Fast Short Term Fourier Transform 计算时频图(本范例使用 Fast Short Term Fourier Transform),并用 Viewer / Time-Frequency Viewer 显示之,在 Fast Short Term Fourier Transform 後再接上 Compute / TFA / Secogram,同样也以 Viewer / Time-Frequency Viewer 显示。

「钢琴版小星星教学」音讯档如下,此档案为使用钢琴弹奏单音版的歌曲「小星星」。

Fast Short Term Fourier Transform (或 Short Term Fourier Transform)参数设定如下

Time-Frequency Viewer 参数设定如下:

原始讯号经由 Fast Short Term Fourier Transform 或 Short Term Fourier Transform 计算并调整参数,即可得到下列时频图;深红色的方块为该时间点出现的音阶(红框处),其中不同的音阶可用不同的频率表示,从下图可看出原始讯号的频率大部分在 500Hz以下;较高频率的地方(例如 1000Hz 到 2000Hz 之间),也有部分讯号,此为主讯号的倍频。

将上述的时频数据做二次频谱计算(即 Secogram),可得到下面的时频图,纵轴同样为组成原始讯号的频率,横轴则为特定讯号在原始讯号中出现的频率。Secogram 可统计出每个音阶在整首歌曲出现的频率,由下图可深红色区块分布在横轴 0 到 10Hz 之间,表示歌曲中的音阶最多每 10 秒会重复一次。

相关指令
FFT丶STFT丶Fast STFT丶Time-Frequency Viewer丶Convert From Complex丶 Remove DC丶Windowing
参考资料
钢琴版小星星教学:https://www.youtube.com/watch?v=4WwZCnLSMIc
4.11 Transform
本模组为提供各种讯号处理常用之转换运算。
Fourier Transform / Inverse Fourier Transform:傅立叶转换与反转换。
Discrete Cosine Transform / Inverse Discrete Cosine Transform:离散馀弦转换与反转换。
Haar Wavelet Transform / Inverse Haar Wavelet Transform:小波转换中的Haar 转换及反转换。
Hilbert Transform / Inverse Hilbert Transform:Hilbert转换与反转换。
Auto Correlation:计算讯号的自相关性。
Cross Correlation:计算讯号的互相关性。
Multi-Scale Entropy(MSE):计算讯号之多尺度熵。
Coherence:计算两组讯号间之同调性。
Signal Windowing:计算原始讯号乘上窗函数之转换。
4.11.1 Fourier Transform and Inverse Fourier Transform
傅立叶转换为将时间讯号转换为频率之讯号,藉此检视讯号内之的频率与振幅分布,其结果可以用傅立叶反转换计算回原始的时间讯号。此理论广泛的应用於通信丶声音讯号丶系统分析以及自然科学等领域。
说明
\(x_n\) 为输入讯号的第 \(n\) 个资料,一般而言,则讯号 \(x_n\) 之离散傅立叶转换为 \(X_k\) 定义如下:
\[X_k = \sum_{n=0}^{N-1} x_n \mathrm{e}^{-2\pi ikn/N}, \quad k \in \mathbb{Z}\]
其离散傅立叶反转换之定义如下:
\[x_n = \frac{1}{N} \sum_{n=0}^{N-1} X_k \mathrm{e}^{2\pi ikn/N}, \quad n \in \mathbb{Z}\]
而在 Visual Signal 中,离散傅立叶转换定义为:
\[X_k = \frac{2}{N} \sum_{n=0}^{N-1} x_n \mathrm{e}^{-2\pi ikn/N}, \quad 0 \leq k \leq {N-1}\]
离散傅立叶反转定义为:
\[x_n = \sum_{n=0}^{N-1} X_k \mathrm{e}^{2\pi ikn/N}, \quad 0 \leq n \leq {N-1}\]
当输入讯号,并不是周期性讯号(既讯号头与讯号尾并不连续且可微,此不良结果称为泄漏效应(Spectral Leakage),可在输入讯号中加入窗函数(window)以降低泄漏效应。
在离散傅立叶转换,Resolution 参数可用以增加频率上的解析度。讯号长度越长,讯号的周期性越明确,所以增大 Resolution 可以增加讯号长度,可以增加频率上的解析度。
参数设定
傅立叶转换 FFT 元件接受实数(Real Number),单或多通道(Single/Multi-Channel), Regular 的讯号(Signal)丶声音讯号(Audio)输入;输出格式为复数,单或多通道, Regular 的讯号(Signal)。参数定义与相关设定如下。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Min | 设定傅立叶转换的频率下限。 | 0 |
| Max | 设定傅立叶转换的频率上限,大小依输入讯号不同而异。 | auto |
| Resolution | 调整傅立叶转换时采用之解析度,意思为将整个资料列重复接续在原资料後面。如原资料数列为 1-100,若将 Resolution 设为 2,既为第 101 个数列值同第一个,第 102 个数列值同第二个,以此类推,持续至 200。 | 1 |
| Power of 2 | 设定是否将输入讯号补零至最接近的 \(2^n\) 长度,计算傅立叶转换时可用较有效率的 FFT 演算法。 | False |
| Normalize | 设定是否将转换结果以资料长度常规化。 | True |
| Full FFT | 因为傅立叶转换结果为对称,因此通常只输出一半的资料,频谱最高频率为取样率的一半(Nyquist 频率)。在某些运算可能会需要完整的频谱,可用此参数设定是否输出完整的转换结果。 | False |
Remove DC 相关参数请参考【Remove DC】章节说明,Windowing Function 相关参数请参考【Signal Windowing】 章节说明。
反转换 IFFT 元件接受实数/复数(Real/Complex Number),单或多通道(Single/Multi-Channel),Regular 的讯号(Signal)输入;输出格式为实数,单或多通道,Regular 的讯号(Signal)。
傅立叶反转换不需要参数设定。FFT 元件会将所设定的一些参数一起包在输出频谱资料里面送到下游元件,因此在执行 IFFT 会自动读取这些参数并做出相应的调整,尽量合理还原原来的时域讯号。
范例
本范例(Example)运用 Source 模组产生频率 10 Hz,TimeLength 为 0.9 秒的 Sine Wave,与频率 3 Hz;TimeLength 为 0.9 秒 的 Sine Wave 相加的讯号,先以 Fourier Transform 计算出讯号之频谱,调整 Resolution 与 Window 提高频谱的辨视度,再将频谱以 IFFT 反转换计算出原来的讯号。
於 Network 视窗新增 Source / Sine 建立 Sine Wave,於 Properties 视窗 Name 栏位修改名称为 Sine, freq = 10,Signal frequency 预设即为 10 Hz,调整 TimeLength 栏位为 0.9 秒。


再新增一 Sine Wave,并设定 Signal frequency 为 3 Hz,TimeLength 为 0.9 秒的 Sine Wave,再新增 Compute / Math / Mixer 模组将两讯号相加,并用 Viewer / Channel Viewer 绘出。



於 Mixer 图示上选取 Compute / Transform / Fourier Transform,即可将该讯号作傅立叶转换,用 Channel Viewer 将频谱绘至左边视窗。



由於频率集中在 20 Hz 以下,而 Viewer 的 Properties 内的 Xmax 预设是 500 Hz,因此将该栏位设为 30 Hz,以便於观察频谱。
经傅立叶转换产生的频谱图,可辨识主要之频率在 10 Hz 与 3 Hz 处,不过 3 Hz 附近的 Magnitude 被低估,可能与讯号频率过低有关,现在调整 Resolution 来改善频谱。於 Project 1 点选 FFT 图示,设定 Properties / Resolution 等於 5,结果如下:
改变 Resolution 後, 3 Hz 处之频谱有明显的改善,然而须留意改变 Resolution 後,FFT 输出的资料长度也会随之倍增,譬如本例输入讯号长度为 901,经 FFT,预设 Resolution = 1 的时候,输出长度为 451,Resolution = 5 时输出长度则倍增五倍为 2255。

将 FFT 之 Resolution 调回 1,并在 FFT 图示上点右键选择 Compute / Transform / Inverse Fourier Transform,再用 Channel Viewer 输出,即可得到原输入讯号。


相关指令
Short-Term Fourier Transform丶Haar Wavelet Transform
参考
http://en.wikipedia.org/wiki/Fourier_transform
4.11.2 Discrete Cosine Transform and Inverse Cosine Transform
Discrete Cosine Transform(以下简称 DCT)离散馀弦转换,可将讯号转换为由 Cosine 构成的序列,类似於作离散傅立叶转换的实数部份;讯号转换後大部份能量分布於低频处。其应用在音讯或影像方面的压缩,以及求解偏微分方程的数值方法。
说明
常见的离散馀弦转换可概分八种不同类型,本模组采用的是第二型。令 \(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表长度为 \(N\) 之时间序列,则离散馀弦转换 \(Y = \{y_0, y_1, \dots, y_{N-1}\}\) 定义如下:
\[y_k = C_k \sum_{n=0}^{N-1} x_n \cos \frac{(2n+1)\pi k}{2N}, \quad C_k = \begin{cases} \frac{1}{\sqrt{N}}, \quad \text{for} \quad k = 0\\ \sqrt{\frac{2}{N}}, \quad \text{for} \quad k > 0.\\ \end{cases}\]
其反转换定义如下:
\[x_n = \sum_{k=0}^{N-1} C_k y_k \cos \frac{(2n+1)\pi k}{2N}, \quad C_k = \begin{cases} \frac{1}{\sqrt{N}}, \quad \text{for} \quad k = 0\\ \sqrt{\frac{2}{N}}, \quad \text{for} \quad k > 0.\\ \end{cases}\]
参数设定
离散馀弦转换 DCT 元件接受实数(Real Number),单或多通道(Single/Multi-Channel),Regular 的讯号(Signal)丶声音讯号(Audio)输入;输出格式为实数,单或多通道,Regular 的讯号(Signal)。离散馀弦转换其参数设定如下。

主要调整参数为 RemoveDC 与窗函数等设定。此两者为内嵌元件:RemoveDC 可移除讯号的直流部分,参数设定可参考【Remove DC】章节说明;窗函数可降低泄漏效应对转换的影响,参数设定可参考【Signal Windowing】章节说明。
反转换 IDCT 元件接受实数(Real Number),单或多通道(Single/Multi-Channel), Regular 的讯号(Signal)输入;输出格式为实数,单或多通道,Regular 的讯号(Signal)。反转换无设定参数。
范例
本范例(Example)运用 Source 产生频率 10 Hz丶TimeLength 为 0.9 秒的 Sine Wave 与频率为 3 Hz,TimeLength 为 0.9 秒的 Sine Wave 相加的讯号。先以 DCT 计算出讯号之频谱,再将频谱以 Inverse DCT 计算出原来的讯号。
於 Network 视窗新增 Source / Sine 建立 Sine Wave,於 Properties 视窗调整 TimeLength 栏位为 0.9 秒。


如上面步骤新增一 Signal Frequency 为 3 Hz,TimeLength 为 0.9 秒的 Sine Wave,再新增 Compute / Math / Mixer 将两讯号相加,并用 Viewer / Channel Viewer 绘出。



对 Mixer 後的讯号作 Compute / Transform / Discrete Cosine Transform,并将结果用 Channel Viewer 绘出。图上讯号频谱集中在低频处。


接着作 Compute / Transform / Inverse Cosine Transform,即转换回原讯号。


相关指令
Fourier Transform丶Channel Viewer
参考
http://en.wikipedia.org/wiki/Discrete_cosine_transform
4.11.3 Haar Wavelet Transform
Haar Wavelet 是首先发表的小波函式,由 Alfréd Haar 所提出,小波理论也自此发展。 Haar Wavelet 是最简单的小波,但由於不是连续函数,所以作为基本小波,性能并不是特别好。但 Haar 小波是最简单的正交小波,为二进小波变换的基础,仍有其存在的价值。
说明
Haar Wavelet 小波理论的母小波可由以下函式表示:
\[\Psi(t) = \begin{cases} 1, \quad 0 \leq t \leq \frac{1}{2}\\ -1, \quad \frac{1}{2} \leq t \leq 1\\ 0, \text{otherwise}\\ \end{cases}\]

而 Haar 的傅立叶变换为:
\[\psi(\omega) = \frac{1-2\mathrm{e}^{-i\omega/2}+\mathrm{e}^{-i\omega}}{i\omega}\]

参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio)输入;输出格式为实数,多通道,Regular 的讯号(Signal)。参数说明详见下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Filter Bank Level | 设定正交基底数,从零开始。1 是两组基底,5 是六组基底,以此类推 | 1 |
| Resampling Method | 对输入讯号重新取样时,补点之方法,选项有:最近点(Nearest)丶线性(Linear)丶曲线逼近(Spline)及 MonotonicCubic。请参考【Resampling】章节说明 | Linear |
RemoveDC 为内嵌元件,可移除讯号的直流部分,参数设定可参考【Remove DC】章节说明。
范例
制造一个方波全采用预设值,再叠加上一 White Noise 并设 Noise 振幅为 0.2。


将此混合後之讯号接上 Compute / Transform / Haar Transform,并设定 Filter Bank level 为 3:

明显方波的特性集中在第四条,而在原方波不连续点处,第二与三条依然强烈地保留此跳跃特性,高频杂讯大多集中在第一条。
将第二与第三讯号相乘,以缩小杂讯所造成的影响,再与第四条相加。


如此处理,可见杂讯被消除,原方波的特性被保留下来。
类似於 EMD,可将 HaarTransform 後的结果经由 Hilbert Spectrum 处理,即可看到时频图:


相关指令
Mixer丶Multiplier丶Fourier Transform丶Hilbert Spectrum
参考
http://amath.colorado.edu/courses/4720/2000Spr/Labs/Haar/haar.html
4.11.4 Inverse Haar Transform
Inverse Haar Transform 为 Haar Transform 的反转换,可还原经由 Haar Transform 处理过的原始讯号。
说明
Haar Transform 为小波转换的一种型态,任意之讯号皆可由小波转换之基底的线性组合所合成,而小波转换即是算出此讯号中,所含有的每一个基底的分量,而 Inverse Haar Transform 即为由每一个基底的分量,转换回讯号,此概念与傅立叶转换及反转换类似。小波转换的基底在一维时,具有时间与频率的资讯,在二维时,具有空间位置和频率的资讯。
Haar Wavelet 的母小波可由以下函式表示:
\[ \psi (t)= \begin{cases} 1, 0\leq t \leq \frac{1}{2}\\\\ -1, \frac{1}{2} \leq t \leq 1 \\\\ 0, otherwise\end{cases} \]
Haar Function 在离散时域的定义如下:
\[ \psi_{j,k} (t) \equiv \psi (2^jt-k), t \in \mathbb{R}\]
其中 j 为非负整数以及 \[ 0\leq k\leq 2^{j}-1 \],如
\[ \psi_{0,0} (t) = \psi (t) \] \[ \psi_{1,0} (t) = \psi (2t) \] \[ \psi_{1,1} (t) = \psi (2t-1) \] \[ \psi_{2,0} (t) = \psi (4t) \]
因此可将一讯号源 \(f(t)\) 以 Haar Function 展开表示成
\[ f(t) = c_0 + \sum_{j=0}^{\infty} \sum_{k=0}^{2^j-1} c_{j,k} \psi_{j,k} (t)\]
由以上数学定义,可列出不同维度(dimension)的 Haar Matrix:
2×2 Haar Matrix:
\[ H_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\\\ 1 & -1 \end{pmatrix}\]
4×4 Haar matrix:
\[ H_4 = \begin{pmatrix} \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} \\\\ \frac{1}{2} & \frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} \\\\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 & 0 \\\\ 0 & 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix}\]
当我们要对一时域讯号计算 Haar Transform 时,需将此讯号乘上相同维度(dimension)的 Haar Matrix 和其反矩阵,数学式如下:
\[ B=HAH^T \]
其中 \(A\) 是原始讯号,\(B\) 是经过 Haar Transform 计算後的新讯号,\(H\) 即为 Haar Matrix,\(H^T\) 则为 Haar Matrix 的转置矩阵(\(HH^T=1\))。
当我们想从 \(B\) 逆推回 \(A\),则需对 \(B\) 计算 Inverse Haar Trasform,数学式如下:
\[ A=H^TBH \]
讯号 \(B\) 经由 Inverse Haar Transform 的处理,即可得到原始讯号 \(A\)。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)或声音讯号(Audio)输入。输出为单通道实数之讯号。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Resampling Method | 对输入讯号重新取样时,补点之方法,选项有:最近点(Nearest)丶线性(Linear)丶曲线逼近(Spline)及 MonotonicCubic。请参考【Resampling】章节说明 | Linear |
范例
在 Network 视窗,从 Source 新增讯号源 Sine Wave,接上 Haar Transform (位於 Compute/Transform/Haar Transform),并各自以 Channel Viewer 显示(流程图和 Haar Transform 参数设定如下)。


Sine Wave 的参数使用预设值(Frequency=10,Amplitude=1),经由 Haar Transform 计算後得到一组双通道的新讯号,图形如下:

在 Haar Transform 後接上 Inverse Haar Transform (位於 Compute/Transform),再以 Channel Viewer 显示(Inverse Haar Transform 参数设定: ResamplingMethod=Linear)

下图为经由 Inverse Haar Transform 还原的 Sine Wave。

相关指令
参考资料
1. https://zh.wikipedia.org/wiki/%E5%93%88%E7%88%BE%E5%B0%8F%E6%B3%A2%E8%BD%89%E6%8F%9B
2. https://en.wikipedia.org/wiki/Haar_wavelet#Haar_transform_and_Inverse_Haar_transform
4. http://mathworld.wolfram.com/HaarFunction.html
4.11.5 Hilbert Transform
Hilbert Transform 为对输入讯号 \(x(t)\) 与 \(\frac{1}{\pi t}\) 作折积(即 Convolution),将一个实数的时间讯号转换为一个复数平面上的解析讯号,而它的实部为输入讯号,虚部则是对输入讯号做折积後的部份,根据解析讯号的性质可定义出讯号瞬时的瞬时频率丶瞬时振幅,其应用在通讯系统及无线电讯号处理及分析上有相当不错的成果。
说明
若 \(x(t)\) 代表时间序列,则它的 Hilbert Transform \(y(t)\) 定义为:
\[y(t) = H[x(t)] = \frac{1}{\pi} \textit{P.V.} \int_{-\infty}^{\infty} \frac{x(\tau)}{t-\tau} d\tau\]
并定义一解析函数 \(z(t)\):
\[z(t) = x(t) + i y(t) = a(t) \mathrm{e}^{i\theta(t)}\text{,}\\ a(t) = \sqrt{x^2(t) + y^2(t)}\text{,} \theta(t) = \tan^{-1}\frac{y(t)}{x(t)}\text{。}\]
其中 \(a(t)\) 为振幅 (亦原讯号之包络线),而 \(\theta(t)\) 为相角;在解析函数 \(z(t)\) 的极座标表示中,可进一步定义 Hilbert Transform 的瞬时频率 \(\omega(t)\)( instantaneous frequency):
\[\omega(t) = \frac{d\theta(t)}{dt}\text{。}\]
除此之介绍外,可参考【Hilbert Spectrum】章节说明。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel ),Regular 的讯号(Signal)丶声音讯号(Audio)输入;输出格式为复数,单通道, Regular 的讯号(Signal)。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 选择转换的方法:
|
HilbertTransform |
| Output Type | 选择转换结果呈现的格式,选项有:
|
Quadrature
|
| Inst. Freq. Method | 输出格式选择 InstantFrequency 时,可选择计算瞬时频率的方法:
|
Robust |
| Filter Length | 瞬时频率方法选择 Robust 时,可设定滤波器长度,为数值微分的取样点数,表示由多少离散函数点来决定此点的微分值;需为介於 5~999 间,并小於讯号长度的奇数 | 51 |
RemoveDC 为内嵌元件,可移除讯号的直流部分,参数设定可参考【Remove DC】章节说明。
范例
用 Source 模组产生一个 Sine Wave 讯号,直接作 Hilbert Transform,并藉调整 Hilbert Transform 的 Output Type 以了解各参数项之意义。
先用 Source / Sine Wave 产生 Sine Wave,用 Viewer / Channel Viewer 绘出讯号,再於 Sine 图示点选 Compute / Transform / Hilbert Transform 直接作计算, Output Type 选择 Complex,用 Viewer / Channel Viewer 绘出结果。(须注意输出讯号是复数,而 Channel Viewer 的 Properties / YValueType 预设是 Magnitude,因此在Viewer 上画的是输出讯号的 Magnitude)。



若将 Sine 与 Hilbert Spectrum 输出者画在同一个 Channel Viewer 上,可见 \(a(t)\) 确实为原讯号之包络线。

对讯号源 Sine 再作一次 Hilbert Transform,将 Properties 内 Hilbert / Output Type 调整为 Split Complex,这样 Hilbert Transform 会把实丶虚部分为两个通道,用 Viewer / Channel Viewer 即绘出实部与虚部的值,其中黑线为实部,蓝线为虚部。


再将 Hibert2 再作一次 Hilbert Transform,将 Properties 内 Hilbert / Output Type 调整为 Phase, 可看到虚部为实部对相位角作 \(90^\circ\) 的相位偏移(Phase Shift)。


重覆步骤 2 的作法,仅改变 Output Type 为 InstantFrequency,Inst. Freq. Method 设定为 Simple,图示名称也改为Instant Frequency,结果为输入讯号在每个时间点上的瞬间频率。


Channel Viewer 不能绘出解析函数 Z(t) 在复数平面的图型,必需使用 Viewer / XY Plot 的功能。将 Split Complex 的输出用 Viewer / XY Plot 即可绘出解析函数 Z(t) 在复数平面的图型,改变 XY Plot 的 ViewerWidth 与 ViewerHeight 为相等的数值(如 350),就能使 X Y 轴的比例一样。


相关指令
参考资料
http://en.wikipedia.org/wiki/Hilbert_transform
4.11.6 Auto Correlation
自相关性就是一个时间讯号与它自身作折积(Convolution),以作为相关性分析之依据,自我相关性分析可了解一个讯号在时间尺度上改变的有多快,及观察讯号是否有周期性的变化。
说明
如果讯号为遍历讯号(ergodic,即讯号的整体统计特性可以决定於一段随机取样),则自相关的的解析定义为:
\[\begin{aligned} R_{xx}(\tau) & = \lim_{T \to \infty} \frac{1}{T} \int_0^T x^*(t) \cdot x(t+\tau) dt\\ & = \lim_{T \to \infty} \frac{1}{T} \int_0^T x(t) \cdot x^*(t-\tau) dt \end{aligned}\]
其中 \(x^*(t)\) 为 \(x(t)\) 之共轭,\(T\) 为讯号之周期,\(\tau\) 为时间延迟。
在离散化的情况下,令 \(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表长度为 \(N\) 之时间序列,相关公式为:
\[\begin{aligned} R_{XX}[j] & = \lim_{T \to \infty} \frac{1}{N} \sum_{i=0}^{N-1} x^*_ix_{i+j}\\ & = \lim_{T \to \infty} \frac{1}{N} \sum_{i=0}^{N-1} x_i x^*_{i-j} \end{aligned}\]
Visual Signal 采用 Intel IPP 函式库的公式,有三种类可选(Normal丶Biased丶Unbiased):
\[R_{XX}[j] = \sum_{i=0}^{N-1} x^*_i x_{i+j}, \quad 0 \leq j < N \quad \text{(normal)},\] \[R_{XX}[j] = \frac{1}{N} \sum_{i=0}^{N-1} x^*_i x_{i+j}, \quad 0 \leq j < N \quad \text{(biased)},\] \[R_{XX}[j] = \frac{1}{N-j} \sum_{i=0}^{N-1} x^*_i x_{i+j}, \quad 0 \leq j < N \quad \text{(unbiased)},\]
并加以镜像对称化,即
\[R_{\textit{mirrored}}[j] = \begin{cases} R_{XX}[-j], \quad -N < j < 0\\[1em] R_{XX}[j], \quad 0 \leq j < N,\\ \end{cases}\]
其中 \(R_{\textit{mirrored}}\) 的长度为 \(2N-1\),以 \(R[j=0]\) 为对称点。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio)输入;输出讯号格式为实数,单通道,Regular 的讯号。

本元件唯一参数为类别参数(Type)可选择 Normal丶Biased丶Unbiased 三种自相关性(见上面说明方程式)。
范例
本范例分别对 Sine Wave 与一个 White Noise 讯号作自我相关分析,再以两输入讯号混合後之讯号作自我相关分析。
於 Network 新增一个 Source / Sine Wave,Properties / DataLength 改为 2 秒,讯号频率为 10 Hz 不变,以此讯号作 Compute / Transform / AutoCorrelation ,并用 Viewer / Channel Viewer 绘出结果。



上图即为 Sine Wave 在不同延迟(既原式中的 \(\tau\))下之自我的相关性,对 AutoCorr 的输出作 FFT,可发现 AutoCorr 的输出讯号其频率也等於 10 Hz,验证对一个周期性讯号作自我相关转换,则结果保有与输入讯号同样的频率。


创造一个 White Noise,再重复步骤 1 前半部份的作法,结果如下。


以 Compute / Channel / Mixer 将 Sine 与 Noise 混合後作自我相关分析,可得到下面的结果:

相关指令
参考
http://en.wikipedia.org/wiki/Autocorrelation
4.11.7 CrossCorrelation
CrossCorrelation,交互关联是将一时间讯号与另一时间讯号作旋积(Convolution),以作为相关性分析之依据;通常将不了解的讯号与一已知性质的讯号作交叉相关分析,藉此探求该讯号之特性。
说明
CrossCorrelation 之解析数学定义为:
\[(x * y)(t) = \int_{-\infty}^{\infty} x^*(t) y(t+\tau) d\tau,\]
其中 \(x^*(t)\) 为 \(x(t)\) 之共轭,\(\tau\) 为时间延迟。
在离散数列的情况下,假设 \(X = \{x_0, x_1, \dots, x_{N-1}\}\)丶 \(Y = \{y_0, y_1, \dots, y_{M-1}\}\) 在延迟为 \(j\) 的交互关联定义为:
\[R_{XY}[j] = \sum_{i=0}^{N-1}x^*_i y_{i+j}, \quad -(N-1) \leq j < M\]
交叉相关转换结果讯号长度为 \(L=N+M-1\),\(R_{XY}[j]\) 不具对称性,其最大值遵守下述的不等式:
\[R_{XY}[j] \leq \sqrt{R_{XX}[0] \cdot R_{YY}[0]}\]
若对两输入讯号在统计上来说是两独立事件,则 \(R_{XY}[j] = R_{YX}[j]\);若是分析讯号对自身的相关性,计算 \(R_{XX}[j]\),此分析即为 Auto Correlation。
Visual Signal 采用 Intel IPP 函式库的公式:
\[R_{XY}[j] = \sum_{i=0}^{N-1}x^*_i y_{i+j+a}, \quad 0 \leq j < L, \quad -L \leq a < L\]
其中
\[y_j = \begin{cases} y_j, \quad 0 \leq j < M\\[1em] 0, \quad \text{otherwise}\\ \end{cases}\]
并加以镜像化,即:
\[R_{\textit{mirrored}}[j] = \begin{cases} R_{YX}[j + L], \quad -M < j < 0, \quad a = -L\\[1em] R_{XY}[L - j - 1], \quad 0 \leq j < N, \quad a = -(L-1)\\ \end{cases}\]
在此定义下,如果 \(X\) 讯号与 \(Y\) 讯号有相关性,\(R_{\textit{mirrored}}\) 中最大波峰所位於的时间(由 \(j=0\) 开始算起)即为 \(Y\) 讯号相对於 \(X\) 讯号的延迟时间。
参数设定
本模组接受实数(Real Number),单通道(Single Channel),Regular 的讯号(Signal )丶声音讯号(Audio)输入,且须有两个输入讯号;输出讯号格式为实数,单通道, Regular 的讯号。输入两个讯号长(可以不一样,不过限制是两讯号的取样频率与时间单位必须一样)。

本元件唯一参数为交互相关参数报告 Reporter。点击栏位最右方
或双击元件图示即可开启 Reporter 对话窗显示两个输入各通道的相对延迟时间,如下图:

有关 Reporter 对话窗可参考【Reporter】章节说明。
范例
先产生一组 White Noise 作原讯号,截取其中一段资料,产生另一个杂讯合成出第二组讯号,以这两组讯号作 Cross Correlation 观察两者间关系。
产生一个 Source / Noise,Properties / TimeLength 改为 5 秒,再用 Viewer / Channel Viewer 绘出。



点选 Noise,按右键选择 Compute / Channel / Data Selection,於 Properties / EndPosition 栏改为 3.5,然後接着连上 Compute / Channel / Time Shift, Properties / Shift Value 设为 1.5,目的为将原讯号 0 ~ 3.5 秒的资料移至新讯号 1.5 ~ 5 秒处。



再产生一组 TimeLength 为 1.5 秒的 Noise,将此 Noise 与 Time Shift 後的讯号作 Compute / Channel / Mixer 形成第二个讯号源,再以 Channel Viewer 绘出。


将讯号 Noise 与 Mixer 一起作 Cross Correlation,再用 Channel Viewer 绘出结果。


上图代表输入讯号 1 与讯号 2 在时间点为 -1.5 sec 时有很强的相关性,基本上第二个输入讯号在 1.5 sec 至 5 sec 的资料与第一个输入讯号 0 秒至 3.5 秒的资料是完全一样的,此结果符合两输入讯号的特性。
相关指令
Auto Correlation丶Data Selection丶Mixer丶 Time Shift
4.11.8 MSE
MSE 是 Multi-Scale Entropy(多尺度熵)之缩写,是分析系统的时间序列的复杂度。复杂度越高代表系统愈健康。此法可应用於分析生物(biological)丶地球科学(earth science)及机械振动(mechanical vibration)的讯号。
此复杂度的意义与传统熵(Entropy)值有所不同;在传统熵值观念中若系统愈规则熵值愈低反之系统愈混乱熵值愈高。在新的観念中,复杂度愈高代表系统愈健康(在此高低是相对量),系统太规则或系统太混乱都是不健康的状况(因为此时复杂度较健康系统低)。将每个尺度的时间序列,计算出对应的熵值,即为多尺度讯号熵分析,讯号的复杂度则展现在多种尺度下熵值的变化。

计算多尺度熵有两个步骤:
1. Coarse-Graining
假设有一数列 \(x_i = \{x_0, x_1, \dots, x_{N-1}\}\),在尺度(scale)为\(\tau\) 下,用 Coarse-Graining 方法得出一个新序列 \(y_j^{(\tau)}\),定义如下:
\[y_j^{(\tau)} = \frac{1}{\tau} \sum_{i=j\tau}^{(j+1)\tau-1} x_i, \quad 0 \leq j < n \equiv \frac{N}{\tau}\]
Coarse-Grained 数列 \(y_j^{(\tau)}\) 中每个点即为在尺度 \(\tau\) 下每段「Coarse-Grain」\(\{x_{j\tau}, x_{j\tau + 1}, \dots, x_{(j+1)\tau - 1}\}\) 之平均数,如下图:

2. Entropy
接着对每个尺度 \(\tau\) 下的 Coarse-Grained 数列 \(y^{(\tau)}\) 计算 Entropy (\(En_{\tau}\)),得出一个 Entropy vs. \(\tau\) 序列:
\[En_{\tau} = \{En_1, En_2, \dots, En_T\}, \quad T \equiv \text{max. scale} < N\]
本模组中 Entropy 的计算的有四种选择:
Shannon
Shannon Entropy 为最基本的熵定义:
\[ S_{En}^{(\tau)}(h) = -\sum_{i=0}^{h - 1} p_i^{(\tau)} \log_2 p_i^{(\tau)} \]
\(p^{(\tau)}\) 定义为 Coarse-Grained 数列 \(y^{(\tau)}\) 之常规化分布统计数列,亦即概率分布:
\[p^{(\tau)} = \{p_0, p_1, p_2, \dots, p_{h-1}\}, \quad 0 \leq i < h\]
计算方法可将 \(y^{(\tau)}\) 数列由 \(y_{min}\) 至 \(y_{max}\) 的数值范围分割为 \(h\) 个分格,每一个分格统计 \(y^{(\tau)}\) 数列在该分格数值范围的数目,再除以数列长度 \(n\)。
Spectral
Spectral Entropy 利用 Coarse-Grained 数列 \(y^{(\tau)}\) 的 Power Spectrum 频谱,以其频谱总和常规化後当作概率分布 \(p^{(\tau)}\),再用上述 Shannon Entropy 定义计算出每个尺度 \(\tau\) 的熵值。上式之 \(h\) 在这里定义为频谱之频率分格数。
Approximate
\[A_{En}^{(\tau)}(m, r, n) = \frac{1}{(n-m)} \ln \displaystyle\sum_{i=0}^{n-m-1} \ln \frac{n_i^m}{n_i^{m+1}}\]
\(n_i^m\) 为 Coarse-Grained 数列 \(y^{(\tau)}\) 中所有距离很接近之长度为 \(m\) 的子数列向量数目,定义如下:
数列 \(y^{(\tau)}\) 中由 \(i\) 开始,长度 \(m\) 之子数列向量定义为
\[u_m(i) = \{y_i, y_{i+1}, \dots, y_{i + m-1}\},\quad 0 \leq i < n - m, \quad m < n\]
两个子数列 \(u_m(i), u_m(j)\) 之间的距离定义为
\[d[u_m(i),u_m(j)] = \max\{|u(i+k)-u(j+k)|\}, \quad 0 \leq k < m\]
则\(n_i^m\) 定义为满足以下条件之的子向量数目:
\[d[u_m(i), u_m(j)] \leq r \cdot \sigma\]
其中 \(r\) 为容忍误差值,\(\sigma\) 为输入资料标准差。
Sample
Sample Entropy 改良於上述 Approximate Entropy,使计算出的熵值在大范围的 \(r\), \(m\), \(n\) 变数中更有一致性,因此可以用更短的数列长度增加计算效率。Sample Entropy 定义如下:
\[S_{En}^{(\tau)}(m, r, n) = \ln \frac{\displaystyle\sum_{i=0}^{n-m-1} n_i^m}{\displaystyle\sum_{i=0}^{n-m-1} n_i^{m+1}}\]
此处 \(n_i^m\) 定义与上述雷同,唯一不同处为在比较子数列向量之间的距离时忽略同一向量,即 \(i = j\) 的情况。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel ),Regular 的讯号(Signal)丶声音讯号(Audio)输入;输出讯号格式为实数,单通道或多通道,Regular 的讯号。参数说明详见下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Entropy Method | 选择熵的计算方法(见上文说明):
|
Sample |
| MinScale | 最小尺度。作多尺度分析时设定尺度缩放之下限值 | 1 |
| MaxScale | 最大尺度。作多尺度分析时设定尺度缩放之上限值 | 20 |
| ScaleStep | 尺度步长,於尺度上限以下取一步幅长,依此步幅长递增(减)尺度至最大(小)尺度。 | 1 |
| MatchPoint | Entropy Method 设定为 Sample 或 Approximate 时,可设定比较相似度之数列长度,即上述相关定义中之 \(m\)。 | 2 |
| MatchTolerance | Entropy Method 设定为 Sample 或 Approximate 时,可设定判断相似度所设定的容忍误差值,即上述相关定义中的 \(r\),单位为输入资料之标准差 | 0.15 |
| BinCount | Entropy Method 设定为 Shannon 时,可设定计算概率之分格数,即上述相关定义中的 \(h\) | 10 |
| Eable Composite MSE | 设定是否开启组合式 MSE,即加入少量白噪音多次重复计算 MSE 後合并结果,可用较少的资料得出较平滑的 MSE 结果 | False |
范例
本范例针对人体生理讯号为分析:
於 Project 视窗下,载入两笔资料,分别为年轻人及老年人站立时的 Center of Pressure(COP),在 X 方向随时间的变化,利用 Viewer / Channel Viewer 观察结果。

为了解保持身体平衡的能力,再将其原始讯号经过微分,得到 COP 的速度变化,如下图。

最後将两速度讯号经过 Compute / Transform / MSE 计算,利用 Viewer / Channel Viewer 观察结果,发现年长者平衡感较差,COP 之改变较无弹性,是故熵随尺度变大而衰减;而年轻人平衡感好,COP 移动灵活,熵几不随尺度而改变。


再讨论另一个例子,18 岁健康年轻人及 55 岁健康中年人,分别量取其 ECG,ECG 结果如下图显示。

分别将两个人的 ECG 分别计算出两心跳间的时距,即所谓的 R-R Interval,最後利用 MSE 计算,其结果如下图。并可以解释年轻人的 ECG 与中年人的 ECG 作比较,年轻人的讯号复杂度较中年人来的高,年轻人心脏比较能应付外在各种变化,并进行调节心脏跳动。

相关指令
Noise丶R-R Interval丶Channel Viewer
参考资料
1. Pincus, S. M., Approximate entropy as a measure of system complexity, Proceedings of the National Academy of Sciences, USA, Vol. 88, pp. 2297-2301 (1991).
2. Costa M., Goldberger A.L., Peng C.-K. Multiscale entropy analysis of physiologic time series. Phys Rev Lett 2002; 89:062102.
3. Costa M, Peng C-K, Goldberger AL, Hausdorff JM. Multiscale entropy analysis of human gait dynaiics. Physica A ,2003;330:53-60.
4. Costa M., Goldberger A.L., Peng C.-K. Multiscale entropy analysis of biological signals. Phys Rev E 2005;71:021906.
4.11.9 Coherence
同调性(Coherence)用於评估两组讯号间频率之相关性。输入为两组相同时序与取样频率之讯号,输出为频率之函数,其數值介於 0 与 1 之间。
说明
给定两时域讯号 \(x(t)\) 和 \(y(t)\),Coherence 数学定义:
\[C_{xy}(f)=\frac{|G_{xy}(f)|^2}{G_{xx}(f)G_{yy}(f)}\]
\(G_{xx}(f)\) 和 \(G_{yy}(f)\) 各为 \(x\) 和 \(y\) 的功率谱密度 (power spectral density, PSD), \(G_{xy}(f)\) 为 \(x\) 和 \(y\) 的交叉谱密度 (cross-spectral density)。
\(0 \leq C_{xy}(f) \leq 1\),\(0\) 为完全不同调,\(1\) 为完全同调。
参数设定
本模组接受实数 (Real Number),单通道 (Single Channel) 或多通道 (Multi-Channel) ,Regular 的讯号 (Signal) 或声音讯号 (Audio) 输入。输出为以频率为函数之 Coherence 值。

主要调整参数为 RemoveDC丶滚动窗计算丶与窗函数等设定。此三者为内嵌元件:RemoveDC 可移除讯号的直流部分,每个输入各有一个 RemoveDC 栏位可分别设定,参数设定可参考【Remove DC】章节说明;滚动窗计算参数可参考【Rolling Window】章节说明;窗函数应用於每个滚动窗,可降低泄漏效应对转换的影响,参数设定可参考【Signal Windowing】章节说明。
范例
建立两正弦波,并以 Coherence 进行分析。

以 Source / Sine Wave 建立正弦波,调整 Property / SingalFreq 为 100,而得频率为 100Hz 之正弦波。

点选 Sine 按右键选择 Compute / Transform / FFT Viewer Marco,以频谱图示意其正弦波之频率。

重复 1. 至 2. 步骤,产生一频率为 200Hz 之正弦波与其频谱图。


点选 100Hz 之 Sine 讯号源按右键选择 Compute / Transform / Coherence,并将 200 Hz 之 Sine 讯号源与 Cohere 连结。
点选 Cohere 按右键选择 Viwer / Channel Viewer,显示 Coherence 之结果。

观察结果可发现於 100Hz 及 200Hz 之 Coherence 值接近於 0,表示两组讯号於此频率为不同调;而其它频段之 Coherence 值为 1,表示两组讯号於其它频率为同调。因此两组讯号仅分别为 100Hz 及 200Hz,而无其他频率存在,故在其它频段皆为同调。
参考资料
1. https://en.wikipedia.org/wiki/Coherence_(signal_processing)
1. http://www.ym.edu.tw/~cflu/MedSigProcess_Class10_CFLu.pdf
1. https://www.mathworks.com/examples/signal/mw/signal-ex53096804-coherence-function
4.11.10 Signal Windowing
Signal Windowing是指在定义的有限时间区间内,将原始讯号乘上一个特定形式的窗函数 (Window Function),以便後续做讯号处理,任何函数与窗函数之积仍为窗函数。窗函数在频谱分析丶滤波器设计丶波束形成以及音频数据压缩等方面有广泛的应用。
说明
Signal Windowing提供“None”丶“Barlett”丶“Blackman”丶“Flat Top”丶“Hanning”丶 “Hamming”丶“Guass”七种窗函数可选择,定义与图形如下说明:
None:
\[w[n]=1, 0 \leq n \leq N-1\]
\[w[n]=0, otherwise\]

Barlett:
\[w[n]=\frac{2n}{N-1}, 0 \leq n \leq \frac{N-1}{2}\]
\[w[n]=2-\frac{2n}{N-1}, \frac{N-1}{2} \leq n \leq N-1\]
\[w[n]=0, otherwise\]

Blackman:
\[w[n]=\frac{\alpha-1}{2}-\frac{1}{2} cos(\frac{2 \pi n}{N-1})+\frac{\alpha}{2} cos(\frac{4 \pi n}{N-1}), 0 \leq n \leq N-1\]
\[w[n]=0, otherwise\]

FlatTop:
\[w[n]=1-1.93 cos(\frac{2 \pi n}{N-1})+1.29 cos(\frac{4 \pi n}{N-1})-0.388 cos(\frac{6 \pi n}{N-1})+0.032 cos(\frac{8 \pi n}{N-1}), 0 \leq n \leq N-1\]
\[w[n]=0, otherwise\]

Hanning:
\[w[n]=0.5-0.5 cos(\frac{2 \pi n}{N-1}), 0 \leq n \leq N-1\]
\[w[n]=0, otherwise\]

Hamming:
\[w[n]=0.54-0.46 cos(\frac{2 \pi n}{N-1}), 0 \leq n \leq N-1\]
\[w[n]=0, otherwise\]

Gauss:
\[w[n]=e^{-\frac{1}{2}(\frac{n-(N-1)/2}{\theta(N-1)/2})^{2}}, \theta \leq 0.5\]
\[w[n]=0, otherwise\]

参数设定
| 参数名称 | 说明 | 预设值 |
|---|---|---|
| Window | 选择窗函数(Window Function)的类型,共有None丶Bartlett丶Blackman丶FlatTop丶Hanning丶Hamming丶Gauss七种类型 | None |
| Enhanced | 选择True,可额外调整Normalized丶Half Window丶Alpha丶Peak等参数,详见以下介绍 | False |


| 参数名称 | 说明 | 预设值 |
|---|---|---|
| Normalized | 是否将函数值正规(True/False) | True |
| Half Window | 设定 Half-Windowing 的位置(Center/Left/Right) | Center |
| Alpha | 设定 Blackman丶Gauss 和 Flattop 的 \(\alpha\) 值 | Auto |
| Peak | 设定 Gauss 的 peak 值 | Auto |
范例
从Source/Sine Wave新增一正弦波,利用Compute/Transform做傅立叶转换FFT,再用 Channel Viewer观察Sine Wave的频谱图。接下来利用Compute/Transform/Signal Windowing改变Sine Wave的窗函数(Window Function),并且再做傅立叶转换FFT和 Channel Viewer观察不同窗函数对Sine Wave的影响及变化。


Sine Wave 原始参数设定如下。

FFT 参数设定如下,注意参数 Window 需选择「None」,避免和 Signal Windowing 重复运算。

Sine Wave(Frequency=10Hz, Amplitude=1)原始讯号和 FFT 频谱图如下。

设定Signal Windowing参数:Window选择“Bartlett”,Enhanced选择“False”。下图为 Sine Wave经过Bartlett Window运算後的图形,可看出FFT频谱图较原始讯号宽。


设定Signal Windowing参数:Window选择”FlatTop”,Enhanced选择“False”。下图为 Sine Wave经过FlatTop Window运算後的图形,可看出Sine Wave在0.3-0.7之间较明显;频谱图中的peak,顶部明显较Bartlett Window宽,两侧杂讯也较少。


相关指令
参考资料
https://zh.wikipedia.org/wiki/%E7%AA%97%E5%87%BD%E6%95%B0
5 讯号格式转换模组(Conversion)
5.1 Change X-Axis Unit
讯号资料读取进来之後,常会碰到需要转换时间单位的状况,过去可能必须重新输入讯号档,再设定时间,现在可以利用Change X-Axis Unit直接换算时间。除转换时间单位外,本模组有两个额外的功能:
- 输入资料为频谱时,可将频谱的横座标(X-Axis)由频率进行转换成各种周期单位。
- 输入资料为时频图时,可决定是否改变纵轴单位。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 的讯号(Signal)丶声音(Audio) 讯号以及时频(Spectra)资料;输出讯号格式为实数丶复数,单通道丶多通道的 Regular 讯号或时频(Spectra)资料,若参数 Convert To Period 调整为 True,则输出讯号之格式将改变(横座标轴不为等间距),由 Regular 转变成 Indexed。
输入资料为时序资料时:

输入资料为频谱资料时:

输入资料为时频资料时:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Convert to period | 当资料的 X 轴为频率时会出现此参数。将原 X 轴为频率转换为各种周期。 | False |
| Abscissa Unit (输入 X 轴为时间) | 设定 X 轴单位,程式会由输入讯号的 X 轴单位自动换算成新的 X 轴单位。
|
sec |
| Abscissa Unit (输入 X 轴为频率) |
|
Hz |
| Auto Ordinate Unit | 设定为「True」时自动决定 Y 轴单位(此为预设),通常对应 X 轴之单位,例如 X 轴单位为 sec 时,Y 轴单位自动设定为 Hz。 本参数设为「False」时可由以下 Ordinate Unit 参数手动设定单位。 |
True |
| Ordinate Unit | 当 Auto Ordinate Unit 为 False 时会出现此参数,可设定 Y 轴单位。
|
Hz |
范例
用 Source / Sine Wave 产生一正弦波讯号,预设讯号之讯号频率为 10 Hz,取样频率为 1000 Hz,长度 1 秒。现在先改变 Sine的参数值,Properties / TimeUnit 变为 min 分钟,SamplingFreq 调整为10000 Hz,SignalFreq 调整为 600 Hz,得到一组 X 轴单位为分钟,而讯号频率仍维持 10 Hz 的讯号。
再连接 Compute / Transform / Fourier Transform 做傅立叶转换,并连上Channel Viewer,可得下面图形,在此 X 轴之座标是频率,单位是 cycles per minute。



在此例中,FFT 的横座标为 cycles per minute,现将 FFT 输出接上 Change X-Axis Unit,在 Properties / Abscissa unit 调为 Hz,然後再以 Channel Viewer 绘出。可看到 X 轴已变更以 Hz 为单位。



另外可再调整 Properties / Convert to period 为 True,并将 Abscissa Unit 设为 cycle per hour,可将 X 轴由频率转变为周期,并以小时为单位,如下图所示。


时频分析的结果输出至 Change X-Axis Unit 能更改时间轴单位,并且也改变频率的单位(时频图的频率在 Y 轴)。回到讯号源 Sine,以 Compute / TFA / Enhanced Morlet Transform 做时频分析後再接上 Change X-Axis Unit,调整 Properties / Abscissa unit 为毫秒(msec),再用 Viewer / Time-Frequency Viewer 绘出,可看到时频轴图上的 X 轴(时间域)变成 msec,Y 轴(频率轴)已变更为 KHz,即为 1 / msec。



如欲改变自动设定之 Y 轴单位,可以将 Properties / Auto Ordinate Unit 设为 False,并将 Properties / Ordinate Unit 由 kHz 改为其他单位,例如 Hz(如下图):


相关指令
Sine丶Channel Viewer丶Time-Frequency Viewer丶 Fourier Transform丶Enhanced Morlet Transform
5.2 Convert to Audio
变更讯号之资料类型。将资料类型由讯号(Signal)转换为声音讯号(Audio)。
说明
Convert to Audio 的输出资料格式是以 Microsoft Wave Format 所规定的架构作设定,分为三区块:RIFF丶FMT 与 DATA,内容分述如下。
RIFF:RIFF 内规定此档案格式(format)与档案长度等资讯,格式就是 WAVE。
FMT:包含编码类型丶取样频率丶声道数丶byte rate 等声音讯号的相关参数。
DATA:包含声音讯号的原始资料。
参数设定
本模组接受实数(Real Number),单通道(Single Channel)或两个通道的讯号(由於目前只能支援输出双通道的声音), Regular 的讯号或声音讯号;输出讯号格式为实数,单通道或多通道,Regular 的声音讯号。参数定义如下表。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Auto Sample Rate | 是否自动侦测输入讯号的 Sample Rate,并根据原讯号设定输出声音的取样频率。 | True |
| Sample Rate | 代表声音档每秒钟取样的点数(会影响声音频率的解析度)。参数选项包括1000丶2000丶4000丶8000丶11025丶16000丶22050丶32000丶 44100丶48000丶96000丶144000丶192000 Hz丶Custom,若设定为 Custom 则会有 Custom Sample Rate 的参数输要设定。 | 44100 |
| Custom Sample Rate | 使用者自行设定输出声音的取样频率。 | 44100 |
| New Total Time | 依据新的取样频率重新计算的讯号时间。 | 0 |
| Bits Per Sample | 代表每个点储存值之大小(会影响声音强度的解析度)。参数选项包括 8丶16丶24丶32 bps。 | 16 |
范例
以讯号资料档 chirp10000.tfa 作输入,经过 Convert To Audio 後讯号格式变为声音讯号。
按下 Network Window 工具列的
,或以 Source / Import Data 读取讯号档,档案 chirp10000.tfa 位在安装目录下 data 资料夹(预设为 C:\Program Files\AnCad\Visual Signal\demo\Basic)。

於 Properties 下可以看到此讯号的 Sampling Frequency 为 10000,Data Length 等於 20001,Unit 是 sec,所以此讯号长度等於 20000 / 10000 = 2 秒。

另外打开 Properties 下的 Module 类别,项目 OutputDataType 有说明此模组输出之讯号格式与类型,这部份可参考第一章关於 Properties 的说明。此项目内容为 Real Single-Channel Signal of Rank-1(regular) Data,因此 chirp10000 之资料类别是 Signal。

在 chirp10000 直接作 Conversion / Convert To Audio。

在 Properties 下可看到 Samplerate = 10000 Hz,Bits Per Sample = 16 bps。

而再打开 Properties 的 Module,里面的 OutputType 已变更为 Audio。

若在 ToAudio 後方作 Viewer / Channel Viewer,则可以利用 Viewer 右上方之工具拨放此声音讯号。


相关指令
相关参考
Microsoft Wave Format:
http://ccrma.stanford.edF/CCRMA/Courses/422/projects/WaveFormat/
5.3 Convert to Regular
变更讯号资料之时间轴设定。将资料时间轴由非等时间距(Indexed)转换为等时间距(Regular)。
说明
使用 Import Data 读取 .txt丶.csv 等纯文字档时,若有一行或列的资料是时间轴座标,会建议利用 Text Importer 中的 Specify Time Column / Row 功能来读取指定的时间轴资料,此时讯号格式之时间类别将被标示为 Indexed,即假设资料之取样间隔大小不一,而大部份模组会要求讯号格式为 Regular,因此透过本模组可将 Indexed 讯号转换为等时间距排列(Regular)的讯号。
Indexed 格式之假设时间间隔为不等间距,转换成等时间距讯号的过程可选择对输入讯号重新取样,重新取样的方法为依照资料汇入时所估算之间距(请参考【Text Importer】章节之 Indexed Interval Option 参数说明),利用内插法产生等间距资料。
假设输入讯号为 \(X=\{x_0, x_1, \dots, x_{N-1}\}\), 资料个数为 \(N\),输入讯号 \(X\) 之非等间距时间轴 \(T = \{t_0, t_1, \dots, t_{N-1}\}\) 可表示为:
\[t_i = t_0 + \sum_{k=1}^i \Delta t_k, \quad 0 < i < N\]
其中 \(t_i\) 代表讯号资料点 \(x_i\) 对应的时间,时间起始点是 \(t_0\),\(\Delta t_k\) 为 \((t_{k-1}, t_k)\) 之间的时间间隔。Indexed 格式的时间轴需要完整的 \(T\) 才能定义。
输出讯号则为 \(Y = \{y_0, y_1, \dots, y_{M-1}\}\),资料个数为 \(M\),输出讯号 \(Y\) 之等间距时间轴 \(T' = \{t_0, t'_1, \dots, t'_{M-1}\}\) 可表示为:
\[t'_j = t_0 + j \Delta t', \quad 1 < j < M\]
其中 \(t'_j\) 代表等间隔排列(Regular)的讯号时间轴,\(\Delta t'\) 代表重新取样的等间隔,\(M\) 代表输出讯号之资料个数。Regular 格式的时间轴只需要 \(\{t_0, \Delta t', M\}\) 即可定义。最重要的 \(\Delta t'\) 值可在汇入资料时由不同方法估算,见【Text Importer】章节之 Indexed Interval Option 参数说明。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Indexed 的讯号;输出讯号格式为实数丶复数,单通道或多通道,Regular 的讯号。

参数 AutoDetect 可让使用者选择是否要自订输出讯号之 Sampling Period,因为输入的 Indexed 讯号各资料点间的取样间隔大小不一,所以若 AutoDetect 设为 True,则模组会自动侦测输入讯号里估算的间距值作为参数 Sampling Period 的值(此值在 Indexed 格式资料汇入时就会计算,请参考【Text Importer】章节之 Indexed Interval Option 参数说明)。AutoDetect 设为 False 时,使用者可自订参数 Sampling Period。
参数 Interpolation Method 可选择重新取样时采用的内插法,相关内容说明如下:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Interpolation Method | 转换时采用的内插方法:
|
Linear |
| Sampling Period | 显示或设定输出讯号的取样间隔 \(\Delta t'\)。 当 AutoDetect 设为 True,此参数显示 Indexed 格式资料汇入时所估算的间距值(请参考【Text Importer】章节之 Indexed Interval Option 参数说明) 当 AutoDetect 设为 False,此参数除显示估算间距外,还可设定讯号取样间距 |
根据输入讯号判断 |
| Unit | 显示或设定输出讯号的取样时间单位。 当 AutoDetect 设为 True,此参数显示侦测到的讯号时间单位。 当 AutoDetect 设为 False,此参数除显示讯号时间单位外,还可搭配参数 SamplingPeriod 设定讯号时间单位。 |
根据输入讯号判断 |
| AutoDetect | 是否自动侦测 Sampling Period 和 Unit | True |
范例
读取一组讯号格式为 Indexed 的讯号,先如下图产生一组简单的资料档,第一行(column)为时间,第二行为资料。

接着按下 Network Window 工具列的
,或以Source / Import Data 读取讯号档 TestData.txt,【Text Importer】中的参数 Time Aixs Type 需选择 Numeric,其他皆为预设值。
汇入讯号後以 Viewer / Channel Viewer 绘图(双击 Viewer 元件可以进入 PlotElemEditor 中加上实心圆 Marker),并点选 TestData 元件检视 Properties,如下图:



可以看到 TestData 元件 Properties 下 Data 分类中的 TimeFormat 及 Module 分类中的 Outout Data Type 显示时间轴格式为 Indexed。同时,因为汇入资料时【Text Importer】之 Indexed Interval Option 参数采用预设之Mode ,估算出来的间距值为最频繁间距值 0.2 秒,转换成取样率则为 5 Hz,可以在 Properties 下 Data 分类中的 Sampling Frequency 看到。
将 TestData 後方接 ToRegular,可将讯号转为等时间间隔,再将输出结果拉至同一 Viewer 与原讯号交互比较,用 PlotElemEditor 设定线条图示,黑线加实心圆为原讯号,蓝线加空心圆为 ToRegular 讯号。ToRegular 的 Properties 皆为预设值,如下图:



可以看到自动侦测到的取样间隔因为汇入时预设的 Indexed Interval Option 为 Mode,所以估算之取样间隔为 0.2 秒(这组资料 0.2 间距值为最频繁之间距值)。用这个间距值将资料重新取样後由原来的 10 笔 Indexed 资料增至等间距的 29 笔:
如果在汇入资料时更改 Indexed Interval Option 的选项,则本元件会用不同的间距值重新取样。实作步骤如下:先双点击 TextData 元件,跳出 Reload 对话窗时选择 Load File New Settings 再点击 Reload All,如下图:

将 Text Importer 参数的 Indexed Interval Option 设为 Minimum 後重新汇入资料,如下图:

此时可重新检视结果,如下图:



可以看到估算出来的最小间距值为 0.1 秒,换算成取样率为 10 Hz,用这个间距值将资料重新取样後增至等间距的 56 笔资料。
用同样步骤在汇入资料时将 Indexed Interval Option 设为 Mean,则会产生如下图结果:



可以看到估算出来的平均间距值为 0.611 秒,换算成取样率为 1.636 Hz,用这个间距值将资料重新取样後降回等间距的 10 笔资料。
如果【Text Importer】的 Indexed Interval Option 的选项皆不符合使用者要求,本元件还允许使用者自订讯号之取样频率。首先将 AutoDetect 设为 False,然後 Sampling Period 调为 0.5,则会产生如下图结果:


可以看到用这个自订间距值将资料重新取样後升至等间距的 12 笔资料。
相关指令
Convert to Audio丶Fill Null Value (#compute-channels-fillnull)丶Resample
5.4 Convert to Indexed
讯号被进行各种运算时,讯号日期或时间绝大部分是时间间距固定(Regular),但是总有例外的情形,使用者需要将计算後结果以非等间距(Indexed)的展示。Convert To Indexed 可以将讯号的 Regular (等间距)格式时间轴换成 Indexed 格式,或是依照第二个 Indexed 格式的输入讯号之不等间距的时间轴,重新组合成一个新的 Indexed 讯号。
参数设定
本模组接受一个实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 格式的讯号以及另一个实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Indexed 格式的讯号;输出讯号格式为实数丶复数,单通道丶多通道的 Indexed 讯号。
本元件无特定的参数可以设定,但是有两种使用模式:
- 单输入讯号模式:
当输入为单一输入讯号,时间轴格式为 Regular (等间距)时,本元件会将时间轴直接转成Indexed 格式。即原本的 Regular 时间轴定义为:
\[T := (t_0, \Delta t, N)\]
其中 \(t_0\) 为起始时间,\(\Delta t\) 为时间间隔,\(N\) 为资料点数,转成 Indexed 格式则为:
\[T = \{t_0, t_1, t_2, ..., t_{N-1}\},\quad \text{where}\]
\[t_i = t_{i-1} + \Delta t,\quad 0 < i < N\]
Indexed 的资料时间轴会有一个时间间隔的估算值,用 Convert To Regular 转换为 Regular 时间轴时会用到(详情请看【Convert To Regular】 章节。在此模式下, Indexed 格式的估算间隔会直接设定为 \(\Delta t\)。
- 双输入讯号模式:
当输入为双输入讯号,第一输入讯号时间轴格式为 Regular (等间距),第二输入讯号时间轴格式为 Indexed,本元件会将第一输入讯号之时间轴直接替换为第二输入的 Indexed 格式。注意两个输入讯号的长度必须一样。即原本的时间轴定义为:
\[T^1 := (t_0^1, \delta t, N)\]
\[T^2 = \{t^2_0, t^2_1, t^2_2, ..., t^2_{N-1}\}\]
则本元件会将 \(T_1\) 转成:
\[T^1 = \{t^2_0, t^2_1, t^2_2, ..., t^2_{N-1}\}\]
在此模式下,Indexed 格式的估算时间间隔会设定为第二输入资料的 Indexed 格式时间轴的估算间隔值。
范例
产生一个 Noise 讯号,参数全为预设值,加上 Channel Viewer 後讯号图如下:

打开 Noise 元件看 Module 分类下的 Output Data Type 显示,可以看到讯号的时间轴格式为 Regular:

此时在 Noise 元件後接上 ToIndexed 元件,再加上一个 Channel Viewer 後可以看到讯号图如下:

讯号图看起来跟上图一样,但是打开 ToIndexed 元件的 Output Data Type 显示,可以看到讯号时间轴已经转换为 ToIndexed 格式:

用【Data Viewer】浏览 ToIndexed 的输出资料,可以看到 Indexed 时间轴的进程:

承上例,再产生一个 Noise2 讯号,将 起始时间设为 0.5s,取样率设为 500,长度设为上例一样之 1001,加上 Channel Viewer 後讯号图如下:



用【Data Viewer】浏览 Noise2 的输出资料,可以看到 Regular 时间轴的进程:

在 Noise2 後面接上一个 ToIndexed2 元件,再将上例之 ToIndexed 元件接到 ToIndexed2的第二个输入端,如下:

接上 Channel Viewer 後可以看到时间轴被换成第一个 Indexed 的时间轴:

用【Data Viewer】浏览 ToIndexed2 的输出资料,可以看到 Indexed 时间轴的进程跟前面 Noise 的一样:

相关指令
Noise丶Channel Viewer丶 Data Viewer丶Convert To Regular
5.5 Convert From Complex
将复数(Complex Number)讯号转换成特定的实数(Real Number)讯号,例如只输出实部丶虚部部分等。
说明
\(X=\{x_0, x_1, \dots, x_{N-1}\}\) 代表实部讯号, \(Y=\{y_0, y_1, \dots, y_{N-1}\}\) 代表虚部讯号,\(N\) 为资料长度,则其输出讯号 \(Z = X + iY\) 与可选择计算不同之实数讯号,相关特性如下:
\[\begin{aligned} Z &= \sqrt{X^2 + Y^2} \mathrm{e}^{i\Theta} = A \mathrm{e}^{i\Theta}\\ \text{or}, \quad z_j &= \sqrt{(x_j)^2 + (y_j)^2} \mathrm{e}^{i\theta_j} = a_j \mathrm{e}^{i\theta_j}\\[1em] \text{Magnitude}&: \quad A = \{a_0, a_1, \dots, a_{N-1}\}\\ \text{Phase}&: \quad \Theta = \{\theta_0, \theta_1, \dots, \theta_{N-1}\}\\ \text{Real Part}&: \quad X&\\ \text{Imagine Part}&: \quad Y&\\ \text{Gain}&: \{g_0, g_1, \dots, g_{N-1}\}, \quad g_j = 20\log\bigg(\frac{a_j}{GainRef}\bigg)\\ \text{Power Spectrum}&: A^2 = \{a_0^2, a_1^2, \dots, a_{N-1}^2\}\\ \end{aligned}\]
参数设定
本模组接受复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 或 Indexed 的讯号(Signal)丶声音讯号(Audio)与数值(Numerics),以及复数,单通道的时频资料(Spectra);输出格式除了是实数(Real Number)外,其它部份与输入资料相同。
参数为 Map Method,预设选项是 Real Part,即输入讯号之实部;Imag Part 输出讯号虚部;Magnitude 取复数讯号的绝对值;Phase 表示相位;Gain 可以设定参考值(Gain Reference)计算 Gain;Power Spectrum 是 Magnitude 平方。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Map Method | 将复数讯号转换成何种讯号,其中包含:
|
Magnitude |
范例
本范例将示范以两个讯号皆为 1000 Hz 取样频率丶长度 1 秒丶振幅皆为 1 的 10 Hz Sine Wave 和 20 Hz Sine Wave 当作输入讯号,再利用步骤如下:
於 Network 视窗下选择 Source / Sine 创造两个 Sine Wave,分别改变其 Properties / SignalFreq 为 10 Hz 和 20 Hz,最後以 Compute / Conversion / Merge to Complex 将上述讯号合成一复数讯号,用 Viewer / Channel Viewer 显示於视窗。


接着用 Convert From Complex 将此复数讯号转为实数讯号,选择 Compute / Conversion / Convert From Complex,藉由 Properties调整 Map Method,用 Viewer / Channel Viewer 显示结果。Convert From Complex 预设是输出讯号的 Magnitude。



相关指令
Sine丶Merge to Complex丶Channel Viewer
5.6 Merge to Complex
将两个实数讯号合并成一个复数讯号,其中第一笔输入讯号作实部,第二组输入讯号作虚部。
说明
\(X = \{x_j^a\}\) 代表长度为 \(N\) 的 \(A\) 通道讯号(Channel),其中 \(a\) 代表通道,\(j\) 是讯号之时间点:
\[0 \leq j < N, \quad 1 \leq a \leq A\]
\(Y = \{y_k^b\}\) 代表另外一组长度为 \(M\) 的 \(B\) 通道讯号,其中 \(b\)丶\(k\) 分别代表讯号之通道及时间点:
\[0 \leq k < M, \quad 1 \leq b \leq B\]
本元件只允许这两组讯号的通道数与资料长度一致,即
\[A = B, \quad N = M\]
则 Merge to Complex 的输出结果为:
\[\begin{aligned} Z &= X + iY,\\ z_{j'}^{a'} &= x_{j'}^{a'} + i y_{j'}^{a'} \end{aligned}\]
其中 \(a'\)丶\(j'\) 分别代表输出讯号参考的讯号长度与讯号通道数。若参考讯号为 \(X\), 则 \(a' = a\),\(j' = j\),且其取样频率等於 \(X\) 的取样频率;若参考讯号为 \(Y\), 则 \(a' = b\),\(j' = k\),且其取样频率等於 \(Y\) 的取样频率。
参数设定
Merge to Complex 接受实数(Real Number),单通道(Single Channel)或多通道(Multi-Channel),等间距(Regular)或非等间距(Indexed)的讯号丶声音(Audio)讯号或数值(Numeric)资料。
参数 Reference Input 是指定模组讯号的通道数与讯号时间轴的参考,预设为 0,代表输出时间轴参考第一组输入讯号,则第二组输入讯号的时间资讯如 Sample Frequency丶 Time Shift 等会直接套用第一组讯号的设定。
因此为避免造成操作上的混淆,强烈建议以相同通道数,时间轴相同的两组讯号作 Merge to Complex。参数定义与预设值如下表:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ReferenceInput | 参考讯号,以实部或虚部当作时间轴与通道数的基准。 | 0:第一组输入讯号 |
范例
本范例将示范两种操作模式,首先以两笔单通道实数讯号合成为一笔单通道复术讯号,并示范复数讯号该如何绘图;接下来示范以两笔取样频率一样,但时间长度不等的实数,多通道讯号输入 Merge to Complex 合成一笔复数,多通道讯号。
单通道讯号
以 Source / Sine Wave 产生两个正弦波讯号,然後点选 Sine2,修改 Properties / Phase 为 90,使 Sine2 变为馀弦波讯号。然後以 Conversion / Merge to Complex 合成一个复数讯号。

在 ToComplex 的输出讯号格式可在 Properties 的 Module 类别下,栏位 OutputDataType 查询,此输出讯号已变更为 Complex。

若要绘制讯号在复数平面上的图形,可利用 XY PLot。在 ToMulti 後方接上 Viewer / XY Plot Viewer,此 Viewer 会将输入讯号实部资料当作 X 值,虚部资料当作 Y 值,依时间顺序绘图。本例所产生的复数是
\[ Z_i = sin \left(\frac{2 \pi}{180} \cdot 10 \cdot t \right) + \\ i \cdot cos \left(\frac{2 \pi}{180} \cdot 10 \cdot t \right)\]
因此在复数平面上会画出圆形。


上图是将 XY Plot Viewer 的 Properties / ViewerHeight 与 ViewerWidth 调为一样,使 XY 轴的比例一致,关於 XY Plot Viewer 的操作在 XY Plot Viewer 章节会有更详尽的说明。
若运用 Channel Viewer,可以调整 Properties / YValueType 栏位,绘出复数讯号不同计算量的时序图,如下图是绘制此复数讯号的 Magnitude。此部份在 Channel Viewer 的章节会有更详尽的说明。


多通道讯号
於 Network视窗下选择 Source / Noise 创造一个白色杂讯和 Source / Sine Wave,Properties 为预设,最後以 Compute / Conversion / Merge to Multi-channel 将上述讯号合成两个通道的讯号,再利用 Source / Square Wave 创造方波和 Source / Triangle Wave 三角波,设定 Properties / TimeLength 设定为 2 秒,最後以 Compute / Conversion / Merge to Multi-Channel 将上述讯号合成二维资料 ReferenceInput 皆以预设值 0,用 Viewer / Channel Viewer 显示於视窗。


ToMulti 的讯号图(Sine Wave and White Noise)。

ToMulti2 之讯号图(Square Wave and Triangle Wave)。
点选 ToMulti,打开 Properties 下的 Module,里面 OutputType 栏位内容显示讯号为 Real。

再将 ToMulti丶ToMulti2 两个多通道讯号经由 Merge to Complex 转换为复数讯号 ,於 Merge to Complex 上调整 ReferenceInput 调整至 0:ToMulti2,则依据实部的 SamplingFreq 和 DataLength 去调整虚部的讯号,再经由 Conversion / Convert From Complex 取出虚部,用 Viewer / Channel Viewer 显示结果。


再回到 ToComplex 元件,打开 Properties 下的 Module,里面 OutputType 栏位内容讯号已变更为 Complex。
相关指令
Noise丶Sine丶Triangle丶Square丶 Convert From Complex丶Merge to Multi-Channel
5.7 Merge to Multi-Channel
将多组输入讯号组成一组多通道(Multi-Channel)资料讯号。
说明
令 \(X = \{x_i^{a}\}, Y = \{y_j^{b}\}, Z = \{z_k^{c}\}, \dots\) 代表多个时间轴为 \(i, j, k, \dots\),长度为 \(N, M, L, \dots\) 的多通道讯号,\(1 \leq a \leq A, 1 \leq b \leq B, 1 \leq c \leq C\) 分别为讯号 \(X, Y, Z\) 之通道数,即:
\[\begin{aligned} X &= \begin{pmatrix} \{x_0^0,& x_1^0,& \dots,& x_{N-1}^0\}\\ \{x_0^1,& x_1^1,& \dots,& x_{N-1}^1\}\\ \quad \vdots\\ \{x_0^{A-1},& x_1^{A-1},& \dots,& x_{N-1}^{A-1}\}\\ \end{pmatrix}\\[0.5em] Y &= \begin{pmatrix} \{y_0^0,& y_1^0,& \dots,& y_{M-1}^0\}\\ \{y_0^1,& y_1^1,& \dots,& y_{M-1}^1\}\\ \quad \vdots\\ \{y_0^{B-1},& y_1^{B-1},& \dots,& y_{M-1}^{B-1}\}\\ \end{pmatrix}\\[0.5em] Z &= \begin{pmatrix} \{z_0^0,& z_1^0,& \dots,& z_{L-1}^0\}\\ \{z_0^1,& z_1^1,& \dots,& z_{L-1}^1\}\\ \quad \vdots\\ \{z_0^{C-1},& z_1^{C-1},& \dots,& z_{L-1}^{C-1}\}\\ \end{pmatrix}\\ &\vdots\\ \end{aligned}\]
则合并後的 \(R\) 讯号为:
\[R = \begin{pmatrix} \{x_0^0,& x_1^0,& \dots,& x_{N'-1}^0\}\\ \{x_0^1,& x_1^1,& \dots,& x_{N'-1}^1\}\\ \quad \vdots\\ \{x_0^{A-1},& x_1^{A-1},& \dots,& x_{N'-1}^{A-1}\}\\ \{y_0^A,& y_1^A,& \dots,& y_{N'-1}^A\}\\ \{y_0^{A+1},& y_1^{A+1},& \dots,& y_{N'-1}^{A+1}\}\\ \quad \vdots\\ \{y_0^{A+B-1},& y_1^{A+B-1},& \dots,& y_{N'-1}^{A+B-1}\}\\ \{z_0^{A+B},& z_1^{A+B},& \dots,& z_{N'-1}^{A+B}\}\\ \{z_0^{A+B+1},& z_1^{A+B+1},& \dots,& z_{N'-1}^{A+B+1}\}\\ \quad \vdots\\ \{z_0^{A+B+C-1},& z_1^{A+B+C-1},& \dots,& z_{N'-1}^{A+B+C-1}\}\\ \quad \vdots\\ \end{pmatrix} \]
其中 \(N'\) 为输出讯号的长度,当各输入的单位或长度不相同时,可以设定 Reference Input,则输出讯号的时间轴会直接置换为 \(X, Y, Z, \dots\) 等的时间轴。 若所有输入讯号长度一致,则 \(N' = N = M = L = \dots\),否则会以所设定之 Reference Input 以及 Overlap 决定 \(N'\),并依长度所需舍弃资料点或是补上空值。
当两个输入的时间起始与长度不同时,模组会自动判断,并开启 Overlap 功能,使用者可以选择 AND 交集或是 OR 联集来决定输出的时间起始与长度。
参数设定
本模组接受实数(Real Number)或复数(Complex Number),单通道(Single Channel), Regular 或 Indexed 的讯号(Signal)或数值资料(Numeric) 输入,以及实数,单通道或多通道,Regular 的声音讯号;输出成多通道(Multi-Channel)资料。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ReferenceInput | 设定参考讯号,其时间轴座标值作为输出讯号的时间轴。 | 0(第一笔输入讯号) |
| MergeType | 选择时间范围,有 AND 时间交集或 OR 时间联集可以选。 | AND |
| MissingValueFillType | 选择 OR 时间联集後,补值的方法。有 Fixed Value 与 Null 两种选项 | Fixed Value |
| MissingValueFillValue | 选择 Fixed Value 後所要补的数值。 | 0 |
在输入的单位不相同的情况下:
参数 Reference Input 设定本模组输出讯号的通道数与讯号时间轴资讯是参考那一个输入讯号,预设为 0,代表输出讯号的时间轴参考第一组输入讯号。其它未被指定为 Reference 的输入讯号,其时间轴资讯会直接套用第一组讯号的设定。套用时间轴设定的原则是,缺少资料的时间点会补 0,时间超过参考的资料就删除。
而在输入的单位皆相同,但彼此时间起始不同,或是取样频率不同时:
Reference Input 决定输出讯号的取样频率,而时间起始可由参数 MergeType 来选择时间范围。若选择 AND 时间交集,则交集时间外的数据全部会被舍弃,输出讯号的长度为所有输入通道中共同经历的时间。若是选择 OR 时间联集,本来没有数据之时间点会用 MissValueFillType 与 MissingValueFillValue 中指定的的数值填补,输出讯号的长度为自输入讯号中最早的时间至最晚的时间。
一般而言为避免混淆,建议输入 Merge to Multi-Channel 的讯号彼此的时间轴资讯,如 SamplingFreq丶时间起始点及时间长度 TimeLength 相一致。
范例
范例一:将两个时间起始相同的单通道输入合并成一个多通道

先产生两笔取样频率不同的讯号。本例选取一个 Sine Wave 与一个 Square Wae,打开参数视窗,确认两者参数皆如下图所示:

将两组讯号都连到 Channel Viewer,可以见到如下的图:

再将两组讯号都连接至 Conversion / Merge to Multi-Channel,接着也用 Channel Viewer 绘图,便可见到与第一个 Channel Viewer 相同的图。
范例二:将两个时间起始不同的单通道输入合并成一个多通道

延续范例一,修改 Sine 讯号源的参数,如下:

此时,Viewer 1 的图会变成以下图表,Square 从 0 秒开始到 1 秒结束,而 Sine 从 0.5 秒开始到 1.5 秒结束。

若希望合并後撷取同时包含两笔资料的时间片段 (也就是 0.5 秒到 1 秒的资料),点开 ToMulti 的参数,并将 EnableOverlapCapability 的参数由 False 改为 True。 再将新出现的 MergeType 选择 AND 时间交集,如下图所示。

此时 Viewer 2 的图会变成:

Sine 1 秒到 1.5 秒的资料被删除;而 Square 在 0~0.5 秒的资讯也没有保留。
若是要将资料全部都放入输出,则在 MergeType 选择 OR 时间联集,此时会有新的参数 MissingValueFillType 与 MissingValueFillValue 跑出来,本例选择 Fixed Value 并指定填补数字为 0,即可见在 Viewer 2 中见到如以下的图表:

在本来没有资料的地方全部被填上 0,Sine 的资料长度由本来的 0.5~1.5 秒变成 0~1.5 秒;而 Square 的资料也由0~1 秒变成 0~1.5 秒。
相关指令
Square Wave丶Sine Wave丶Channel Viewer
5.8 Split Complex
将复数讯号或数值的实丶虚部分离。
说明
令 \(Z = \{z_j^{c}\}\) 为一个复数,多通道的讯号,\(1 \leq c \leq C\)代表通道,\(0 \leq j < N\) 为时间轴。令 \(X = \{x_j^{a}\}\) 代表实部,\(Y = \{y_j^{a}\}\) 代表虚部 ,则 \(Z\) 可表示为
\[\begin{aligned} Z &= X + iY\\ z_j^a &= x_j^a + y_j^a, \quad 0 \leq j < N, \; 1 \leq c \leq C \end{aligned}\]
经过 Split Complex 後输出的讯号 \(S = \{s_j^c\}\) 可表示为
\[s_j^d = \begin{cases} x_j^c, \quad d = 2c-1\\ y_j^c, \quad d = 2c\\ \end{cases}\\[0.5em] 1 \leq c \leq C\]
上式代表输出讯号的奇数通道储存讯号实部 \(X\),偶数的通道储存讯号虚部 \(Y\),且均为实数资料。
参数设定
本模组接受复数(Complex Number),单通道(Single Channel)或多通道( Multi-Channel),Regular 或 Indexed 的讯号(Signal),声音讯号(Audio)或数值资料(Numeric)输入;输出讯号为实数,多通道(Multi-Channel)资料。
范例
本范例将示范以一个讯号各为 1000 Hz 取样频率和长度 1 秒的 Sine Wave丶1000 Hz 取样频率和长度 1 秒的 White Noise丶振幅皆为 1 当作输入讯号,经过Fourier Transform 产生复数讯号,再作 Merge to Multi-Channel,最後经由Split Complex 分成实部和虚部。步骤如下:
於 Network 视窗下选择 Source / Noise 创造一个白色杂讯(White Noise)和 Source / Sine Wave, Properties 皆为预设,再经由 Compute / Transform / Fourier Transform 处理,最後以 Compute / Conversion / Merge to Multi-Channel 将上述讯号合成为 2 个通道的讯号资料。

将此复数讯号经由 Split Complex 处理,用 Viewer / Channel Viewer显示於视窗,改变 Viewer 的 Properties / Channel / Multi-Channel Display为 List。



最後可以使用 Data Viewer 看 Split Complex 输出的讯号格式,表格中奇数Channel 为讯号实部,偶数 Channel 为讯号虚部。

相关指令
Noise丶Sine Wave丶 Merge to Multi-Channel丶Fourier Transform
5.9 Convert to Matrix*
*Only in Professional*
将讯号转换为 Numeric 型态的矩阵资料,并可以进行各种矩阵运算。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel), Regular 或 Indexed 的讯号 (Signal),声音讯号(Audio)或时频资料(Spectra)。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Column-Major | 设定为 True,输入讯号时间序列为矩阵的纵列,反之则相反。 | True |
范例
首先利用 Source / Noise 及 Sine Wave 产生两个讯号源,然後再将两个讯号源分别接至 Compute / TFA / Short-Term Fourier Transform,最後再分别以 Conversion / Convert to Matrix 转换为矩阵,模组连接状况如下图。

再将两个转换为矩阵的资料一起接至 Compute / Matrix / Matrix Operation,参数皆以预设,将 Matrix Operation(\(A + B\))接至 Conversion / Covert from Matrix ,DataType 设定为 TimeFrequencySpectra,最後用 TF Viewer 显示其结果。


相关指令
Short-Term Fourier Transform丶Convert from Matrix
5.10 Convert from Matrix*
*Only in Professional*
将 Numeric型态的矩阵资料转换为各种讯号例如时序讯号丶频谱讯号丶时频资料。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),Regular 或 Indexed 的 Numeric 矩阵资料。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Column-Major | 设定为 “True”,输入讯号时间序列为矩阵的纵列,反之则相反。 | True |
| DataType | 设定输出的讯号为 TimeDomainSignal(时序讯号)丶FreqDomainSignal(频谱讯号)和 TimeFrequencySpectra(时频资料)。 | TimeDomainSignal |
若是 DataType 为 TimeDomainSignal,则会有下列参数需要设定。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartDateTime | 设定输出时序讯号的起始的 DateTime。 | 0001/1/1 上午 12:00:00 |
| SamplingPeriod | 设定输出时序讯号的取样周期。 | 0.001 |
| TimeUnit | 设定输出时序讯号的单位。 | sec |
若是 DataType 为 FreqDomainSignal,则会有下列参数需要设定。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartFreq | 设定输出频谱讯号的起始频率。 | 0 |
| EndFreq | 设定输出频谱讯号的结束频率。 | 500 |
| FreqUnit | 设定输出频谱讯号的单位。 | Hz |
若是 DataType 为 TimeFreqSpectra,则会有下列参数需要设定。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartDateTime | 设定输出时频资料时间轴的起始 DateTime。 | 0001/1/1 上午 12:00:00 |
| SamplingPeriod | 设定输出时频资料的点跟点之间的时间间距。 | 0.001 |
| TimeUnit | 设定输出时频资料时间轴的的单位。 | sec |
| StartFreq | 设定输出时频资料频率轴的起始频率。 | 0 |
| EndFreq | 设定输出时频资料频率轴的结束频率。 | 500 |
| FreqUnit | 设定输出时频资料频率轴的单位。 | Hz |
范例
首先利用 Source / Noise 及 Sine Wave产生两个讯号源,然後再将两个讯号源分别接至 Compute / TFA / Short-Term Fourier Transform,最後再分别以 Conversion / Convert to Matrix 转换为矩阵,模组连接状况如下图。

再将两个转换为矩阵的资料一起接至 Compute / Matrix / Matrix Operation,参数皆以预设,将 Matrix Operation(\(A + B\))接至Conversion / Covert from Matrix , DataType 设定为TimeFrequencySpectra,最後用 TF Viewer 显示其结果。


DataType 设定为 TimeDomainSignal,参数皆以预设,最後用 Channel Viewer 显示其结果。

相关指令
Short-Term Fourier Transform丶Convert to Matrix
5.11 Convert from Spectra
将 Spectra 资料转换为单丶多个通道的时序讯号或者单丶多个频谱讯号。
说明
可以将时频资料中的某一个列(Row)或全部列萃取出来,即为某一固定频率振幅随着时间变化。将时频资料中的某一个栏(Column)或全布栏萃取出来,即为某一时间点的频率分布。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel)的时频资料(Spectra)。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ExtractionMode | 设定要撷取的是列(Row)或栏(Column),设定选择有 MultiChannelRows丶MultiChannelColumns丶SingleRow丶SingleColumn。 | SingleRow |
| Row | 设定要撷取第几个列(Row)。 | 0 |
| Column | 设定要撷取第几个栏(Column)。 | 0 |
范例
首先利用 Source / Advanced / Jaehne 产生讯号源,然後接至 Compute / TFA / Short-Term Fourier Transform,所有参数皆为预设,模组连接状况如下图。

再将 STFT 连接至 Coversion / Convert from Spectra,Convert from Spectra 的参数 Rows 设定为 50 ,最後用 Channel Viewer 显示萃取第 50列的结果。


再将 Convert from Spectra 的参数 ExtractionMode 设定为SingleColumn,Column 设定为 100 ,最後用 Channel Viewer 显示萃取第100 栏的结果,得到频率分布。

相关指令
Short-Term Fourier Transform丶Convert from Spectra
5.12 Convert to dB
将讯号(如声源)藉由参考数值转换为分贝(dB)。
说明
分贝(decibel)是量度两个相同单位之数量比例的单位,主要用於度量声音强度,常用 \(dB\) 表示,「分」(deci-)指十分之一,「贝」(bel)是纪念发明家亚历山大·格拉汉姆·贝尔。计算方法视其物理量而定,可分为两种:
功率量,考虑功率或者强度时,其比值可以表示为分贝,其数学式为
\[L_dB=10\times log (P_1/P_0)\]
场量,考虑到场(field)的幅值(amplitude)时,通常使用 \(A_1\) (度量到的幅值) 的平方与 \(A_0\) (参考幅值)的平方之比,其因为大多数应用,功率与幅值的平方成比例,其数学式为
\[L_dB=20\times log (A_1/A_0)\]
以声压为例,常用之空气参考声压为 \(p_{ref}=20\mu Pa\),其被认为是人类的最少听觉响应值。
参数设定
本模组接受实数 (Real Number),单通道 (Single Channel) 或多通道 (Multi-Channel),Regular 的讯号 (Signal) 或声音讯号 (Audio) 输入。输出为时间序列之 dB 值。主要参数设定与 RMS 相同,以及参考值设定。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Method | 数值积分的方法,可选择: Simple (长方形法)丶 Trapezoidal (梯形法)丶 Simpson (辛普森法) (详细介绍请参阅 Integrate ) |
Trapezoidal |
| StartPosition | 设定横轴上的积分起始值。 | 讯号的起始值 |
| EndPosition | 设定横轴上的积分终点值。 | 讯号的终点值 |
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| DC Value | 讯号的 DC 值 | 根据输入讯号而定 |
| DC type | 定义 DC 值求得法,可选: Mean丶 DFTZerothTerm丶 TrapezoidIntegration丶 UserSetting |
Mean |
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Use Time Unit | 是否使用原始讯号的时间单位设定 Window 和 Overlap | False |
| Window | 设定窗函数的大小,如 Use Time Unit 设定 False,数值之单位为资料点数。 | 100 |
| Overlap | 设定窗与窗之间重叠的资料点数。Overlap \(\le\) Window。 | 99 |
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Type | 设定Vibration Level,可选:
(详见下表介绍) |
RMS |
| ReferenceLevel | 定义dB的参考大小 | 20 |
| ReferenceUnit | 定义dB的参考单位 | \(\mu Pa\) |
| Types of Vibration Level | 参数定义 |
|---|---|
| RMS | 计算一段时间内振动的能量平均值。 |
| Peak | 假设振动讯号为正弦波,正弦波的振幅最大值为正弦波的 RMS 的 \(\sqrt{2}\) 倍。 |
| PeaktoPeak | 假设振动讯号为正弦波,正弦波的振幅最大值与最小值的差距为 2×Peak。 |
范例
本范例以 C:\Program Files\AnCAD\Visual Signal\demo\Basic\hello.wav 为讯号源,其为音讯档(.wav),藉由 Conver to dB 之功能,可转换成 dB 值。

点击 Network Window 工具列之 Import Data
选择 hello.wav(预设路径为C:\Program Files\AnCAD\Visual Signal\demo\Basic\hello.wav),并对点选 hello 按右键选 Viewer Channel Viewer,将此声音档以图形展示出来。

点选 hello 点击右键选择 Conversion Conver to dB,并点选 Conver to dB 点击右键选择 Viewer Channel Viewer。

点击 TodB 於 Property Vibration Level ReferenceLevel 与 ReferenceUint,可设定参考声压值及单位,预设为空气之参考声压值 \(20\mu Pa\)。

相关指令
参考资料
https://en.wikipedia.org/wiki/Decibel
5.13 Split
说明
Split可依照设定的切割框长度,将长度较长之单通道讯号切割成数个独立的长度较短之多通道讯号,并输出成一组多通道讯号(Multi-Channel Signal)。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| SplitMode | 选择分割模式:
设为「周期」时将输入资料依照设定之周期分割;设为「日期周期」时将输入资料(如果资料为日期时间格式)依照资料之日期以日/月/年分割;设为「长度」时将输入资料依照设定之长度分割;设为「分割数」时将输入资料依照设定之分割数分割;设为「滚动窗」时将输入资料依照设定之滚动窗分割。 |
Period |
| Period | 在 SplitMode 设为 Period 时设定切割讯号的周期时间长度 | 资料时间长度之 1/10 |
| Period Start | 在 SplitMode 设为 Period 时设定开始切割讯号周期的时间点 | 0 |
| Time Unit | 在 SplitMode 设为 Period 时设定 Period 和 Period Start 的时间单位 | sec |
| Discard Remainder | 在 SplitMode 设为非 DatePeriod 时设定是否舍弃分割不完整之第一或最後一个通道。 在 DatePeriod 分割模式下,因为每个输出通道内的分割资料长度通常不固定,因此较难判断通道内资料是否为完整分割之资料,因此在此模式下不开放此参数 |
False |
| DatePeriod | 输入资料为日期时间格式,并 SplitMode 设为 DatePeriod 时设定分割日期周期的日期长度:
设为「日」时将输入资料依照资料之日期以同日分割;设为「月」时将输入资料依照资料之日期以同月分割;设为「年」时将输入资料依照资料之日期以同年分割。 |
day |
| Length | 在 SplitMode 设为 Length 时设定切割讯号的资料长度,单位为资料笔数 | 资料长度之 1/10 |
| Divisions | 在 SplitMode 设为 Divisions 时设定切割讯号的的分割数 | 10 |
| Start | 在 SplitMode 设为 Period 或 Divisions 时设定开始切割讯号周期的起点,单位为资料笔数 | 0 |
除了以上参数,当 SplitMode 设为 Rolling 时,还会出现滚动窗计算相关参数,详情请参阅【Rolling Window】章节。此外,分割资料後,分割不完整或是资料长度不足填满输出通道长度时,不足部分预设为直接以空值输出。如欲填补空值,另有内嵌填补空值元件之参数可设定,详情请参阅【Fill Null Value】章节。
本元件会同时在输出资料时夹带一个 SplitInfo 的 Extension 资料,内含分割的各种资讯,当接上【Join】时可以根据 SplitInfo 内含的分割资讯自动重组为原始资料。在 Discard Remainder 设为 True 时则会损失头尾分割不完整的资料。
当输入资料为日期时间格式时,分割後的输出资料会失去日期时间,以数值时间为时间轴格式,起始时间固定为 0,时间单位则由以下表格决定:
| 分割模式 | 输出时间单位 |
|---|---|
| Period | 以 Time Unit 设定为准,预设为输入时间单位 |
| DatePeriod | 以 DatePeriod 设定为准,预设为 day |
| 其他模式 | 以输入时间单位为准 |
分割模式说明及范例
以下说明并示范本元件的五种分割模式。范例所使用的元件连接结构均为长度为1 秒(共 1001 笔资料点)的 Brown Noise (Source / Noise)资料接上本元件(Conversion / Split),再接上 Viewer / Channel Viewer,如下图:


需要日期时间格式的输入资料时(例如在 DatePeriod 模式下)则会先将 Noise 输出转换为日期时间格式(接上 Conversion / ToDateTime)。此时 Noise 的设定为长度为 1 周(共 1001 笔资料点)的 Brown Noise,ToDateTime 设定为起始日期时间为2000/01/01 20:00:00,如下:


- Period(周期)
此分割模式将输入资料依照设定之周期分割。下例将 Split Mode 设为Period,Period 设为 0.3 秒,Period Start 设为 0.05 秒,如下:

分割後结果如下图:

可以看到 Split 将原始资料分割为五个长度为 0.3 秒的通道:第一个通道为原始资料起始为 0 秒,长度为 0.05 秒的资料,即 Period Start 之前的资料;次三个通道分别为原始资料中起始为 0.05丶0.35丶0.65 秒,各满 0.3 秒的资料;最後一个通道为剩馀的资料,即原始资料中起始为0.95 秒,长度为 0.05 秒的资料。因为 Split 中 Discard Remainder 预设为 False,因此保留第一及最後一个通道,并因 Fill Null Value 的 FillMethod 预设为 None 而将不足填满通道的部分填上空值。
- DatePeriod(日期周期)
此分割模式将日前时间格式的输入资料依照资料之日期以日/月/年分割。下例使用上述之日期时间格式输入资料,并将 Split Mode 设为 DatePeriod,Date Period 设为 day,如下:

分割後结果如下图:

可以看到 Split 将原始资料分割为八个长度为一天(用【Data Viewer】检视得知为143 笔资料)的通道:第一个通道为原始资料中日期为 2000/01/01 的资料(即当日从20:00: 00 开始至23:59:59 为止,用【Data Viewer】检视得知共为 24 笔资料);其他通道分别为 2000/01/02 至 2000/01/07 一天一个通道,因为资料间隔分布的问题不一定每个通道都能填满 143 笔资料(例如 01/07 的资料只有 142 笔);最後一个通道为2000/01/08 未满一整天的剩馀资料,用【Data Viewer】检视得知共 120 笔。如果 Date Period 设为 month 或 year,以上同样的输入资料因为日期分布皆为同年同月,因此输出资料只有单一通道。
- Length(长度)
此分割模式将输入资料依照设定之长度分割。下例将 Split Mode 设为 Length,Length 设为 300,Start 设为 50(单位皆为资料笔数),如下:

分割後结果如下图:

此时得出的结果与上述 Period 一样(以原始资料的设定来说,资料长度 300 等於 0.3 秒的资料,起始点 50 相当於 0.05 秒)。
- Divisions(分割数)
此分割模式将输入资料依照设定之分割数分割。下例将 Split Mode 设为Divisions, Divisions设为 3,Start 设为 50(单位皆为资料笔数),如下:

分割後结果如下图:

可以看到 Split 将原始资料分割为四个长度为 317 笔(0.317 秒)的通道:第一个通道为原始资料起始为 0 秒,长度为 50 笔的资料,即 Start 之前的资料;次三个通道分别为原始资料中起始为 0.05丶0.367丶0.684 秒,各满 0.317 秒的资料。因为原始 1001 笔资料由 第 50 笔开始将剩馀资料分三份可以整除(\((1001 - 50)/3 = 317\)),因此不需额外通道储存剩馀资料。如果 Start 设为其他数值,则剩馀资料为除与分割数之馀数。例如Start 设为 0 时,除 3 时会得 333 馀 2,此时多出的通道可能在图中看不出来,但可以在【Data Viewer】中检视多出的第四个通道及剩馀的两笔资料:

- Rolling(滚动窗)
此分割模式将输入资料依照设定之滚动窗分割。滚动窗允许重叠,所以分割後之通道可能包含重复的资料。当滚动窗的 Overlap 参数设为 0 时则本分割模式则跟 Length 模式雷同。下例将 Split Mode 设为 Rolling。Rolling Window 的设定为 Window = 500, Overlap = 250(50%),其他如下:

分割後结果如下图:

可以看到 Split 将原始资料分割为四个长度为 500 笔的通道,分别为原始资料起始点为0丶 250(0.25 秒)丶500(0.5 秒)丶750(0.75 秒)丶1000(1 秒)的资料。前三个重叠的 Rolling Window 可以填满 500 笔资料的通道,最後两个因为超出原始资料尾端,因此分别只有 250 及 1 笔资料。最後一个通道因为只有 1 笔资料在图上看不出来,但可以在【Data Viewer】中检视:

相关指令
Noise丶ToDateTime丶 Channel Viewer丶 Join丶Rolling Window丶Fill Null Value丶Data Viewer
5.14 Join
说明
Join 可将多通道讯号串接成一组连续的单通道讯号,并按照通道顺序依序串接。
使用模式说明及范例
本元件无参数设定,但会因输入资料而分为两种使用模式。以下说明并示范 Join 的两种使用模式:
- 普通模式
当输入资料为任何多通道的资料,但不含有 Split 元件输出之 SplitInfo 重组资讯时,则本元件会将所有通道的资料依序串接成单通道讯号。下例利用 Source 新增一讯号源 Sine Wave,再利用 Mathematics / Math 输出三个组数据,再用 Conversion / Join 合并,并用 Viewer / Channel Viewer 显示结果,如下图:

利用 Math 元件,输出一组三通道数据,分别为一倍振幅(X1[1])丶两倍振幅(X1[1] *2)和三倍振幅(X1[1]*3),如下图所示:

串接後结果如下:


- Split 重组模式
当输入资料含有【Split】元件输出之 SplitInfo Extension 资料时,则本元件会依照 SplitInfo 内包含的资讯将多通道资料重组为 Split 之前的原始资料。有两点注意事项:
Split 时如果 Discard Remainder 参数设为 True ,在重组时会损失头尾分割不完整的资料。
如果 Split 後的资料有经过其他运算元件处理过,但是通道数目不变,则 Split 输出所包含的 SplitInfo Extension 资料会传递下去,此时使用 Join 重组其分割後运算的资料则相当於使用完整的原始资料运算。
下例使用前章【Split】中 Rolling 分割模式的范例开始,接上本元件後再跟原始资料比对,如下图所示:


比对方法采用 Math 元件将原始资料及本元件输出资料相减并显示,如下图所示:

比对结果可以用【Data Viewer】检查 Math 输出资料,如下图所示:

可以看到重组资料与原始资料之差别为 0。也就是说,即便 Rolling 分隔模式时设有 50% 的滚动窗重叠(即分割後的通道包含了重复的资料),因为有 SplitInfo 的资讯,重组时可以完整地重现原始资料。
相关指令
Noise丶Sine丶 Math丶Channel Viewer丶 Split
5.15 Convert To DateTime
讯号资料读取进来之後,常会碰到需要转换时间单位的状况,除了利用【Change X-Axis Unit】转换时间单位外,也可以利用本元件将普通数值时间轴转成 DateTime (日期时间)时间轴。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel)的讯号(Signal)或声音(Audio) 讯号,时间轴必须为非 DateTime 的 Regular 格式;输出讯号格式为实数丶复数,单通道丶多通道的讯号,时间轴为 DateTime 的 Regular 格式。本元件提供以下参数设定:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartDate | 设定转换後时间轴之起始日期 | 2000-01-01 |
| StartTime | 设定转换後时间轴之起始时间 | 00:00:00 |
范例
用 Source / Noise 产生一讯号,将单位设为 Day,长度设为 10,接上 Channel Viewer 後讯号图如下:


用【Data Viewer】浏览 Noise 的输出资料,可以看到时间轴的进程:

将 Noise 元件接上本元件,参数都用预设值,接上 Channel Viewer 後讯号图如下:


用【Data Viewer】浏览本元件的输出资料,可以看到时间轴的进程变为:

相关指令
5.16 Convert From DateTime
讯号资料读取进来之後,常会碰到需要转换时间单位的状况,除了利用【Change X-Axis Unit】转换时间单位外,也可以利用本元件将 DateTime (日期时间)时间轴转成普通数值时间轴。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel)的讯号(Signal)或声音(Audio) 讯号,时间轴必须为 DateTime 的 Regular 格式;输出讯号格式为实数丶复数,单通道丶多通道的讯号,时间轴为非 DateTime 的 Regular 格式。本元件提供以下参数设定:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| StartValue | 设定转换後时间轴之起始数值 | 0 |
范例
承【[Convert To DateTime】章节范例,在 ToDateTime 元件之後接上本元件,参数都用预设值,接上 Channel Viewer 後讯号图如下:


用【Data Viewer】浏览本元件的输出资料,可以看到时间轴的进程变回普通数值时间轴为:

相关指令
Convert To DateTime丶Channel Viewer
6 讯号源模组(Source)
6.1 Open Data
由外部汇入讯号档。
目前 Visual Signal 支援四种方法可以汇入外部讯号档:
在 Network 工具列上点选 Import Data 图示
,可选择输入档案(即左下图红框按钮)
可以於模组编译区利用滑数右键选单之 Source / Import Data(即右下图所示):

将档案由档案管理员或桌面拖放至元件编辑区,如下图:

如欲汇入档案後自动产生并连结对应之 Viewer 元件,可将档案由档案管理员或桌面拖放至绘图视窗,如下图:

操作上述步骤後会先跳出如下图视窗供使用者选择输入的档案:

支援档案包括纯文字类的档案,如 .txt丶.csv丶.tfa 等,声音档案如 .wav丶 .mp3 等,以及特殊档案格式如 MATLAB MAT 用的二进位档(binary file),SAC 地震分析软体的资料档,HEA 是由Physionet 组织所发展一系列生医讯号软体之通用格式。支援的档案格式整理如下表:
| 副档名 | 档案类型 |
|---|---|
| vsb | Visual Signal 二进位(Binary)档案 |
| mat | MATLAB 资料档 |
| sac | SAC 档是套装软体 SAC(Seismic Analysis Code)的讯号档,用在与地震相关之研究 |
| txt | 纯文字(Plain-Text)档案 |
| uff | Universal File Format |
| tfa | Visual Signal 纯文字讯号档 |
| csv | 逗号分隔档 Comma-Separated Values |
| eeg | EEG Files |
| wav, mp3, aac, ac3, mp4, m4a, amr, ape, wma |
Audio 声音档 |
| hea & atr | 生医讯号通用档案格式,说明请参考网页内容: www.physionet.org |
| tdms & tdm | NI LabVIEW 资料档 |
| adl & dat | ADLink 资料档 |
其中 .tfa 及 .vsb 为 Visual Signal 自订资料格式,因自带有描述资料的档头,读取这两种档案时不需要再经过任何参数设定,可直接汇入资料。.tfa 跟 .txt 一样是纯文字资料档案,但是多了资料描述档;.vsb 的资料描述档头与 .tfa 相同格式(为纯文字),资料本身则为Binary格式。
以下为 .tfa 档案的格式,主要包含两部分有时间轴资讯和讯号。开始起头为「#」的是标头文字,记录讯号的时间轴资讯(因此可直接在读取.tfa 讯号档时得到时间轴的资讯)。档头以下的内容便是讯号资料,第一纵列为时间轴,第二纵列开始为通道讯号,如果是复数资料,则每个通道有一个实数纵列及一个虚数纵列。
# Version: TFA2.0.0
# DataType: Signal
# Complex: False
# ChannelCount: 1
# ChannelNames: CH1
# DataUnit:
# SampleFreq: 1000
# TimeUnit: sec
# StartTime: 0
# TimeFormat: Regular
#+ SeparateChannels: False
0 -0.995347718
0.001 -0.476466238
0.002 0.152831315
0.003 0.0668273037
0.004 0.172097169
0.005 0.01285767
0.006 0.854871343
0.007 0.537974745
0.008 -0.794657195
0.009 0.935031347
0.01 0.550789911
详细档头格式可参考 Visual Signal 汇出的 .tfa 或.vsb 资料档(请参考【储存资料】 或 【Writer】),用任何文字浏览器或编辑器开启该档案检视其档头。使用者亦可用文字编辑器将 .txt 资料档加入同样格式的档头,改成 .tfa 档案汇入。
6.1.1 Text Importer
说明
CSV 与 TXT 是文字档,CSV 是以逗点分格之形式;选定文字档汇入时,会跳出 Text Importer 输入设定介面(如下图所示),供使用者定义讯号必备的格式。此外,若 Visual Signal 无法辨识汇入档案格式,也会讯问使用者是否使用 Text Importer 尝试汇入资料。Text Importer 介面操作上较复杂,但是基本上可以归纳为以下的流程:
解析(Parser) \(\implies\) 转换(Transformer)\(\implies\) 建构(Constructor)
详细用法上会以范例作进一步的说明,在此说明各参数之意义。

符号说明:
- *表示勾选 Advance 才会出现
- +表示上一阶层选择特定选项时才会出现
解析(Parser)
此步骤将原始文字资料依照设定的格式及一定程度的智慧自动化,分辨出时间轴及通道的数值。
Parser 参数说明 参数名称 参数定义 预设值 *Data Direction 指定资料是「垂直向下读取」或是「水平向右读取」。
- Column Based:垂直向下读取。
- Row Based:水平向右读取。
Column Based Field Format 定义资料分隔的方式,定义完成後方能正确分隔通道。
- White Spaced:代表资料间以空白或 Tab 键分隔。
- Delimiter:使用者自订资料分隔符号。
- Fixed Field:提供使用者自订读取的格式。
注意,若开启
.csv,则不会出现此栏位,因.csv本为逗号分隔档。即默认为 Delimiter,分隔符号为英文半形逗号「,」。各项设定请见「Field Format 额外参数说明」
White Space Row Range 资料在「横列」的读取范围,意即希望从第几列读取至第几列,格式为「起始:结束」。
- 输入「
5:20」代表从第 5 列读取至第 20 列。 - 输入单一数字,例如「
5」,代表从第 5 列读取至最後一列,等同「5:end」。 - 输入「
all」即代表读取第一列至最後一列,等同於「1:end」。 - 输入任何无法辨识的字串等同
end。
All (1:end) Column Range 资料在「纵行」的读取范围,意即希望从第行读取至第几行,格式为「起始:结束」。
- 输入「
5:20」代表从第 5 行读取至第 20 行为止。 - 输入单一数字,例如「
5」代表从第 5 行读取至最後一行,等同「5:end」。 - 输入「
all」即代表读取第 1 行至最後一行,等同於「1:end」。 - 输入任何无法辨识的字串等同
end。
注意:若发现资料并未正确分隔,请先至 Field Format 栏位进行调整。
All (1:end) Exclude Rows 设定忽略的横列,以逗点分隔。例如输入「 1,3,5」则忽略第 1丶3丶5 列的资料。此设定可配合 Row Range,精确设定资料的横列范围。RegEx Pattern &
RegEx Replace此两个栏位可设定让 Text Importer 在解析资料之前替换一些指定的字样。
- RegEx Pattern:以常规表达式(Regular Expression)语法设定搜寻的模型。
- RegEx Replace:以常规表达式(Regular Expression)语法设定搜寻後替换的字样。
RegEx 的语法可参阅Regular Expression Language - Quick Reference。
Time Axis Type 选择要采用的时间轴格式,指定或自动判别出来的时间轴资料在预览视窗内会以蓝色标示。各项设定请见以下「Time Axis Type 选项说明」。 Regular *Complex Channel 是否为复数通道。若设定为 True,排除时间轴後,将两两频道视为一组复数,前者为实部,後者为虚部(将显示为绿色文字)。False Time Axis Type 选项说明 Time Axis Type 说明 Regular 资料内不含时间轴,需前往 Constructor(建构)自行设定取样率和起始时间(Index 或日期)等资讯。 String 资料内的时间轴为字串,在 Time Channel 设定做为时间轴的通道,即可直接读入;任何合法的字元都可以汇入,但原始资料不会出图。 Numeric 数值时间。 Auto Date Time 自动侦测,系统会抓取符合通用格式的资料作为时间轴。若系统有判读成功,将会出现一行(或一列)蓝色的资料;若未出现蓝色表示您的时间资料非系统可自动识别的格式,需选择其他选项或自行定义。 Custom Date Time 自行定义时间日期格式。若系统有判读成功,将会出现一行(或一列)蓝色的资料。若未出现蓝色表示您的时间资料非系统可自动识别的格式,需重新定义。若因错误的格式定义导致解析时间过久,Text Importer 会自动暂停询问是否取消解析。 Field Format 额外参数说明 额外参数 说明 +Custom Delimiters Field Format 选择 Delimeter 时会出现此参数,可设定资料分隔符号。所有列出在此栏位的单一字元,包括空白键「
」与 Tab 「\t」都会分别被辨识为分隔符号。如果只需辨识单一分隔符号,可以输入以下特殊字串:- 「
SPACE」: 等同空白键「\(\Box\)」 - 「
TAB」:等同 Tab 键「\t」 - 「」:无字元,默认为 Tab 键
+Fixed Field Format Field Format 选择 Fixed Field Format 时会出现此参数,可自订资料读取格式,见下面说明。
- 起始:左起第一个字元
- 「|」 (竖线,非数字 1)代表抓取 1 个字元
- 「
[]」 代表连续抓取 2 个字元 - 「
[-]」 代表连续抓取 3 个字元 - 「
[--]」 代表连续抓取 4 个字元 - 输入 n 个空白键代表连续跳过 n 个字元
例如:此栏设为 「|\(\Box\)
[--][]」 (「\(\Box\)」代表空白键),读取资料列「123456789」,资料会储存为 3 个通道:- 第一个通道有一个字元,抓取「1」
- 有一个空白,因此跳过 2
- 第二个通道有四个字元,抓取「3456」
- 第三个通道有两个字元,抓取「67」
- 8 与 9 不在读取格式定义内,会被舍弃
+Custom Date Time Format Time Axis Type 选择 Custom Date Time 时会出现此参数,可自订时间日期格式。例如输入「 yyyyMMddhhmmss」 可将 「19771002120000」 解析为 1977/10/02 12:00:00。时间日期格式请参阅:.NET Custom Date and Time Format Strings*转换(Transformers)
此步骤为进阶选项,提供各种资料转换模式将解析好的资料传换成各种方便後续运算的形式,例如合并通道丶降取样丶补点等等。
Transformer 参数说明 参数名称 参数定义 预设值 *Merge to One Channel 若 Time Axis Type 设定为 Regular 时,是否将所有通道结合为一个通道。若选择 True,系统会将资料内所有定义好的通道(不包含时间轴)合并为一个通道。 False *Downsample Step 当资料量过大时,选择是否要进行降取样。输入的数字 N 代表「每 N 笔资料取一笔读入」 1 *+Downsampple Method 当 Downsample Step 设定为 \(N > 1\) 时,可选择降取样方式:
- Sample:每 \(N\) 笔资料取其第一笔之值
- Average:每 \(N\) 笔资料取其平均值
- Max Detect:每 \(N\) 笔资料取其最大值
- Min Detect:每 \(N\) 笔资料取其最小值
- Peak Detect:每 \(2N\) 笔资料取其最大和最小值,再依其出现的顺序先後排序。
降取样方式与 Resample 元件的参数设定相同,详情请参阅相关说明。
Sample *+Anti-Aliasing Method 当 Downsample Step 大於 1 时,可选择是否使用消除混叠方法:
- None:不采用
- IdealFilter:采用理想 IIR 滤波器
- Butterworth:采用 Butterworth IIR 滤波器
- Chebyshev:采用 Chebyshev IIR 滤波器
消除混叠方式及以下滤波器相关设定与 Resample 元件的参数设定相同,详情请参阅相关说明。
None *++Filter Order Anti-Aliasing Method 设定为 Butterworth 或 Chebyshev 时,可设定滤波阶数 1~12。 10 *++Filter Ripple Anti-Aliasing Method 设定 Chebyshev 时,可设定震荡参数(Ripple),即频率响应(frequency response)的幅度波动(overshoot 振幅),单位为分贝(dB) 0.1 *Handle Null Value 选择资料缺值的处理方式:
- None:不处里
- FixedValue:以一固定值补点。固定值可在 Fixed Value 参数设定
- PrevValue:取前一笔非缺值补点
- NextValue:取下一笔非缺值补点
- Linear:以线性内插方式补点
- Spline:以 Cubic Spline 方式补点
- MonotonicCubic:以 Monotonic Cubic Spline 方式补点
资料缺值补点的方式与 Fill Null 元件的参数设定相同,详情可参阅相关说明。
Linear *+Fixed Value Handle Null Value 选择 FixedValue 时,可设定一固定值补资料缺值。 0 建构(Constructor)
此为最後一个步骤,将解析并转换好的原始资料建构为 Visual Signal 内部的资料结构,以便汇入 Visual Signal 进行後续的运算。此步骤大多参数都是 Time Axis Type 设定为 Regular 或 Numeric 时所使用,以定义时间轴。若设定为 Date Time (Auto 或 Custom),则不会显示时间轴相关参数。
Consructor 参数说明 参数名称 参数定义 预设值 +Sapmle Frequency 数据的取样率 因数据而异 +Sample Frequency Unit 取样率的单位 因 Time Unit 设定而异 +Time Unit 数据时间轴的最小单位 因数据而异 +Start Time Type 设定时间轴的种类:Numeric(数值)或 DateTime(日期) Numeric +Start Time 设定数据的起始时间 0 *+Indexed Interval Option 选择 Indexed 格式间距估算方法
当 Time Axis Type 设定为 Numeric 或 DateTime 时,建构资料之时间轴为非等间距的 Indexed 格式。在此格式下,会估算出一个参考性的间距值记录在资料中,即「如果本资料时间轴为 Regular 格式则最有可能的间距值」。将资料转换为 Regular 格式时会采用此估算值(请参考【Convert To Regular】元件章节说明)。本参数可以选择估算采用的方法:
- Minimum(取最小间距)
- Mean(取平均间距)
- Mode(取最频繁之间距)
Mode *+Non-Monotonic Increasing Option 选择时间轴不递增时处理方法
当 Time Axis Type 设定为 Numeric 或 DateTime 时,建构资料之时间轴为非等间距的 Indexed 格式。在此格式下,时间轴资料有可能重复或未排序(非递增),此时提供两种处理方法:
- Fail(汇入资料失败)
- Sort(将资料排序使其时间轴递增)
Fail *++Handle Repeat Time 在 Non-Monotonic Increasing Option 设为 Sort 时可以处理重复时间的方式:
- Sample:取第一笔重复时间所对应的值
- Average:取每一笔重复时间所对应资料的平均值
- Minimum:取每一笔重复时间所对应资料的最小值
- Maximum:取每一笔重复时间所对应资料的最大值
Sample
范例
多通道讯号资料档
从
C:\Program Files\AnCAD\Visual Signal\demo\Enhanced汇入一个多通道讯号资料档Bird and Frog.txt。此档案使用空白键做为资料间隔,若未更改 Field Fromat 预设之 White Space,便会依照空白键区隔为三个综行:
此数据第一行为时间轴,第二丶三行各为鸟鸣和蛙鸣的数据。时间轴可能非等间隔的格式,因此 Time Axis Type 可选择 Numeric,Time Channel 选择 1(因为每一行都是数值,必须指定哪一行为时间轴,否则无法正确解析)读取数字格式的时间轴。时间轴成功读取後会以蓝色显示:

设定好後点选 Import,以 Viewer / Channel Viewer 显示此数据。黑色线条为第一通道 CH1,蓝色线条为第二通道 CH2:

AutoDateTime 时间轴
从
C:\Program Files\AnCAD\Visual Signal\demo\Enhanced汇入一个资料档AutoDateTime.txt,此档案使用空白键做为资料间隔,若未更改 Field Fromat 预设之 White Space,Time Axis Type 也仍是前范例所设之 Numeric,便会依照空白键区隔为四个综行:
此数据第一行是日期,第二行是时间,因此 Time Axis Type 可选择 AutoDateTime尝试自动辨识时间日期,时间轴成功读取後会自动合并第一丶二行,视为一个综行,此时分隔线会将资料分隔成三个综行,如前一个范例,第一综行为合并之时间轴,以蓝色显示,第二丶三行各为第一通道与第二通道的数据:

如果一开始读取档案时 Text Importer 自动辨识时间日期格式成功,此时也会自动设定Time Axis Type 为 AutoDateTime,直接进入如上图状态。
又,成功自动辨识为时间轴後便不需要如前范例般再手动设定 Time Channel,此参数也不会显示出来。
设定好後点选 Import,以 Viewer / Channel Viewer 显示此数据。黑色线条为第一通道 CH1,蓝色线条为第二通道 CH2:

CustomDateTime 时间轴
同前一范例,汇入资料档
AutoDateTime.txt,自动辨识分隔为下图状态:
此时打开 Advanced 设定,可用 RegEx Pattern 及 RegEx Replace 参数修改第一丶二行的格式,将时间轴的
/丶:丶空白键等移除(请参考 Regular Expression 语法),如下:RegEx 参数设定 参数 设定 RegEx Pattern (\d{2})-(\d{2})-(\d{4}) +(\d{2}):(\d{2}):(\d{2})RegEx Replace $1$2$3$4$5$6设定好後,可以看到原来的时间轴变成一串数字,Text Importer 已经无法自动辨识, Time Axis Type 自动跳回 Regular 设定:

此时可以将 Time Axis Type 设定为 CustomDateTime,并依照原来时间日期数字的顺序将 Custom DateTime Format 设定为 「
MMddyyyyHHmmss」(请参考 DateTime String 语法),可看到第一行成功辨识为时间轴:
同前范例,设定好後点选 Import,以 Channel Viewer 显示此数据,可得到与前范例同样的图:

相关指令
6.1.2 Matlab Importer
若汇入者为 mat 这种 MATLAB 专用的二进位档,则会进入如下列介绍的 Matlab Importer:
首先介绍开启 mat 档案而讯号格式为 Signal,则会进入以下画面的 Matlab Importer ,参数设定大致与文字档完全相同。。

若汇入 mat 为包含讯号格式为时频资料(Spectra),此 mat 档案必定包含三种变数:资料 (
*_value:\(N*M\) 矩阵)丶时间轴(*_time:\(M*1\) 矩阵)丶频率轴 (*_freq:\(N*1\) 矩阵),Visual Signal 才能汇入时频资料,列如本示范包含STFT_value丶STFT_time丶STFT_freq,如下图所示。假设 Import as Spectra 为 Unchecked,则将会把资料 (
*_value)以多通道讯号汇入,并不会将频率资讯 (*_freq) 引入,在此必须特别注意。
相关指令
6.1.3 Import Audio
若汇入是支援的音讯档,则会直接产生一个 Data Source 元件,不需要用 Importer 设定输入参数。


6.1.4 SAC Importer
SAC 为地震分析软体的资料档,读取 sac 档时程式会跳出 SAC Importer 以设定讯号的读取范围等参数,SAC Importer 介面如下图所示:

SAC Signal Information 可显示与设定讯号的资讯,其中 Name丶Channel Count丶Sample Freq 显示目前读取的资料档名称丶讯号通道数以及取样频率。Magnitude Unit 可供使用者设定讯号值的单位;Time Unit 可以让使用者调整时间单位,当改变单位後,Sample Frequency 会自动换算为调整後的单位。
Data Range 可让使用者设定读取讯号的范围,其中 Count 与 Range 栏位显示资料数量与资料的时间长度,在 From丶To 栏位可设定读取讯号的起迄点位置,Down-sample by 栏位则可设定是否要 Down-sample 以及设定 Down-sample 的步长。
Data Axis 则可选择是否设定年月日等时间轴资讯。
6.1.5 WaveFormDatabase Importer
HEA 是 Physionet 此组织发展一系列生医讯号软体之通用格式档。读取此档时会跳出 WFDB Importer 协助使用者设定参数,下图是 WFBD Importer 的使用介面。

介面前三大项 Signal Information丶Data Range丶DataAxis 与 SAC Importer 相同,这里不再重复。当输入讯号为多通道时,会出现 Selected Channels 的选项,让使用者选择读取的 Channel。
6.1.6 Load Data Dialog
成功读取档案後,如果【Preference】中之 Partial Load 设为 True(预设值),则 Visual Signal 会开启 Load Data 对话窗,如下:

如欲利用完整的读入资料,则点击 Load All 按键,则 Visual Signal 会产生一个Data Source 元件,并将所有读取的档案资料存放於该元件,(详情请见下章【Data Source】)。当 【Preference】中之 Partial Load 设为 False 时,本对话窗不会出现,并等同於在对话窗中选择 Load All,读取所有的档案资料。
有时读取的资料量太大,如果全部汇入 Visual Signal 可能会造成无法继续进行计算的情形,此时可以利用 Load Data 对话窗撷取部分资料汇入,如下图所示,在对话窗的下拉选单中选择 Partial Load:

则对话窗会换成部分撷取的介面:

下表解说各栏位:
| 栏位 | 说明 |
|---|---|
| Start | 撷取窗的起始点 |
| Length | 撷取窗的长度 |
| Overlap | 移动撷取窗时之重叠 |
每个输入栏位的右方还有两组数字显示 X%/Y,Y 为资料总长度(资料点数),X 为该栏位输入之点数为总长度之百分比。
撷取窗的起始点除了可以在 Start 栏位输入点数之外,还可以使用对话窗下方的滑动控制设定位置。滑动时 Start 栏位的数值会同步变动,此时 Length 栏位必须设为小於总长度,否则滑动控制无作用。点击滑动杆左方或右方的长条空处可以让滑动杆以 Overlap 设定的点数跳跃移动;点击最左方或最右方的箭头则可以将滑动杆移动一个点数。如下图:

Overlap 的设定也决定了资料汇入後,在执行元件计算时用【元件编辑窗工具列】的连续重读/单次前进重读/单次後退重读的按键运作。Overlap 与跳跃移动撷取窗的定义可以参考【滚动窗】之 Overlap 定义。
6.2 Data Source
成功汇入档案资料後(完整资料或是部分撷取),Visual Signal 会产生一个 Data Source 类别的资料源元件,元件名称为档案名称。
以汇入 C:\Program Files\AnCAD\VisualSignal\demo\Basic\hello.wav 为例:

如果是采用拖放档案至绘图视窗的方式汇入档案(见【Open Data】章节说明),则除了 Data Source 之外还会自动产生并连结对应之 Viewer 元件,如下图。

参数设定

| 餐数名称 | 参数定义 |
|---|---|
| FileName | 档案名称,可重读,见下文【重读档案】章节 |
| Channel Count | 显示资料通道数 |
| Sampling Frequencye | 显示资料取样率,单位为 \(1 / Unit\) |
| Data Length | 显示资料长度,单位为点数 |
| StartValue | 显示时间轴起始时间,单位见 Unit |
| EndValue | 显示时间轴结束时间,单位见 Unit |
| Unit | 显示时间单位。在 Viewer 显示时会正确地标示 X 轴标题上 |
| TimeFormat | 显示时间轴格式:Regular 或 Indexed |
| Data Unit | 显示资料的单位,本栏位只有在资料档头有特别才会显示。如有资料单位,则在 Viewer 显示时会正确地标示在 Y 轴标题上 |
| Extended Information | 显示其他额外的资讯,见下文【额外资讯】章节 |
6.2.1 部分撷取资料源
当汇入资料时在【Load Data】对话窗选择了 Load All,本元件输出的资料为完整的档案汇入资料,此时 StartValue 参数为原资料之起始时间(如无档头或时间轴资讯则为 0),EndValue 参数为原资料之结束时间(如无档头或时间轴资料则为资料时间长度), Data Length 为全资料的时间长度,如下图(以 hello.wav 为例):

当汇入资料时在【Load Data】对话窗选择了 Partial Load,本元件输出的资料为所设定之部分档案汇入资料,此时 StartValue 参数为所设定之部分撷取窗之起始时间, EndValue 为撷取窗之结束时间,Data Length 为撷取窗的时间长度,如下图(以 hello.wav 为例,起始设为 1000,长度为 1000):

当元件资料为部分撷取,使用者可使用【元件编辑窗工具列】上的图示移动撷取窗重读资料:
![]()
| 图示 | 说明 |
|---|---|
![]() |
依照【Load Data】对话窗之 Overlap 设定,连续将撷取窗移至下个位置,读取资料,并重新执行 DataSource 元件下游连结的所有元件。此步骤会自动连续执行,直到撷取窗移至原资料最尾端 |
![]() |
依照【Load Data】对话窗之 Overlap 设定,单次将撷取窗移至下个位置,读取资料,并重新执行 DataSource 元件下游连结的所有元件 |
![]() |
依照【Load Data】对话窗之 Overlap 设定,单次将撷取窗移至下个位置,读取资料,并重新执行 DataSource 元件下游连结的所有元件 |
无论元件的资料为完整汇入或是部分撷取,使用者都可以用双击元件的方式(见下文)重新设定撷取窗或直接完整重读资料。
6.2.2 重读档案
本元件提供三种方法可以重读档案资料,功能稍有不同:
点击 FileName 参数,栏位最右侧会出现三个点的图示
,点击该图示则会跳出如【Open Data】时的档案选择对话窗,此时操作跟【Open Data】时一样,档案汇入後会自动更新本元件的输出资料以及 FileName 参数的路径。直接更改 FileName 参数的路径,如果档案存在该路径,则本元件会不经过档案选择示窗而直接读取档案。
双击元件图示。此动作会开启一个类似【Load Data】的 Reload 对话窗,如下图:

Reload 对话窗
重读对话窗的操作与【Load Data】对话窗类似,但是下拉选单多了几个选项:

如果是经过 Importer 设定对话窗(例如 Text Importer) 汇入的档案,则还会多出一个选项:

如欲整个取消重读,则点击 Cancel 键;如欲重读,则根据下拉选单的选项 Reload 按键会有不同功能:
| 重读选项 | 说明 |
|---|---|
| Load All | 如果元件的资料是从原档案部分撷取的,此功能从记忆体内重读所有的资料(不重读档案)。 当【Preference】之 Partial Load 设为 False 时,此选项不会出现。 |
| Partial Load | 此部分操作与【Load Data】对话窗中同名选项一样,进入部分重读对话窗设定或改变撷取窗参数,从记忆体内撷取部分资料重读(不重读档案)。 当【Preference】之 Partial Load 设为 False 时,此选项不会出现。 |
| Load File | 跳出如【Open Data】时的档案选择对话窗,以 FileName 参数设定之路径为预设档案,选择重读原有或新档案。此时会尝试使用原有的汇入参数读取档案,因此不会跳出 Importer 对话窗。但如果新档案的副档名与原有档案不同,则会重设汇入参数,行为则会如以下 Load File New Settings 选项一样。 选择档案後会重读该档案资料,而後如果【Preference】之 Partial Load 为预设之 True 时,会再次出现【Load Data】对话窗,使用者可选择读取新档案之完整或部分资料。若 Partial Load 设为 False,则会直接读取档案所有资料。 |
| Load File New Settings | 同上,但是会重设汇入参数,以选择档案之副档名所对应之 Importer 重读档案,如有需要会再次出现 Importer 对话窗,让使用者可以重新设定汇入参数。 |
6.2.3 额外资讯
当资料档含有额外资讯时,使用者可以点击 Extended Information 参数,栏位最右侧会出现三个点的图示
,点击该图示则会跳出一个 Reporter 对话窗(请参考【Reporter】章节说明)。
以汇入 C:\Program Files\AnCAD\VisualSignal\demo\Basic\hello.wav 为例,音讯档相比其他的资料格式有额外的 BitsPerSample 资讯(取样位元数),显示在 Extended Information 的 Reporter 中如下图:

除了音讯档之外,.tfa 与 .vsb 的档头(见【Open Data】章节说明)也支援加入非内建的 Extension 档头资讯,用「#+」标示。这些 Extension 档头资讯汇入 Visual Signal 後则可以在 Extended Information 的 Reporter 中显示出来。
以汇入C:\Program Files\AnCAD\VisualSignal\demo\Extended\rain.tfa 为例,该档案的档头如下:
# Version: TFA1.6.0
# DataType: Signal
# Complex: False
# ChannelCount: 1
# ChannelNames: CH2
# DataUnit:
# SampleFreq: 24
# TimeUnit: day
# StartDate: 2014/01/01 00:00:00.0000000
# TimeFormat: Regular
#+ SeparateChannels: False
#+ Latitude: 202357.432
#+ Longitude: 2528417.116
档头最後三行 SeparateChannels丶Latitude丶Longitude 为非内建 Extension 资料,显示在 Extended Information 的 Reporter 中则如下图(欲完整显示座标数值须将 Report 的数字显示格式改成精确度 3 之 Fixed 格式):

6.3 Noise
建立杂讯讯号源,可产生七种不同杂讯(Noise)。
说明
以下介绍各项杂讯的定义,令 \(x(t)\) 代表杂讯:
White Noise:
\(E[x_{\text{white}}(t)] = 0\)
\(E[x_{\text{white}}(t)x_{\text{white}}(t-\tau)]=\delta(\tau)\)
白杂讯的数学期望为 0,杂讯之平均值为零,\(E\) 表期望值;且自相关函数为 Kronecker Delta(\(\delta\))。
Gaussian Noise:
\(x_{\text{Gauss}}(t) = \frac{1}{\sigma\sqrt{2\pi}} \mathrm{e}^{-\frac{(t-\bar{t})^2}{2\sigma^2}}\)
若杂讯在统计上呈现 Normal Distribution 高斯分布,则此杂讯为 Gaussian Noise。高斯分布的期望值 \(\bar{t}\) 决定了其位置,其标准差 \(\sigma\) 决定了分布的幅度。
Speckle Noise:
斑点型杂讯,振幅非最大值 \(A\)丶则即为零,依照机率 \(P\) 控制出现次数。
Pink Noise:
\(F[x_{\text{pink}}(t)]^2 \propto \frac{1}{f}\)
此杂讯之傅立叶转换之密度值反比於频率{-}
Brownian Noise:
\(F[x_{\text{Brownian}}(t)]^2 \propto \frac{1}{f^2}\)
此杂讯之傅立叶转换密度值反比於频率平方;\(F\) 表示傅立叶转换之密度值,\(f\) 表示频率。
Blue Noise:
\(F[x_{\text{blue}}(t)]^2 \propto f\)
此杂讯之傅立叶转换密度值正比於频率;\(F\) 表示傅立叶转换之密度值,\(f\) 表示频率。
Violet Noise:
\(F[x_{\text{violet}}(t)]^2 \propto f^2\)
此杂讯之傅立叶转换密度值正比於频率平方;\(F\) 表示傅立叶转换之密度值,\(f\) 表示频率。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| TimeUnit | 时间单位,可为皮秒(ps)丶奈秒(ns)丶微秒(us)丶毫秒(ms)丶秒(sec)丶分(minute)丶时(hour)丶日(day)丶月(month)丶年(year)。 | sec |
| TimeLength | 时间长度,时间单位为TimeUnit。 | 1 |
| SamplingFreq | 取样频率,单位时间内共要取几个点。 | 1000 |
| DataLength | 产生信号的资料长度,即总共的取样点数: \(\text{取样频率} \times \text{时间长度} + 1\)。 | 1001 |
| Amplitude | 杂讯之振幅。 | 1 |
| AmplitudeOffSet | 杂讯振幅之平移量。 | 0 |
| TimeStart | 设定杂讯之时间起点。 | 0 |
以上参数设定为所有讯号源共用,以下不再重复,只列出各讯号源独有之参数设定。
Gaussian Noise 还多了以下参数 :
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Sigma | 设定高斯函数之宽度。 | 1 |
Speckle Noise 还多了以下参数 :
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Probability | 设定 Speckle 杂讯发生之机率。 | 0.005 |
范例
杂讯检测:
以 Source / Noise 建立七个不同种类的杂讯讯号源,全部以 Viewer / Channel Viewer 绘出。








接下来测试各杂讯的行为:将 Pink Noise 做 Compute / Transform / FFT 傅立叶转换,取Conversion / Map ToReal,再将 ToReal 中的 Properties / MapMethod 设定为 PowerSpectrum,可发现此频谱密度值大体上与频率成反比也可不接 Convert From Complex 直接将 Viewer 中的 YValueType 设为 Powerspectrum)。



步骤2的作法同样可应用於 Brown丶Blue丶Violet 等其他有色杂讯,如对 Blue Noise 可得下面之频谱密度值,可见 Blue Noise 之频谱密度值正比於频率。

将 Noise Type 设定为 Gaussian Noise,且 Time Length 设为 100 秒,以 Viewer / Histogram Viewer 可以画出 Gaussin Noise 的统计直方图,其分布曲线即为常态分怖。

相关指令
Channel Viewer丶Fourier Transform丶 Convert From Complex
相关资料
1. http://en.wikipedia.org/wiki/Colors_of_noise
2. http://en.wikipedia.org/wiki/Gaussian_noise
6.4 Sine Wave
建立正弦波。
说明
令 \(t\) 为代表时间,长度为 \(N\) 的数列,\(T = \{t_0, t_1, \dots, t_{N-1}\}\),则一正弦波讯号 \(x_{\text{sine}}(t_i)\) 可表示为
\[x_{\text{sine}}(t_i) = A \sin{(\omega t_i + \theta)} + V\]
其中 \(A\) 是振幅,\(\omega\) 是角频率(Angular Frequency),\(\theta\) 是初始相角, \(V\) 是振幅之平移量;而在输入参数时,输入之讯号频率为 \(f\),而非角速度:
\[f = \frac{\omega}{2\pi}\]
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| SignalFreq | 此讯号之实际频率,单位为时间长度之倒数(注意,是频率,非角速度)。 | 10 |
| Phase | 初始相角值,以角度为单位。 | 0 |
其他共有参数请参考 Noise Source。
范例
正弦波之建立:
Source / Sine Wave 建立正弦波。


在 Sine 的 Properties / Source 里,可知此例的取样频率(SamplingFreq)设定为预设值 1000,讯号频率(SignalFreq)设为 10。
可设定其 Phase(初始相角)为 90,如此正弦波即可变为馀弦波(Cosine Wave)。


设定 Amplitude 为 3,AmplitudeOffSet 为 1.5,再设定 TimeStart 为 2.0, SignalFreq 设为 0.5,可得下列图形:


相关指令
Noise Source丶 Channel Viewer丶Square Wave丶Triangle Wave
6.5 Square Wave
建立方波。
说明
令 \(x_{\text{square}}(t)\) 为一方波,则
\[x_{\text{square}}(t) = \begin{cases} A+V, \quad \theta \leq t < s f^{-1}+\theta\\[0.5em] -A+V, \quad s f^{-1}+\theta \leq t < f^{-1}+\theta \end{cases}\\[1em] x_{\text{square}}(t+f^{-1}) = x_{\text{square}}(t)\]
其中 \(A\) 是振幅,\(f\) 是频率,\(s\) 是方波震幅为正的部份在讯号周期所占之比例量(symmetry), \(\theta\) 是初始相角,\(V\) 是振幅之平移量。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| SignalFreq | 此讯号之实际频率,单位为时间长度之倒数(注意,是频率,非角速度)。 | 10 |
| Phase | 初始相角值,以角度为单位。 | 0 |
| Symmetry | 修改波形的对称性,讯号的一个周期内,讯号值大於零的部份之比例量为 \(s\),小於零的负部份为 \(1-s\)。 | 0.5 |
其他共有参数请参考 Noise Source。
范例
方波之建立:
以 Source / Square Wave 建立正弦波。


在 Square 的 Properties / Source 里,可知此例的取样频率(SamplingFreq)设定为预设值(1000),讯号频率(SignalFreq)设为 10。
可设定其 SignalFreq 设为 5,Amplitude 为 3,AmplitudeOffSet 为 2,Symmetry 为 0.4(即为s),再设定 TimeStart 为 2.5,可得下列图形:


相关指令
6.6 Triangle Wave
建立三角波。
说明
令 \(x_{\text{triangle}}(t)\) 为一三角波,则
\[x_{\text{triangle}}(t) = \begin{cases} \frac{A f}{s}t+V, \quad \theta \leq t < s f^{-1}+\theta\\[0.5em] A[1-\frac{f}{1-s}(t-sf^{-1})]+V, \quad s f^{-1}+\theta \leq t < f^{-1}+\theta \end{cases}\\[1em] x_{\text{triangle}}(t+f^{-1}) = x_{\text{triangle}}(t)\]
其中 \(A\) 是振幅,\(f\) 是频率,\(s\) 是斜率为正的部份在讯号周期所占之比例量( symmetry),\(\theta\) 是初始相角,\(V\) 是振幅之平移量。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| SignalFreq | 此讯号之实际频率,单位为时间长度之倒数(注意,是频率,非角速度)。 | 10 |
| Phase | 初始相角值,以角度为单位。 | 0 |
| Symmetry | 修改波形的对称性,讯号的一个周期内,讯号斜率为正的部份之比例量为 \(s\),负部份为 \(1-s\)。 | 0.5 |
其他共有参数请参考 Noise Source。
范例
建立三角波。
以 Source / Triangle Wave 建立三角波。


可将 AmplitudeOffSet 设为 0.3,再设定 TimeStart 为 0.3,SignalFreq 设为 4, Symmetry 设为 0.7,可得下列图形:


相关指令
Noise Source丶 Square Wave丶Sine Wave丶Channel Viewer
6.7 Custom Wave
自行输入欲创建之讯号的方程式。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Expression | 设定欲产生讯号之方程式 | sin(2*pi*10*t) |
其他共有参数请参考 Noise Source。
Expression 可用 sin,cos,tan,exp,asin 等常用数学函数,在此与Math 中的 fn 选单所支援之函数完全一样(可参考 C sharp所支援之数学函式)。特别注意次方的表式法:\(a^n\) 需写为 pow(a,b)。
范例
建立一频率整比於时间的准稳态讯号:
拉出 Source /Custom Wave。并设定 Custon wave 的时间长度为 2(便利於观察), Expression 设定如下图,此方程式之意思为 \(\sin(200 \cdot t^2)\)

拉出 Viewer 可观察图型如下。

接下图可用 short-term fourier transform 「验证」其频率正比於时间,配置与时频图如下,可见,频率确实正比於时间。


同样我们可建立一个 \(\tan^{-1}(\mathrm{e}^{3-20t})\):


相关指令
Noise Source丶Channel Viewer丶Short Term Fourier Transformation丶Math
参考资料
http://msdn.microsoft.com/en-us/library/system.math_methods.aspx
6.8 Impulse*
*Only in Professional*
建立脉冲讯号。
说明
令 \(t\) 为代表时间,长度为 \(N\) 的数列,\(T = \{t_0, t_1, \dots, t_{N-1}\}\),一个完美的脉冲讯号 \(x_{\text{impulse}}(t_i)\) 可表示为
\[\begin{aligned} x_{\text{impulse}}(t_i) &= A \cdot u(t_i - T) + V\\[0.5em] u(t) &= \begin{cases} 1, \quad t = 0\\ 0, \quad \text{otherwise} \end{cases} \end{aligned}\]
其中 \(T\) 为冲击所产生的时间点, \(A\) 是振幅,\(V\) 是振幅之平移量。在此模组下提供三种近似的脉冲讯号,包括 Gaussian丶Square 及 Decay:
Gaussian:
\(\delta_{\text{Gauss}}(t) = \frac{1}{\sigma\sqrt{2\pi}}\mathrm{e}^{-\frac{(t-t_0)^2}{2\sigma^2}}\)
此种讯号在时间域上呈现 Normal Distribution,\(t_0\) 决定脉冲发生位置,\(\sigma\) 决定脉冲尖锐程度,\(\sigma\) 越小,脉冲越尖锐,也越接近完美脉冲。
Square:
\(\delta_{\text{square}}(t) = \begin{cases} A, \quad 0 \leq t-t_0 < w\\ 0, \quad \text{otherwise} \end{cases}\)
此种脉冲近似於一个宽度极小的方波,\(t_0\) 决定脉冲发生位置, \(w\) 代表方形脉冲的宽度, \(w\) 越小,越接近完美脉冲。
Decay:
\(\delta_{\text{square}}(t) = \begin{cases} A, \quad 0 \leq t-t_0 \leq w\\ A\mathrm{e}^{t_0+w-t}, \quad \text{otherwise} \end{cases}\)
此种脉冲近似於一个宽度极小方波,尾端以 Exponential Decay 结束,\(t_0\) 决定脉冲发生位置,\(w\) 代表方形脉冲的宽度, \(w\) 越小,越接近完美脉冲。
参数设定

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ImpulseShape | 脉冲形态,可为 Gaussian丶Square丶Decay。 | Gaussian |
| Start | 脉冲起始时间。 | 0 |
| SingleImpulse | 是否只产生单一脉冲。 | False |
| Interval | 脉冲与脉冲之间的间距。 | 0.2 |
| PositiveImpulse | 设定是否为正的脉冲。 | True |
当 ImpulseShape = Gaussian 时,多了以下参数:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Sigma | 设定 Normal Distribution 的宽度,sigma 越小,图形越尖锐。 | 0.005 |
当 ImpulseShape = Square 时,多了以下参数:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Width | 设定方形脉冲的宽度,若设定为 0,实际宽度设定为输入讯号两点的时距。 | 0 |
当 ImpulseShape = Decay 时,多了以下参数:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Width | 设定方形脉冲的宽度,若设定为 0,实际宽度设定为输入讯号两点的间距。 | 0 |
| Decay | 设定振幅衰减的时间,当设定值越小代表衰减时间越快。 | 0.005 |

其他共有参数请参考 Noise Source。
范例
脉冲讯号之建立,脉冲讯号的时频分析:
以 Source / Advanced / Impulse 建立脉冲讯号,并以 Viewer / Channel Viewer 绘出图形。


再将 Impulse 接至 Compute / TFA / Short Term Fourier Transform 运算,最後以 Viewer / Time-Frequency Viewer 显示结果。


设定 Impulse 的参数,Sigma =0.0001,将 Sigma 调整越小,在 Channer Viewer 中图形越接近完美脉冲,在 TFA Viewer 能清楚看到频宽较大的现象。



相关指令
Noise Source丶 Channel Viewer丶Time-Frequency Viewer丶 Short Term Fourier Transform
6.9 Jaehne*
*Only in Professional*
建立 Jaehne signal。
说明
令 \(t\) 为代表时间,长度为 \(N\) 的数列,\(T = \{t_0, t_1, \dots, t_{N-1}\}\), Jaehne 讯号可表示为
\[x_{\text{Jaehne}}(t_i) = A\sin\bigg(\frac{\pi i^2}{2N}\bigg) + V\]
其中 \(A\) 是振幅,\(V\) 是振幅之平移量。
参数设定

共有参数请参考 Noise Source。
范例
Jaehne 讯号之建立,并将 Jaehne 讯号进行时频分析:
以 Source / Advanced/ Jaehne 建立讯号,并以 Viewer / Channel Viewer 绘出图形。


再将 Jaehne 接至 Compute / TFA / Short Term Fourier Transform 运算,最後以 Viewer / Time-Frequency Viewer 显示结果,Jaehne 讯号类似 Chirp 讯号,随着时间增加,讯号频率增加。


相关指令
Noise Source丶Channel Viewer丶 Time-Frequency Viewer丶Short Term Fourier Transform
6.10 DAQ*
* Only in DAQ Module *
6.10.1 Audio-DAQ
Audio-DAQ 可将外接麦克风录制的声音讯号输入 Visual Signal,使用者可自订录音长度与解析度,或是连续监测即时动态讯号(Real Time);此功能位於Source / DAQ / Audio-DAQ。
参数设定
从 Source / DAQ / Audio-DAQ 新增本元件,并接上 Viewer / Channel Viewer 显示。

在 Audio-DAQ 元件上双击两次滑鼠左键或点选 Property 视窗中的 Open Audio-DAQ Interface 栏位右侧
图示即可开启 Audio-DAQ 的操作介面。
Audio-DAQ 参数说明 参数名称 说明 Input Device 选择输入音源的装置 Mic Volume 麦克风音量 Bits Per Sample 录音的解析度,预设为16 bits per sample Channel 选择收音系统:Mono(单声道)或Stereo(立体声) 切换到 Data Acquisition 介面,可设定资料撷取的参数

Data Acquisition 参数说明 参数名称 说明 Sample Time(s) 量测时间[秒],如未选则 Continuous DAQ 模式,则需填选讯号量测时间 Sample Rate(Hz) 取样频率[Hz],可自行依照资料的种类及要求的资料品质选择取样频率(建议:若资料为连续讯号,取样率最少须为该讯号最大频率的 2 倍) Data Length 资料点数长度(\(\text{Sample Time}×\text{Sample Rate}=\text{Data Length}\) ,三者互相连动) Cont. Update Rate 连续撷取模式时的更新速度,会换算成每个 frame 的 Sample Time DAQ Mode 资料撷取模式:
- Single:单次撷取模式,一次性撷取 Sample Time 长度的资料
- Periodic:周期性撷取模式,可设定每段时间(Period)撷取 Sample Time 长度的资料
- Continuous:连续撷取模式,每次撷取一小段资料(长度由 Update Rate)计算,接上 Viewer 後连续更新画面显示
Period 周期性撷取模式时的周期设定,可选择时间单位 Scrolling 连续撷取模式下的滚动模式的取样方法:
- Off(关闭滚动模式)
- Sample(抽样)
- Average(平均)
- Extrema(最大值)
- STFT(短时距傅立叶变换)
Logging 档案量测存取位置,勾选後可选择档案存取路径 参数及资料撷取设定完成後,即可按下
开始量测。
6.10.2 NI-DAQ
NI-DAQ 为 Visual Signal 和 NI 资料撷取卡的中间窗口,透过其向 NI-MAX 取得撷取卡数据读入至 Visual Signal 做进一步的处理。
说明
购买 NI 撷取卡後,可於其网站上下载驱动程式 NI-DAQmx ,下载完成後便可利用其中之 NI Measurement & Automation Explorer(NI-MAX)软体与 Visual Signal 之 DAQ 模组合并使用。
在 Visual Signal 的 Network 视窗按下滑鼠右键,依路径 Source / DAQ / NI-DAQ 叫出 NI-DAQ 元件,元件图示如下图。

在 NI-DAQ 元件上双击两次滑鼠左键或点选 Property 视窗中的 Open NI-DAQ Interface 栏位右侧
图示即可开启 NI-DAQ 的操作介面 。


若於介面中按下
,可开启 NI-MAX 的自动量测程式介面。在 NI-MAX 中可以针对所有 NI 支援的 DAQ 装置产生资料撷取工作(Task),并针对所连接的不同感测器设定相关参数。如在 NI-MAX 中调整过参数,回到 NI-DAQ 页面记得利用
刷新资讯。
Available Tasks 中显示存於 NI-MAX 中的撷取设定(下图左侧的 NI-DAQmx Tasks 红线框起处);而 Task 中的 Rate(Hz)及 Samples to Read(蓝线框起处)也会分别读入 NI-DAQ 中的 Sample Rate(Hz)和 Data Length,透过 NI-DAQ 自行计算总取样时间 Sample Time(s),减少使用者需要另外计算之不便(此处须切换到 NI-DAQ 介面之 Data Acquisition 页面,其介面及操作与其他 DAQ 模组一致,请参考前文【Audio-DAQ】章节说明。

勾选
则在执行前会先检查需外接硬体的 Task 是否正确接上撷取卡。
当一切准备就绪,点击
开始抓取数据,在执行期间随时可按下
中止,若於执行结束前按下此键,则已撷取的资料将随中止一并放弃。
执行完成後,用
让数据汇入 Visual Signal 以便後续分析。
参数说明
相关参数说明如下表。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Open NI-DAQ Interface | 打开 NI-DAQ 的使用介面,可由此介面与 NI-MAX 连结。 | No data Imported |
范例
下面透过实作说明 DAQ 的使用方法。
如前文图示,新增 DAQ 元件,并双击元件呼叫出 NI-DAQ 介面。
点开 Open NI-MAX,
接着在 NI-MAX 中新增 Task 後回到 NI-DAQ 介面。
在 NI-DAQ 介面中按下 Refresh,Available Tasks 栏位出现刚才在 NI-MAX 新增的 Task 资讯。
切换至 Data Acquisition 页面,确定参数没有问题(Single DAQ 模式,所有参数皆为预设值)後按下「Start」。
等待执行完毕,NI-DAQ 介面自动关闭,数据自动读入 Visual Signal。
利用 Viewer 展示结果,如以下图。


参考资料
- NI Hardware Driver NI-DAQmx: https://www.ni.com/zh-tw/support/downloads/drivers/download.ni-daq-mx.html
6.10.3 ADLINK-DAQ
ADLINK-DAQ (USB-2405)为 Visual Signal 和 ADLINK 资料撷取卡的中间窗口。
说明
使用前说明: 购买 ADLINK 撷取卡後,可於其网站上下载驱动程式(Driver),下载完成後便可与本软体之 DAQ 模组合并使用。
Visual Signal 内操作说明
呼叫路径:在 Visual Signal 的 Network 视窗按下滑鼠右键,依路径
Source\DAQ\Adlink-DAQ叫出 Adlink-DAQ 元件,元件图示如下图。
操作介面:在
元件上双击两次滑鼠左键或点选 Property 视窗中的 Open Adlink-DAQ Interface 栏位右侧
图示即可开启 Adlink-DAQ 的操作介面 。

在 Type 的下一阶层,需勾选传感器所连接的 USB-2405 频道(Al0丶Al1丶Al2丶Al3),并调整其参数,各参数说明如详见下一节。
参数设定
ADLINK-DAQ 参数设定分为两部分:Adlink 和 Data Acquisition (资料撷取设定)
Adlink
| 参数名称 | 说明 |
|---|---|
| Coupling | 输入耦合类别:
|
| Input Type | 输入类别:
|
| IEPE=ICP | 需微小电源启用,内有放大器,一般需外部激发
|
| Scale/Sensitivity | 自行输入 Sensor Sensitivity 数值与单位。例如:42.8mV/Pa |
Data Acquisition(资料撷取设定)
Data Acquisition 介面及操作与其他 DAQ 模组一致,请参考前文【Audio-DAQ】章节说明。
参数及资料撷取设定完成後,即可按下开始量测,并用 Viewer 展示结果,如以下图。

参考资料
- ADLINK-DAQ (USB-2405): http://www.adlinktech.com/PD/web/PD_detail.php?pid=1297
- Visual Signal with ADLINK DAQQuickStart https://www.youtube.com/watch?v=e6yB7LvgT9I
6.10.4 Simulated-DAQ
Simulated-DAQ 可产生所有 Visual Signal 内建的讯号源(Source),也可自行汇入数据(Import Data),并模拟数据随时间变化的即时动态(Real Time);此功能位於 Source/DAQ/Simulated-DAQ。
参数设定
从Source/DAQ/Simulated-DAQ 新增此功能,并接上 Viewer/Channel Viewer 显示。

在 Simulated-DAQ 元件上双击两次滑鼠左键或点选 Property 视窗中的 Open Simulated-DAQ Interface 栏位右侧
图示即可开启 Simulated-DAQ 的操作介面。Simulator 介面可设定讯号源的波形和基本参数,从
可增加或删除通道。
Data Acquisition 介面及操作与其他 DAQ 模组一致,请参考前文【Audio-DAQ】章节说明。
参数设定好後,点击
模拟器则会依照 Sample Rate 及 Max Time 将模拟资料生成在一个 buffer 里。根据所设定的 DAQ 模式,的方式有所不同,DAQ 模组从 buffer 中撷取资料的方式也会有所不同:模拟资料撷取方式 DAQ 模式 buffer 撷取方式 Single 由 buffer 开头开始撷取。
- Sample Time < Max Time:撷取 Sample Time 长度的资料
- Sample Time > Max Time:撷取资料超出 buffer(Max Time)长度则回到 buffer 开头继续撷取,直到抓完 Sample Time 长度的资料。
Periodic 第一次由 buffer 开头开始撷取,接下来每个周期皆由前次撷取结束的地方开始。如果超出 buffer(Max Time)长度,则回到 buffer 开头继续撷取。 Continuous 第一次由 buffer 开头开始撷取,接下来每个 frame (Sample Time 长度的资料)皆由前次撷取结束的地方开始。如果超出 buffer(Max Time)长度,则回到 buffer 开头继续撷取。
范例
用 DAQ-Simulator 输出 Sine Wave 的 Real Time 讯号。
从 Source / DAQ / Simulated-DAQ 新增此功能,并接上 Viewer / Channel Viewer 显示

Device 选择 Wave,Setting / Type 选择 Sine,所有参数皆为预设值,如前文参数设定章节中的图示。
切换到 Data Acquisition 介面,DAQ 模式选择 Continuous ,Scrolling 选择 Off,如前文参数设定章节中的图示。
点选
,即可从 Channel Viewer 观察 Sine Wave 在 0.05 秒内的动态变化(下图为静态截图)。
相关指令
7 绘图模组(Viewer)
7.1 Channel Viewer
Channel Viewer的功能是以图形的方式将讯号波形绘制出来,以供操作者作进一步的讯号分析与判读。
说明
Channel Viewer 是绘出讯号资料的工具,可以用图形的方式呈现时域讯号和频谱等讯号。绘图时会依照每个资料点所对应的时间或频率大小,由小到大将讯号资料绘制出来。
当输入讯号为时域讯号时,横轴为时间值,纵轴为资料值。如有多通道则会用不同颜色绘出,也可开启 Legend 显示各通道名称。使用者可用 PlotElemEditor 改变通道名称及绘图方式(见下文详细说明)。
当输入讯号为音频时域讯号时,会有相应的音频播放介面出现(请参阅【视觉化绘图区】章之【播放功能】详细说明)。
当输入讯号为频谱讯号时,横轴为频率值,纵轴为资料值。频谱讯号通常为复数值,此时会依照 YValueType 参数决定绘图的数值,预设为 Magnitude (即复数的绝对值)。在频谱模式时使用者可以开启倍频模式(见下文以及【视觉化绘图区】章之【倍频模式】详细说明)。
无论输入是时域或频域讯号,本元件还提供了类似示波器的量测模式,使用者可以定义两条垂直或水平的量测线计算其差值(见下文以及【视觉化绘图区】章之【量测模式】详细说明)。
参数设定
本模组接受实(real number)丶复数(complex number),单通道(single channel)或多通道(multi-channel),regular或Indexed的讯号(signal)或声音讯号(audio)输入输入,而且支援多个讯号连入。由於 Channel Viewer 的参数众多,下面将分类一一介绍。
Appearance
在 Viewer 模组下可以调整以下四个参数;包含 BackColor丶ViewerWidth丶 ViewerHeight丶ListOrder。详细的说明,可参考各参数的定义。

Appearance 栏位参数 参数名称 参数定义 预设值 BackColor 设定绘制图形的底色。 White ViewerWidth 设定绘制图形的宽度,以 pixels 为单位。 650 ViewerHeight 设定绘制图形的高度,以 pixels 为单位。 180 ListOrder 设定图形於绘图视窗中的排序。 依照 Viewer 的建立顺序排列 RetainPlot 设定是否要保留图形,如果设定 True,若将连接至 Channe Viewer 的模组删除,图形还是会被保留,若设定 False,则图形被消除。 False Channel

Channel 栏位参数 参数名称 参数定义 预设值 Channel Count 显示 Channel Viewer 元件接收的讯号通道数。 (无法修改) Multi-Channel Display 决定讯号绘制的方式,有重叠绘制(Overlaped)和分开依列绘制(List)两种。 Overlapped Show value Channel 若输入讯号为 Multi-Channel 或多组输入讯号,可设定 ShowValue Channel 指定使用 Show Value 时要显示的 Channel 资料。 Channel 1 Representation

Representation 栏位参数 参数名称 参数定义 预设值 TimeUnit 显示讯号的时间单位。 依输入而异 LegendPosition 图例说明方块呈现的位置。选项有不显示丶左上丶左下丶右上丶右下丶图框外右边或使用者自行设定。若设定为使用者自行设定,可以利用滑鼠拖拉 Legend 至适当的位置。 None AutoLegendNames 设定是否要根据输入讯号的资讯显示出个通道 Legend,若设定为 True,将会根据输入讯号去调整 Legend,若为 False,Legend 则是根据 PlotElemEditor 的设定。 False XAxisType X 轴的类型,有 Linear Axis 或 Log Axis。 LinearAxis PlotElemEditor 可叫出 Plot Element Setting 介面,供使用者编辑绘图的样式,见下文。 PlotEditor DataValueType 当输入为复数资料(通常为频谱资料)时,此栏位可选择绘出不同的图形,选项有Magnitude丶Phase丶Real丶Imagine丶Gain丶Powerspectrum。相关定义请参阅 Conversion/Convert From Complex。 Magnitude GainReference 若 DataValueType 设定为 Gain,此栏位会自动出现供使用者设定。相关定义请参阅 Conversion/Convert From Complex。 1 HoldPlotRange 当此栏位为设定为 True, 即使图面被缩放或平移工具调整过,在更新计算後,图面仍可维持在之前调整的范围。 False Xmin 设定图 X 轴的最小值。 auto Xmax 设定图 X 轴的最大值。 auto Ymin 设定图 Y 轴的最小值。 auto Ymax 设定图 Y 轴的最大值。 auto X-Axis Label Format 设定 X-轴标签格式: Auto X-Label Format String X-轴标签格式设定为 Custom 时,可设定 X-轴标签格式字串。 Auto Y-Axis Label Format 设定 Y-轴标签格式: Auto Y-Label Format String Y-轴标签格式设定为 Custom 时,可设定 Y-轴标签格式字串。 Auto Show Title 是否显示标题。 True Show X Axis 是否显示 X 轴。 True Show Y Axis 是否显示 Y 轴。 True 绘图的线条显示样式设定要在 PlotElemEditor 对话窗里设定,使用者可以直接在元件上双击开启 PlotElemEditor 对话窗,或是在其参数栏位的右侧点击
图示开启,如下图:
PlotElemEditor 点选後会出现一对话窗供使用者编辑绘图样式。使用者可调整线条的颜色丶线宽丶实线丶虚线丶更改通道名称,以及是否要加 Marker 等,也可以在 Display 勾选栏位下选择是否要用线条绘出该 Channel 的讯号,如下图:
下表说明对话窗中各栏位设定:
PlotElemEditor 栏位说明 栏位 说明 预设 Display 打勾选择是否显示该通道 Enabled Channel Name 输入讯号 Legend 中显示的通道名称 输入讯号通道名称 Line Color 选择线条颜色,点击开启标准系统颜色选择对话窗 依照通道预设颜色 Line Width 选择线条粗细,由最细(1)至最粗(10),或是 None (无线条) 1 Line Style 选择线条形式:
- Solid:实线
- Dash:横虚线
- Dot:点虚线
- DashDot:横-点虚线
- DashDotDot:横-点-点虚线
Solid Marker Style 资料点标签图示:
- None
- Circle
- Cross1
- Cross2
- Square
- TriangleUp
- TriangleDown
- Diamond
- FlagUp
- FlagDown
- FilledCircle
- FilledSquare
- FilledTriangle
- FilledDiamond
- VerticalLine
None Marker Size Marker Style 设定非 None 时,可以设定资料点标签图示大小(单位为像素) 6 Draw Style 讯号绘图形式(见下图示范):
- Line:资料点之间以直线连接
- Stem:每个资料点以由Y-轴零点开始之垂直线呈现
Line 下图为预设之讯号绘图形式「Line」绘出 20 个资料点之 Brown Noise 讯号,预设之 Marker Style 为 None:

下图为同样讯号以 Stem 形式绘图,Marker 设为 Circle,大小为预设(6):

Title

Title 栏位参数 参数名称 参数定义 预设值 Title 图名。 {default} Xtitle X 轴名称。 {default} Ytitle Y 轴名称。 {default} Title 参数另有有特殊语法,详情请参见【参数参照】章节说名。
Fonts and Colors

Fonts and Colors 栏位参数 参数名称 参数定义 预设值 Title Font 图形名称字型设定,包括Name(字体名称)丶Size(字体大小)丶 Unit(字体单位)丶Bold(粗体)丶GdiCharSet(GDI 字元集的位元组值)丶 GdiVerticalFont(是否衍生自GDI 垂直字型)丶Italic(斜体)丶 Strikeout(删除线)丶Underline(底线)。 Arial, 12pt Title Color 图形名称字体颜色。 Black X-Axis Title Font X轴名称字型设定,参考 Title Font。 Arial, 11pt X-Axis Title Color X轴名称字体颜色。 Black Y-Axis Title Font Y轴名称字型设定,参考 Title Font。 Arial, 11pt Y-Axis Title Color Y轴名称字体颜色。 Black X-Axis Label Font X轴标记字型设定,参考 Title Font。 Arial, 10pt X-Axis Label Color X轴标记字体颜色。 Black Y-Axis LabelFont Y轴标记字型设定,参考 Title Font。 Arial, 10pt Y-Axis Label Color Y轴标记字体颜色。 Black Grid

Grid 栏位参数 参数名称 参数定义 预设值 Horizontal Grid Type 图形背景的水平网格线设定,包含 None丶Coarse丶Fine。 Coarse Vertical GridType 图形背景的垂直网格线设定,包含None丶Coarse丶Fine。 Coarse Major Grid Style 主网格线设定,包含Solid丶Dash丶Dot丶DashDot丶DashDotDot。 Solia Major Grid Color 主网格线颜色。 LightGray Minor Grid Style 副网格线设定,同Major Grid Style。 Solid Minor GridColor 副网格线颜色。 LightGray Measurement

量测模式参数 参数名称 参数定义 预设值 EnableMeasurement 设定为 True 时开启量测模式,同时开放下列所有参数栏位;设定为 False 时则隐藏所有栏位 False HorizontalCursor1 设定第一条水平量测线位置 HorizontalCursor2 设定第二条水平量测线位置 HorizontalMeasurement 显示水平量测结果(水平量测线之差) VerticalCursor1 设定第一条垂直量测线位置 VerticalCursor2 设定第二条垂直量测线位置 VerticalMeasurement 显示垂直量测结果(垂直量测线之差) CursorColor 设定量测线颜色 Magenta CursorWidth 设定量测线宽 1 CursorStyle 设定量测线样式 Dash CursorLabelFont 设定量测线标签字型 Arial, 9pt, style=Italic 量测线之位置可以在参数栏位上输入数值,或是用【视觉化绘图区】章之【量测模式】章节说明的方式以滑鼠在图上拖曳,以此方式设定後对应之参数栏位的数值会自动更新。设定好水平或垂直两条量测线後所量测的结果会同时显示在量测线标签上(第一条量测线会有 REF 的标签,第二条量测线标签则为量测结果)以及在 HorizontalMeasurement 或 VerticalMeasurement 参数栏位中。
Harmonics

倍频模式参数 参数名称 参数定义 预设值 Harmonics Type 选择倍频模式:
- Disabled:关闭倍频模式
- Harmonics:开启倍频模式
- SubHarmonics:开启次频模式
- Sideband:开启边频模式
- FracHarmonic:开启分频模式
选择任何倍频模式时会开放以下参数栏位,选择 Disabled 时则隐藏所有栏位。各模式详细说明请参阅【视觉化绘图区】章之【倍频模式】章节
Disabled Range Mode 选择范围模式:
- All:显示全范围内所有倍频线
- Count:显示部分倍频线
- Range:显示部分范围内所有倍频线
Count 及 Range 模式需要额外的参数设定,见下表。另外,在边频模式时强制设定为 Count 模式,此参数栏位不显示
Count Fundamental 设定基础频率。 0 Last Frequency 显示最後一条倍频线之频率 Unit 显示频率单位 Color 设定倍频线及标签颜色 HotPink Line Width 设定倍频线宽 2 Line Style 设定倍频线样式 Dash Label Mode 选择标签模式
- None:不显示标签
- Show Index Only:只显示倍频数
- Show Fundamental Frequency:显示倍频数,基频线多出频率数值
- Show All Frequencies:显示倍频数及频率数值
Show Fundamental
FrequencyFrequency Label Format 设定标签数字格式 0.00 Label Font 设定标签文字字型 Arial, 8pt,
style=Bold, Italic其他参数 参数名称 参数定义 预设值 Count 在 Count 范围模式下,可设定除基础频率外显示 \(N\) 条倍频线。在边频模式下 Count 的定义为边频数,即除基础频率外显示 \(2N\) 条边频线 5 Interval 在边频模式下,可设定边频的间隔 0 Min Frequency 在 Range 范围模式下,可设定频率范围的最小值 Auto Max Frequency 在 Range 范围模式下,可设定频率范围的最大值 Auto Fundamental 线之位置,及 Count 与 Interval 的参数设定,除了在参数栏位上输入数值外,也可以以滑鼠在图上拖曳(Fundamental),以及用滑鼠滚轮配合 Shift/Alt 键的方式(Count 与 Interval)更改。以此方式设定後对应之参数栏位的数值会自动更新。详情请参考【视觉化绘图区】章之【倍频模式】章节说明。
倍频线上的标签预设是显示倍频数(以
xN格式显示,\(N\) 为基频倍数,基频为x0,第一倍频为x1等等),除此之外基频线标签还会显示频率数值。Label Mode 参数可以改变这个预设,设定为不显示丶只显示倍频数,或全部都显示频率数值。
范例
以下用范例简单介绍 Audio Player 的操作。
Source / Sine Wave 产生一个 Sine Wave,再接着产生 Source / Noise,再将两个讯号利用 Conversion / Merge To Multi-Channel 结合成一个 Multi-Channel 的讯号,再透过 Conversion / Convert to Audio 转换成 Audio 档,并设定 ToAudio 的 Properties 中,Sample Rate = 1000,最後从 Viewer / Channel 用 Channel Viewer 将此 Audio 档案用图形展示出来。



调整 Sine 的 Properties 下 SignalFreq 为 400,则图形会改变如下图所示:


按 Audio 音讯档案右上方
的执行键後,会由左至右开始进行 Audio 音讯档案的拨放,如下图所示,红色的线段为目前正在拨放的讯号位置,目前支援双声道播出Audio,所以可以拨出 Multi-Channel 中的前两个通道的讯号。
另外可用
Zoom X将感兴趣的音讯区域放大,针对感兴趣的范围进行 Audio音讯档案的拨放,如下图所示:
以下示范几个常用的参数调整范例(Example),让使用者对参数调整有进一步的了解。
在 Source / Square Wave 产生一个 Square Wave,以 Channel Viewer 绘出後如图所示:


改变图的大小,调整 Channel Viewer 的 Properties /ViewerWidth 以及 ViewerHeight,ViewerWidth = 500,ViewerHeight = 300,改变後如下图所示:


使用者利用缩小放大工具(Zoom X / Zoom Y)或平移工具(Pan X / Pan Y)检视图形时,若希望维持目前的检视状态,可以调整 Properties 下的HoldPlotRange 功能键。将 HoldPlotRange 调整为 True。

然後用 Zoom X 工具将时间段大约 sec 到 0.5 sec 放大

在 Source / Sine Wave 产生一组 Sine Wave,将讯号线接到同一个 Channel Viewer ,这步骤会使 Channel Viewer 更新内容。由於 HoldPlotRange = True,所以更新内容时图轴仍会维持;若 HoldPlotRange = False,则图轴会如在下一张图,跳回至初始设定。



我们可以利用 Plot Elem Editor 来调整绘图的样式,在 Properties / Plot Elem Editor 栏位点选按钮,即跳出编辑视窗。

使用者藉由本视窗可以调整每个线条颜色丶粗细以及样式,譬如改变 Square:CH1 的颜色为红色,线条形式为虚线,并采用 \(\blacklozenge\) 为 Marker,按下 Apply 後可看到图形改变如下。


示范以 Channel Viewer 绘制频谱图,并且改变 YValueType 绘制不同的图形。在 Square 作 Compute / Transform / Fourier Transform,结果可用 ChannelViewer 绘制图示出来。


此频谱图的 X 轴为频率,Y轴的 YValueType 预设为 Magnitude,将 YValueType 改变为 Phase,此时 Y 轴代表的是每个频率的相位。


ValueType 改变为 Gain 时,参数会新增 GainReference。Gain的定义为 \(20\log(\frac{A}{\text{GainRef}})\),单位是 dB,其中 \(\log\) 以 10为底,\(A\) 为 Magnitude,式中分母为 GainReference。


再调整 Channel Viewer 中参数,Grid 分类中 Horizontal Grid Type = Fine,Major Grid Color= Red,Minor Grid Style = DashDotDot。再将 Fonts and Colors 中 Title Font = Times New Roman, 16pt, style=Bold,X-Axis Label Color = Blue,结果如下图。


相关指令
FFT丶Merge to Multi-Channel丶 Convert to Audio
7.2 Time-Frequency Viewer
Time-Frequency Viewer 是以图像方式呈现三维时频讯号(时间丶频率丶讯号强度)的展示模组。
说明
Time-Frequency Viewer 是绘制时频分析资料的工具,依照输入讯号的类别,X 轴与 Y 轴轴可以为讯号的时间轴或频率:
- 正常时频讯号(例如【FastStft】的输出):X 轴为时间,Y 轴为频率。
- 经过【TransposeSpectra】的时频讯号:X 轴为频率,Y 轴为时间。
- 【Secogram】的输出:X丶Y 轴皆为频率
时频图是以色阶分布呈现,其颜色代表某个时间与频率交叉点的强度,可关闭的色阶会显示在图右方。
参数设定
本元件接受实数(real number)或复数(complex number)的单通道(single channel)时频讯号(Spectra),以及【瞬时频率时域讯号重叠】(见下文说明)所需之实数或复数时域讯号(Signal)。 部分参数如 Appearance丶Title丶Fonts and Colors丶Grid 丶 Representation丶Measurement丶Harmonics 大致上与 Channel Viewer 的参数相同,可以参考【Channel Viewer】说明,本章节仅介绍 Time-frequency Viewer 所独有参数。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ApproximateRange | 在资料量大时,可设定「True」用近似法计算资料范围加速,但是显示出来的色图会比较不精确。 | True |
| CMin | 设定时频图颜色最小值所对应的资料大小。 | Auto |
| CMax | 设定时频图颜色最大值所对应的资料大小。 | Auto |
| Colormap | 设定时频图颜色的样式,有 Jet丶Hsv丶Rainbow丶Gray 等四种样式。 | Jet |
| Show Color Bar | 在图的右方是否需要显示颜色条。 | False |
倍频相关参数跟 Channel Viewer 一样(请参考【Channel Viewer】章节说明),但会因频率轴的方向而被归纳在不同类别中:
正常时频讯号,频率轴为 Y 轴:Y-Axis Harmonics(倍频线为水平线):

经过【TransposeSpectra】的时频讯号,频率轴为 Y 轴:X-Axis Harmonics(倍频线为垂直线):

【Secogram】的输出,X丶Y 轴皆为频率轴:此时会同时有 X-Axis Harmonics 及 Y-Axis Harmonics 类别提供给使用者各别设定垂直及水平倍频线的参数:

瞬时频率之时域讯号重叠
本 Viewer 元件还支援将一组多通道之时域讯号重叠在时频图上。时域讯号值必须为频率,以对应时频图之频率轴,因此无法重叠随意任何时域讯号,通常应用为重叠瞬时频率时频讯号。时频讯号必须接至第二个输入埠,接法如下:

在所有参数为预设的情况下,得出的图为:

当本元件接上重叠讯号时,Representation 会多出相关参数栏位:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Overlay CVal | 当重叠讯号为单通道时,可设定单一频道之色阶表对应之数值。预设的数值让重叠线有较高机率凸显於时频图 | 9999 |
| Overlay CVals | 当重叠讯号为多通道时,可设定各频道之色阶表对应之数值。预设的数值让重叠线有较高机率凸显於时频图 | 9999 |
| Overlay Width | 设定重叠线条的宽度 | 2 |
范例
产生一个 Square Wave 讯号并以 Enhanced Morlet Transform 作时频分析後,以 Time-Frequency Viewer 绘出,同时示范几个常用的参数调整作进一步的说明。
在 Source / Square Wave 产生一组方波讯号,并以 Compute / TFA/Enhanced Morlet Transform 进行时频分析,再以 Time-Frequency Viewer绘出时频图,预设绘出的资料是 Magnitude。


设定 CMax 为 0.197772704820884,此值为时频分析结果的颜色最大值,颜色最大值预设是对应资料色彩的最大值。 在不同的分析情况,使用者可能对某些频段的资料较感兴趣,这时可藉由调整 CMax 的大小来改变时频图的色彩显示状况,依不同的状况调整 CMax 可找到较适的时频图,若是想要调整预设 CMax,可至Perference / Plot / Time Frequency Plot 中调整 CMax 。


设定 Show ColorBar 为 True 会於图面右方新增一个颜色的色条,此色条可作为时频图颜色与数值间的一个对照参考。


改变 TF Viewer 的 ValueType,设定为 Phase,则 TF Viewer绘制相位角。


相关指令
FastSTFT丶TransposeSpectra丶Secogram丶Channel Viewer
7.3 XY Plot Viewer
将两组输入讯号,分别当作相对应的 X丶Y 轴进行绘图。
说明
XY Plot Viewer 主要可接受三种讯号资料型态,并进行图形的绘制。主要的说明与介绍如下:
两组多通道讯号资料:Input 1 为 X 轴;Input 2 为 Y 轴,如果为多通道输入,两组输入资料的通道数必须相同,Input 1 与 2 之第一通道资料为第一组 X-Y 轴资料, Input 1 与 2 之第二通道为第二组 X-Y 轴资料,以此为原则绘图。
一组多通道讯号资料:奇数通道为 X 轴资料,偶数通道为 Y 轴资料,例如通道 1 与 2 为第一组 X-Y 轴资料,通道 3 与 4 为第二组 X-Y 轴资料,以此为原则绘图。
多通道复数资料:以每个通道之实数为该通道 X 轴资料,虚数为该通道 Y 轴资料,以此为原则进行绘图。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 或 Indexed 的讯号(Signal) 或声音讯号(Audio)输入。而且支援多个讯号输入。参数 Appearance丶Title丶Fonts and Colors丶Grid 以及 Representation 大部份与 Channel Viewer 相同,请参考【Channel Viewer】的内容,下面说明 XY Plot Viewer 所特有的参数。
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| MaxPointCount | 绘图用到的点数,由第一点开始计算。 | 1001 |
| Sort Type | 选择如何将输入资料之 X-Y 资料组排序:
|
None |
在绘图时,如果未将资料点与资料点之间的连线关闭(见【Channel Viewer】章节中的 PlotElemEditor 说明,即将 Line Width 设定为「None」),则 XY Plot Viewer 会依照原始资料的 X-Y 资料组的顺序在资料点与资料点之间画线条。如果原始讯号的 X-Y 资料组没有任何顺序,画出来的图线便会杂乱无章。下图示范无排序之一组 X-Y 资料之 XY Plot:
- X 轴资料:Noise1
- Y 轴资料:2.5 * X + 3.2 + Noise2

如果将 Sort Type 设为「X」,则 X-Y 资料组会以 X 轴的资料值排序後再绘图,如下图:

视原始资料型态,Sort Type 参数还提供其他排序方式,例如以 Y 轴资料值丶X-Y 平方和值丶X-Y 相位角值等方法排序,帮助画出整洁的图。
如果选择不排序,单纯以 Scatter Plot 的方式显示资料点,则可在 XY Plot Viewer 之 PlotElemEditor 中将 Line Width 设为「None」,Marker Type 设为「o」,如下图:


范例
用 Sine Wave 函数当 X 轴讯号,Triangle Wave 函数当 Y 轴讯号,再以 XY Plot Viewer 绘出。
在 Source / Sine Wave 产生一个 Sine Wave,接着从 Source / Triangle Wave 建立一个 Triangle Wave,再以 XY Plot Viewer 绘出如下图所示:


产生一个 Brownian Noise 与 CustomWave,用 Kernel Smoothing Density 计算密度函数值,再以 XY Plot Viewer 绘出。
在 Source / Noise 产生一个杂讯 Noise,调整 NoiseType 为 Brown;接着从 Source / Custom Wave 建立一个 Custom Wave,於 Expression 栏位输入算式
sin(2*pi*10*t)-3*t*t;最後将两组讯号以 Conversion / Merge To Multi-Channel 汇集於一个多通道讯号,再用 Viewer / Channel Viewer 将图示绘制出来。

在 ToMulti 後计算 Compute / Statistics / Kernel Smoothing Density,并将结果以 Viewer / XY Plot 绘出。


XY Plot 的 X 轴代表输入讯号的奇数 Channel(讯号资料),Y 轴代表偶数 Channel(机率密度函数)。
产生一组单通道复数资料,以 XY Plot Viewer 绘出。
先在 Source / Sine Wave 产生一个 Sine Wave;接着依同样方法再做一个 Sine Wave ,调整 Phase 为 90,便可产生一个 Cosine Wave。从 Conversion / To Complex 可将讯接转为单通道复数资料,最後以 XY Plot Viewer 绘出如下图所示:



调整 Viewer Width 以及 ViewerHeight 为 300,重新以 XY Plot Viewer 绘制,结果显示如下图所示:


相关指令
Channel Viewer丶Kernel Smoothing Density
7.4 Histogram Viewer*
*Only in Professional*
利用 Histogram Viewer 可以简单的绘制出统计直方图。
说明
Histogram是统计常用的一种绘图方式。其作法是将所搜集的数据丶特性值或结果值用一定的范围加以区分成几个相等的区间做为横轴,并将各区间内的测定值所出现的次数累积起来作为纵轴,即 X 轴代表区间;Y 轴代表区间内测定值出现的次数,以此为原则用柱形画出直方图。
参数设定
本模组接受实数(Real Number)丶复数(Complex Number),单通道(Single Channel)或多通道(Multi-Channel),Regular 或Indexed 的讯号(Signal)或声音讯号(Audio )输入。参数 Appearance丶Fonts and Colors丶Grid 以及Title 相同於 Channel Viewer ,这部分请参考 Channel Viewer 内容,下面说明 Histogram Viewer 所特有的参数。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Active Channel | 当输入讯号为 Mulni-Channel 时,可设定此参数来选择要绘制哪个 Channel 的资料。 | Channel 1 |
| Bincount | 设定直方图要区分成几个相等的区间。 | 25 |
| Color1 | 设定直方条左半部的颜色。 | Grey |
| Color2 | 设定直方条右半部的颜色。 | Transparent |
| BrushStyle | 设定颜色渐层的方向。 | Horizontal |
| PercentStyle | 切换 Y 轴显示为百分比或者是次数。 | False |
| YValueType | 若输入讯号为复数,调整 YValueType 可将值调为 Magnitude丶Phase丶 Real丶Image丶Gain丶Powerspectrum。 | Magnitude |
| IsDrawLine | 是否以线条连接各直方条顶端。 | False |
范例
产生一个 Gaussion Noise 与 CustomWave,用 Merge to Multi-channel产生一多通道讯号,再以 Box Plot Viewer 绘出两讯号的方盒图。
在 Source / Noise 建立一个杂讯,调整 NoiseType 为 Gaussion;调整 TimeLength 为 5。另外在 Source / Custom Wave 建立一个Custom Wave,从 TimeLength 调整时间长度为 5 秒。以 Conversion / Merge To Multi-Channel 将两组讯号合成一多通道讯号,再用Viewer / Channel Viewer 将图绘制出来。


将 ToMulti 以 Viewer / Histogram Viewer 画图。此时会画出 Channel 1 的直方图。


改变 IsDrawLine 为True,则直方图上同时会显示出线条,如下图所示:


改变 Active Channel 为 Channel 2,则直方图会绘制Channel 2 讯号。


改变 BrushStyle 为Vertical,则渐层的方向会转为垂直方向。

相关指令
Box Plot Viewer丶使用者介面丶Merge To Multi-Channel
7.5 Bar Plot Viewer*
*Only in Professional*
绘制长条图。
说明
Bar Plot Viewer 可将 Indexed 资料以长条方式绘图显示。长条图类似 Channel Viewer 中的 Stem 绘图形式,但长条的绘图形式丶着色等有更多的选项。
参数设定
本模组接受实数(real number)丶单通道(single channel)或多通道(multi-channel),Indexed 的讯号(signal)或数值(Numeric)资料输入,只支援单一个讯号连入。参数 Appearance 丶Fonts and Colors丶Grid丶 Title 这些部分请参考 Channel Viewer,下面说明 Bar Plot Viewer 所特有的参数。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| TicksLabelAngle | 长条图 X 轴座标标签排列的角度(degree), 0 为正常横向排列(\(0^\circ\)),90 为顺时针旋转 \(90^\circ\) 直向排列(见下图示范) |
30 |
长条的显示样式设定如同 Channel Viewer 一样要在 PlotElemEditor 对话窗里设定,使用者可以直接在元件上双击开启 PlotElemEditor 对话窗,或是在其参数栏位的右侧点击! Dots图示开启,如下图:

下表说明对话窗中各栏位设定:
| 栏位 | 说明 | 预设 |
|---|---|---|
| Display | 打勾选择是否显示该通道 | Enabled |
| Bar Name | 输入讯号 Legend 中显示的通道名称 | 输入资料通道名称 |
| Color | 选择线条颜色,点击开启标准系统颜色选择对话窗 | 依照通道预设颜色 |
| Line Width | 选择线条粗细,由最细(1)至最粗(10) | 1 |
| Line Style | 选择线条形式:
|
Solid |
| Gradient Style | 选择长条框内着色形式:
|
Solid |
| Color1 | 长条框单色着色,或渐层第一颜色 | 依照通道预设颜色 |
| Color2 | 长条框渐层第二颜色(单色时忽略) | |
| Auto | 打勾自动设定长条宽度,长条之间紧贴无缝隙。多通道时应设为非自动,否则通道间的长条图会重叠 | Enabled |
| Bar Width | 当取消 Auto 时设定长条宽度。多通道时各通道会偏移 10~15 个像素左右,所以将长条宽度设为 15 以下便可以在每个资料点上显示所有通道的长条图(见下图示范) | 15 |
下图为单一通道 20 资料点之 Brown Noise 讯号用 Convert To Indexed 转换成 Indexed 讯号输入,所有 Bar Plot Viewer 参数为上述之预设:

下图为同一 Noise 讯号经过 AnCAD:EMD 元件分解为三通道再转换为 Indexed 讯号输入,将 Bar Plot Viewer 之一些参数按照下表修改:
| 栏位 | 位置 | 设定 |
|---|---|---|
| LegendPosition | Properties | TopLeft |
| Gradient Style | PlotElemEditor | ForwardDiagonal |
| Auto | PlotElemEditor | Disabled |
| Bar Width | PlotElemEditor | 10 |

相关指令
Noise丶Convert To Indexed丶 AnCAD:EMD
7.6 Box Plot Viewer*
*Only in Professional*
绘制方盒图。
说明
Box Plot Viewer 是统计常用的一种绘图方式。将一群组的数值以中位数丶四分之一位数及四分之三位数为基础,绘出一方盒, 用连接至方盒的直线表示数列的极大值与极小值,藉以展现群组的统计资讯。
参数设定
本模组接受实(real number)丶复数(complex number),单通道(single channel)或多通道(multi-channel),regular或Indexed的讯号(signal)或声音讯号(audio)输入,且支援多个讯号连入。参数 Appearance 丶Fontsand Colors丶Grid丶 Title 这些部分请参考 Channel Viewer,下面说明 Box Plot Viewer 所特有的参数。

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| BrushColor | 绘制方盒内部的笔刷颜色。 | LightGrey |
| BorderColor | 绘制方盒边界的笔刷颜色。 | Black |
| TicksLabelAngle | 方盒图下方标题文字排列的角度(degree)。 | 0 |
| MaxMarkerStyle | 画数列中最大值所使用的符号。 | Circle |
| MinMarkerStyle | 画数列中最小值所使用的符号。 | Cross1 |
| MeanMarkerStyle | 画数列中平均值所使用的符号。 | FilledSquare |
范例
产生一个 Brownian Noise 与 CustomWave,用 Channel Viewer 绘出讯号後,再以 Box Plot Viewer 绘出两讯号的方盒图。
在 Source / Noise 建立一个杂讯 Noise,调整 NoiseType 为 Brown,接着在Source / Custom Wave 建立一个 CustomWave,在 Expression栏位输入算式
sin(2*pi*10*t)-3*pow(t,2),最後再将两组讯号汇集於同一个Channel Viewer 中,接着执行後会得到如下图所示的结果。

在 Viewer / Box Plot Viewer 建立一个 Box Plot Viewer,接着将 Noise 与 CustomWave 连入 Box Plot Viewer,即可画出含有两个方盒的方盒图。


相关指令
TF Viewer,使用者介面, Convert From Complex。
7.7 Error Bar Viewer*
*Only in Professional*
Error Bar Viewer 为可画出误差线之绘图工具。
说明
通常在做实验丶量测数据都会有误差产生,若要将此误差量表现在图表中,用以说明数据点的可信度或准确性时,便可利用 Error Bar Viewer。下图为 Error Bar Viewer 可绘出的典型样式。

使用说明
本模组要求数据丶误差上限丶误差下限三个时间序列必须“依序”存在於同一个输入(Input )之中。连接至本模组之输入若不恰好含有三个通道(Channel),皆会跳出错误讯息。
若数据丶误差上限丶误差下限三者不在同一个输入之中,可以利用Merge to Multi-channel将其并排於同一输入的不同通道中,再接至 Error Bar Viewer,如下图所示。

参数说明
本模组接受多通道(Multiple-Channel), Regular 的一般讯号(Signal)及音源讯号( Audio)。特别注意当单一输入之通道数不等於 3时会出现错误讯息。其馀可调整之参数,如以下说明。
与 Channel Viewer 相同,Error Bar Viewer 之参数有Appearance 丶Channel丶Font and Colors丶Module丶Representation丶Module丶Representation丶 Title七大类,每一大类中的参数,其使用方式也与多数的 Viewer 相同,在此不再赘述。仅有 Representation 下的 Error Bar Plot Element Editor 为此模组专属。

打开 Error Bar Plot Editor ,会跳出如下图之视窗:

可以选择是否要在图中显示误差线,为数列命名,以及调整数据点的标记类型与颜色。目前误差线的颜色不能与数据点的颜色分开设定。
相关指令
7.8 Annotation(标注元件)*
*Only in Professional*
资料呈现在 Channel Viewer 及 XY Plot 时,可以在图上加上标注与画上线条。
说明
此群组包含水平线(HLine)丶垂直线(VLine)丶直线(Line)丶水平区域(HRegion)丶垂直区域(VRegion)丶矩型(Rect)丶椭圆(Ellipse)丶文字(Text,包括数值标签模式)等标注功能。
每个标注元件在图上的位置是以该 Channel Viewer 或 XY Plot 的座标轴为依据绘於图上,使用者可以在对应的参数(Position丶Start丶End 等)栏位中输入座标值,也可直接使用滑鼠拖拉标注至适当的位置,拖拉後位置对应的参数会即时更新。拖拉时,将滑鼠游标移至标注图样上,此时滑鼠游标会由箭头变成以下几种游标:
| 游标类型 | 说明 |
|---|---|
![]() |
当滑鼠游标移至以下标注区域时,会出现此游标:
|
![]() |
当滑鼠游标移至以下标注区域时,会出现此游标:
|
![]() |
当滑鼠游标移至以下标注区域时,会出现此游标:
|
![]() |
当滑鼠游标移至以下标注区域时,会出现此游标:
|
![]() |
当滑鼠游标移至以下标注区域时,会出现此游标:
|
![]() |
当滑鼠游标移至直线(Line)标注之两端时,会出现此游标,可改变直线两端的位置 |
共有参数设定
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ZOrder | 图型所在的层,越上面越大。原资料是第零层。所以 -1 就压在原资料下面,反之 1 为压掉原资料 | -1 |
水平与垂直线相关参数
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| LinePen | 线条的绘图设定。可设定颜色(Color)丶线条样式(DashStyle)丶与线条宽度(Width) | Color = Red DashStyle = Solid Width = 1 |
| Position | 线条所在之座标点。若为水平线则为 Y 轴座标,若为垂直线则为 X 轴座标。若为日时 X 轴座标,则必须输入 .NET 接受之【标准日时格式】的日期/时间 | 相关座标的中央点 |
| PixelIndent | 边界之线条空白宽度,若设为 0 则线条两端与上下或左右边框连接在一起 | 0 |
| EnableLabel | 设为 True 时开启线条标签功能,可将 Position 数值或其他文字显示在线条旁边 | False |
下图展示 HLine(红线)与 VLine(蓝线)以及其对应之 Position 参数值。与线条颜色对应的箭头为滑鼠可以拖拉的方向:

如果水平轴为日时轴,则 Position 参数值为日时:

如上图所示,水平与垂直线支援标签功能,EnableLabel 设为 True 後可开启标签功能,可将 Position 参数值或其他文字显示在线条旁。以下为标签功能开启後出现的相关参数:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| PositionTextFormat | 位置座标数值的格式。请参考 .NET 【标准数值格式】及【客制数值格式】。若为日时 X 座标,则参考【标准日时格式】及【客制日时格式】。设定为空白则采用预设自动格式 | |
| PositionText | 显示依照 PositionTextFormat 设定格式之线条标签文字 | |
| LabelAnchor | 标签左上角的锚点,标签的实际位置为锚点加上 Offset:
使用者也可以用滑鼠拖拉图上的标签至任何位置,此时会自动计算最接近的锚点并更新。 |
Center |
| Offset | 从锚点开始偏移的
使用者也可以用滑鼠拖拉图上的标签至任何位置,此时会自动计算最接近的锚点以及其 Offset 值并更新。预设值依照水平或垂直线丶锚点丶文字字型等设定而有不同,通常会在标签与线条及图框中间保留大约 10 像素点的空白 |
(Various) |
| LabelText | 标签文字。可以输入任何文字,或是用「$<property>」语法参照其他参数数值。使用者也可以点击栏位右方的 开启参数浏览器选择欲参照的参数值,(详情请参考【参数参照】章节说明) |
$PositionText |
| TextFont | 文字字型,包括大小丶字体丶样式,支援的种类依系统所拥有的字型而定 |
下图为上面范例中 HLine 所用的参数:

其中 LabelText 的参数值为
HLine (Position=$PositionText),
其中「$PositionText」为参数参照,插入 PositionText 的参数值(0.60),其他文字会一字不变的显示,结合起来则实际显示在图上的标签文字则变为
HLine (Position=0.60)。
直线丶矩形丶椭圆相关参数
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| LinePen | 线条的绘图设定。可设定颜色(Color)丶线条样式(DashStyle)丶与线条宽度(Width) | Color = Red DashStyle = Solid Width = 1 |
| Start | 图型座标起点{X=<x>,Y=<y>},若为矩型或椭圆,则起点设定在左下角。预设值由位置在图形正中央,大小为图形的一半而计算之。 |
Various 见下表 |
| End | 图型座标终点{X=<x>,Y=<y>},若为矩型或椭圆,则终点设定在右上角。预设值由位置在图形正中央,大小为图形的一半而计算之。 |
Various 见下表 |
下图展示 Start 与 End 与标注在图形中的关系:

图中的直线(绿线)丶矩形(蓝线)丶椭圆(红线)都为预设大小及位置,在图中显示的座标轴中换算成参数值为:
| 参数名称 | 预设参数值 |
|---|---|
| Start | {X=0.25,Y=-0.6} |
| End | {X=0.75,Y=0.6} |
水平与垂直区域相关参数
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ZOrder | 因为整片区域着色会盖过图形最底层的方格,因此预设值设为一个很大的负数。如果方格不是很重要,或觉得区域中有方格不美观,可以改回跟其他标注一样的 -1,即标注区域画在方格之上,资料线之下 | -2000 |
| Position1 | 绘图之座标起点。若为水平区域则为 Y 轴座标,若为垂直区域则为 X 轴座标。预设值由位置在图形正中央,大小为图形垂直高度或水平宽度一半而计算之。 | Various 见下表 |
| Position2 | 绘图之座标终点。若为水平区域则为 Y 轴座标,若为垂直区域则为 X 轴座标。预设值由位置在图形正中央,大小为图形垂直高度或水平宽度一半而计算之。 | Various 见下表 |
| PixelIndent | 边界之线条空白宽度 | 0 |
| Color1 | 起点之颜色 | Red |
| Color2 | 终点之颜色。中间区域之颜色为 color1 与 color2 以渐层之方式以整张图比例混合 | White |
下图展示 Position1 与 Position2 与 HRegion 标注在图形中的关系:

下图展示 Position1 与 Position2 与 VRegion 标注在图形中的关系:

图中所有相关参数都为预设大小及位置,在图中显示的座标轴中换算成参数值为:
| 参数名称 | HRegion | VRegion |
|---|---|---|
| Position1 | -0.6 | 0.25 |
| Position2 | 0.6 | 0.75 |
文字与数值标签相关参数
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Text | 文字内容 | TEXT |
| Position | 文字所在位置之座标点(以文字框左上角为准)。预设位置在图形的左上角 | Various (依照图形左上角计算) |
| TextColor | 文字颜色 | Red |
| TextFont | 文字字型,包括大小丶字体丶样式,支援的种类依系统所拥有的字型而定 | 字体 Arial,大小 10。 |
| IsLabel | 设为 True 的话本标注为「数值标签」标注,见下文 | False |
下图展示 Position 与文字标注在图形中的关系:

文字内容支援多行格式,可点击 Text 参数栏位右侧
图示开启文字编辑器编辑多行文字内容,如下图:

编辑完成後关闭编辑器即可:

文字编辑器的操作跟【DoMatlab】元件的 DoMatlab Editor 相同,除了预设内建编辑器之外,使用者可以在工具列上选择其他编辑器类别。如果在偏好设定里设定了其他的编辑器类别,则开启本文字编辑器或 DoMatlab Editor 都会预设为偏好设定的编辑器。详情请参阅【DoMatlab Editor】章节说明。
数值标签模式
文字标注有数值标签模式,将 IsLabel 参数设为 True 即可,此时会有额外的参数可设定:
| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| Offset | 取代原有的 Position 参数。在数值标签模式下文字标签的位置是以资料点为依据,因此原有的 Position 会转换成以资料点位置为基础的
使用者也可以用滑鼠拖拉标签至任何位置,此时会自动计算 Offset 值并更新 |
0, 0 |
| DataPosition | 资料点位置。使用者也可以用滑鼠拖拉资料点至任何位置。如果数值标签是由数值抓取模式中十字交点的【产生标签功能】所产生,则会隐藏此参数,无法变动位置。预设位置在图形的左上角,与标签预设位置重叠。 | Various (依照图形左上角计算) |
| LinePen | 连接资料点及标签之线条的绘图设定。可设定颜色(Color)丶线条样式(DashStyle)丶与线条宽度(Width) | Color = Red DashStyle = Solid Width = 1 |
| MarkerSize | 资料点的标记图形大小 | 6 |
| MarkerStye | 资料点的标记图形样式,有以下选择:
|
Circle |
下图展示 DataPosition丶Offset 与数值标签在图形中的关系:

范例
将正弦波加注。
以 Source / Sine Wave 建立正弦波并以 Viewer / Channel Viewer 观看其结果,并将Channel Viewer 的参数 ViewerHeight 设定为 400。


接着把 View 加上 Rect丶Ellipse丶Text,并将 Properties 做如下设定:


设定 Ellipse 参数如上图所示

设定 Rect 参数如上图所示

设定 Text 参数如上图所示
按
执行键後,可得到下面图型。
再将 Line丶HRegion丶VRegion 图像连接上Viewer,如图所示,并依下列的图示说明进行进一步的设定:


设定 Line 参数如上图所示

设定 HRegion 参数如上图所示

设定 VRegion 参数如上图所示
按
执行键後,会得到以下的图型:
将滑鼠箭头移至 HRegion,箭头将变成小手掌,则可以拖拉 HRegion至绘图区内的某处,其他的标注也都可以用相同的方法去拖拉移动,不需要在参数内重新输入位置或起始点。


相关指令
8 讯号输出模组(Writer)
8.1 Export Data
Export Data 可将资料另存为各种格式的档案。
说明
当需要将资料以另一软体开启,或是将计算结果储存时,可以使用此功能。
Export Data 提供六种档案格式供输出,包含 MATLAB MAT Files(*.mat)丶Plain Text Files(*.txt)丶 CSV Files(*.csv) 丶Audio Files(*.wav丶*.mp3丶 …),以及 Visual Signal 自订的 TFA Files(*.tfa) 与 Binary Files (*.vsb )。此功能可以储存除了绘图(Viewer)丶注解(Annotation)模组以外的所有元件输出的资料。请注意此功能不是视觉化元件。
MATLAB MAT File 格式请参阅 MATLAB 说明书。
Plain Text Files 为空格分隔的纯文字档。
CSV Files 是逗点分隔的纯文字档。
Audio Files 指各式各样的音讯档案,本程式支援的档案格式在多数的播放软体可以直接打开。以下将以*.wav 档案格式进行说明。在汇出 *.wav 音讯档案时,讯号种类必须是 Audio。若一般讯号需要存成 *.wav 音讯档案,请先接上 ToAudio 元件,再使用 Export Data 功能。
TFA Files 也是纯文字档,但在文件中多了档头(header)的设计,让 Visual Signal 在读入此类型档案时可以更快速。标头中记载了包括资料类型丶资料长度丶取样频率…等资讯。
Binary Files 与 TFA Files 包含的资讯相同,唯编码方式采用 binary 的方式,因此无法用一般的文字编辑器编辑。利用此种档案类型可将资料存成比上述其他档案类型皆来得小的档案,且读入 Visual Signal 也较以上所有档案类型快。
使用说明
在欲存出的元件上按右键,选取 Export Data,或是选择与存出的元件後,按 Network Window 工具列上的
按键,即会跳出如下视窗:

在选择好存出路径以及存出档案名称後,选择档案类型,然後按下存档键即可。
以下用 TFA Files 来说明存出档案之格式,
若存出之数值为实数讯号(Signal and Audio)
存出的档案第一栏为时间轴,第二栏以後为资料。见下图之说明。

存出的档案是复数资料时(Complex)
若是输出频谱资料(如 FFT 後的结果),由於是为复数资料,所以档案中第一栏为频率轴,第二栏之後依序为第一通道的实部丶第一通道的虚部丶第二通道的实部丶第二通道的虚部….以实部->虚部->实部->虚部的方式类推。如下图所示:

输出讯号为频谱时(如 STFT 的结果),第一栏为时间轴,第二丶三栏为时频图中第一横列的实部及虚部,第四丶五栏为第二横列的实部与虚部,以此类推。对照时频图,每一横列皆代表一个频率,然此频率的数值必须从档头(header) 中的 # StartFreq 以及 # FreqInterval 来推算,没有直接显示在档案里。
若储存为 mat 档,该档内会有两个变数,变数名称会套用元件的名称。以这个例子来说,会有 Sine_x 与 Sine_y;其中 Sine_x 储存每个讯号资料所对应的时间, Sine_y 则储存讯号资料,资料都是以 column 的方向储存。若讯号有 n 个通道,则在 Sine_y 变数会以 column 的方式储存,一个 column 代表一个 channel 的讯号资料。
相关指令
8.2 Export to Excel
可将讯号资料以 Microsoft Excel 开启。
说明
在需要将资料以 Excel 表单呈现,或是以 Excel 内建图表绘制时,可以使用此功能。
注意 Export to Excel 只有写出并开启的功能,不会像 Write Data 元件将资料储存。此功能可以储存除了绘图(Viewer)丶注解(Annotation)模组以外的所有元件输出的资料。另外,此功能不是视觉化元件。
使用说明
与 Export Data 相同,在欲以 Excel 开启的元件上击点滑鼠右键,找到选单中 Writer 模组底下的 Export to Excel 即可。或是用滑鼠左键选取欲开启的元件後,再点选 Network Window 工具列中的
按键即可。
点完 Export to Excel 後,若输出资料是时频讯号,会出现如下图之视窗,其他种类讯号写出时则直接开启 Excel。

此视窗要求使用者选择输出的内容,一般而言会选择输出 Magnitude 强度,即在时频图上看到的颜色深浅代表的数值,使用者也可以依需求选取要输出的内容(不能复选,需要两种以上的请重复写出步骤)。选完按 OK 後会直接开启 Excel。
写出至 Excel 之资料格式:
一般讯号及频谱资料如 Signal
一般讯号及频谱资料
同 Export Data 的格式,请参阅其说明。
写出的档案为时频资料(Spectra)
资料的第一栏(column)为时间,第一行(row)为频率,选择所输出的数值在对应的时间与频率格子中。下图为示意图:

8.3 Data Writer
本元件主要功能是将资料写出并另存为各种格式的档案。
说明
当希望计算的资料可以自动存成指定档案时,尤其在使用 Batch 批次处理时,可以使用此元件。 注意此元件为视觉化元件,功能与 Export Data 相似,唯 Export Data 无法在批次处理时使用。可选择存出之档案种类包括:*.mat ,*.txt,*.csv,Audio files ,*.tfa ,*.vsb 。每一种档案说明可参阅【Export Data】章节说明。
注意 Data Writer 元件预设是关闭的,需要将执行开关打开才会存出档案,如下图所示:

参数设定
本模组接受单个实(real number)丶复数(complex number),单通道(single channel)或多通道(multi-channel),regular 或 Indexed 的任何讯号类别输入。参数说明如下:

| 参数名称 | 参数定义 | 预设值 |
|---|---|---|
| ActualOutputFileName | 显示实际输出的档案路径 | N/A |
| OutputFileName | 设定输出档案路径 | {default}.tfa |
| SeparateChannels | 设定是否将多通道的资料分别输出至不同档案, OutputFileName 设定的档名後会自动加上通道名称 | False |
OutputFileName 参数另有有特殊语法,详情请参见【参数参照】章节说名。经过语法编译後的实际输出档案路径会显示在 ActualOutputFileName 栏位中。
OutputFileName 可以有以下两种路径模式:相对路径及绝对路径:
如果是用相对路径,则根路径为专案档同一资料夹下,例如:
本元件所在的专案 VSN 档在以下路径:
C:\Users\<user>\Desktop\实际输出档路径为:
Sine.tfa则写出档案时的路径为:
C:\Users\<user>\Desktop\Sine.tfa如果专案尚未存档,则在写出档案时(即开启本元件的执行开关时)会出现以下错误讯息:

如果是用绝对路径,可以手动直接输入 OutputFileName 栏位,或是点击右方
图示,开启标准 Windows 档案储存介面,可以选择档案名称及资料夹。
































按钮可以开启 DoMatlab Editor,提供程式码编辑器撰写 MATLAB 程式。此外,双击 DoMatlab 元件图示也可以开启 DoMatlab Editor。











