User Manual for BSA Ver 3.07 (Bispectrum Analyzer)


Jump to Japanese Manual


Be careful.
If your system does not have Greek characters, 'mu' is shown as 'm', 'theta' is shown as 'q' and 'pi' is shown as 'p'. Then 'micro V' displays as 'mV'. It's not my mistake, but merely browser's problem.

Index

1. Introduction
2. Overview of BSA
3. Installation of BSA
4. Connection with EEG monitor
5. How to use BSA
6. Algorithm for data processing
7. Data format of Output Files
8. History of Development
9. Epilog


1. Introduction

BIS monitor is a useful monitoring device for level of hypnosis or anesthesia. But as the entire algorithm for the calculaton of BIS Index has not been published, its scientific evaluation and utilization as a neurophysiological or anesthetic research tool is limited. The algorithm is only partially described in one review by Dr. Rampil1) and one article by Glass et al2). According to this review, BIS Index is calculated from following 3 or 4 sub-parameters: (1) BSR/QUAZI by Time Domain Analysis, (2) Relative b Ratio by Power Spectral Analysis and (3) SynchFastSlow by Bispectral Analysis.
Of course the algorithm of bispectral analysis itself has already been published and we can execute bispectral analysis. Here we developed a software "BSA" for bispectral analysis of electroencephalogram (EEG). "BSA" can also show those sub-paremeters for calculating BIS Index. Currently the description how to calculate SynchFastSlow parameter is obsecure, so I oroginally made 'BispRatio' from bispectral analysis instead of SynchFastSlow.
"BSA" displays the raw EEG waveform in every 0.5sec (4sec of duration).
In Ver 3.00 or later, bispectrum or bicoherence or triple product is displayed every 10 seconds. In the default settings, Bsa calculates bispectrum values from the latest 3 miunites of EEG signal and calculates power spectrum from the latest 1 minute of EEG signal. With optional setting, bispectuml values can be calculated from the latest 1min (same as BIS monitor), 2min, 3min, 4min or 5min and power spectrum values can be calculated from the latest 20sec, 30sec or 1min. Internally Bsa always calculates parameters every 10 seconds. But Logging data interval can be selected from 10sec, 20sec, 30sec or 1min. The default setting is 1min. Bispectrum and Power spectrum are both scaled by logarithm.
"BSA" has not only 'Online mode' for real time processing but also 'Offline mode' for more detailed analysis after data acquisition. Currently, "BSA" supports A/D converter REX5054B (PCMCIA card, 12bit 4channel: Ratoc co. ltd., Osaka, Japan) for real time processing. An EEG monitor, which can gather 0.5-50Hz of EEG and has analog output (100mV/1-4V:Input/Output), are also required. I am now using an EEG telemeter (GE Marquette, Tokyo, Japan), equipped with analog output (50 or 100mV/1V).
"BSA" requires the system installed with Microsoft Windows 95/98/98SE, Pentium 100MHz or faster CPU, at least 20M Bytes of memory and video system with at least 800x600(SVGA) resolution and more than 216 colors. Pentium 150MHz or fatser CPU and 32M Bytes (or more) of memory is recommended. PCMCIA type II slot is also required for Rex5054B. I do not tested Bsa on Windows Me. Now Ratoc has released REX5054B driver software for Windows 2000, but I have not tested it yet. Currently, Windows NT is not supported.


2. Overview of BSA

"BSA" was developed by C++Builder Ver5.0 (Borland). "BSA" displays the bispectrum or bicoherence using color spectrum (or gray scale for B&W display). Interval of displaying bispectrum/bicoherence is set at 1 minute by default, which can be changed to 10, 20, 30 or 40 seconds or 2min, or 5min. This interval can be changed even during the real time processing. Each bispectrum and powerspectrum is averaged by the number of effective epochs. When the number of effective epochs is less than 12, bispectrum/bicoherence is not displayed. Bispectrum and powerspectrum are both scaled by logarithm.
As to the BSR, the value of BSR is displayed when the effective time period is more than 20% of total time periods.
The raw EEG waveform and powerspectrum are also displayed.
"BSA" detects and eliminates overshooting noise caused by electric cautery or some types of spike noise, but it does not eliminate other types of noises such as EMG, ECG or that caused by blinking.
So we should care about the superimposed noises in clinical situation. I developed "BSA" for research purpose in laboratory. Of course, "BSA" is also available in clinical settings.
"BSA" at first samples EEG wave at 512Hz and after artifact detection it is down sampled to 128Hz and processed within 0.5-47.5Hz frequency. "BSA" has options for 1024Hz or 2048Hz sampling, but those seem to have no advantage against 512Hz sampling. I will omit this oversampling option in the future version.


3. Installation of BSA

For real time processing, "BSA" requires A/D converter REX5054B. In earlier version (before V1.50) the special driver software for REX5054B customized by the manufacturer is required. But in current version, standard driver software can be available.
Install Disk consists of 2 floppy disks. Installation of "BSA" begins with inserting the Install Disk1 to the drive A, and run "Setup.exe" from "Startup menu". Only according to the instructions on the screen, you can easily install "BSA" on your computer. As this software package is developed on Japanese windows95, so some character would not be correctly displayed on English version of Windows95/98. But it is not serious problem. Installation itself will be accomplished correctly in any language version of Windows95/98/98SE/Me.


