Скачать 0.75 Mb.
|
ЗАКЛЮЧЕНИЕВ дипломной работе был разработан и реализован математический метод, позволяющий за приемлемое время автоматически производить вейвлет-преобразование дискреного сигнала. В результате проделанной работы были решены поставленные перед разработчиком задачи:
Проведен анализ, выбор и реализация оптимальных алгоритмов вейвлет-анализа, позволяющих за приемлимое время достичь нужного результата. Создано программное обеспечение, выполняющее многомасштабный анализ дискретных сигналов. Посредством МАДС удается обнаружить структурные особенности сигналов, выявить и уменьшить шумы. Созданную систему МАДС следует рассматривать как исследовательскую систему, предназначенную для выявления эмпирических закономерностей в предметной области и дальнейшую разработку в направлении большей автоматизации процесса многомасштабного анализа. СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1 ТЕКСТ ПРОГРАММЫ П. 1.1. ТЕКСТ МОДУЛЯ SIGNAL.CS using System; using System.Collections; using System.Drawing; using System.IO; using System.Windows.Forms; using MultiScAn.Common.Attributes; using MultiScAn.Common.Interfaces; using MultiScAn.Common.Utils; namespace MultiScAn.Common.Classes { public delegate void CommonHandler(); /// /// Summary description for Signal. /// [Filter("Текстовый файл данных (*.dat)|*.dat")] public class Signal : IData, ICleanable, IEnumerable { private int[] _data = new int[0]; private int _minValue = int.MaxValue; private int _maxValue = int.MinValue; private Bitmap _bitmap; public Signal() { } public void Rebuild(int size) { _data = new int[size]; _minValue = int.MaxValue; _maxValue = int.MinValue; _bitmap = null; } public void Load(string fileName) { int min = int.MaxValue, max = int.MinValue; ArrayList list = new ArrayList(); using(StreamReader reader = File.OpenText(fileName)) { string str = String.Empty; while((str = reader.ReadLine()) != null) { str = str.Trim(); if (str != String.Empty) { string [] vals = str.Split(' ', '\t'); foreach(string val in vals) { int iVal = int.Parse(val); DataUtil.Sort(iVal, ref min, ref max); list.Add(iVal); } } } } if (list.Count == 0) throw new NotSupportedException(); _data = (int[]) list.ToArray(typeof(int)); _minValue = min; _maxValue = max; _bitmap = null; if(OnLoad != null) OnLoad(); } public event CommonHandler OnLoad; public void Save(string fileName) { using(StreamWriter writer = File.CreateText(fileName)) { foreach(int s in _data) { writer.WriteLine(s); } } if (OnSave != null) OnSave(); } public event CommonHandler OnSave; public Bitmap Bitmap { get { if (_bitmap == null) { int min = _minValue > 0 ? 0 : -_minValue; int max = _maxValue < 0 ? 0 : _maxValue; Graphics g = null; _bitmap = new Bitmap(2 * _data.Length, min + max); g = Graphics.FromImage(_bitmap); g.FillRectangle(new SolidBrush(Color.White), g.ClipBounds); for(int i = 1; i <= _data.Length; i++) { g.DrawLine(new Pen(Color.Black), new Point(2*i-1 , max), new Point(2*i-1, max - _data[i-1])); } } return _bitmap; } } public void Clean() { _data = new int[0]; _minValue = int.MaxValue; _maxValue = int.MinValue; } public bool IsEmpty { get { return _data.Length == 0; } } public int this[int index] { get { return _data[index]; } set { sorter = _data[index] = value; } } private int sorter { set { DataUtil.Sort(value, ref _minValue, ref _maxValue); } } public IEnumerator GetEnumerator() { return _data.GetEnumerator(); } public int Length { get { return _data.Length; } } public void CopyTo(int[] arr) { _data.CopyTo(arr, 0); } } } П. 1.2. ТЕКСТ МОДУЛЯ WAVELET.CS using MultiScAn.Common.Classes; namespace MultiScAn.WaveletAnalysis { /// /// Summary description for Wavelet. /// public class Wavelet : Signal { public Wavelet() { } public double[] Resample(int size) { double[] res = new double[size]; for (int i = 0, offs = 0; i < size; i++, offs += base.Length) { res[i] = 0.0; for (int j = 0; j < base.Length; j++) { res[i] += base[(offs + j)/size]; } res[i] /= base.Length; } return res; } } } П. 1.3. ТЕКСТ МОДУЛЯ RESULT.CS using System; using System.Collections; using System.Drawing; using System.IO; using MultiScAn.Common.Attributes; using MultiScAn.Common.Classes; using MultiScAn.Common.Interfaces; using MultiScAn.Common.Utils; namespace MultiScAn.WaveletAnalysis { /// /// Summary description for ResultUtil. /// [Filter("Результат вейвлет анализа (*.war)|*.war")] public class Result : IResult { double [,] _Data = new double[0, 0]; private Bitmap _bitmap; private double _minValue = double.MaxValue; private double _maxValue = double.MinValue; private Spectrum _spectrum = new Spectrum(); public Result() { } internal void Rebuild(int height, int width) { _bitmap = null; _Data = new double[height, width]; _minValue = double.MaxValue; _maxValue = double.MinValue; } public int Width { get { return _Data.GetLength(1); } } public int Height { get { return _Data.GetLength(0); } } public double this[int i, int j] { get { return _Data[i, j]; } set { sorter = _Data[i, j] = value; } } public double MinValue { get { return _minValue; } } public double MaxValue { get { return _maxValue; } } public void Load(string fileName) { double min = double.MaxValue, max = double.MinValue; double [,] data; using(StreamReader reader = File.OpenText(fileName)) { int width = int.Parse(__read(reader)); int height = int.Parse(__read(reader)); data = new double[width, height]; for(int i = 0; i < width; i++) { for(int j = 0; j < height; j++) { DataUtil.Sort(data[i, j] = double.Parse(__read(reader)), ref min, ref max); } } } _Data = data; _minValue = min; _maxValue = max; _bitmap = null; if(OnLoad != null) OnLoad(); } private string __read(StreamReader reader) { string str = reader.ReadLine(); if (str == null) throw new NotSupportedException(); return str; } public event CommonHandler OnLoad; public void Save(string fileName) { using(StreamWriter writer = File.CreateText(fileName)) { int height = _Data.GetLength(0), width = _Data.GetLength(1); writer.WriteLine(height); writer.WriteLine(width); for(int i = 0; i < height; i++) { for(int j = 0; j < width; j++) { writer.WriteLine(_Data[i, j]); } } } if (OnSave != null) OnSave(); } public event CommonHandler OnSave; public Bitmap Bitmap { get { if (_bitmap == null) { if (_spectrum.Length == 0) _spectrum.LoadDefault(); _bitmap = new Bitmap(Width, Height); double k = (_spectrum.Length - 1) / (_maxValue - _minValue); for(int i = 0; i < Height; i++) { for(int j = 0; j < Width; j++) { _bitmap.SetPixel(j, i, _spectrum[(int) (k *(_Data[i, j] - _minValue))]); } } } return _bitmap; } } public void FormRow(Signal x, double[] y, int row) { int result_size = 2 * x.Length, max_offset = x.Length - y.Length, null_offset = Math.Min(y.Length - 1, result_size); if (result_size != _Data.GetLength(1)) throw new ArgumentOutOfRangeException(); for (int i = 0; i < null_offset; i++) { this[row, i] = 0.0; } if (null_offset == result_size) return; // зачем делать лишние движения, если и так уже всё забито нулями for (int i = 0; i <= max_offset; i++) { double sum = 0.0; for (int j = 0; j < y.Length; j++) { sum += x[i+j] * y[j]; } this[row, 2*i+y.Length-1] = sum; this[row, 2*i+y.Length] = 0.0; } for (int i = result_size - null_offset; i < result_size; i++) { this[row, i] = 0.0; } } public Spectrum Spectrum { get { return _spectrum; } set { _spectrum = value; } } private double sorter { set { DataUtil.Sort(value, ref _minValue, ref _maxValue); } } } } П. 1.3. ТЕКСТ МОДУЛЯ ANALYZER.CS using System; using System.Diagnostics; using MultiScAn.Common.Classes; using MultiScAn.Common.Interfaces; namespace MultiScAn.WaveletAnalysis { /// /// Summary description for Analysis. /// public class Analyzer : IAnalyzer { public const double DEFAULT_SCALE = 1.0; private Wavelet _Wavelet = new Wavelet(); private Signal _Data = new Signal(); public Analyzer() { } // public Analyzer(Wavelet wavelet, Wavelet data) // { // _Wavelet = wavelet; // _Data = data; // } public Wavelet Wavelet { get { return _Wavelet; } set { _Wavelet = value; } } public Signal Data { get { return _Data; } set { _Data = value; } } public void Analyze(IResult result) { Analyze(DEFAULT_SCALE, (Result)result); } public void Analyze(double scale, Result result) { if (_Wavelet == null) throw new ArgumentNullException("Wavelet"); if (_Data == null) throw new ArgumentNullException("Data"); int size = (int)(_Wavelet.Length * scale); // Wavelet [] result = new Wavelet[size]; result.Rebuild(size, 2 * _Data.Length); for (int i = 0; i < size; i++) { result.FormRow(_Data, _Wavelet.Resample(size - i), i); // Trace.WriteLine(String.Format("{0} / {1}", i, size)); } } } } |
Пояснительная записка к дипломной работе на тему: «Система автоматизированного... Авторское выполнение научных работ на заказ. Контроль плагиата, скидки, гарантии, прямое общение с | Декомпозиция сигналов на основе вейвлетов Гаусса и Морле (dwsignal) Программа предназначена для декомпозиции сигналов и может применяться в научных исследованиях и при обучении студентов специализирующихся... | ||
Отчет о лаботарорной работе методы и средства анализа данных по теме:... Методы классификации, data mining, метод байеса, 8, id3, 1R, svm, ассоциативные правила, метод априори | Отчет о лаботарорной работе методы и средства анализа данных по теме:... Методы классификации, data mining, метод байеса, 8, id3, 1R, svm, ассоциативные правила, метод априори | ||
Отчет о лаботарорной работе методы и средства анализа данных по теме:... Методы классификации, data mining, метод байеса, 8, id3, 1R, svm, ассоциативные правила, метод априори | Отчет о лаботарорной работе методы и средства анализа данных по теме:... Методы классификации, Data Mining, метод байеса, 8, id3, 1R, svm, ассоциативные правила, метод априори | ||
Отчет о лаботарорной работе методы и средства анализа данных по теме:... Методы классификации, data mining, метод байеса, 8, id3, 1R, svm, ассоциативные правила, метод априори | Отчет о лаботарорной работе методы и средства анализа данных по теме:... Методы классификации, data mining, метод байеса, 8, id3, 1R, svm, ассоциативные правила, метод априори | ||
Пояснительная записка к дипломной работе на тему: «Автоматизированная... «Автоматизированная система ввода плана эвакуации для разработки паспортов безопасности учебных заведений рф» | Пояснительная записка к дипломной работе на тему : «Развитие операций... Государственный институт последипломного образования руководителей и специалистов металлургического комплекса Украины(гипомет) | ||
Рабочая программа по дисциплине Аналитическая химия и физико-химические методы анализа Цели и задачи дисциплины: Освоение теоретических основ современных химических методов анализа, аналитических методик и приемов, статистической... | Пояснительная записка к курсовой работе на тему: “Цифровой диктофон” ... | ||
Пояснительная записка к дипломной работе На тему: «Имитационные модели... Лвс филиалов предприятия в единую корпоративную сеть. Проведён анализ качества обслуживания возможных технологий удалённого подключения... | Пояснительная записка Педагогическая практика является важным звеном... Цель урока: в ходе анализа предполагаемых сюжетов (коротких рассказов, сценок) дать возможность учащимся поразмышлять над решением... | ||
Реферат Дипломный проект на тему «Автоматизированная система управления... Дипломный проект на тему «Автоматизированная система управления санаторным комплексом «Валуево». Подсистема «Диетпитание» состоит... | Реферат Тема дипломной работы «Анализ рентабельности производства... Целью дипломной работы является раскрытие сущности рентабельности как важнейшего экономического показателя деятельности предприятия,... |