Разработка библиотеки обработки сигналов

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: C#
  • 35 35 страниц
  • 0 + 0 источников
  • Добавлена 25.06.2019
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание
Содержание 4
Введение 5
Нормативные ссылки 6
Постановка задачи 7
Методики преобразования сигналов из цифрового в аналоговый и обратно 8
Анализ требований к системе 9
Проектирование библиотеки по обработки сигналов 10
Разработка библиотеки по обработке сигналов на языке С# 11
Тестирование библиотеки по обработке сигналов методами черного и белого ящика 12
Заключение 17
Список использованных источников 18
Приложения 19
Приложение А. Листинг библиотеки по обработке сигналов 19
Приложение В. Листинг тестирования 28

Фрагмент для ознакомления

time = time;this.value = value; }publicstringToString => "time: " + time + " value: " + this.value;publicstaticbooloperator ==(SimpleSignal S1, SimpleSignal S2) {return (S1.time == S2.time && S1.value == S2.value); }publicstaticbooloperator !=(SimpleSignal S1, SimpleSignal S2) {return (S1.time != S2.time && S1.value == S2.value);} }// класс, хранящий аналоговый сигналpublicclassAnalog{//cсписокединичныхсигналовprivate List Signal;//конструкторыpublicAnalog() { Signal = new List(); }public Analog(List Signals, intSampleRate) {int time = 0;this.Signal = new List();foreach (double Signal in Signals) {SimpleSignal SS = newSimpleSignal(time, Signal);this.Signal.Add(SS); time += SampleRate; } }//метод, задающийсигналpublicvoidSetSignal(List Signals) {if (this.Signal.Count == 0)foreach (SimpleSignal Signal in Signals) this.Signal.Add(Signal);elsethrownewException("Сигналужезадан");} //метод, выводящий сигнал на экранpublicvoidPrint(){foreach (SimpleSignal SS in Signal) Console.WriteLine(SS.ToString);}//метод, возвращающий список значений сигнала в виде спискаpublic List ToList() {return Signal; } }//класс, хранящийдискретныйсигналpublicclassDiscrete {//частотадискретизацииprivateintSampleRate;//значениясигналаprivate List Signal;//конструкторыpublicDiscrete() {SampleRate = 1; Signal = new List(); }public Discrete(List Signals, intSampleRate) {this.SampleRate = SampleRate;this.Signal = new List();foreach (double Signal in Signals) this.Signal.Add(Signal); }//метод, задающийсигналpublicvoidSetSignal(List Signals) {if (this.Signal.Count == 0)foreach (double Signal in Signals) this.Signal.Add(Signal);elsethrownewException("Сигналужезадан"); }//метод, задающийчастотудискретизацииpublicvoidSetSampleRate(int Rate){this.SampleRate = Rate; }//метод, получающий аналоговый сигнал на основе дискретногоpublic Analog ToAnalog() {if (this.Signal.Count == 0) thrownew Exception("Сигналнезадан");else { Analog AnalogSignal = newAnalog(this.Signal, SampleRate);returnAnalogSignal; } }//метод, получающий цифровой сигнал на основе дискретногоpublic Digital ToDigital(intQuantizationRate) {if (this.Signal.Count == 0) thrownew Exception("Сигналнезадан");else { Digital DigitalSignal = newDigital(this.Signal, SampleRate, QuantizationRate);returnDigitalSignal; } }//метод, выводящий сигнал на экранpublicvoidPrint() {Console.WriteLine("Sample Rate:" + SampleRate + "\n Signals:");foreach (double SS in Signal) Console.WriteLine(SS);}//метод, возвращающий список значений сигнала в виде спискаpublic List ToList() {return Signal; } }//класс, хранящийдискретныйсигналpublicclassDigital {//разрядностьквантованияprivateintQuantizationRate;//частотадискретизацииprivateintSampleRate;//значениясигналаprivate List Signal;//конструкторыDigital() {this.SampleRate = 1;this.QuantizationRate = 0;this.Signal = new List(); }public Digital(List Signals, intSampleRate, intQuantizationRate) {this.SampleRate = SampleRate;this.QuantizationRate = QuantizationRate;this.Signal = new List();double h = (Signals.Max() - Signals.Min()) / Math.Pow(2, QuantizationRate);foreach (double Signal in Signals) {this.Signal.Add(((int)(Signal / h) + 0.5) * h); } }//метод, задающийчастотудискретизацииpublicvoidSetSampleRate(int Rate){this.SampleRate = Rate; }//метод, задающий разрядность квантования publicvoidSetQuantizationRate(int Rate){this.QuantizationRate = Rate; }//метод, получающий аналоговый сигнал на основе цифровогоpublic Analog ToAnalog() {if (this.Signal.Count == 0) thrownew Exception("Сигналнезадан");else { Analog AnalogSignal = newAnalog(this.Signal, SampleRate);returnAnalogSignal; } }//метод, получающий дискретный сигнал на основе цифровогоpublicDiscreteToDiscrete() {if (this.Signal.Count == 0) thrownew Exception("Сигналнезадан");else { Discrete DiscreteSignal = newDiscrete(this.Signal, SampleRate);returnDiscreteSignal; } }//метод, выводящий сигнал на экранpublicvoidPrint() {Console.WriteLine("Sample Rate:" + SampleRate + "Quantization Rate:" + QuantizationRate + "\n Signals:");foreach (double SS in Signal) Console.WriteLine(SS);}//метод, возвращающий список значений сигнала в виде спискаpublic List ToList() {return Signal;} } }}ПриложениеВ. ЛистингтестированияusingNUnit.Framework;usingSystem.Collections.Generic;usingSignalConverter;usingSignalConverter.Converter;namespace Tests{publicclassTests {[SetUp]publicvoidSetup() { }//первый тест, описанный в тексте работы[Test]publicvoid Test1() { List Signals = new List();Signals.Add(0.5);Signals.Add(2.2);Signals.Add(1.5);Signals.Add(3.4);Signals.Add(1.7);SimpleSignal[] expected = new Analog(Signals, 10).ToList().ToArray();SimpleSignal[] actual = new Discrete(Signals, 10).ToAnalog().ToList().ToArray();int count = 0;for (inti = 0; i < expected.Length; i++) {if (expected[i] == actual[i]) count++; }Assert.AreEqual(expected.Length, count);}//второй тест, описанный в тексте работы[Test]publicvoid Test2() { List Signals = new List();Signals.Add(0.5);Signals.Add(2.2);Signals.Add(1.5);Signals.Add(3.4);Signals.Add(1.7);double[] expected = new Digital(Signals, 10, 16).ToList().ToArray();double[] actual = new Discrete(Signals, 10).ToDigital(16).ToList().ToArray();int count = 0;for (inti = 0; i < expected.Length; i++) {if (expected[i] == actual[i]) count++; }Assert.AreEqual(expected.Length, count);}//третий тест, описанный в тексте работы[Test]publicvoid Test3() { List Signals = new List();Signals.Add(-1);Signals.Add(4);Signals.Add(4);Signals.Add(3);Signals.Add(-2);Signals.Add(4);SimpleSignal[] expected = new Analog(new Digital(Signals, 10, 16).ToList(), 10).ToList().ToArray();SimpleSignal[] actual = new Digital(Signals, 10, 16).ToAnalog().ToList().ToArray();int count = 0;for (inti = 0; i < expected.Length; i++) {if (expected[i] == actual[i]) count++; }Assert.AreEqual(expected.Length, count);} }}