4. Connection with the EEG monitor

The output from the EEG monitor is connected to the channel 1 to 4 of the connection box with BNC connector. I usually attach 5 electrodes at A1, A2, FP1, FP2 and FPz and using mono-polar output from FP1-A1. Now "BSA" can gather maximally 4 channels of EEG simultaneously. But parameter calculation can be done only 1 channel at a time. If you want to process other channels, you should process in offline mode after data aquisition.
Shortage of A1 and A2 is used for eliminating ECG signal. Please refer to the textbook for eliminating artifacts.
High cut filter must be set at least 50-60Hz, because "BSA" uses up to 47.5Hz of frequency. We set this at 60Hz and time constant set to 0.3 sec. We do not use low cut filter, but up to 1-2Hz of low cut filtering would have little effects on parameter calculation.


5. How to use BSA

5-1. Starting BSA

If you installed "BSA" via INSTALL Disk, "BSA" folder is registered in the "Program" of "Start Menu". Only selecting this, you can run "BSA".
[Caution !!]
While you are running "BSA" in Online mode, you should not run other application software. As Windows 95/98/98SE/Me are not true multi-task OS, "BSA" would hang-up when other application do not release the task for some intervals. You'd better also stop screen-saver.

5-2. Option Selection

At first, you should initialize some parameters. These pre-settings can be written in "Bsa.ini" file. The format of "Bas.ini" is written in the following section. Once you set them in "Bsa.ini", you need not set them manually every time you start "BSA". These initialization can be done from "Options" of the menu as shown in the right figure. There are 5 tags; "Set Scales", "Set Cal", "Set Processing", "Set View" and "Set Gas Monitor". At least you should set following parameters; "AD_Scale" and "AD_Offset".

When you change the values in the Box, click "Apply" button before "Quit" the sub-window. Otherwise, the new value would not be effective.

(1) Voltage Scale of EEG monitor and View Scale

EEG monitor amplified the input voltage. Usually output amplitude of EEG monitor is set about 50mV/1V or 100mV/1V (Input voltage/Output voltage). When amplitude is 50mV/1V, this Voltage Scale parameter becomes 50/1=50. You may set this scale on the top box of 'Set Scale' from "Options" in the menu.
"Over Sampling" defines the sampling rate of EEG. Now this setting is inactive. Sampling rate is fixed to 512Hz.


(2) 0 point offset

"Wave Offset" compensates the 0 level of EEG monitor output. This value is expressed by output voltage of EEG monitor. You may set this offset on the lower box of 'Set Cal' from "Options" in the menu. 'A/D calibration' button in the main screen is customized for my environment and would not work correctly in other environment. So, do not use this button. When this button is clicked, '0 volt offset' parameter is cleared to 0.
At this point "Calibration Voltage" is not used.


(3) Options for wave processing

"BSA" displays following parameters: SEF90(Spectral Edge Frequency 90%) and 3 sub-parameters of BIS Index.
After artifact rejection, sampled raw EEG wave is processed against base line drift by subtraction of moving-average. Averages of waves of pre and post 0.5sec (totally 1.0sec, Moving_Average_1) or 1.0sec (totally 2.0sec, Moving_Average_2) with the exception of overshooting are subtracted from original amplitude and the subtracted waves are handled as 'processed wave'.
For calculating BSR, 'processed wave' is always used. For calculating other parameters, raw wave or processed wave is selected by user. In the default setting, Moving_Average_1 is used. You can select this setting in the 'Set Processing' box from the "Options" of menu.
You can also set threshold of Burst Suppression, Overshooting and Spike in this box. This threshold should not change the default values without special consideration.
When you check off the "Use Processed Wave" box, raw wave is used for power spectral analysis and bispectral analysis.
When you check on the "Show in Gray Scale", bispectrum/bicoherence is displayed in gray scale.
In Ver 1.20 or later, you can re-calculate the parameters without displaying waveform, power spectrum or bispectrum. When you check on the "Calculation Only" checkbox, calculated parameters are written in "Log Window" with full speed.
In Ver 3.00 or later, You can choose the length of calculating period for bispectral analysis and power spectral analysis. BIS monitor (A-1050) calculates bispectrum values from 120 epochs (61.5sec) of EEG segment. But our investigation6) revealed that this setting is too short to get reliable and reproducible bicoherence values. So in the default setting Bsa calculates bispectrum values from the latest 3min of EEG segments.
You can also select the data logging intervals. In the default settings, this interval set at 1min. But you cal select 10sec, 20sec, 30sec or 1min. When calculated parameters exists in data buffer, you can update the contents of Log Window without re-calculation.


(4) Display Settings

