Разработка фильтра входного сигнала

Автор работы: Пользователь скрыл имя, 28 Мая 2013 в 17:32, курсовая работа

Краткое описание

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

Прикрепленные файлы: 1 файл

курсач.doc

— 3.55 Мб (Скачать документ)


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

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

Был разработан интуитивно понятный и простой пользовательский интерфейс,  составлен алгоритм основной функции, который был реализован на языке программирования Delphi.

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

 

1. Общее описание реально существующих систем

 

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

Одной из них является программа «Фильтрация сигналов», которая используется для фильтрации сигналов, поступающих на входные каналы анализаторов спектра, тензометрических станций, сейсмостанций для последующей обработки программами ZETLab. Программа «Фильтрация сигналов» также может применяться для обработки виртуальных каналов, созданных такими программами, как Виброметр, Тензодатчик и др. Программа «Фильтрация сигналов» работает с сигналами как в режиме реального времени, так и при воспроизведении записанных сигналов.

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

На рисунке 1 представлено окно программы Многоканальный осциллограф, на верхней осциллограмме представлена временная реализация исходного сигнала, на нижней – результат работы функций двойного интегрирования и ФВЧ программы «Фильтрация сигналов». В рассмотренном примере обрабатывался сигнал с акселерометра, установленного на неподвижном корпусе балансируемого изделия. Двойное интегрирование применено для получения сигнала перемещения из сигнала ускорения, ФВЧ - для компенсации смещения постоянной составляющей полученного сигнала.

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1 окно программы Многоканальный осциллограф

 

Еще один пример аналогичного продукта – НейроНавигатор (рисунок 2). Фильтрация сигнала традиционно используется в Электромиографических системах и является мощным средством для борьбы с шумами, наводками, артефактами. Обычно фильтрацию используют на этапе регистрации сигнала, что исключает изменение параметров фильтров на этапе анализа. Встроенная цифровая фильтрация позволяет изменять параметры фильтров на любом этапе исследования и дает возможность пользователю в случае необходимости вернуться к исходному сигналу.

 

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

 

   Неожиданное  применение ВЦФ нашли наши  медицинские консультанты. Параметры  фильтрации, используемые в разных  ведущих лабораториях по всему миру, слегка отличаются. Это приводит к тому, что слегка отличаются и нормальные значения анализируемых параметров. Корректное сравнение результатов анализа с нормальными значениями возможно, только в случае использования одинаковых параметров фильтрации, что накладывает ограничения на использование нормальных значений, полученных в разных лабораториях. Встроенная цифровая фильтрация полностью устраняет это ограничение.

 

 

Рисунок 2 окно программы НейроНавигатор

 

2. Разработка  пользовательского интерфейса

 

При разработке пользовательского интерфейса (рисунок 3) мы выбирали наиболее интуитивную и простую раскладку кнопок, окна построения сигнала и окна усредненного сигнала.

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

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

Рисунок 3. Окно программы

 

1 – кнопка  «открыть файл»

2 – окно «диапазон усреднения

3 – кнопка  «построить график»

4 – кнопка  «фильтрация»

5 – окно построенного  неотфильтрованного графика

6 – окно отфильтрованного  графика

 

3. Алгоритм основной  функции

 

Алгоритм основной функции  представлен на рисунке 4.

Рисунок 4. Алгоритм основной функции

 

4. Листинг программы

 

procedure TForm1.BitBtn1Click(Sender: TObject);

var n,m,l,g,q,p,o,h,j:integer;

begin

  Series2.Clear;

  j:=0;

  h:=0;

  g:=4;

  if k mod g =0 then

      k:=k-1

        else

          k:=k;

 

  n:=(k div g)+1;

  SetLength(y,n);

  while k-j>g do

    begin

      p:=0;

      for o:=0 to g-1  do

        begin

          p:=p+x[j+o];

        end;

      p:=p div g;

      y[h]:=p;

      h:=h+1;

      j:=j+g;

    end; //while k-j>g do

g:=k-j;

p:=0;

 

if k-j=1 then

  begin

    y[h]:=x[j];

    for m:=0 to n-1 do

      begin

        Series2.Add (y[m],'',  clGreen);

      end;

  end

    else //if k-j=1 then

      begin

        g:=k-j;

        p:=0;

        for l:=1 to g do

          begin

            p:=p+x[j+l-1];

          end;

        p:=p div g;

        y[h]:=p;

 

        for m:=0 to n-1 do

          begin

            Series2.Add (y[m],'',  clGreen);

          end;

      end;

end.

 

 

 

5. Краткое руководство  пользователя

 

- запустите  программу tii.exe

- нажмите кнопку «открыть файл»

- в появившемся  окне откройте текстовый файл  со значениями, которые требуется  отфильтровать *файл должен быть  формата .txt*

- введите в  поле «диапазон усреднения» число,  на которое требуется усреднить  график

- нажмите кнопку  «построить график». В верхнем поле появится построенный график.

- нажмите кнопку  «фильтрация». В нижнем поле появится  отфильтрованый график.

- закройте программу.

 

Заключение 

 

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

Сведены к минимуму программные сбои и ошибки.

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




                                      РММП.240000.000.ПЗ


Информация о работе Разработка фильтра входного сигнала