Список использованных источников
1. Зиатдинов С. И. / Восстановление сигналов по его выборкам на основе теоремы отсчетов Котельникова. — Приборостроение (№ 5, 2010). — УДК 621.396:681.323.
2. Самофалов К. Г., Романкевич А. М., Валуйский В. Н., Каневский Ю. С., Пиневич М. М. Прикладная теория цифровых автоматов. — К.: Вища школа, 1987. — 375 с.
3. Хоровиц П., Хилл У. Искусство схемотехники. В 3 т: Т. 2. Пер. с англ. — 4-е изд., перераб. и доп.— М.: Мир, 1993. — 371 с. ISBN 5-03-002338-0.
4. S. Norsworthy, R. Schreier, G. Temes. Delta-Sigma Data Converters. ISBN 0-7803-1045-4.
5. Behzad Razavi. Principles of Data Conversion System Design. ISBN 0-7803-1093-4.
6. David Johns, Ken Martin. Analog Integrated Circuit Design. ISBN 0-471-14448-7.
7. Бейзер Б. Тестирование чёрного ящика. Технологии функционального тестирования программного обеспечения и систем. — Питер, 2004. — 320 с. — ISBN 5-94723-698-2.
8. Гленфорд Майерс, Том Баджетт, Кори Сандлер. Искусство тестирования программ, 3-е издание = The Art of Software Testing, 3rd Edition. — М.: «Диалектика», 2012. — 272 с. — ISBN 978-5-8459-1796-6.
9. Джон Скит. C# для профессионалов: тонкости программирования, 3-е издание, новый перевод = C# in Depth, 3rd ed.. — М.: «Вильямс», 2014. — 608 с. — ISBN 978-5-8459-1909-0.