Another setting is 'Set View'. In this box, you may choose which waveform to display. Raw EEG wave is displayed in 'yellow' color and processed EEG wave is displayed in 'red' color in the wave window. You can also change the replaying speed in 'Offline mode' from x1 to x8 (8 times faster). If your CPU does not have enough power, the replaying speed may have the upper limit.
Furthermore in 'Offline mode' with binary wave file, you can set the processing start time by moving the trackbar or clicking the up-down button. These trackbar and up-down button are emerged only when binary wave file is selected in 'Offline' mode.
'Wave Form Scale' is a scale for displaying EEG wave. In the default setting ("2") displayed range is about +/-50mV(maximum +/-70mV). Other settings are +/-25mV, +/-100mV, +/-200mV.
You can also change the EEG channel for data processing. But you must change this setting before re-calculate parameters.
Only this sub window can be available during data processing.

(5)Anesthetic Gas Monitor

Bsa V1.42 or later supports 2 kinds of anesthetic gas monitor. At this point, CAPNOMAC (DATEX) or BP508 (Anesthesia monitor : COLIN, Japan) are available. You should use adequate serial communication cable for each monitor. And you should also set serial port number in Bsa.ini file.

(6) A/D converter channel setting

In V2.00 or later, BSA can handle maximumlly 4 channels of EEG. But BSA can process only one channel at a time. So if you want to process another channel, you have to process after data acquisition (in off-line mode). Although EEG channel can be changed even during data processing, this handling should be used for confirm the waveform in other channels before the actual data acquisition.

5-2-1. Format of Bsa.ini file

You can set optional parameters in "Bsa.ini" file. This file is loaded in starting process of "BSA". Each line consists of two items; label name and its value. Items are separated by ":". No other character (TAB or SPACE) is allowed to put between the item and ":". Lines beginning with '#' are considered as comments and would be ignored.

  1. Wave_Scale: Displaying scale of raw EEG waveform. If you want to see about +/-100mV, you should set this parameter as '1'. Default value is '2'.
  2. AD_Scale: Amplitude of EEG monitor. When EEG raw voltage is 50mV and analog output of EEG monitor is 1V, this value is 50/1=50. Default value is '50'.
  3. AD_Offset: O volt offset of EEG monitor output.
  4. Cal_Volt: Voltage for calibration wave by EEG monitor. Currently, this is not used.
  5. Over_Sampling: Oversampling value for data acquisition. This can be settable 1, 2 or 4. Normally this value should be set to '1'.
  6. Moving_Average: Duration of calculating moving-average for correcting base line drift. This value should be 1 or 2. Default value is '1'.
  7. Overshoot_Threshold: Threshold for detecting noises caused by electric cautery etc. Default value is 150(mV). Value of less than 100 is not allowed and not accepted.
  8. Spike_Threshold: Threshold for spike noise detection. This value is set by differential amplitude in 1/512sec. Default value is 20(mV). Value of less than 10 is not allowed and not accepted.
  9. BS_Threshold: Criteria of Burst Suppression. Default value is 5(mV). This value should be from 1 to 5. In normal setting, this value should not be changed.
  10. Show_Raw: Display switch for raw EEG wave. Set "true" or "false". Default setting is "false".
  11. Show_Proc: Display switch for processed EEG wave. Set "true" or "false". Default setting is "true".
  12. Cal_Threshold: Threshold to detect the edge of calibration waveform. This value is used for auto 0 point calibration. This value is differential of voltage.
  13. Cal_Point1, Cal_Point2: For pointing the 0 position in auto 0 point calibration. Value should be the number of samples before the edge of calibration wavefoerm.
  14. Defect_Str: You can set a string used for defect values in the "Log Window". Write "NULL", if you want to set this string NULL. This has benefit for process the log file with Microsoft Excel etc. Default setting is "***".
  15. WorkDir: You can set the default directory to load/save waveform file or log file. Default is the working directory of Bsa.exe.
  16. GasMon: Using Serial interface (RS232C), you can simultaneously gather expired concentration of volatile anesthetics and nitrous oxide. Current version supports CAPNOMAC (DATEX, Finland) and BP508 (Nippon COLIN, Japan).
  17. COM_Port: You can set the serial port number to connect Gas monitor. You can set 0-7.
  18. N_ch: N_ch defines the number of channels for EEG sampling. Default setting is 1 (1 channel) and maximum setting is 4 (4 channel). Bsa can not multi-channel data processing simultaneously, so you should process each channel data sequentially.
  19. Power_Dur: This option is used to set calculating periods of power spectrum. You can select from 20sec, 30sec or 1min. Default setting is 1min.
  20. Bisp_Dur: This option is used to set calculating periods of bispectrum calculation. You can select from 1min, 2min, 3min, 4min and 5min. Default setting is 3min.
  21. LogInterval: You can select data logging interval from 10sec, 20sec, 30sec or 1min. The default setting is 1min.
  22. Maxmem: Bsa Ver 3.00 or later allocates data memory for 24 hours of calculated parameter storing. If you want to allocate much more memories for more long times of analysis, you set this parameter as the hours that you want. If your system does not have enough memories, you may set this parameter less than 24. However, the minimum value is 8 (hours). This parameter should be set in integer.
  23. AutoRec: If you set this variable as 'true', Bsa automatically records the data packets recieved from BIS monitor to the file. The file name is given as 'Date' + 2 digits (from 1 to 99). When you set the 'WorkDir', the file is saved in the 'WorkDir', otherwise it is saved in the working directory of Bsa. Default setting is 'false'.

