Loading README.txt +12 −10 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ The GCC compiler on Linux or Mingw-w64 on windows. <http://mingw-w64.sourceforge http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.8.2/threads-posix/dwarf/i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z/download Please, do not use any microsoft tools or compilers. Don't waste your time, it's not going to work! Do not use microsoft tools or compilers. Loading Loading @@ -47,13 +47,14 @@ sudo make install How to compile (step by step) ============================= How to compile ============== - Install Git, the GCC compiler and the Qt4 development package: Linux Mint 18: sudo apt-get install git-core libqt4-dev libqt4-core g++ openSuse Leap 42.2: sudo zypper in git-core libqt4-devel Fedora 25: sudo dnf install git-core qt-devel gcc-c++ Ubuntu 18.04: sudo apt-get install g++ make git-core qtbase5-dev-tools qtbase5-dev qt5-default - Download the source code: mkdir EDFbrowser_git Loading @@ -65,9 +66,10 @@ How to compile (step by step) Linux Mint 18: qmake openSuse Leap 42.2: qmake Fedora 25: qmake-qt4 Ubuntu: qmake - Compile the source code and install it: make -j16 make -j8 sudo make install Now you can run the program by typing: edfbrowser Loading Loading @@ -95,7 +97,7 @@ openSUSE: sudo zypper install -t pattern devel_basis # # # This will not mess with your system libraries. The new compiled libraries will be stored # # # # in a new and separate directory: /usr/local/Qt-5.9.4 # # in a new and separate directory: /usr/local/Qt-5.9.5 # # # # It will not interfere with other Qt programs. # # # Loading @@ -105,14 +107,14 @@ mkdir Qt5-source cd Qt5-source wget http://ftp1.nluug.nl/languages/qt/official_releases/qt/5.9/5.9.4/single/qt-everywhere-opensource-src-5.9.4.tar.xz wget http://ftp1.nluug.nl/languages/qt/official_releases/qt/5.9/5.9.5/single/qt-everywhere-opensource-src-5.9.5.tar.xz here is a list of download mirrors: https://download.qt.io/static/mirrorlist/ The Qt source package you are going to need is: qt-everywhere-opensource-src-5.9.4.tar.xz The Qt source package you are going to need is: qt-everywhere-opensource-src-5.9.5.tar.xz tar -xvf qt-everywhere-opensource-src-5.9.4.tar.xz tar -xvf qt-everywhere-opensource-src-5.9.5.tar.xz cd qt-everywhere-opensource-src-5.9.4 cd qt-everywhere-opensource-src-5.9.5 ./configure -v -release -opensource -confirm-license -c++std c++11 -static -accessibility -fontconfig -skip qtdeclarative -skip qtconnectivity -skip qtmultimedia -no-qml-debug -qt-zlib -no-mtdev -no-journald -qt-libpng -qt-libjpeg -system-freetype -qt-harfbuzz -no-openssl -no-libproxy -no-glib -nomake examples -nomake tests -no-compile-examples -cups -no-evdev -no-dbus -no-eglfs -qreal double -no-opengl -skip qtlocation -skip qtsensors -skip qtwayland -skip qtgamepad -skip qtserialbus Loading @@ -126,7 +128,7 @@ sudo make install Now go to the directory that contains the EDFbrowser sourcecode and enter the following commands: /usr/local/Qt-5.9.4/bin/qmake /usr/local/Qt-5.9.5/bin/qmake make -j8 Loading annotations_dock.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -791,8 +791,6 @@ void UI_Annotationswindow::updateList(void) QString string; QByteArray ba; struct annotationblock *annot; struct annotation_list *annot_list; Loading Loading @@ -842,8 +840,7 @@ void UI_Annotationswindow::updateList(void) string = QString::fromUtf8(annot->annotation); ba = string.toUtf8(); str_tmp = ba.data(); str_tmp = string.toUtf8().data(); len = 0; for(i=0; ; i++) Loading Loading @@ -1014,14 +1011,14 @@ void UI_Annotationswindow::annotation_selected(QListWidgetItem * item, int cente if(mainwindow->video_player->status == VIDEO_STATUS_PLAYING) { mainwindow->video_player_seek((int)((annot->onset - (mainwindow->pagetime / 2) - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); mainwindow->video_player_seek((int)((annot->onset - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); return; } if(mainwindow->video_player->status == VIDEO_STATUS_PAUSED) { mainwindow->video_player_seek((int)((annot->onset - (mainwindow->pagetime / 2) - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); mainwindow->video_player_seek((int)((annot->onset - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); } if(mainwindow->viewtime_sync==VIEWTIME_SYNCED_OFFSET) Loading averager_dialog.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -516,7 +516,7 @@ void UI_AveragerWindow::process_avg(struct signalcompblock *signalcomp) for(s=signalcomp->sample_start; s<signalcomp->samples_on_screen; s++) { if(s>signalcomp->sample_stop) break; if(s>=signalcomp->sample_stop) break; dig_value = 0.0; s2 = s + signalcomp->sample_timeoffset - signalcomp->sample_start; Loading check_edf_file.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -778,7 +778,8 @@ struct edfhdrblock * EDFfileCheck::check_edf_file(FILE *inputfile, char *txt_str if(is_number(scratchpad)) { sprintf(txt_string, "Error, physical minimum field of signal %i is invalid: \"%s\".", sprintf(txt_string, "Error, physical minimum field of signal %i is invalid: \"%s\".\n" "You can try to fix it with the header editor, check the manual for the procedure.", i + 1, scratchpad); free(edf_hdr); Loading Loading @@ -813,7 +814,8 @@ struct edfhdrblock * EDFfileCheck::check_edf_file(FILE *inputfile, char *txt_str if(is_number(scratchpad)) { sprintf(txt_string, "Error, physical maximum field of signal %i is invalid: \"%s\".", sprintf(txt_string, "Error, physical maximum field of signal %i is invalid: \"%s\".\n" "You can try to fix it with the header editor, check the manual for the procedure.", i + 1, scratchpad); free(edf_hdr); Loading doc/manual.html +36 −24 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ <meta name="description" content="EDFbrowser manual"> </head><body> <h1>EDFbrowser 1.63 manual</h1> <h1>EDFbrowser 1.64 manual</h1> <p><br></p> Loading Loading @@ -115,14 +115,16 @@ <h3><a name="Video"></a>Video</h3> <p> (Linux version only)<br> Use the Filemenu to start (or stop) a video. After the video has been started, you can use the slider<br> on the bottom to change the file position or use page-up/page-down.<br><br> In order for EDFbrowser to be able to start a video, the <a href="https://www.videolan.org/">VLC mediaplayer</a> must be installed on your system.<br> On windows: make sure VLC is installed in: C:\Program Files\VideoLAN\VLC\ or C:\Program Files (x86)\VideoLAN\VLC\<br><br> In order for EDFbrowser to be able to start a video, the VLC mediaplayer needs to be installed on your system.<br><br> Open an EDF or BDF file and select/setup your montage as usual. Then press Ctrl-Shift-v (or go to File -> Start video)<br> to select a video. After the video has started, you can use the slider on the bottom to change the file position or<br> use page-up/page-down.<br><br> Also, the startdate and starttime needs to be set in the filename of the video (for synchronization).<br> The following text is copied from <a href="http://www.edfplus.info/specs/video.html">http://www.edfplus.info/specs/video.html</a> :<br><br> <i> Video filenames of the same patient must start with the same patient identification,<br> followed by the start-date and -time of the video, as follows:<br> NL_012348168_03-MAY-2013_14h45m49.013s_Video.ogv<br> Loading @@ -134,7 +136,16 @@ so midnight is coded as 00h00m00s. The decimal fraction of a second (noted here by .XXXX) can have any lenght and can also be omitted<br> (for example in 06h37m12s). The addition _Video is not obligatory and neither do we standardize any video format such as ogv.<br> So, a perfectly OK video filename would also be:<br> NL_012348168_03-MAY-2013_14h45m49.013s.mpeg NL_012348168_03-MAY-2013_14h45m49.013s.mpeg<br><br> </i> Note: EDFbrowser will ignore the part of the filename directly before the startdate and directly after the starttime.<br><br> If the filename of the video does not contain the startdate and starttime, you can still continue to use the video but<br> in that case EDFbrowser will assume that the starttime of the video coincides with the starttime of the EDF file.<br><br> You can resize the video window by dragging the bottom-right corner with the mouse.<br> All other operations like stop, pause, etc. must be done by using the videoplayer controls (buttons) in EDFbrowser.<br> Do not use the control interface of VLC, it will interfere with EDFbrowser. </p> <p><br></p> Loading Loading @@ -406,7 +417,7 @@ The Power Spectral Density of the corresponding signal will be shown (uV)<sup>2</sup>/FFT-resolution.<br> The amount of datasamples used to perform the FFT equals the data which is<br> shown on the screen. Increasing or decreasing the FFT blocksize affects the FFT resolution.<br> The FFT blocksize can be set in Settings menu.<br> The default FFT blocksize can be set in Settings menu.<br> So, if the samplefrequency of the selected signal is 256Hz, the timescale is set to 10 seconds and<br> the FFT-blocksize is 512, the number of FFT's performed is (10 seconds x 256 Hz) / 512 = 5.<br> The output of the five FFT's are averaged.<br> Loading Loading @@ -484,7 +495,7 @@ - Dynamic powerline interference subtraction from biosignals<br> Ivaylo I. Christov<br> <br> The subtraction method extracts the powerline interference noise during a<br> The subtraction method extracts the powerline interference noise (50/60Hz and harmonics) during a<br> a linear region between two consecutive QRS complexes and stores it in a buffer.<br> The reference noise from the buffer is used to subtract it from the signal outside<br> the linear region i.e. during the QRS complex.<br> Loading @@ -492,7 +503,7 @@ integer multiple of the powerline frequency.<br> In case they are synchronized, this method will remove also the harmonics of the<br> powerline frequency. In that case extra notch-filters for the harmonics are<br> not necessary. The advantage of this method is that it will not cause ringing<br> not necessary. The advantage of this method is that it will not cause ringing or other distortion<br> in the waveform of the QRS complex (like notch-filters do).<br> <br> The following rules apply:<br> Loading @@ -502,7 +513,7 @@ <br> Note: Good results will be achieved when the accuracy of the recording sampleclock is <=100ppm.<br> A nearly perfect result will achieved when the recording sampleclock is synchronized with the<br> powerlinefrequency in hardware (e.g. using a PLL). powerlinefrequency in hardware (e.g. using a Phase Locked Loop). </p> <p><br></p> Loading Loading @@ -847,7 +858,7 @@ <br> filename_data.txt contains a separate line for each sampletime that occurs.<br> Note to windows-users: these lines are separated by a linefeed only,<br> so the file does NOT look OK in Notepad, use Wordpad instead.<br> so the file does NOT look OK in Notepad, use a real editor instead.<br> <br> Each line contains the comma-separated values of the sampletime and of all<br> samples that were taken at that time.<br> Loading Loading @@ -1081,7 +1092,7 @@ <br> - the data in the ASCII-file must be presented in their physical dimension (i.e. uV, bpm, mmHg, etc.)<br> - the data in the ASCII-file must be organised in columns and rows<br> - a row must contain values from different signals/channels aquired at the same sampletime<br> - a row must contain values from different signals/channels acquired at the same sampletime<br> - a column must represent a continuous sampled signal/channel<br> - all signals/channels must have the same samplefrequency<br> - the timeinterval between two consecutive samples of the same signal/channel must have a stable value (fixed samplerate)<br> Loading Loading @@ -1109,17 +1120,17 @@ <br> - label (name of the signal/channel i.e. FP1, SaO2, Heartrate, etc.)<br> - physical maximum (the maximum physical value that can occur, i.e. the maximum inputlevel<br> of the aquisition equipment. A common value in EEG applications is 3000 uV)<br> physical minimum will be equal to physical maximum. for example, if you enter 3000, the<br> of the acquisition equipment. A common value in EEG applications is 3000 uV)<br> Physical minimum will be equal to physical maximum. For example, if you enter 3000, the<br> range will be from +3000 to -3000<br> - physical dimension (i.e. uV, %, mmHg, bpm)<br> - physical dimension (units, e.g. uV, mV, %, mmHg, bpm)<br> - multiplier is normally 1.0. Some programs exports their ascii-data expressed in Volts while<br> the signal is in the microVolt range. By changing the multiplier you can add gain to the signal before converting.<br> For example, if the ascii-data is expressed in Volts and the signal is in the microVolt range (EEG),<br> set the physical maximum to 3000, set the physical dimension to "uV" and set the multiplier to 1000000.<br> <br> It is possible to exclude columns, by unchecking the corresponding row in the signals-table,<br> this can be useful when a column contains a time/datestamp or when you don't want to include<br> It is possible to exclude columns, by unchecking the corresponding row in the signals-table.<br> This can be useful when a column contains a time/datestamp or when you don't want to include<br> a particular signal in the EDF/BDF-file.<br> <br> Click on the startbutton to start the conversion.<br> Loading @@ -1127,7 +1138,7 @@ Click on the loadbutton to load parameters from a template.<br> <br> Note: It is important to enter the right value in the "physical maximum" field.<br> If you to choose this value too small, the top of the signal will be cut off.<br> If you to choose this value too small, the top of the signal will clip at the peaks.<br> If you choose this value too big, small values of the signal will not be visible<br> and the signal will look coarse.<br> The ideal value for the "physical maximum" is just above (or equal to) the maximum value that can occur,<br> Loading Loading @@ -1608,23 +1619,24 @@ <h3><a name="Annotation_editor">Annotation editor</a></h3> <p> The annotation editor can be used to add, remove or edit annotations.<br> The annotation editor can be used to create, edit or delete annotations.<br> Start the editor via menu -> Window -> Annotation editor.<br> To create a new annotation, write the text of the annotation in the description window and set<br> the onset time. You can set the duration time as well. If the duration time is unknown or not<br> applicable, set it to the value -1. Now click on the create button.<br><br> applicable, set it to -1. Now click on the create button.<br><br> Instead of manually entering the onset time, you can use a <a href="#Crosshairs">crosshair</a>.<br> Drag and drop the crosshair and the onset time will be automatically adjusted.<br> You can use a second <a href="#Crosshairs">crosshair</a> to adjust the duration time.<br><br> You can use a second <a href="#Crosshairs">crosshair</a> to adjust the duration of the event.<br><br> To modify an existent annotation, click on the annotation in the annotation window.<br> Adjust the text and or time, manually or drag and drop the annotation marker.<br><br> Adjust the text and/or time, manually or drag and drop the annotation marker with the mouse.<br><br> To delete an annotation, click on the annotation in the annotation window and click<br> on the delete button.<br><br> on the delete button (or hit Del on your keyboard.<br> Pay attention, there's no undo.<br><br> When you are finished editing annotations, save the file in menu -> File -> Save.<br> When you have finished editing annotations, save the file in menu -> File -> Save.<br> Your file will not be altered, instead a copy of your file with the edited annotations<br> will be made.<br><br> Loading Loading
README.txt +12 −10 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ The GCC compiler on Linux or Mingw-w64 on windows. <http://mingw-w64.sourceforge http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.8.2/threads-posix/dwarf/i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z/download Please, do not use any microsoft tools or compilers. Don't waste your time, it's not going to work! Do not use microsoft tools or compilers. Loading Loading @@ -47,13 +47,14 @@ sudo make install How to compile (step by step) ============================= How to compile ============== - Install Git, the GCC compiler and the Qt4 development package: Linux Mint 18: sudo apt-get install git-core libqt4-dev libqt4-core g++ openSuse Leap 42.2: sudo zypper in git-core libqt4-devel Fedora 25: sudo dnf install git-core qt-devel gcc-c++ Ubuntu 18.04: sudo apt-get install g++ make git-core qtbase5-dev-tools qtbase5-dev qt5-default - Download the source code: mkdir EDFbrowser_git Loading @@ -65,9 +66,10 @@ How to compile (step by step) Linux Mint 18: qmake openSuse Leap 42.2: qmake Fedora 25: qmake-qt4 Ubuntu: qmake - Compile the source code and install it: make -j16 make -j8 sudo make install Now you can run the program by typing: edfbrowser Loading Loading @@ -95,7 +97,7 @@ openSUSE: sudo zypper install -t pattern devel_basis # # # This will not mess with your system libraries. The new compiled libraries will be stored # # # # in a new and separate directory: /usr/local/Qt-5.9.4 # # in a new and separate directory: /usr/local/Qt-5.9.5 # # # # It will not interfere with other Qt programs. # # # Loading @@ -105,14 +107,14 @@ mkdir Qt5-source cd Qt5-source wget http://ftp1.nluug.nl/languages/qt/official_releases/qt/5.9/5.9.4/single/qt-everywhere-opensource-src-5.9.4.tar.xz wget http://ftp1.nluug.nl/languages/qt/official_releases/qt/5.9/5.9.5/single/qt-everywhere-opensource-src-5.9.5.tar.xz here is a list of download mirrors: https://download.qt.io/static/mirrorlist/ The Qt source package you are going to need is: qt-everywhere-opensource-src-5.9.4.tar.xz The Qt source package you are going to need is: qt-everywhere-opensource-src-5.9.5.tar.xz tar -xvf qt-everywhere-opensource-src-5.9.4.tar.xz tar -xvf qt-everywhere-opensource-src-5.9.5.tar.xz cd qt-everywhere-opensource-src-5.9.4 cd qt-everywhere-opensource-src-5.9.5 ./configure -v -release -opensource -confirm-license -c++std c++11 -static -accessibility -fontconfig -skip qtdeclarative -skip qtconnectivity -skip qtmultimedia -no-qml-debug -qt-zlib -no-mtdev -no-journald -qt-libpng -qt-libjpeg -system-freetype -qt-harfbuzz -no-openssl -no-libproxy -no-glib -nomake examples -nomake tests -no-compile-examples -cups -no-evdev -no-dbus -no-eglfs -qreal double -no-opengl -skip qtlocation -skip qtsensors -skip qtwayland -skip qtgamepad -skip qtserialbus Loading @@ -126,7 +128,7 @@ sudo make install Now go to the directory that contains the EDFbrowser sourcecode and enter the following commands: /usr/local/Qt-5.9.4/bin/qmake /usr/local/Qt-5.9.5/bin/qmake make -j8 Loading
annotations_dock.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -791,8 +791,6 @@ void UI_Annotationswindow::updateList(void) QString string; QByteArray ba; struct annotationblock *annot; struct annotation_list *annot_list; Loading Loading @@ -842,8 +840,7 @@ void UI_Annotationswindow::updateList(void) string = QString::fromUtf8(annot->annotation); ba = string.toUtf8(); str_tmp = ba.data(); str_tmp = string.toUtf8().data(); len = 0; for(i=0; ; i++) Loading Loading @@ -1014,14 +1011,14 @@ void UI_Annotationswindow::annotation_selected(QListWidgetItem * item, int cente if(mainwindow->video_player->status == VIDEO_STATUS_PLAYING) { mainwindow->video_player_seek((int)((annot->onset - (mainwindow->pagetime / 2) - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); mainwindow->video_player_seek((int)((annot->onset - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); return; } if(mainwindow->video_player->status == VIDEO_STATUS_PAUSED) { mainwindow->video_player_seek((int)((annot->onset - (mainwindow->pagetime / 2) - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); mainwindow->video_player_seek((int)((annot->onset - mainwindow->edfheaderlist[file_num]->starttime_offset) / TIME_DIMENSION)); } if(mainwindow->viewtime_sync==VIEWTIME_SYNCED_OFFSET) Loading
averager_dialog.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -516,7 +516,7 @@ void UI_AveragerWindow::process_avg(struct signalcompblock *signalcomp) for(s=signalcomp->sample_start; s<signalcomp->samples_on_screen; s++) { if(s>signalcomp->sample_stop) break; if(s>=signalcomp->sample_stop) break; dig_value = 0.0; s2 = s + signalcomp->sample_timeoffset - signalcomp->sample_start; Loading
check_edf_file.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -778,7 +778,8 @@ struct edfhdrblock * EDFfileCheck::check_edf_file(FILE *inputfile, char *txt_str if(is_number(scratchpad)) { sprintf(txt_string, "Error, physical minimum field of signal %i is invalid: \"%s\".", sprintf(txt_string, "Error, physical minimum field of signal %i is invalid: \"%s\".\n" "You can try to fix it with the header editor, check the manual for the procedure.", i + 1, scratchpad); free(edf_hdr); Loading Loading @@ -813,7 +814,8 @@ struct edfhdrblock * EDFfileCheck::check_edf_file(FILE *inputfile, char *txt_str if(is_number(scratchpad)) { sprintf(txt_string, "Error, physical maximum field of signal %i is invalid: \"%s\".", sprintf(txt_string, "Error, physical maximum field of signal %i is invalid: \"%s\".\n" "You can try to fix it with the header editor, check the manual for the procedure.", i + 1, scratchpad); free(edf_hdr); Loading
doc/manual.html +36 −24 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ <meta name="description" content="EDFbrowser manual"> </head><body> <h1>EDFbrowser 1.63 manual</h1> <h1>EDFbrowser 1.64 manual</h1> <p><br></p> Loading Loading @@ -115,14 +115,16 @@ <h3><a name="Video"></a>Video</h3> <p> (Linux version only)<br> Use the Filemenu to start (or stop) a video. After the video has been started, you can use the slider<br> on the bottom to change the file position or use page-up/page-down.<br><br> In order for EDFbrowser to be able to start a video, the <a href="https://www.videolan.org/">VLC mediaplayer</a> must be installed on your system.<br> On windows: make sure VLC is installed in: C:\Program Files\VideoLAN\VLC\ or C:\Program Files (x86)\VideoLAN\VLC\<br><br> In order for EDFbrowser to be able to start a video, the VLC mediaplayer needs to be installed on your system.<br><br> Open an EDF or BDF file and select/setup your montage as usual. Then press Ctrl-Shift-v (or go to File -> Start video)<br> to select a video. After the video has started, you can use the slider on the bottom to change the file position or<br> use page-up/page-down.<br><br> Also, the startdate and starttime needs to be set in the filename of the video (for synchronization).<br> The following text is copied from <a href="http://www.edfplus.info/specs/video.html">http://www.edfplus.info/specs/video.html</a> :<br><br> <i> Video filenames of the same patient must start with the same patient identification,<br> followed by the start-date and -time of the video, as follows:<br> NL_012348168_03-MAY-2013_14h45m49.013s_Video.ogv<br> Loading @@ -134,7 +136,16 @@ so midnight is coded as 00h00m00s. The decimal fraction of a second (noted here by .XXXX) can have any lenght and can also be omitted<br> (for example in 06h37m12s). The addition _Video is not obligatory and neither do we standardize any video format such as ogv.<br> So, a perfectly OK video filename would also be:<br> NL_012348168_03-MAY-2013_14h45m49.013s.mpeg NL_012348168_03-MAY-2013_14h45m49.013s.mpeg<br><br> </i> Note: EDFbrowser will ignore the part of the filename directly before the startdate and directly after the starttime.<br><br> If the filename of the video does not contain the startdate and starttime, you can still continue to use the video but<br> in that case EDFbrowser will assume that the starttime of the video coincides with the starttime of the EDF file.<br><br> You can resize the video window by dragging the bottom-right corner with the mouse.<br> All other operations like stop, pause, etc. must be done by using the videoplayer controls (buttons) in EDFbrowser.<br> Do not use the control interface of VLC, it will interfere with EDFbrowser. </p> <p><br></p> Loading Loading @@ -406,7 +417,7 @@ The Power Spectral Density of the corresponding signal will be shown (uV)<sup>2</sup>/FFT-resolution.<br> The amount of datasamples used to perform the FFT equals the data which is<br> shown on the screen. Increasing or decreasing the FFT blocksize affects the FFT resolution.<br> The FFT blocksize can be set in Settings menu.<br> The default FFT blocksize can be set in Settings menu.<br> So, if the samplefrequency of the selected signal is 256Hz, the timescale is set to 10 seconds and<br> the FFT-blocksize is 512, the number of FFT's performed is (10 seconds x 256 Hz) / 512 = 5.<br> The output of the five FFT's are averaged.<br> Loading Loading @@ -484,7 +495,7 @@ - Dynamic powerline interference subtraction from biosignals<br> Ivaylo I. Christov<br> <br> The subtraction method extracts the powerline interference noise during a<br> The subtraction method extracts the powerline interference noise (50/60Hz and harmonics) during a<br> a linear region between two consecutive QRS complexes and stores it in a buffer.<br> The reference noise from the buffer is used to subtract it from the signal outside<br> the linear region i.e. during the QRS complex.<br> Loading @@ -492,7 +503,7 @@ integer multiple of the powerline frequency.<br> In case they are synchronized, this method will remove also the harmonics of the<br> powerline frequency. In that case extra notch-filters for the harmonics are<br> not necessary. The advantage of this method is that it will not cause ringing<br> not necessary. The advantage of this method is that it will not cause ringing or other distortion<br> in the waveform of the QRS complex (like notch-filters do).<br> <br> The following rules apply:<br> Loading @@ -502,7 +513,7 @@ <br> Note: Good results will be achieved when the accuracy of the recording sampleclock is <=100ppm.<br> A nearly perfect result will achieved when the recording sampleclock is synchronized with the<br> powerlinefrequency in hardware (e.g. using a PLL). powerlinefrequency in hardware (e.g. using a Phase Locked Loop). </p> <p><br></p> Loading Loading @@ -847,7 +858,7 @@ <br> filename_data.txt contains a separate line for each sampletime that occurs.<br> Note to windows-users: these lines are separated by a linefeed only,<br> so the file does NOT look OK in Notepad, use Wordpad instead.<br> so the file does NOT look OK in Notepad, use a real editor instead.<br> <br> Each line contains the comma-separated values of the sampletime and of all<br> samples that were taken at that time.<br> Loading Loading @@ -1081,7 +1092,7 @@ <br> - the data in the ASCII-file must be presented in their physical dimension (i.e. uV, bpm, mmHg, etc.)<br> - the data in the ASCII-file must be organised in columns and rows<br> - a row must contain values from different signals/channels aquired at the same sampletime<br> - a row must contain values from different signals/channels acquired at the same sampletime<br> - a column must represent a continuous sampled signal/channel<br> - all signals/channels must have the same samplefrequency<br> - the timeinterval between two consecutive samples of the same signal/channel must have a stable value (fixed samplerate)<br> Loading Loading @@ -1109,17 +1120,17 @@ <br> - label (name of the signal/channel i.e. FP1, SaO2, Heartrate, etc.)<br> - physical maximum (the maximum physical value that can occur, i.e. the maximum inputlevel<br> of the aquisition equipment. A common value in EEG applications is 3000 uV)<br> physical minimum will be equal to physical maximum. for example, if you enter 3000, the<br> of the acquisition equipment. A common value in EEG applications is 3000 uV)<br> Physical minimum will be equal to physical maximum. For example, if you enter 3000, the<br> range will be from +3000 to -3000<br> - physical dimension (i.e. uV, %, mmHg, bpm)<br> - physical dimension (units, e.g. uV, mV, %, mmHg, bpm)<br> - multiplier is normally 1.0. Some programs exports their ascii-data expressed in Volts while<br> the signal is in the microVolt range. By changing the multiplier you can add gain to the signal before converting.<br> For example, if the ascii-data is expressed in Volts and the signal is in the microVolt range (EEG),<br> set the physical maximum to 3000, set the physical dimension to "uV" and set the multiplier to 1000000.<br> <br> It is possible to exclude columns, by unchecking the corresponding row in the signals-table,<br> this can be useful when a column contains a time/datestamp or when you don't want to include<br> It is possible to exclude columns, by unchecking the corresponding row in the signals-table.<br> This can be useful when a column contains a time/datestamp or when you don't want to include<br> a particular signal in the EDF/BDF-file.<br> <br> Click on the startbutton to start the conversion.<br> Loading @@ -1127,7 +1138,7 @@ Click on the loadbutton to load parameters from a template.<br> <br> Note: It is important to enter the right value in the "physical maximum" field.<br> If you to choose this value too small, the top of the signal will be cut off.<br> If you to choose this value too small, the top of the signal will clip at the peaks.<br> If you choose this value too big, small values of the signal will not be visible<br> and the signal will look coarse.<br> The ideal value for the "physical maximum" is just above (or equal to) the maximum value that can occur,<br> Loading Loading @@ -1608,23 +1619,24 @@ <h3><a name="Annotation_editor">Annotation editor</a></h3> <p> The annotation editor can be used to add, remove or edit annotations.<br> The annotation editor can be used to create, edit or delete annotations.<br> Start the editor via menu -> Window -> Annotation editor.<br> To create a new annotation, write the text of the annotation in the description window and set<br> the onset time. You can set the duration time as well. If the duration time is unknown or not<br> applicable, set it to the value -1. Now click on the create button.<br><br> applicable, set it to -1. Now click on the create button.<br><br> Instead of manually entering the onset time, you can use a <a href="#Crosshairs">crosshair</a>.<br> Drag and drop the crosshair and the onset time will be automatically adjusted.<br> You can use a second <a href="#Crosshairs">crosshair</a> to adjust the duration time.<br><br> You can use a second <a href="#Crosshairs">crosshair</a> to adjust the duration of the event.<br><br> To modify an existent annotation, click on the annotation in the annotation window.<br> Adjust the text and or time, manually or drag and drop the annotation marker.<br><br> Adjust the text and/or time, manually or drag and drop the annotation marker with the mouse.<br><br> To delete an annotation, click on the annotation in the annotation window and click<br> on the delete button.<br><br> on the delete button (or hit Del on your keyboard.<br> Pay attention, there's no undo.<br><br> When you are finished editing annotations, save the file in menu -> File -> Save.<br> When you have finished editing annotations, save the file in menu -> File -> Save.<br> Your file will not be altered, instead a copy of your file with the edited annotations<br> will be made.<br><br> Loading