Вопрос-ответ:

Что такое библиотека обработки сигналов?

Библиотека обработки сигналов - это набор функций и алгоритмов, предназначенных для обработки и анализа сигналов, как цифровых, так и аналоговых.

Какие методики используются для преобразования сигналов из цифрового в аналоговый?

Для преобразования сигналов из цифрового в аналоговый используются различные методики, такие как импульсно-кодовая модуляция (ШИМ), сигма-дельта модуляция, а также использование цифро-аналоговых преобразователей (ЦАП).

Какие требования могут быть предъявлены к системе обработки сигналов?

Требования к системе обработки сигналов могут включать в себя такие параметры, как точность обработки, скорость работы, потребляемая мощность, использование памяти, устойчивость к помехам, возможность многопоточной обработки и другие.

Какие методы тестирования можно применить для библиотеки обработки сигналов?

Для тестирования библиотеки обработки сигналов можно применить методы черного и белого ящика. В методе черного ящика тестируется внешний интерфейс и функциональность библиотеки без знания ее внутренней структуры. В методе белого ящика тестируются отдельные компоненты и алгоритмы библиотеки с использованием знания о ее внутренней структуре.

Где можно найти библиотеку по обработке сигналов на языке С?

Библиотека по обработке сигналов на языке С может быть найдена в различных источниках, таких как специализированные сайты и форумы, репозитории с открытым исходным кодом, а также в книгах и учебных материалах, посвященных данной тематике.

Что такое библиотека обработки сигналов?

Библиотека обработки сигналов - это набор программных компонентов, разработанных для обработки и манипулирования аналоговыми и цифровыми сигналами в компьютерных системах.

Какие задачи решает библиотека обработки сигналов?

Библиотека обработки сигналов решает такие задачи, как фильтрация, сглаживание, усиление и преобразование аналоговых и цифровых сигналов. Она также может выполнять операции сжатия, декодирования и кодирования сигналов.

Какие методики используются для преобразования сигналов из цифрового в аналоговый и обратно?

Для преобразования сигналов из цифрового в аналоговый и обратно используются различные методики, такие как импульсно-кодовая модуляция (ИКМ), цифро-аналоговое преобразование (ЦАП), аналого-цифровое преобразование (АЦП) и др. Все эти методики позволяют передавать и обрабатывать аналоговые сигналы в цифровой форме, и наоборот.

Какие требования обычно предъявляются к системе обработки сигналов?

К требованиям, обычно предъявляемым к системе обработки сигналов, относятся: высокая точность обработки и передачи сигналов, низкие задержки, широкий динамический диапазон, низкий уровень шумов и искажений, возможность работать с различными типами сигналов, масштабируемость и гибкость, а также простота использования и удобство внедрения.

Что включает в себя процесс разработки библиотеки обработки сигналов на языке С?

Процесс разработки библиотеки обработки сигналов на языке С включает в себя такие этапы, как анализ требований к системе, проектирование библиотеки, разработка её компонентов и тестирование методами черного и белого ящика. Для разработки такой библиотеки может быть использован стандартный набор инструментов и библиотек для работы с сигналами на языке С, такой как FFTW, GSL и др.

Какие задачи решает разработка библиотеки обработки сигналов?

Разработка библиотеки обработки сигналов помогает решать задачи по преобразованию сигналов из цифрового в аналоговый формат и обратно, а также по анализу и обработке сигналов различных типов.

Какие методики преобразования сигналов используются в разработке библиотеки?

В разработке библиотеки применяются различные методики преобразования сигналов, включая методы дискретного косинусного преобразования (DCT), дискретного преобразования Фурье (DFT), фильтрации и интерполяции сигналов.