Following list is a sample of 'Bsa.ini'. You may edit the list at only the different setting from the defaults. 'Bsa.ini' must be located in the same directory of 'Bsa.exe'.



# Parameter settings

AD_Scale:50.0

AD_Offset:0

Wave_Scale:2

Power_Scale:1

Cal_Volt:50

Over_Sampling:1

Moving_Average:1

Overshoot_Threshold:150

Spike_Threshold:20

BS_Threshold:5

Show_Raw:false

Show_Proc:true

Cal_Threshold:0.3

Cal_Point1:5

Cal_Point2:6

Defect_Str:NULL

WorkDir:C:\EEG

GasMon:CAPNOMAC

COM_Port:0

Power_Dur:1min

Bisp_Dur:3min

LogInterval:1min

Maxmem:24

AutoRec:false

5-2-2. Output File Setting

When you click "Save" tag in "File" menu, you can select "Wave", "Power" or "Bispec" to save data. Each data can be saved in binary or ASCII. As to the file format, refer to 7. Data format of recorded files.


5-3. Mode selection

Running mode can be selected from "Mode" tag. When Rex5054B is not installed in your computer at starting up "BSA", only 'Offline mode' is available. If you want to run in 'Online mode', you must quit "BSA" once and restart "BSA" after installing Rex5054B.

5-3-1. Online mode

When Rex5054B is installed, 'Online mode' is set to a default. If you have already written each setting in 'Bsa.ini' file, you can start processing only clicking 'start' button after connecting EEG monitor. If you want to record EEG waveform or calculated power spectrum or bispectrum, you have to prepare record files before start processing. "File" menu is disabled during processing.
Calculated parameters are also displayed in the 'Log Window' with time stamp. You can add comments in this 'Log Window'. In 'Online mode', dialog box for saving this logged data will emerge when 'Stop' button is clicked.

5-3-2. Offline mode

'Offline mode' is used for re-processing recorded EEG waves. When you select 'Offline mode' from 'Mode' in the menu, Dialog box for file selection will display after file type selection (binary or ASCII). Then select purposed file to process. Binary wave file is a file that was previously recorded by BSA itself. Binary wave file has a 128-bytes header, which contains time stamp and parameters on recording. ASCII mode is usually used for a wave file which recorded by other systems. ASCII mode file saved by "BSA" has a header with beginning with '#' and containg Recorded time, sampling rate (512 or 1024 or 2048), AD_Scale and AD_Offset. These parameters are read and set at the start of processing. If you want to process an ASCII file which is recorded by other system, you must set each parameter correctly before processing or you must make a header manually. ASCII mode file consists of series of sampled amplitude value. Lines beginning with '#' are ignored. Currently, offline ascii mode supports only 1 channel.
In 'Offline mode', you can select replaying speed from x1 (equal to real time) to x8 (8 times faster than real time). You can set this option from 'Set View' of "Options" menu.
Until you select other wave file or change to 'Online mode', you can replay the selected wave file repeatedly.

5-3-3. Manipulation during processing

(1) Trend processing

Bsa V1.30 or later equips trend processing. In Ver 3.00B or later, trend screen is moved to main panel. Now Trend shows the data within 2 hours. The trend graph will be scrolled every 1 hour. However you can watch the previous trend screen by clicking the button for scrolling just above the right upper side of trend screen. Trend graph is drawed in every 20sec. In the lowest column, Bsa displays the trend of aBIC (averaged bicoherence) values around the diagonal line (f1=f2). My alalysis revealed that bicoherence values changes in that rather small regions according to the 'depth of hypnosis'. Considering BIC(f1,f2) = BIC(f2,f1), I defined aBIC(f) as follows.

aBIC(f) = { BIC(f,f)+BIC(f+0.5,f)*2+BIC(f+0.5,f-0.5)*2+BIC(f+1.0,f-0.5)*2 +BIC(f+1.0,f-1.0)*2+BIC(f+1.5,f-1.0)*2 }/11

(2) Comment input

When you want to record some events or comments, click the 'Comment' button. Then 'Comment Input Window' will be displayed with the time stamp. If you want to change the time stamp, rewrite this. If you cleared the time stamp by mistake, please leave the time stamp field as blank and write comments in the comment field. Then click 'Apply' button with the time stamp field as blank. Bsa will correctly record the comment with the initial time stamp.
(3) Display selection of Bispectrum, Bicoherence or Triple Product

You can select one of 'Bispectrum', 'Bicoherence' or 'Triple Product' to display.


(4) Log window manipulation

In the Bsa Ver1.10 or later, "Log Window" is separated from main panel. You can open 'Log Window' by selecting 'open Log' tag from the 'Window' menu. Calculated parameters are written in this window according to the LogInterval setting. In Ver 3.00 or later, calculated parameters (SEF90, BSR, RBR, BispRatio, BIS index which is same as the displayed value by the BIS monitor, mean amplitude and SQIs of time domain analysis, power spectral analysis, bispectral analysis) are logged with the calculated time in this Log window. Mean amplitude is calculated from waves with amplitude of more than 5mV. Now 'Comment Window' is newly added, so if you want to record comments, use comment button on the main panel. Please refer to "coment input". When Bsa runs on 'Online' mode, dialogbox which facilitates to save logged data to a file will be displayed at the end of processing. On 'Offline mode' dialog box is not displayed, so you have to save it manually by clicking "Save Log" button. If you merely want to clear the Log window, click "Clear Log" button. And If you want to close "Log Window", click "Close" button.
In Ver 2.40 or earlier, the maximum size of log file is restricted to 64 KB, but now this limitation is eliminated.

