First pages commit
This commit is contained in:
28
js/app.js
Normal file
28
js/app.js
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Please see the included README.md file for license terms and conditions.
|
||||
*/
|
||||
|
||||
|
||||
// This file is a suggested starting place for your code.
|
||||
// It is completely optional and not required.
|
||||
// Note the reference that includes it in the index.html file.
|
||||
|
||||
|
||||
/*jslint browser:true, devel:true, white:true, vars:true */
|
||||
/*global $:false, intel:false app:false, dev:false, cordova:false */
|
||||
|
||||
|
||||
|
||||
// This file contains your event handlers, the center of your application.
|
||||
// NOTE: see app.initEvents() in init-app.js for event handler initialization code.
|
||||
|
||||
// function myEventHandler() {
|
||||
// "use strict" ;
|
||||
// // ...event handler code here...
|
||||
// }
|
||||
|
||||
|
||||
// ...additional event handlers here...
|
||||
|
||||
var wave = {};
|
||||
|
12127
js/dygraph-combined-dev.js
Normal file
12127
js/dygraph-combined-dev.js
Normal file
File diff suppressed because it is too large
Load Diff
51
js/ie-emulation-modes-warning.js
Normal file
51
js/ie-emulation-modes-warning.js
Normal file
@@ -0,0 +1,51 @@
|
||||
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
|
||||
// IT'S JUST JUNK FOR OUR DOCS!
|
||||
// ++++++++++++++++++++++++++++++++++++++++++
|
||||
/*!
|
||||
* Copyright 2014 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
|
||||
* details, see http://creativecommons.org/licenses/by/3.0/.
|
||||
*/
|
||||
// Intended to prevent false-positive bug reports about Bootstrap not working properly in old versions of IE due to folks testing using IE's unreliable emulation modes.
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
function emulatedIEMajorVersion() {
|
||||
var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent)
|
||||
if (groups === null) {
|
||||
return null
|
||||
}
|
||||
var ieVersionNum = parseInt(groups[1], 10)
|
||||
var ieMajorVersion = Math.floor(ieVersionNum)
|
||||
return ieMajorVersion
|
||||
}
|
||||
|
||||
function actualNonEmulatedIEMajorVersion() {
|
||||
// Detects the actual version of IE in use, even if it's in an older-IE emulation mode.
|
||||
// IE JavaScript conditional compilation docs: http://msdn.microsoft.com/en-us/library/ie/121hztk3(v=vs.94).aspx
|
||||
// @cc_on docs: http://msdn.microsoft.com/en-us/library/ie/8ka90k2e(v=vs.94).aspx
|
||||
var jscriptVersion = new Function('/*@cc_on return @_jscript_version; @*/')() // jshint ignore:line
|
||||
if (jscriptVersion === undefined) {
|
||||
return 11 // IE11+ not in emulation mode
|
||||
}
|
||||
if (jscriptVersion < 9) {
|
||||
return 8 // IE8 (or lower; haven't tested on IE<8)
|
||||
}
|
||||
return jscriptVersion // IE9 or IE10 in any mode, or IE11 in non-IE11 mode
|
||||
}
|
||||
|
||||
var ua = window.navigator.userAgent
|
||||
if (ua.indexOf('Opera') > -1 || ua.indexOf('Presto') > -1) {
|
||||
return // Opera, which might pretend to be IE
|
||||
}
|
||||
var emulated = emulatedIEMajorVersion()
|
||||
if (emulated === null) {
|
||||
return // Not IE
|
||||
}
|
||||
var nonEmulated = actualNonEmulatedIEMajorVersion()
|
||||
|
||||
if (emulated !== nonEmulated) {
|
||||
window.alert('WARNING: You appear to be using IE' + nonEmulated + ' in IE' + emulated + ' emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON\'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!')
|
||||
}
|
||||
})();
|
22
js/ie10-viewport-bug-workaround.js
Normal file
22
js/ie10-viewport-bug-workaround.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/*!
|
||||
* IE10 viewport hack for Surface/desktop Windows 8 bug
|
||||
* Copyright 2014 Twitter, Inc.
|
||||
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
|
||||
* details, see http://creativecommons.org/licenses/by/3.0/.
|
||||
*/
|
||||
|
||||
// See the Getting Started docs for more information:
|
||||
// http://getbootstrap.com/getting-started/#support-ie10-width
|
||||
|
||||
(function () {
|
||||
'use strict';
|
||||
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
|
||||
var msViewportStyle = document.createElement('style')
|
||||
msViewportStyle.appendChild(
|
||||
document.createTextNode(
|
||||
'@-ms-viewport{width:auto!important}'
|
||||
)
|
||||
)
|
||||
document.querySelector('head').appendChild(msViewportStyle)
|
||||
}
|
||||
})();
|
95
js/index_user_scripts.js
Normal file
95
js/index_user_scripts.js
Normal file
@@ -0,0 +1,95 @@
|
||||
(function()
|
||||
{
|
||||
"use strict";
|
||||
/*
|
||||
hook up event handlers
|
||||
*/
|
||||
function register_event_handlers()
|
||||
{
|
||||
|
||||
|
||||
/* button .uib_w_2 */
|
||||
$(document).on("click", ".uib_w_2", function(evt)
|
||||
{
|
||||
var x = $("#inp1").val().split(/[\s,;\t\r\n]+/);
|
||||
wave.sigData = new Float64Array(x.length);
|
||||
wave.sigLength = x.length;
|
||||
var i;
|
||||
for(i = 0;i < x.length;i++) {
|
||||
wave.sigData[i] = parseFloat(x[i]);
|
||||
}
|
||||
alert(wave.sigData[2]);
|
||||
displayPage();
|
||||
});
|
||||
|
||||
/* button .uib_w_4 */
|
||||
$(document).on("click", ".uib_w_4", function(evt)
|
||||
{
|
||||
var fileinput = document.getElementById('finp1');
|
||||
var finp1 = fileinput.files[0];
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = function(e) {
|
||||
var x = reader.result.split(/[\s,;\t\r\n]+/);
|
||||
wave.sigData = new Float64Array(x.length);
|
||||
wave.sigLength = x.length;
|
||||
var i;
|
||||
for(i = 0;i < x.length;i++) {
|
||||
wave.sigData[i] = parseFloat(x[i]);
|
||||
}
|
||||
alert(wave.sigData[0]);
|
||||
displayPage();
|
||||
}
|
||||
|
||||
reader.readAsText(finp1);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
document.addEventListener("app.Ready", register_event_handlers, false);
|
||||
})();
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#testsig1').change(function(){
|
||||
var value = $(this).val();
|
||||
var urlx = null;
|
||||
if (value == "ECG") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/ecg.txt";
|
||||
} else if (value == "Heavisine") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/heavisine.txt";
|
||||
} else if (value == "Piecewise Regular 256") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/pieceregular.txt";
|
||||
} else if (value == "Piecewise Regular 2048") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/pieceregular2048.txt";
|
||||
} else if (value == "Piecewise Polynomial") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/piecepoly.txt";
|
||||
} else if (value == "Noisy Bumps") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/noisybumps.txt";
|
||||
} else if (value == "Noisy Heavisine") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/noisyheavisine.txt";
|
||||
} else {
|
||||
alert("Please Select A Signal To Proceed.");
|
||||
}
|
||||
|
||||
console.log(urlx);
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: urlx,
|
||||
success: function(data) {
|
||||
var x = data.split(/[\s,;\t\r\n]+/);
|
||||
wave.sigData = new Float64Array(x.length);
|
||||
wave.sigLength = x.length;
|
||||
var i;
|
||||
for(i = 0;i < x.length;i++) {
|
||||
wave.sigData[i] = parseFloat(x[i]);
|
||||
}
|
||||
console.log(wave.sigLength);
|
||||
alert(wave.sigData[0]);
|
||||
displayPage();
|
||||
},
|
||||
error: function() {
|
||||
alert("Signal cannot be loaded. Please try again.")
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
430
js/ngfile.js
Normal file
430
js/ngfile.js
Normal file
@@ -0,0 +1,430 @@
|
||||
var app = angular.module('ngmain', ['ngRoute']);
|
||||
|
||||
app.config(function($routeProvider){
|
||||
$routeProvider
|
||||
//the timeline display
|
||||
.when('/', {
|
||||
templateUrl: 'front.html',
|
||||
controller: 'mainController'
|
||||
})
|
||||
.when('/display', {
|
||||
templateUrl: 'display.html',
|
||||
controller: 'displayController'
|
||||
})
|
||||
.when('/about', {
|
||||
templateUrl: 'about.html',
|
||||
controller: 'mainController'
|
||||
})
|
||||
.when('/demos', {
|
||||
templateUrl: 'demos.html',
|
||||
controller: 'mainController'
|
||||
})
|
||||
|
||||
|
||||
});
|
||||
|
||||
app.factory('wave', function () {
|
||||
var wave = {};
|
||||
|
||||
return wave;
|
||||
});
|
||||
|
||||
/*
|
||||
app.directive("fileread", [function () {
|
||||
return {
|
||||
scope: {
|
||||
fileread: "="
|
||||
},
|
||||
link: function (scope, element, attributes) {
|
||||
element.bind("change", function (changeEvent) {
|
||||
var reader = new FileReader();
|
||||
reader.onload = function (loadEvent) {
|
||||
scope.$apply(function () {
|
||||
scope.fileread = loadEvent.target.result;
|
||||
});
|
||||
}
|
||||
reader.readAsDataURL(changeEvent.target.files[0]);
|
||||
});
|
||||
}
|
||||
}
|
||||
}]);*/
|
||||
app.controller('mainController', function ($scope, $http, wave) {
|
||||
|
||||
|
||||
$scope.dataInput = function () {
|
||||
var x = $scope.inp1.valueOf().split(/[\s,;\t\r\n]+/);
|
||||
wave.sigData = new Float64Array(x.length);
|
||||
wave.sigLength = x.length;
|
||||
//console.log(wave.sigLength);
|
||||
|
||||
var i;
|
||||
for (i = 0; i < x.length; i++) {
|
||||
wave.sigData[i] = parseFloat(x[i]);
|
||||
}
|
||||
//alert(wave.sigData[0]);
|
||||
location.href = '#/display';
|
||||
}
|
||||
|
||||
$scope.fileInput = function () {
|
||||
var fileinput = document.getElementById('finp1');
|
||||
var finp1 = fileinput.files[0];
|
||||
var reader = new FileReader();
|
||||
var temp = 3.14159;
|
||||
|
||||
|
||||
reader.onload = function (e) {
|
||||
var x = reader.result.split(/[\s,;\t\r\n]+/);
|
||||
wave.sigData = new Float64Array(x.length);
|
||||
|
||||
var i;
|
||||
var j = 0;
|
||||
|
||||
for (i = 0; i < x.length; i++) {
|
||||
temp = parseFloat(x[i]);
|
||||
if (!isNaN(temp)) {
|
||||
wave.sigData[j] = temp;
|
||||
j = j + 1;
|
||||
}
|
||||
}
|
||||
wave.sigLength = j;
|
||||
location.href = '#/display';
|
||||
}
|
||||
|
||||
reader.readAsText(finp1);
|
||||
}
|
||||
|
||||
$scope.testInput = function () {
|
||||
var value = $scope.tvalue;
|
||||
var urlx = null;
|
||||
var data;
|
||||
var temp = 3.14159;
|
||||
|
||||
if (value == "ECG") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/ecg.txt";
|
||||
} else if (value == "Heavisine") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/heavisine.txt";
|
||||
} else if (value == "Piecewise Regular 256") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/pieceregular.txt";
|
||||
} else if (value == "Piecewise Regular 2048") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/pieceregular2048.txt";
|
||||
} else if (value == "Piecewise Polynomial") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/piecepoly.txt";
|
||||
} else if (value == "Noisy Bumps") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/noisybumps.txt";
|
||||
} else if (value == "Noisy Heavisine") {
|
||||
urlx = "https://raw.githubusercontent.com/rafat/rafat.github.io/master/sites/wavelib/data/noisyheavisine.txt";
|
||||
} else {
|
||||
alert("Please Select A Signal To Proceed.");
|
||||
}
|
||||
|
||||
|
||||
$http({ method: 'GET', url: urlx }).
|
||||
then(function (response) {
|
||||
$scope.status = response.status;
|
||||
data = response.data;
|
||||
|
||||
var x = data.split(/[\s,;\t\r\n]+/);
|
||||
wave.sigData = new Float64Array(x.length);
|
||||
|
||||
var i;
|
||||
var j = 0;
|
||||
|
||||
for (i = 0; i < x.length; i++) {
|
||||
temp = parseFloat(x[i]);
|
||||
if (!isNaN(temp)) {
|
||||
wave.sigData[j] = temp;
|
||||
j = j + 1;
|
||||
}
|
||||
}
|
||||
|
||||
wave.sigLength = j;
|
||||
|
||||
location.href = '#/display';
|
||||
}, function (response) {
|
||||
$scope.data = response.data || "Request failed";
|
||||
$scope.status = response.status;
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
app.controller('siteController', function ($scope) {
|
||||
|
||||
});
|
||||
|
||||
app.controller('frontController', function ($scope) {
|
||||
|
||||
});
|
||||
|
||||
app.controller('displayController', function ($scope, $http, wave) {
|
||||
//console.log(wave.sigLength);
|
||||
var lbl = [];
|
||||
$scope.MaxIter = 0;
|
||||
$scope.selected = {};
|
||||
$scope.wdisplays = [];
|
||||
for (i = 0; i < wave.sigLength; ++i) {
|
||||
lbl[i] = [i, wave.sigData[i]];
|
||||
//console.log(lbl[i]);
|
||||
}
|
||||
|
||||
g = new Dygraph(document.getElementById("graph1"),
|
||||
lbl,
|
||||
{
|
||||
legend: 'always',
|
||||
color: '#3399ff',
|
||||
animatedZooms: true,
|
||||
title: 'Input'
|
||||
}
|
||||
);
|
||||
/*
|
||||
$http.get('data/wavedb.json').success(function (data) {
|
||||
$scope.wavedb = data;
|
||||
});console
|
||||
*/
|
||||
$scope.wavedb = [
|
||||
{
|
||||
"id": "0",
|
||||
"family": "haar",
|
||||
"wavelets": [
|
||||
{ "wavelet": "haar", "filtlength": "2" }
|
||||
]
|
||||
}, {
|
||||
"id": "1",
|
||||
"family": "daubechies",
|
||||
"wavelets": [
|
||||
{ "wavelet": "db1", "filtlength": "2" },
|
||||
{ "wavelet": "db2", "filtlength": "4" },
|
||||
{ "wavelet": "db3", "filtlength": "6" },
|
||||
{ "wavelet": "db4", "filtlength": "8" },
|
||||
{ "wavelet": "db5", "filtlength": "10" },
|
||||
{ "wavelet": "db6", "filtlength": "12" },
|
||||
{ "wavelet": "db7", "filtlength": "14" },
|
||||
{ "wavelet": "db8", "filtlength": "16" },
|
||||
{ "wavelet": "db9", "filtlength": "18" },
|
||||
{ "wavelet": "db10", "filtlength": "20" },
|
||||
{ "wavelet": "db11", "filtlength": "22" },
|
||||
{ "wavelet": "db12", "filtlength": "24" },
|
||||
{ "wavelet": "db13", "filtlength": "26" },
|
||||
{ "wavelet": "db14", "filtlength": "28" },
|
||||
{ "wavelet": "db15", "filtlength": "30" }
|
||||
]
|
||||
}, {
|
||||
"id": "2",
|
||||
"family": "biorthogonal",
|
||||
"wavelets": [
|
||||
{ "wavelet": "bior1.1", "filtlength": "2" },
|
||||
{ "wavelet": "bior1.3", "filtlength": "6" },
|
||||
{ "wavelet": "bior1.5", "filtlength": "10" },
|
||||
{ "wavelet": "bior2.2", "filtlength": "6" },
|
||||
{ "wavelet": "bior2.4", "filtlength": "10" },
|
||||
{ "wavelet": "bior2.6", "filtlength": "14" },
|
||||
{ "wavelet": "bior2.8", "filtlength": "18" },
|
||||
{ "wavelet": "bior3.1", "filtlength": "4" },
|
||||
{ "wavelet": "bior3.3", "filtlength": "8" },
|
||||
{ "wavelet": "bior3.5", "filtlength": "12" },
|
||||
{ "wavelet": "bior3.7", "filtlength": "16" },
|
||||
{ "wavelet": "bior3.9", "filtlength": "20" },
|
||||
{ "wavelet": "bior4.4", "filtlength": "10" },
|
||||
{ "wavelet": "bior5.5", "filtlength": "12" },
|
||||
{ "wavelet": "bior6.8", "filtlength": "18" }
|
||||
]
|
||||
}, {
|
||||
"id": "3",
|
||||
"family": "coiflets",
|
||||
"wavelets": [
|
||||
{ "wavelet": "coif1", "filtlength": "6" },
|
||||
{ "wavelet": "coif2", "filtlength": "12" },
|
||||
{ "wavelet": "coif3", "filtlength": "18" },
|
||||
{ "wavelet": "coif4", "filtlength": "24" },
|
||||
{ "wavelet": "coif5", "filtlength": "30" }
|
||||
]
|
||||
}, {
|
||||
"id": "4",
|
||||
"family": "symmlets",
|
||||
"wavelets": [
|
||||
{ "wavelet": "sym2", "filtlength": "4" },
|
||||
{ "wavelet": "sym3", "filtlength": "6" },
|
||||
{ "wavelet": "sym4", "filtlength": "8" },
|
||||
{ "wavelet": "sym5", "filtlength": "10" },
|
||||
{ "wavelet": "sym6", "filtlength": "12" },
|
||||
{ "wavelet": "sym7", "filtlength": "14" },
|
||||
{ "wavelet": "sym8", "filtlength": "16" },
|
||||
{ "wavelet": "sym9", "filtlength": "18" },
|
||||
{ "wavelet": "sym10", "filtlength": "20" }
|
||||
]
|
||||
}
|
||||
|
||||
];
|
||||
|
||||
$scope.methods = [
|
||||
{
|
||||
"id": "0",
|
||||
"method": "DWT (Symmetric)"
|
||||
}, {
|
||||
"id": "1",
|
||||
"method": "DWT (Periodic)"
|
||||
}, {
|
||||
"id": "2",
|
||||
"method": "SWT"
|
||||
}, {
|
||||
"id": "3",
|
||||
"method": "MODWT"
|
||||
}
|
||||
];
|
||||
|
||||
$scope.levels = [];
|
||||
|
||||
|
||||
$scope.getMaxIter = function () {
|
||||
var flength = $scope.selected.wavelet.filtlength;
|
||||
var slength = wave.sigLength;
|
||||
$scope.MaxIter = Math.floor(Math.log(slength / (flength - 1)) / Math.log(2.0));
|
||||
|
||||
$scope.levels = [];
|
||||
for (var i = 0; i < $scope.MaxIter; i++) {
|
||||
$scope.levels[i] = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
$scope.waveTest = function () {
|
||||
var method;
|
||||
var ext = "NULL";
|
||||
if ($scope.selected.method.id == "0") {
|
||||
method = "dwt";
|
||||
ext = "sym";
|
||||
} else if ($scope.selected.method.id == "1") {
|
||||
method = "dwt";
|
||||
ext = "per";
|
||||
} else if ($scope.selected.method.id == "2") {
|
||||
method = "swt";
|
||||
} else if ($scope.selected.method.id == "3") {
|
||||
method = "modwt";
|
||||
}
|
||||
|
||||
console.log(method);
|
||||
|
||||
var N = wave.sigLength;
|
||||
var flength = $scope.selected.wavelet.filtlength;
|
||||
var J = $scope.selected.level;
|
||||
|
||||
wave.length = new Int32Array(J + 2);
|
||||
wave.lenlength = J + 2;
|
||||
wave.J = J;
|
||||
//wave.output = [];
|
||||
//wave.filters = [];
|
||||
wave.wname = $scope.selected.wavelet.wavelet;
|
||||
|
||||
var outlength = Module.ccall('wtoutputlength', 'number', ['number', 'string', 'number', 'number', 'string'], [N, method, flength, J, ext]);
|
||||
wave.outLength = outlength;
|
||||
|
||||
//console.log(wave.sigData, N, wave.wname, method, J, ext, wave.output, wave.length, wave.lenlength, wave.filters, flength);
|
||||
|
||||
//wave.filters = new Float64Array(4*filtlength);
|
||||
|
||||
var wave_transform = Module.cwrap('wave_transform', 'null', ['number', 'number', 'string', 'string', 'number', 'string', 'number', 'number', 'number']);
|
||||
//[wave.sigData, N, wave.wname, method, J, ext, wave.output, wave.length, wave.lenlength, wave.filters, flength]);
|
||||
|
||||
//input signal on heap
|
||||
var inpdata = wave.sigLength * wave.sigData.BYTES_PER_ELEMENT;
|
||||
var inpPtr = Module._malloc(inpdata);
|
||||
var inpHeap = new Uint8Array(Module.HEAPU8.buffer, inpPtr, inpdata);
|
||||
inpHeap.set(new Uint8Array(wave.sigData.buffer));
|
||||
|
||||
//output on heap
|
||||
var outdata = outlength * wave.sigData.BYTES_PER_ELEMENT;
|
||||
var outPtr = Module._malloc(outdata);
|
||||
var outHeap = new Uint8Array(Module.HEAPU8.buffer, outPtr, outdata);
|
||||
//inpHeap.set(new Uint8Array(wave.sigData.buffer));
|
||||
|
||||
//filters
|
||||
var filtdata = 4 * flength * wave.sigData.BYTES_PER_ELEMENT;
|
||||
var filtPtr = Module._malloc(filtdata);
|
||||
var filtHeap = new Uint8Array(Module.HEAPU8.buffer, filtPtr, filtdata);
|
||||
//inpHeap.set(new Uint8Array(wave.sigData.buffer));
|
||||
|
||||
//length vector
|
||||
var lendata = (J + 2) * wave.length.BYTES_PER_ELEMENT;
|
||||
var lenPtr = Module._malloc(lendata);
|
||||
var lenHeap = new Uint8Array(Module.HEAPU8.buffer, lenPtr, lendata);
|
||||
lenHeap.set(new Uint8Array(wave.length.buffer));
|
||||
|
||||
wave_transform(inpHeap.byteOffset, N, wave.wname, method, J, ext, outHeap.byteOffset, lenHeap.byteOffset, filtHeap.byteOffset);
|
||||
|
||||
wave.output = new Float64Array(outHeap.buffer, outHeap.byteOffset, outlength);
|
||||
wave.filter = new Float64Array(filtHeap.buffer, filtHeap.byteOffset, 4 * length);
|
||||
wave.length = new Int32Array(lenHeap.buffer, lenHeap.byteOffset, J + 2);
|
||||
|
||||
console.log(wave.length);
|
||||
|
||||
Module._free(inpHeap.byteOffset);
|
||||
Module._free(outHeap.byteOffset);
|
||||
Module._free(filtHeap.byteOffset);
|
||||
Module._free(lenHeap.byteOffset);
|
||||
|
||||
$scope.wdisplays = new Array(J + 3);
|
||||
$scope.wdisplays[0] = "Input Signal";
|
||||
$scope.wdisplays[1] = "Full Decomposition";
|
||||
$scope.wdisplays[2] = "Approx at Level " + J;
|
||||
|
||||
for (var i = 3; i < J + 3; i++) {
|
||||
$scope.wdisplays[i] = "Details at Level " + (J + 3 - i);
|
||||
}
|
||||
|
||||
var lbl = [];
|
||||
for (var i = 0; i < wave.outLength; ++i) {
|
||||
lbl[i] = [i, wave.output[i]];
|
||||
}
|
||||
|
||||
g = new Dygraph(document.getElementById("graph1"),
|
||||
lbl,
|
||||
{
|
||||
legend: 'always',
|
||||
color: '#3399ff',
|
||||
animatedZooms: true,
|
||||
title: 'Input'
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
$scope.updateGraph = function () {
|
||||
console.log($scope.selected.wdisplay);
|
||||
var lbl = [];
|
||||
if ($scope.selected.wdisplay == 0) {
|
||||
for (var i = 0; i < wave.sigLength; ++i) {
|
||||
lbl[i] = [i, wave.sigData[i]];
|
||||
}
|
||||
} else if ($scope.selected.wdisplay == 1) {
|
||||
for (var i = 0; i < wave.outLength; ++i) {
|
||||
lbl[i] = [i, wave.output[i]];
|
||||
}
|
||||
} else if ($scope.selected.wdisplay == 2) {
|
||||
for (var i = 0; i < wave.length[0]; ++i) {
|
||||
lbl[i] = [i, wave.output[i]];
|
||||
}
|
||||
} else {
|
||||
var k = parseInt($scope.selected.wdisplay) - 2;
|
||||
var start_index = 0;
|
||||
for (var i = 0; i < k; i++) {
|
||||
start_index += wave.length[i];
|
||||
}
|
||||
var end_index = start_index + wave.length[k];
|
||||
for (var i = 0; i < end_index - start_index; ++i) {
|
||||
lbl[i] = [i, wave.output[start_index + i]];
|
||||
}
|
||||
}
|
||||
|
||||
g = new Dygraph(document.getElementById("graph1"),
|
||||
lbl,
|
||||
{
|
||||
legend: 'always',
|
||||
color: '#3399ff',
|
||||
animatedZooms: true,
|
||||
title: 'Input'
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
});
|
30708
js/wavebak.js
Normal file
30708
js/wavebak.js
Normal file
File diff suppressed because one or more lines are too long
31106
js/wavelet.js
Normal file
31106
js/wavelet.js
Normal file
File diff suppressed because one or more lines are too long
296
js/wavewrapper.js
Normal file
296
js/wavewrapper.js
Normal file
@@ -0,0 +1,296 @@
|
||||
var flength = function (str) {
|
||||
filtlength = Module.cwrap('filtlength', 'number', ['string']);
|
||||
return filtlength(str);
|
||||
};
|
||||
|
||||
function zeroArray(length) {
|
||||
var array = [];
|
||||
for (var i = 0; i < length; i++) {
|
||||
array[i] = 0;
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
function sigdata() {
|
||||
var sigdata = [ -18.3237,-18.2232,-18.0974,-17.9410,-17.7480,-17.5113,-17.2230,-16.8744,-16.4558,-15.9565,-15.3653,-14.6701,-13.8586,-12.9182,
|
||||
-11.8363,-10.6008,-9.2006,-7.6257,-5.8680,-3.9217,-1.7839,0.5452,3.0614,5.7562,8.6167,11.6252,14.7591,17.9909,21.2884,24.6155,27.9319,
|
||||
31.1947,34.3587,37.3775,40.2049,42.7957,13.2164,14.2125,15.0317,15.6595,16.0845,16.2990,16.2990,16.0845,15.6595,15.0317,14.2125,13.2164,
|
||||
12.0608,10.7654,9.3517,34.3587,31.1947,27.9319,24.6155,21.2884,17.9909,14.7591,11.6252,8.6167,5.7562,3.0614,0.5452,-1.7839,-3.9217,-5.8680,
|
||||
-7.6257,-9.2006,-10.6008,-11.8363,-12.9182,-13.8586,-14.6701,-15.3653,-15.9565,-16.4558,-16.8744,-17.2230,-17.5113,-17.7480,-17.9410,-18.0974,
|
||||
-18.2232,-18.3237,-18.4035,-18.0080,-17.8889,-17.7403,-17.5533,-17.3156,-17.0102,-16.6129,-16.0884,-15.3848,-14.4239,-13.0840,-11.1708,-8.3634,
|
||||
-4.1098,2.5833,13.6048,32.7934,28.0187,10.9660,1.0776,-4.9459,-8.7354,-11.1225,-12.4865,-12.8019,-11.2050,-3.3124,1.8995,-11.3573,-15.0684,
|
||||
-16.5028,-17.1937,-17.5831,-17.8288,-17.9968,-18.1185,-18.2103,-18.2818,-18.3388,-18.3849,-18.4229,-18.4545,-18.4810,-17.4642,-17.2104,-16.9033,
|
||||
-16.5317,-16.0822,-15.5384,-14.8804,-14.0844,-13.1214,-11.9563,-10.5467,-8.8414,-6.7782,-4.2822,-1.2624,2.3911,6.8111,12.1585,18.6280,26.4549,
|
||||
35.9241,35.9241,26.4549,18.6280,12.1585,6.8111,2.3911,-1.2624,-4.2822,-6.7782,-8.8414,-10.5467,-11.9563,-13.1214,-14.0844,-14.8804,-15.5384,
|
||||
-16.0822,-16.5317,-16.9033,-17.2104,-17.4642,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,
|
||||
-18.6741,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,6.3259,
|
||||
6.3259,6.3259,6.3259,6.3259,6.3259,34.8066,34.6752,34.5285,34.3645,34.1812,33.9763,33.7474,33.4917,33.2058,32.8863,32.5294,32.1304,31.6846,31.1864,
|
||||
30.6296,30.0074,29.3121,28.5350,27.6667,26.6963,25.6118,24.3999,23.0456,21.5322,19.8408,17.9507,15.8385,13.4781,10.8403,7.8925,4.5982,0.9168,-3.1972,
|
||||
-7.7947,-12.932,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.6741,-18.3237];
|
||||
return sigdata;
|
||||
}
|
||||
|
||||
var fcoef = function (str) {
|
||||
fcoef = Module.cwrap('filtcoef', 'number', ['string', 'number', 'number', 'number', 'number']);
|
||||
var length = flength(str);
|
||||
var lpd = new Float64Array(length);
|
||||
var hpd = new Float64Array(length);
|
||||
var lpr = new Float64Array(length);
|
||||
var hpr = new Float64Array(length);
|
||||
var lbl = new Uint8Array(length);
|
||||
for (var i = 0; i < length; ++i) {
|
||||
lpd[i] = hpd[i] = lpr[i] = hpr[i] = 0.0;
|
||||
lbl[i] = i;
|
||||
}
|
||||
var size = 8 * length;
|
||||
var ptr1 = Module._malloc(size);
|
||||
var ptr2 = Module._malloc(size);
|
||||
var ptr3 = Module._malloc(size);
|
||||
var ptr4 = Module._malloc(size);
|
||||
var buf1 = new Uint8Array(Module.HEAPU8.buffer, ptr1, size);
|
||||
var buf2 = new Uint8Array(Module.HEAPU8.buffer, ptr2, size);
|
||||
var buf3 = new Uint8Array(Module.HEAPU8.buffer, ptr3, size);
|
||||
var buf4 = new Uint8Array(Module.HEAPU8.buffer, ptr4, size);
|
||||
buf1.set(new Uint8Array(lpd.buffer));
|
||||
buf2.set(new Uint8Array(hpd.buffer));
|
||||
buf3.set(new Uint8Array(lpr.buffer));
|
||||
buf4.set(new Uint8Array(hpr.buffer));
|
||||
var t = fcoef(str, buf1.byteOffset, buf2.byteOffset, buf3.byteOffset, buf4.byteOffset);
|
||||
var lpd = new Float64Array(buf1.buffer, buf1.byteOffset, length);
|
||||
var hpd = new Float64Array(buf2.buffer, buf2.byteOffset, length);
|
||||
var lpr = new Float64Array(buf3.buffer, buf3.byteOffset, length);
|
||||
var hpr = new Float64Array(buf4.buffer, buf4.byteOffset, length);
|
||||
|
||||
Module._free(buf1);
|
||||
Module._free(buf2);
|
||||
Module._free(buf3);
|
||||
Module._free(buf4);
|
||||
console.log(lpd);
|
||||
console.log(hpd);
|
||||
console.log(lpr);
|
||||
console.log(hpr);
|
||||
|
||||
$('#canvas-holder').append("<div class='row' />");
|
||||
$('#canvas-holder').append("<div class='row' />");
|
||||
|
||||
for (var i = 0; i < 2; ++i) {
|
||||
$('.row').append("<div class='col-md-6' />");
|
||||
}
|
||||
|
||||
var newCanvas = $('<canvas/>',{
|
||||
id: 'canvas1'
|
||||
});
|
||||
$('.col-md-6:eq(0)').append(newCanvas);
|
||||
|
||||
var newCanvas2 = $('<canvas/>',{
|
||||
id: 'canvas2'
|
||||
});
|
||||
$('.col-md-6:eq(1)').append(newCanvas2);
|
||||
|
||||
var newCanvas3 = $('<canvas/>',{
|
||||
id: 'canvas3'
|
||||
});
|
||||
$('.col-md-6:eq(2)').append(newCanvas3);
|
||||
|
||||
var newCanvas4 = $('<canvas/>',{
|
||||
id: 'canvas4'
|
||||
});
|
||||
$('.col-md-6:eq(3)').append(newCanvas4);
|
||||
|
||||
var barChartData = {
|
||||
labels: lbl,
|
||||
datasets: [
|
||||
{
|
||||
fillColor: "rgba(255,0,0,0.5)",
|
||||
strokeColor: "rgba(255,0,0,0.8)",
|
||||
highlightFill: "rgba(255,0,0,0.75)",
|
||||
highlightStroke: "rgba(255,0,0,1)",
|
||||
data: lpd
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
var barChartData2 = {
|
||||
labels: lbl,
|
||||
datasets: [
|
||||
{
|
||||
fillColor: "rgba(0,0,255,0.5)",
|
||||
strokeColor: "rgba(0,0,255,0.8)",
|
||||
highlightFill: "rgba(0,0,255,0.75)",
|
||||
highlightStroke: "rgba(0,0,255,1)",
|
||||
data: hpd
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
var barChartData3 = {
|
||||
labels: lbl,
|
||||
datasets: [
|
||||
{
|
||||
fillColor: "rgba(255,0,0,0.5)",
|
||||
strokeColor: "rgba(255,0,0,0.8)",
|
||||
highlightFill: "rgba(255,0,0,0.75)",
|
||||
highlightStroke: "rgba(255,0,0,1)",
|
||||
data: lpr
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
var barChartData4 = {
|
||||
labels: lbl,
|
||||
datasets: [
|
||||
{
|
||||
fillColor: "rgba(0,0,255,0.5)",
|
||||
strokeColor: "rgba(0,0,255,0.8)",
|
||||
highlightFill: "rgba(0,0,255,0.75)",
|
||||
highlightStroke: "rgba(0,0,255,1)",
|
||||
data: hpr
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
window.onload = function () {
|
||||
var ctx = document.getElementById("canvas1").getContext("2d");
|
||||
window.myBar = new Chart(ctx).Bar(barChartData, {
|
||||
responsive: true
|
||||
});
|
||||
var ctx2 = document.getElementById("canvas2").getContext("2d");
|
||||
window.myBar = new Chart(ctx2).Bar(barChartData2, {
|
||||
responsive: true
|
||||
});
|
||||
var ctx3 = document.getElementById("canvas3").getContext("2d");
|
||||
window.myBar = new Chart(ctx3).Bar(barChartData3, {
|
||||
responsive: true
|
||||
});
|
||||
var ctx4 = document.getElementById("canvas4").getContext("2d");
|
||||
window.myBar = new Chart(ctx4).Bar(barChartData4, {
|
||||
responsive: true
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var frontpage = function () {
|
||||
//$('#canvas-holder').append("<img src='img/3dgausswave.png' />");
|
||||
$('#canvas-holder').append("<div class='row' />");
|
||||
//$('#canvas-holder').append("<div class='row' />");
|
||||
//for (var i = 0; i < 2; ++i) {
|
||||
// $('.row').append("<div class='col-md-6' />");
|
||||
//}
|
||||
//$('.col-md-6').append("<img src='img/3dgauss.jpg' />");
|
||||
//$row.append("<div class='col-md-6' />").append("<img src='img/3dgauss.jpg' />");
|
||||
$('.row').append("<div class='col-md-3' />");
|
||||
$('.row').append("<div class='col-md-6' />");
|
||||
$('.row').append("<div class='col-md-3' />");
|
||||
var sig = sigdata();
|
||||
var length = sig.length;
|
||||
var lbl = [];
|
||||
|
||||
for (i = 0; i < length; ++i) {
|
||||
lbl[i] = i;
|
||||
}
|
||||
|
||||
var sigChartData = {
|
||||
labels: lbl,
|
||||
datasets: [
|
||||
{
|
||||
label: "Input Signal",
|
||||
fillColor: "rgba(151,187,205,0.2)",
|
||||
strokeColor: "rgba(151,187,205,1)",
|
||||
pointColor: "rgba(151,187,205,1)",
|
||||
pointStrokeColor: "#fff",
|
||||
pointHighlightFill: "#fff",
|
||||
pointHighlightStroke: "rgba(151,187,205,1)",
|
||||
data: sig
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
var newCanvas = $('<canvas/>',{
|
||||
id: 'canvas1'
|
||||
});
|
||||
$('.col-md-6').append(newCanvas);
|
||||
|
||||
window.onload = function () {
|
||||
var ctx = document.getElementById("canvas1").getContext("2d");
|
||||
window.myBar = new Chart(ctx).Line(sigChartData, {
|
||||
responsive: true
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var frontpage2 = function () {
|
||||
//$('#canvas-holder').append("<img src='img/3dgausswave.png' />");
|
||||
$('#canvas-holder').append("<div class='row' />");
|
||||
//$('#canvas-holder').append("<div class='row' />");
|
||||
//for (var i = 0; i < 2; ++i) {
|
||||
// $('.row').append("<div class='col-md-6' />");
|
||||
//}
|
||||
//$('.col-md-6').append("<img src='img/3dgauss.jpg' />");
|
||||
//$row.append("<div class='col-md-6' />").append("<img src='img/3dgauss.jpg' />");
|
||||
$('.row').append("<div class='col-md-4' />");
|
||||
$('.row').append("<div class='col-md-4' />");
|
||||
$('.row').append("<div class='col-md-4' />");
|
||||
var sig = sigdata();
|
||||
var length = sig.length;
|
||||
var lbl = [];
|
||||
|
||||
for (i = 0; i < length; ++i) {
|
||||
lbl[i] = [i, sig[i]];
|
||||
}
|
||||
$('.starter-template').empty();
|
||||
$('.starter-template').append("<div id='graph' style='margin:0 auto' />");
|
||||
|
||||
g = new Dygraph(document.getElementById("graph"),
|
||||
lbl,
|
||||
{
|
||||
legend: 'always',
|
||||
color: '#3399ff',
|
||||
animatedZooms: true,
|
||||
title: 'Input'
|
||||
});
|
||||
|
||||
$('.col-md-4:eq(0)').append("<div class='input-group' />");
|
||||
$('.input-group').append("<input type='text' class='form-control' placeholder='Paste Data....' />");
|
||||
$('.input-group').append("<span class='input-group-btn' />");
|
||||
$('.input-group-btn').append("<button class='btn btn-default' type='button' value='GO'>GO</button>");
|
||||
|
||||
$('.col-md-4:eq(1)').append("<form role='form' class='form1' />");
|
||||
$('.form1').append("<div class='form-group' />");
|
||||
$('.form-group').append("<label />").text("Wavelet Family");
|
||||
|
||||
}
|
||||
|
||||
var displayPage = function() {
|
||||
//window.open('display.html','_self');
|
||||
document.location.href = 'display.html';
|
||||
$(document).ready(function() {
|
||||
var lbl = [];
|
||||
for (i = 0; i < wave.sigLength; ++i) {
|
||||
lbl[i] = [i, wave.sigData[i]];
|
||||
}
|
||||
console.log(lbl[0]);
|
||||
alert("Page Changed");
|
||||
g = new Dygraph(document.getElementById("graph1"),
|
||||
lbl,
|
||||
{
|
||||
legend: 'always',
|
||||
color: '#3399ff',
|
||||
animatedZooms: true,
|
||||
title: 'Input'
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user