(5) Comment window manipulation

In Ver 3.00 or later, Comment buffer is separated from Log window. You can open 'Comment window' by selecting 'open Comment' tag from 'Window' menu. Just like 'Log Window', when Bsa runs on 'Online' mode, dialogbox which facilitates to save logged data to a file will be displayed at the end of processing.

(6) about SQI (Signal Quality Index)

In Ver 3.00 or later, SQIs are displayed in the right lower part of main panel. SQI of power spectral analysis and bispectral analysis are calculated as the ratio of the number of artifact free epochs and the number of total epochs. SQI of time domain analysis is calculated as the ratio of artifact free periods and total period.

5-4. Show Version

When "Version" tag is clicked, current version of "BSA" is displayed.

5-5. Auto Calibration

"BSA" equips 0 point calibration of A/D converter. Currently this is almost customized for my own environment.

5-6. Exit from BSA

If you want to exit "BSA", click the "Exit" tag in the "file" menu. You cannot exit during processing. At first click the "Stop" button and stop processing.


6. Algorithm for data processing

6-1. base line compensation

As mentioned in the previous section, sampled raw wave data are at first checked for artifacts. Then each moving-average is subtracted to suppress the base line drift. Original criteria of Burst Suppression (region less than 5mV lasts more than 0.5sec) would be "fooled" by superimposed slow wave, as written in the Rampil's review. As algorithm for QUAZI calculation is not a public domain, QUAZI is not calculated in "BSA". (In the Rampil's review, QUAZI detects Burst Suppression incorporating slow waves, less than 1Hz in frequency, information derived from the frequency domain.)
Moving average works as the simplest low-pass filter. Then subtraction of moving average results in low-cut filter. "BSA" uses processed wave for calculating SynchFastSlow and Relative b Ration sub-parameters in the default setting. You can also calculate those sub-parameters from raw wave by optional setting. To calculate the moving-average, wave data in the pre and post 0.5sec or 1.0sec period are required. Then the displayed (and processed) EEG waves have a delay of 0.5sec or 1.0sec.

6-2. Bispectral Analysis and SynchFastSlow parameter

6-2-1. Principle of Bispectral Analysis

As to the detail of Bispectral Analysis, refer the manuscript by Dr. Sigl in J Clin Monit 3). And for more detailed information, please refer to the manuscript by Nikias in Proc IEEE 5). Regarding to the principle of bispectral analysis, do not refer Dr. Rampil's review 1), because it would be wrong. Here I only explain the concept.
Bispectral Analysis quantifies the nonlinear interaction (phase coupling) between the components making up a signal. Sigl et al. sited a function that outputs the square of input as a simple example of phase coupling. Then we thinkof a sum of two cosine function as input, those frequencies are f1 and f2 and phases are q1,q2. Then the output becomes as follows.

INPUT: x(t) = cos(f1t+q1) + cos(f2t+q2) OUTPUT: y(t) = 1 + cos[(f1+f2)t+(q1+q2)] + cos[(f1-f2)t+(q1-q2)] +1/2cos(2f1t+2q1) + 1/2cos(2f2t+2q2) In this case, the phase angles of the components with frequencies of f1+f2,f1-f2,2f1,2f2 depend on those of input components. These components are termed 'intermodulation products' (IMPs). Thus, the phase angles of the IMP components depend on the phase angles of the components of the input signal. On the other hand, output signals that are not IMPs are termed 'fundamentals'. Bispectral analysis can detect such phase-coupled components among a signal.
If a signal is composed of the sum of 2 different frequency waves, they can be separated by powerspectral analysis. But when a signal is composed by nonlinear interaction of 2 different wave, they cannot be analyzed by powerspectral analysis. In order to compute the bispectrum, the signal wave is first divided into a series of epochs.

Epochs are overlapped in some degrees. (This overlapping is not always required for bispectral analysis.) After applying a Blackman window function, the Fourier transform of each epoch is computed. Here we think of 3 components of signals with f1,f2,f1+f2 frequencies. Each component, X(f1), X(f2), X(f1+f2), is a complex-value. And we also think of X*(f1+f2) ; conjugate of X(f1+f2). Each phase of X(f1), X(f2) is f1t+q1, f2t+q2. And the phase of X(f1+f2) is (f1+f2)t+q3. The phase angle of the products of complex-value becomes the sum of each phase angle. And the phase angle of conjugate becomes the negative of its native phase angle. Consequently, the phase angle of triple product becomes (f1t+q1)+(f2t+q2)-{(f1+f2)t+q3} = q1+q2-q3. The fact that time parameter is canceled is important because it means that how to select the epochs does not influence on the result of bispectral calculation. If there were no relation among q1,q2,q3, q1+q2-q3 would distribute randomly between [0,2p]. As a result, the sum of triple products tends toward zero. On the other hand, there were some relations among q1,q2,q3, (phase coupling exists), bispectrum becomes none zero value. The bispectral analysis can thus be used to detect phase coupling between components. As shown above, bispectrum is a function of two frequency variables, f1 and f2.


complex-value and polar coordinates

Here I show the relation between complex-value and its phase angle.
At first I introduce polar coordinates instead of rectangular coordinates. In polar coordinates each value is expressed by its size and phase angle. When I think of a complex-value: z = x + yi. (x,y) => (r, q) r = sqrt(x2+y2) cos q = x/sqrt(x2+y2) sin q = y/sqrt(x2+y2) Then z becomes as follows. z = r(cos q + i sin q) Here we think of the product of 2 complex-values in polar coordinates. z1*z2 = r1(cos q1 + i sin q1)*r2(cos q2 + i sin q2) = r1r2*{ (cos q1cos q2 - sin q1sin q2) + i(sin q1cos q2 + cos q1sin q2) } = r1r2*{ cos(q1+q2) + i sin(q1+q2) } Consequently, the size of z1*z2 becomes the products of the size of two complex-values and its phase angle becomes the sum of phase angles of two complex-values.
The duration of epoch and proportion of overlapping of epochs are selectable. In "BSA" the duration of each epoch set to 2 seconds and overlapping is set by 75%. This setting is compatible with A-1050 (BIS monitor).

6-2-2. SynchFastSlow parameter

According to the review by Dr. Rampil, SynchFastSlow parameter is computed by following equation.


SynchFastSlow = log( B0.5-47.0Hz/B40.0-47.0Hz )


He describes Bx-y as the sum of the bispectrum activity in the area subtended from frequency x to y on both axes in the frequency versus frequency bispectral space. According to this description, we, for example, must calculate B(40Hz,40Hz). To calculate B(40Hz,40Hz), X(80Hz) is required, but we cannot get such high frequency components from 128Hz sampling signal. I asked ASPECT and get their reply that BIS calculates SynchFastSlow from bispectrum values of f1+f2<48Hz. But they did not tell me the precise method of SynchFastSlow claculation. Consequently, they informed me that the description of the components in Dr. Rampil's paper are intended to be schematic representations of the Index subcomponents, not the exact definitions.

From my experience of bispectral analysis, I made another parameter BispRatio: the sum of bispectrum in the area that f1+f2 is between x and y and x<f2=<f1<y.

Here I used BispRatio instead of SynchFastSlow for bispectrum derived parameter. This is only my speculation, but I think SynchFastSlow and BispRatio would be compatible.


BispRatio = log( B40.0-47.0Hz/B0.5-47.0Hz )


"BSA" calculates bipectrum in the area 0.5Hz<=f2<=f1<=47.0Hz, f1+f2<=47.5Hz and then calculates BispRatio according to this equation.
SynchFastSlow parameter predominates during the phenomenon of EEG activation (excitement phase) and during surgical levels of hypnosis in the BIS Index. In my data analysis, BispRatio showed good correlation with the level of hypnosis in surgical levels.

6-2-3. Bispectrum and Bicoherence

"BSA" can also show bicoherence instead of bispectrum. Bicoherence is defined by the ratio of the bispectrum to the sum of square root of real triple products (power of f1,f2,f1+f2). Bicoherence is usually scaled between 0 to 100%. In the report by Dr. Sigl, bicoherence is written as the ratio of the bispectrum to the square root of the sum of the real triple products. But this is mathematically wrong, because bispectrum is the size of sum of vectors (complex-values), then the scale should be the sum of size of each vector (complex-value). Bicoherence can show the degree of phase coupling, so it seems to be better index than bispectrum. Although, at first I could not find any specific pattern of bicoherence in the EEG, now I have found specific changes of bicoherence according to the depth of anesthesia. At this point physiological meaning of bispectrum in EEG is not clear.


Ths size of sum of complex-value (vector) and its scaling

complex-value can be handled as second demensional vector. The size of the sum of vectors becomes maximum when the all vectors have the same direction and its value is equal to the sum of the size of all vectors. 0 <= | S zj | <= S |zj| And, S |zj| = S sqrt(|zj|2) As triple product is a complex-value, so bispectrum is the size of the sum of complex-values. On the other hand, triple product is a product made by 3 complex-values. Then the size of triple product becomes the product of sizes of three complex-values.
By the way RTP(real triple product) is defined as the product of the power of three complex-values. RTP = P(f1)P(f2)P(f1+f2) Using this, the size of triple product showed to be equal to the square root of RTP. | (triple product) | = r1r2r3 = sqrt(r12r22r32) = sqrt(P(f1)P(f2)P(f1+f2)) = sqrt(RTP) Then, Bispectrum = | S (triple product) | <= S sqrt(RTPj) Consequently, Bicoherence = Bispectrum / S sqrt(RTPj) * 100 (%)

6-3. Burst Suppression Ratio

As previously mentioned, "BSA" defined Burst Suppression as amplitude less than 5mV lasts more than 0.5 sec in the processed wave. BSR is calculated in the same period (actually sometimes slightly different) which used for calculation of BispRatio and b Ratio. When the effective period is less than 20% of total, this parameter is not calculated. Although the algorithm for calculating BSR differs from that used in BIS monitor, I think the value would be similar. In Ver 2.10 or later, BSA calculates BSR according to the following algorithm. At first sampled EEG data, after artifact detection, were down sampled at 64Hz. Then search positive or negative peak by calculating first order differential. After one positive (or negative) peak detection, each amplitude was calculated from the half of the absolute value of the difference between the two peak voltages. Applying the suppression criteria to these amplitudes, BSA calulates BSR. I compared my algorithm with QUAZI by using BIS monitor, and found it is almost as sensitive as QUAZI.
At this point waves with small amplitude and fast frequency emerging in the light anesthetic state also be detected as "BS" despite that they are not true "BS". I tried to distinguish these by calculating the mean amplitude of waves with more than 5mV of amplitude. This is a future problem to solve.
BSR/QUAZI is used to detect deep anesthesia in the BIS Index. It is quite natural that when the suppression progresses, EEG waves become almost flat and frequency analysis becomes less meaningful.

6-4. Relative b Ratio

According to the review by Rampil, "Relative b Ratio" sub-parameter is the log ratio of power in the two empirically derived frequency bands: log(P30-47Hz/P11-20Hz). The parameter is most heavily weighted when the EEG has characteristics of light sedation in the BIS Index.
In the article by Glass et al. base frequency band is written as 40-47Hz instead of 30-47Hz. Concerning this point, I got an answer from ASPECT INC. that Rampil's review was correct.

6-5. SEF90

The spectral edge frequency (SEF90) is the frequency below which 90% of the power in the spectrum resides. SEF90 becomes small in the state of anesthesia. "BSA" calculates SEF90 among the power spectrum of less or equal to 30.0Hz.


7. Data format of recorded files

All output files are closed when "Stop" button is clicked. Each data format is as follows.

7-1. Raw Wave Data

In binary mode, raw wave data are saved as is gathered from A/D converter. At the top of the file, 128 bytes of header record containing time, sampling-rate, A/D converting scale and A/D converter 0 offset, is added. In ASCII mode, raw wave data are written in the value of gathered A/D converter voltage sequentially. ASCII mode file saved by "BSA" has a header with beginning with '#' and containg Recorded time, sampling rate (512 or 1024 or 2048), AD_Scale and AD_Offset. These parameters are read and set at the start of processing. If you want to process an ASCII file which is recorded by other system, you must set each parameter correctly before processing or you must make a header manually. ASCII mode file consists of series of sampled amplitude value. Lines beginning with '#' are ignored. Usually should better use binary mode.

7-2. Data format of Power Spectrum and Bispectrum

In binary mode, these values are recorded in IEEE standard floating point format (single). Power spectrums are recorded from 0.5Hz to 47.0Hz in every 0.5Hz. Bispectrums are recorded as following manner: (f1,f2) = (0.5,0.5),(1.0,0.5), (1.5,0.5),...(47.0,0,5),(1.0,1.0),(1.5,1.0),(2.0,1.0),..... (46.5,1.0),(1.5,1.5),(2.0,1.5), (2.5,1.5).......................,(24.0,23.5). In binary mode, all bispectrums are written and each sum of square root of real triple products is then written in the same order. And in ASCII mode, the order of bispectrum and real triple products is as same as that in binary mode. But in this mode bispectrum and the square root of real triple products wrote in pair. At the top of each block, time and the effective number of epoch are written in following format: '# hh;mm;ss,n'.

Index of bispectrum array (0-2255) is calculated from the following equation. Index = (96-f2*2)*(f2*2-1)+(f1-f2)*2

8. History of Development

1999.09.27 Ver 0.33 first version of working well
1999.11.14 Ver 0.70 change from Bicoherence to Bispectrum
1999.12.09 Ver 0.85 rewrite calculation routines
1999.12.14 Ver 0.94 added Bsa.ini
1999.12.23 Ver 1.00 first distribution version
1999.12.31 Ver 1.02 added save routine of waveform in ASCII
2000.01.03 Ver 1.03 SEF90 area changed from 0.5-47.0Hz to 0.5-30.0Hz (adaptation for pEEG and BIS)
2000.01.11 Ver 1.05 replay start time setting added and calibration modified
2000.01.12 Ver 1.10 Now power spectrum is always displayed. "Log Window" was separated from main panel.
2000.01.21 Ver 1.11 Screen Display modified.
2000.01.25 Ver 1.20 Added "Calculation Only" mode. And some displaying thread modified. 'Waveform Scale' moved to 'SetView'.
2000.01.30 Ver 1.21 finally fixed the screen problem and some small bugs are fixed. added the replaying speed limter.
2000.01.30 Ver 1.22 Option for setting string for defect value is added and bugs around Bsa.ini fixed.
2000.01.31 Ver 1.23 additional Screen problem fix.
2000.01.31 Ver 1.24 WorkDir option added in Bsa.ini.
2000.02.15 Ver 1.30 Trend added
2000.03.25 Ver 1.31 Scale of Powerspectrum changed
2000.06.20 Ver 1.40 Add TPR
2000.06.22 Ver 1.41 Add TPR2
2000.07.22 This manual updated
2000.07.27 Ver 1.42 CAPNOMAC support added. C++Builder version up to V5.0
2000.08.24 Ver 1.50 Burst Suppression Method changed (use 128Hz sampling wave) and short cut key modified
2000.08.28 Ver 1.51 change to use original REX5054 driver
2000.08.29 Ver 1.52 add '2min' and '5min' in BicInterval, character size has changed from 9pt to 16pt in each graph.
2000.11.06 Ver 2.00 Changed to bispectral calculation duration selectable. And Comment input button added
2000.11.23 Ver 2.10 BSR calculation improved.
2000.12.24 Ver 2.20 BSR calculation slightly modified. Mean amplitude parameter added in the Log.
2001.01.20 Ver 2.21 Source code modified but functionally V2.21 is equivalent with V2.20.
2001.06.17 Ver 2.40 Display Thread changed to be always stayed.
2001.07.15 Ver 3.00 Major Version up !! Trend modified (can be scrolled in both direction) and moved to main panel. Averaged bicoherence is added in the trend screen. Parameter calculating interval changed to 10sec. Comment file is separated from data log file. AutoRec mode is added. SQI display added, etc.
2001.07.17 Ver 3.01 small bug around Trend thread fixed.
2001.07.29 Ver 3.02 Open Windows moved to 'Window' menu.
2001.08.10 Ver 3.03 small bug around Trend fixed
2001.10.03 Ver 3.04 POST_OVER takes into account for Amp calculation.
2002.01.11 Ver 3.06 Focus set on Comment window added. Comfirmation Window added to Stop button. SQI graph draw modified.
2002.02.10 Ver 3.07 ASCII mode bug fixed.

Copyright (c) 1999-2002 Satoshi Hagihira (hagihira@masui.med.osaka-u.ac.jp)

9. Epilog

BIS monitor become widely accepted monotoring device, but nobody have discussed the bispectrum itself. In my opinion, watching only BIS Index resembles to watching only SpO2 value without checking its waveform. (BIS monitor also can show the raw EEG, but cannot show all bispectrum pattern.) We should watch raw EEG waveform ,power spectrum and bispectrum as well as each sub-parameters. Of course BIS monitor is a 'monitor' and equips many artifact-detecting algorithms relevant for clinical use, but "BSA" is a research oriented software and is relatively sensitive to artifacts.
Although EEG waveform is rather specific for each anesthetic agent, but we can roughly guess 'the depth of anesthesia' or 'the depth of hypnosis' by watching EEG waveform. Adding the information of power spectrum or bispectrum to the raw waveform may give us more precise information.
I think anesthesiologists will routinely monitor EEG waveform like ECG or SpO2 waveform in the near future.
I will distribute this software for joint study. I will also distribute this software for simple clinical use. You can freely use this software in simple clinical use. I would be glad if you provide raw EEG data or recorded EEG parameters when you found a case who awared during operation. As I want to know raw EEG pattern in such a case. I do not warrant the contents of my software, but there would be no bugs in data processing.
As to the parameter derived from bispectral analysis, I made 'BispRatio' instead of 'SynchFastSlow' because of the strange description of calculating method. But I speculate 'BispRatio' would be almost identical to 'SynchFastSlow' from my data analysis.
In the earlier version (before Ver1.21), display screen sometimes shows strange views during processing. (New line will be overwritten on the previous line, or graphic sub-window will be freezed while data calculation goes on.) In Ver1.21 or later, I have fixed this problem.
If the true algorithm for calculating SynchFastSlow or BIS Index, I will adopt them in "BSA". Questions or comments are welcome. Please tell me by Email.


References

  1. Rampil IJ: A Primer for EEG Signal Processing in Anesthesia. Anesthesiology 1998;98(4), 890-1002
  2. Glass PS, Bloom M, Kearse L, Rosow C, Sebel P, Manberg P: Bispectral Analysis Measures Sedation and Memory Effects of Propofol, Midazolam, Isoflurane, and Alfentanil in Healthy Volunteers. Anesthesiology 1997;86(4), 836-47
  3. Sigl JC, Chamoun NG: An intruduction to bispectral analysis for the electroencephalogram. J Clin Monit 1994;10, 392-404
  4. A-10x0 SERIAL PORT TECHNICAL SPECIFICATION, provided by ASPECT INC.
  5. Nikias CL, Raghuveer MR: Bispectrum estimation: A digital signal processing framework. Proc. IEEE, 1987;75, 869-91
  6. Hagihira S, Takashina M, Mori T, et al: Practical Issues in Bispectral Analysis of Electroencephalographic Signals. Anesth Analg, 2001;93(4),966-70

Satoshi Hagihria MD, Ph.D.
Department of Anesthesiology, Osaka Prefectural Habikino Hospital, 3-7-1, Habikino, Habikino, Osaka, Japan 583-8588.
Tel. +81(729)57-2121, Fax. +81(729)57-8002
email: hagihira@masui.med.osaka-u.ac.jp, pgb00174@nifty.ne.jp