72370

Цифровая обработка сигналов: Лабораторный практикум

Книга

Коммуникация, связь, радиоэлектроника и цифровые приборы

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

Русский

2014-11-21

3.88 MB

190 чел.

Федеральное агентство по образованию

                               -------------------------------------------

САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

В.С.Тутыгин

ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ

Лабораторный практикум

Санкт-Петербург

Издательство Политехнического университета

2012

           

УДК 001.891:681.3 (075.8)

Тутыгин В.С.Цифровая обработка сигналов: Лаборат. практикум. СПб.: СПбГПУ, 2012. 58с.

Лабораторный практикум соответствует основным разделам курса дисциплины "Цифровая обработка сигналов" направления бакалаврской подготовки 230100 и 231000.

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

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

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

              Табл. 1.    Ил. 16.

                                                          ©  Тутыгин В.С., 2012 

                                                          ©   Санкт – Петербургский государственный

                                                                   политехнический университет, 2012

     

Содержание

[0.1]
Введение

[0.2] Работа 1. Основы программирования в MATLAB.

[0.3] Работа 2. Обработка результатов однофакторного эксперимента в среде MATLAB. Подгонка кривых.

[0.4]
Работа 3. Цифровая фильтрация шумов в среде MATLAB

[0.5]
Работа 4. Цифровая обработка сигналов в среде MATLAB. Комбинированное использование ключевых операций ЦОС.

[0.6]
Работа 5. Базовые средства фильтрации шумов на изображениях.

[0.7]
Работа 6. Средства идентификации объектов на изображениях

                             


Введение

Сигнал – это физическая величина, которая несет определенную информацию. Примером может быть сигнал датчика, несущего информацию о температуре, давлении или других параметрах объекта. Обычно сигналы являются аналоговыми, т.е. непрерывными во времени и принимающими в каждый момент времени одно из бесконечного множества значений. Информативным параметром сигнала может быть частота сигнала, центральная частота и ширина полосы сигнала (если сигнал широкополосный), период повторения сигналов и т.д. Целью обработки при проведении физического эксперимента может быть получение аналитического описания физического процесса, т.е. получение математической модели.

Сигналы могут быть детерминированными или случайными. Часто сигналы могут быть искажены шумами и помехами.

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

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

Методами ЦОС являются математические соотношения или алгоритмы, в соответствии с которыми выполняются вычислительные операции над цифровыми сигналами. К ним относятся алгоритмы цифровой фильтрации, спектрально-корреляционного анализа, модуляции и демодуляции сигналов, адаптивной обработки и др. Алгоритмы ЦОС, в отличие от других вычислений на ЭВМ, предусмативают, как правило, их выполнение в реальном масштабе времени.

Средствами реализации ЦОС являются жесткая логика, программируемые логические интегральные схемы (ПЛИС), микропроцессоры общего назначения, микроконтроллеры, персональные компьютеры, одноплатные компьютеры, цифровые сигнальные процессоры (ЦСП). Последние аппаратно и программно оптимизированы на задачи ЦОС и образуют ее специализированную элементную базу. Совокупность аппаратных средств, осуществляющих цифровую обработку сигналов, называют процессором ЦОС. В режиме off line ЦОС может выполняться с помощью готовых компьютерных программ, представленных наиболее полно в MATLAB.

Реализация алгоритмов ЦОС включает:

  1.  Высокоуровневую программную (MATLAB, LabView, LabWindows/CVI).
  2.  Низкоуровневую программную (LabWindows/CVI, С/С++).
  3.  Аппаратно-программную (LabWindows/CVI, С/С++).
  4.  Аппаратную (VHDL, С/С++).

 

Примером задачи ЦОС и средств ее решения может быть задача обнаружения и определения параметров радиолокационного линейно-частотно модулированного (ЛЧМ) спутникового сигнала в реальном времени

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


Работа 1. Основы программирования в MATLAB. 

Целью лабораторной работы является изучение методики проектирования программ цифровой обработки сигналов (ЦОС): моделирования сигналов, нормально распределенного и белого шума, программирования  операций математической обработки, операций графического вывода данных, проектирования средств графического пользовательского интеpфейса.

Теоретические основы

Программные средства систем ЦОС обычно создаются на языке С/C++, так как в этом языке предусмотрены средства, обычно необходимые при аппаратной реализации на базе программируемых логических интегральных схем (ПЛИС) и сигнальных процессоров: удобные средства работы с битами, логические операции, средства работы с аппаратными прерываниями и др. Кроме того, компилятор С обеспечивает формирование исполняемой программы, близкой по скорости исполнения к программе на ассемблере.

При разработке систем жесткого реального времени на базе ПЛИС и быстродействующих сигнальных процессоров необходимо производить отработку алгоритмов ЦОС на универсальных средствах (с помощью компьютерных программ) используя низкоуровневое программирование без библиотечных функций (на С/С++) с тем, чтобы на следующем этапе можно было реализовать разработанные алгоритмы ЦОС на ПЛИС и сигнальных процессорах. Кроме того,  как известно,  ЦОС должна быть выполнена в течение критического срока обслуживания  и это так же важно, как и корректность алгоритма ЦОС. Невыполнение задачи реального времени в течение критического срока обслуживания равносильно невыполнию задачи в целом. Поэтому очень важно, чтобы на втором этапе разработки отработка алгоритмов ЦОС производилась с использованием соответствующей аппаратуры и скорость выполнения операций ЦОС контролировалась, например, с ипользованием системного таймера компьютера.

Конечной целью разработки и исследования различных алгоритмов ЦОС является их практическая реализация в устройствах на базе ПЛИС и сигнальных процессоров, таких, например, как модуль ЦОС SAMC-401, содержащий ПЛИС серии Virtex-4, в которой интегрированы два процессора Power PC с тактовой частотой до 450 МГц, и сигнальный процессор Texas Instruments TMS320C6455, работающий на частоте 1.2ГГц c субмодулем  АЦП SAMC-ADC, реализующий аналого-цифровое преобразование 12/14 бит с предельной частотой тактирования до 210 МГц.

Основные стадии разработки алгоритмов ЦОС:

  1.  Высокоуровневая программная (MATLAB).
  2.  Низкоуровневая программная (LabWindows/CVI, С/С++).
  3.  Аппаратно-программная (LabWindows/CVI, С/С++).
  4.  Аппаратная (VHDL, С/С++).

На первом этапе разработки наиболее совершенным средством является MATLAB, т.к. он  содержит библиотеки функций для сложных видов математической обработки, таких как быстрое преобразование Фурье, цифровой фильтрации, корреляционной обработки и др., библиотеки программ для создания объектов графического пользовательского интерфейса (панелей, кнопок управления, окон цифрового ввода/вывода, окон графического вывода и др.).

Программные средства, создаваемые для работы в среде MATLAB, содержат две составляющие:

  1.  Собственно программу (mat-файл) на языке С1, в которой содержатся необходимые функции математической обработки,  отображения таблиц и графиков. При ее создании следует пользоваться описаниями функций библиотек математической обработки и графического пользовательского интерфейса.
  2.  Файлы ресурсов графического пользовательского интерфейса <имя программы>.fig.

Создаваемая пользователем прикладная программа представляет проект, содержащий два файла:

  •  файл основной программы <имя>.mat;
  •  файл макета <имя>.fig;

Программа на языке С может быть написана и редактироваться пользователем. Файлы макета <имя>.fig создаются автоматически при создании и редактировании пользователем графических панелей. Эти файлы нельзя редактировать!

Создание средств графического пользовательского интерфейса в традиционных системах программирования, таких как Visual С++ возможно, но достаточно сложно, так как для этого необходимо создание большого количества нестандартных графических объектов.

Создание прикладной программы ЦОС в среде MATLAB.  

  1.  Создать панель интерфейса пользователя: File/New/GUI/Blank GUI. В результате появится всплывающее диалоговое окно untitled.fig 
  2.  Разместить элементы управления (кнопки управления PushButton, окна ввода/вывода текста EditText, окна графического вывода Axes и др.), например, так, как показано на рис. 1.

Рис. 1

и задать их атрибуты. Панель атрибутов элемента управления вызывается двойным щелчком левой кнопки мыши на изображении элемента. Основные атрибуты кнопки управления и окна ввода/вывода текста – Callback, CreateFcn и tag. Например, при задании атрибуту tag окна ввода/вывода текста значения freq имя окна будет freq. Такое же имя может быть дано и переменной, значение которой читается из этого окна.

Атрибуты Callback, CreateFcn создаются автоматически после задания tag.

3. Сохранить untitled.fig в файле с именем <имя>.fig.  В результате будет не только сохранен файл интерфейса пользователя, но и создан и сохранен в файле <имя>.m «скелет» программы.     

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

В итоге будут созданы два файла: файл программы с расширением .m и файл GUI с расширением .fig. Для внесения изменений в интерфейс пользователя нужно вызвать файл командой >>guide (‘<полное имя файла, включая путь>.fig’).

Загрузка и запуск MATLAB

Для загрузки и запуска LabWindows CVI 8.0 в среде ОС Windows XP/7 нужно  вызвать из меню «Пуск»:

Programs/MATLAB

Создание программы

    

     Создать файл  макета.

а) File/New/GUI/Blank GUI

б) сохранить созданный  файл макета

   File/Save Untitled.fig As.../{имя файла}

     

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

  •  Name -  идентификатор панели, который определяет имя m-файла и fig-файла.  
  •  и другие.

            4. Создать элементы GUI (графические окна вывода, текстовые окна ввода/вывода, командные кнопки и т.д.) из библиотеки элементов и разместить их на созданной панели.

Объекты GUI выбираются из меню и размещаются на экране методом "drag and drop" с помощью "мыши".

MATLAB предоставляет широкий выбор выбор объектов:

Edit text - окно  ввода/вывода текста;

Static Text – окно вывода текстового сообщения;

Push Button – кнопка с двумя состояниями;

Toggle Button – кнопка с двумя состояниями (включено/выключено);

Check Box – флажок;

Radio Button – аналог Option Button;

Pop-up-menu – меню;

Slider – линейка прокрутки;

List box – поле со списком

Axis1 - окно вывода массивов данных в графической форме;

При выполнении лабораторной работы рекомендуется использовать следующие элементы управления и ввода/вывода: Edit text, Axis1, Pushbutton.

4.1 Задание атрибутов элементов GUI.

Сделать двойной щелчок левой клавишей мыши на объекте GUI, далее во всплывающей панели задать его атрибуты, в первую очередь tag.

Далее нужно сохранить сделанные установки.

 File/Save

             /Save As.../{имя файла}

5. Создать программный код. Создание fig-файла производится автоматически при сохранении GUI-образа. Одновременно создается m-файл.

В созданном программном коде m-файла объектам GUI будет соответствовать " программная оболочка" функций на языки. С++. Эти функции (за исключением функции работы таймера) будут запускаться на исполнение пользователем с панели GUI. В приложении 1 приведен пример созданной таким путем «программной оболочки».

Далее в эту  оболочку вносится программный код прикладной программы на языке С++.

Если производится редактирование ранее уже созданного программного кода, например, при добавлении какого-либо объекта GUI, то для добавления в ранее созданный программный код изменений, связанных с добавленными элементами GUI нужно открыть файл <>.fig для редактирования командой:

>>guide (‘<полное имя файла, включая путь>.fig’)

в окне Command Window. Путь к файлу можно не указывать, если поместить его в папку MATLAB.

6. Добавить в программу функцию выхода.

Для этого в уже сгенерированную по п.5 функцию выхода программы необходимо внести программный код:

fclose('all');

close ('all');

7. Добавить в функцию, вызываемую кнопкой на панели GUI (в приведенном примере - Start), строки обращения к элементам ввода/вывода GUI, текст программы. Ниже приведен пример программирования ввода текста из окна ввода/вывода (TextBox) с преобразованием в число типа double, вывода значения с преобразованием в текст, чтения номера элемента из поля со списком (ComboBox), вывода числового значения в TextBox:

periods_number=str2double(get(handles. periods_number,'string'));

         set(handles.chastotan,'String',fr_int);

         regim=get(handles.regim,'Value');

         set(handles.lampa,'Value',1);

Примечания:

  1.  Элементы поля со списком нумеруются, начиная с 1. Так же в MATLAB нумеруются и элементы массивов.
  2.  В атрибутах окна, предназначенного для вывода текстовых сообщений задать атрибут StyleEdit.
  3.  Для имитации сигнального индикатора можно использовать элемент radiobutton.

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

   global N

В результате будет получен полный программный код прикладной программы. Простой пример такой программы генерации и графического отображения массива случайных чисел приведен ниже. Количество периодов сигнала задается переменной freq, получаемой с элемента GUI:

freq=str2double(get(handles.freq,'string'));

for i=1:1000

   y(i)=sin((2*pi*i*freq)/1000.0);

end

i=1:1000;

plot(i,y);

Редактирование программного кода, в том числе строк обращения к объектам GUI производится точно так же, как в любом С/C++.

10. Запустить программу.

Debug/Run

Если компилятор найдет ошибки, то устранить ошибки и повторить предыдущее действие.

Программа работы

  1.  Изучить  состав и функции библиотек программ MATLAB для работы с аппаратурой, математической обработки, создания средств графического пользовательского интерфейса.
  2.  Разработать программу генерации синусоидального сигнала.
  3.  Разработать программу генерации стандартных сигналов: гармонического, пилообразного, треугольного, прямоугольного с нормально распределенным и белым шумом. Выбор вида сигнала, амплитуду сигнала и уровень шума сделать регулируемыми.

Указания к выполнению лабораторной работы

  1.  При выполнении п. 1 Программы изучить основы программирования в MATLAB по описанию к лабораторной работе и пользуясь справочной системой.
  2.  При выполнении п.2 Программы создать графический пользовательский интерфейс и программу генерации синусоидального сигнала. Количество периодов сигнала сделать регулируемым.
  3.  При выполнении п.3 Программы разработать прикладную программу генерации различных стандартных сигналов:
  •  гармонического (синусоидального);
  •  пилообразного;
  •  треугольного;
  •  прямоугольных импульсов.

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

  1.  Для генерации нормально распределенного и белого шума использовать функции randn и wgn. Пример фрагмента программы генерации модельного сигнала с шумом приведен ниже.

%Генерация нормального и белого шума

 %noise=randn(points_number);%нормально распределенный

  noise=wgn(points_number,1,0);%белый

for i=1:points_number %генерация модельного сигнала с шумом

    x(i)=sin(2*3.14*kp*i/kt)+noise_sko*noise(i);

end

Здесь points_number – количество элементов массива (количество значений сигнала), noise_sko – среднеквадратическое значение шума.

     3.2. На панели графического пользовательского интерфейса предусмотреть (см. рис. 2):

  •  переключатель выбора вида сигнала;
  •  элемент ввода уровня шума;
  •  элемент ввода  количества точек за период генерируемого сигнала;
  •  окно графического вывода генерируемого сигнала.

Рис. 2

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

На панели графического пользовательского интерфейса дополнительно предусмотреть переключатель задания количества накоплений.

Содержание отчета

  1.  Задание к работе.
  2.  Текст программы с комментариями.
  3.  Вид панели интерфейса пользователя при генерации различных  сигналов с различным шумом.


Приложение 1.

Пример программного кода, генерируемого автоматически  после  создания панели и объектов GUI в среде MATLAB

%Служебная часть М-файла, создаваемая автоматически после сохранения в файле

%панели интерфейса пользователя <имя>.fig

%В данном примере панель интерфейса пользователя содержит кнопку управления

%PushButton, окно ввода/вывода текста EditText (tagKP), окно графического

%вывода Axes (tag – axis1)

function varargout = testlab2(varargin)

% TESTLAB2 M-file for testlab2.fig

%      TESTLAB2, by itself, creates a new TESTLAB2 or raises the existing

%      singleton*.

%

%      H = TESTLAB2 returns the handle to a new TESTLAB2 or the handle to

%      the existing singleton*.

%

%      TESTLAB2('CALLBACK',hObject,eventData,handles,...) calls the local

%      function named CALLBACK in TESTLAB2.M with the given input arguments.

%

%      TESTLAB2('Property','Value',...) creates a new TESTLAB2 or raises the

%      existing singleton*.  Starting from the left, property value pairs are

%      applied to the GUI before testlab2_OpeningFcn gets called.  An

%      unrecognized property name or invalid value makes property application

%      stop.  All inputs are passed to testlab2_OpeningFcn via varargin.

%

%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one

%      instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

 

% Edit the above text to modify the response to help testlab2

 

% Last Modified by GUIDE v2.5 03-Feb-2012 21:54:41

 

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name',       mfilename, ...

                  'gui_Singleton',  gui_Singleton, ...

                  'gui_OpeningFcn', @testlab2_OpeningFcn, ...

                  'gui_OutputFcn',  @testlab2_OutputFcn, ...

                  'gui_LayoutFcn',  [] , ...

                  'gui_Callback',   []);

if nargin && ischar(varargin{1})

   gui_State.gui_Callback = str2func(varargin{1});

end

 

if nargout

   [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

   gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

 

 

% --- Executes just before testlab2 is made visible.

function testlab2_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject    handle to figure

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

% varargin   command line arguments to testlab2 (see VARARGIN)

 

% Choose default command line output for testlab2

handles.output = hObject;

 

% Update handles structure

guidata(hObject, handles);

 

% UIWAIT makes testlab2 wait for user response (see UIRESUME)

% uiwait(handles.figure1);

 

 

% --- Outputs from this function are returned to the command line.

function varargout = testlab2_OutputFcn(hObject, eventdata, handles)

% varargout  cell array for returning output args (see VARARGOUT);

% hObject    handle to figure

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

 

% Get default command line output from handles structure

varargout{1} = handles.output;

 

 

 

function KP_Callback(hObject, eventdata, handles)

% hObject    handle to KP (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

 

% Hints: get(hObject,'String') returns contents of KP as text

%        str2double(get(hObject,'String')) returns contents of KP as a double

 

 

% --- Executes during object creation, after setting all properties.

function KP_CreateFcn(hObject, eventdata, handles)

% hObject    handle to KP (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    empty - handles not created until after all CreateFcns called

 

% Hint: edit controls usually have a white background on Windows.

%       See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

   set(hObject,'BackgroundColor','white');

end

 

 

% --- Executes on button press in Start.

function Start_Callback(hObject, eventdata, handles)

% hObject    handle to Start (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

KP=str2double(get(handles.KP,'string'));

for i=1:1000

   y(i)=sin((2*pi*i*KP)/1000.0);

end

i=1:1000;

plot(i,y);

 

 

% --- Executes on button press in Quit.

function Quit_Callback(hObject, eventdata, handles)

% hObject    handle to Quit (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

fclose('all');

close ('all');

Приложение 2

 Пример программного кода в функции Start.

% --- Executes on button press in Start.

function Start_Callback(hObject, eventdata, handles)

% hObject    handle to Start (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

KP=str2double(get(handles.KP,'string'));

for i=1:1000

   y(i)=sin(2*pi*i*KP./1000.0);%KP – кол-во периодов

end

i=1:1000

plot(i,y);

После запуска программы Debug/Run диалоговое окно программы с результатами выполнения будет выглядеть, как показано на рис.3.

                                                             Рис. 3

Приложение 3. Построение и оформление графиков в MATLAB

i=1:N;

y=A*sin(6.28*KP*i/N); %создание N значений KP периодов модельного sin %сигнала,

figure %создание окна графического вывода

%plot(i,y(1:50));%вывод графика y, кол-во точек – 50.

%plot(i,y) ;% вывод графика y (все N точек)

%plot (i,2*y(1:N),’r-’);%отображение графика y линией красного цвета

%semilogx(i,abs(y(1:200))),grid; %то же, что и plot, но в логарифмическом

%  масштабе по Х

%loglog(i,abs(y(1:200))); %  в логарифмическом масштабе по Х и Y

grid on; %отображение линий координатной сетки

%title(‘сигнал до фильтра’);%заголовок графика

xlabel(‘номер отсчета’); % подпись по оси Х

ylabel(‘амплитуда’); % подпись по оси Y

legend(‘до фильтра’);%подпись легенды

axis tight; %диапазон Х и Y по осям точно соответствует Xmax и Ymax %(автомасштабирование)

hold on; % «удержание» окна вывода для следующего графика

hold off; %отмена «удержания»

close all; %закрытие всех открытых окон графического вывода


Работа 2. Обработка результатов однофакторного эксперимента в среде MATLAB. Подгонка кривых.

Теоретические основы.

Обработка результатов однофакторного эксперимента включает 3 этапа:

  1.  Выбор вида аппроксимирующей зависимости.
  2.  Расчет коэффициентов аппроксимирующей зависимости.
  3.  Проверку адекватности полученной зависимости экспериментальным данным.

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

Программа подгонки кривых CurveFitting предоставляет следующие виды функций для аппроксимации и интерполяции одномерных массивов данных:

а) экспоненциальную;

б)гауссиан

в)Фурье

г)полиномиальную;

д)показательную;

е)рациональную.

Критерием качества подгонки являются вычисляемые программой коэффициенты множественной детерминации (R-square и  Adjusted  R-square). Коэффициент R-square показывает насколько успешно разброс данных относительно аппроксимирующей кривой может быть объяснен наличием случайных погрешностей в данных. Максимально возможное значение R-square равно 1.

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

  SSEsum square error

    SSTsum square total,

     - коэффициент, выравнивающий степень разброса   данных в

опытах

 

n- количество результатов измерений;

m – количество членов в уравнении регрессии;

n-1 – количество степеней свободы дисперсии SSE;

n-m - количество степеней свободы дисперсии SST.

Программа работы.

  1.  Освоить технологию работы с программой CurveFitting пакета . MATLAB.
  2.  Научиться производить обоснованный выбор наилучшей аппроксимирующей зависимости из возможных.

Указания к выполнению.

  1.  При выполнении п.1. Программы изучить теоретические основы подгонки кривых, положенные в основу программы Curve Fitting  и описание  библиотеки аппроксимирующих функций Fitting Library в MATLAB Help: CurveFittingToolbox/FittingData/ParametricFitting (Library Models, Custom Equations, Evaluation of goodness of Fitting и др.).
  2.  При выполнении п.2 выполнить подгонку кривых, выбрать наилучшую функциональную зависимость и обосновать сделанный выбор для зашумленного массива данных:  файл censuN.mat)  в папке Е:\DSP_LAB_2012\Lab_4_MATLAB.
  3.  При работе с программой CurveFitting подгонку кривых производить в следующей последовательности:

а) Запустить MATLAB.

б) открыть окно Workspace (View/Workspace) и загрузить в это окно mat-файл данных по заданию преподавателя (census.mat, censu1.mat, censu2.mat и т.д.)

в)открыть панель  CurveFitting для чего выбрать Start/ Toolboxes/ CurveFitting в окне MATLAB;

г) на панели CurveFittingTool активизировать кнопку Data. В окнах Xdata, Ydata станут доступными составляющие cdate (X) и pop (Y) из файла census.mat;

д) произвести выбор cdate и pop, затем активизировать кнопку CreateDataSet;

е) активизировать кнопку Fitting;

ж) выбрать вид аппроксимирующей функции и активизировать кнопку Apply;

Результаты аппроксимации будут представлены в графической форме в окне графического вывода на панели CurveFittingTool (рис.1) и в численной форме в  окне Results на панели Tables of Fits (рис. 2).

Рис. 1

Рис. 2

з)выбрать пункт меню View/Residuals/Line или View/Residuals/Scatter. В результате в окне графического вывода на панели CurveFittingTool будут одновременно выведен график ошибки интерполяции (см. пример на рис. 3).

Окно графического вывода можно вывести на печать или выполнить в виде рисунка: File/Print to Figure.

Полученные в процессе аппроксимации результаты занести в таблицу:

Вид модели

Порядок модели

Качество подгонки (+ / -)

Диапазон погрешностей

R-square

Adjusted

R-square

RMSE

Исследовать  таким образом все возможные виды моделей, порядок  модели  - до 5.

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

4. Оценку качества подгонки кривых и окончательный выбор аппроксимирующей  зависимости производить последовательно:

  1.  Выбор «хороших» моделей.

1.1.Визуально, по степени согласованности  графика полученной в результате подгонки аппроксимирующей кривой с отображенными в этом же окне графического вывода значениями yi . Качество подгонки считается удовлетворительным, если значения yi  «вытянуты» вдоль аппроксимирующей кривой. На рис.3 приведены результаты подгонки, которые можно считать неудовлетворительными (А) и удовлетворительными (Б).                                                                                    

А

Б

Рис. 3.

1.2. Визуально, по графику разности между значениями yi   и вычисленными по аппроксимирующей функции значениями f(xi). Качество подгонки считается удовлетворительным, если график разности хорошо аппроксимируется «на глаз» функцией у=0. На рис.4 приведены результаты подгонки, которые можно считать неудовлетворительными (А) и удовлетворительными (Б).

А

Б

Рис. 4.

2. Выбор лучшей кривой в каждом классе аппроксимирующих зависимостей –  по Adjusted  R-square. Лучшей кривой в классе является та, которой соответствует максимальное значение Adjusted  R-square. Если максимальное значение соответствует двум или более кривым – выбирается кривая с наиболее простым аналитическим описанием.

3. Окончательный выбор самой лучшей аппроксимирующей зависимости – выбрать самую простую модель из лучших с условием примерно тех же значений диапазона погрешностей экспериментальных данных от аппроксимирующей кривой и RMSE (Root Mean Squared Error).

Содержание отчета.

  1.  Постановка задачи.
  2.  Результаты аппроксимации экспериментальных данных из файла census.mat и censusN.mat  и показатели качества подгонки R-square и Ajusted R-square для всех основных классов аппроксимирующих функций (экспоненциальной, гауссиана, показательной, Фурье, полиномиальной, показательной, рациональной) в форме таблицы результатов.
  3.  Для трех наиболее подходящих аппроксимирующих зависимостей - график аппроксимирующей функции и график погрешности аппроксимации, аналитические выражения  для аппроксимирующей зависимости.
  4.  Обоснование выбора наилучшей аппроксимирующей зависимости.
  5.  Выводы.


Работа 3. Цифровая фильтрация шумов в среде MATLAB

Целью лабораторной работы является изучение методики разработки программ цифровой обработки сигналов, включающей различные способы улучшения отношения сигнал/шум (накопление, использование НЧ и ВЧ-фильтров, оптимального фильтра Колмогорова-Винера, прямого и обратного БПФ).

Задание к работе

Имеется набор экспериментальных данных в виде числового массива. Требуется спроектировать на внутреннем языке MATLAB программу цифровой обработки данных, реализующую различные способы улучшения отношения сигнал/шум:

  1.  Накопление.
  2.  НЧ-фильтр.
  3.  Фильтр скользящего среднего.
  4.  Фильтр Баттерворта.
  5.  Прямое и обратное БПФ.
  6.  Оптимальный фильтр Колмогорова-Винера.

и оценить сравнительный эффект улучшения отношения сигнал/шум и степень искажения сигнала в результате обработки.

Теоретические основы

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

  •  цифровые частотные фильтры (высокой частоты, низкой частоты, полосовые фильтры);
  •  накопление (временная фильтрация);
  •  сглаживание (медианные фильтры);
  •  оптимальные фильтры (фильтр Колмогорова-Винера, LMS и RLS-фильтры);
  •  адаптивные фильтры (функцию адаптивных фильтров могут выполнять фильтр Колмогорова-Винера, LMS и RLS-фильтры).
  •  фильтры для борьбы с шумами при нелинейных и нестационарных процессах (фильтр Гильберта-Хуанга)

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

ЦИФРОВОЙ НИЗКОЧАСТОТНЫЙ ФИЛЬТР

Для фильтрации высокочастотного шума может быть применен фильтр низких частот (ФНЧ). Частотная характеристика  ФНЧ выражается как

          

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

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

for k=1:NFFT

x(k) = A*sin(2*pi*KP1*k/NFFT);

end

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

I=1:NFFT;

XX1=fft(x,NFFT);

мы получаем числовой массив, который может содержать NFFT элементов, причем информативной будет только первая половина массива, вторая будет зеркально отображать первую половину. В первой половине массива, содержащей NFFT/2 элементов будет представлен «частотный» спектр. Спектр будет отражать не частоту сигнала, установить которую по числовому массиву, представляющему сигнал во временной области, невозможно, а количество периодов. Т.е. в приведенном выше примере «всплеск» в массиве частотной области будет в элементе с номером KP1. Таким образом, массив частотной области укажет на количество периодов сигнала во временной области.

Частотная характеристика линейного фильтра низких частот может быть вычислена следующим образом:

for  i=1:NFFT     

H(i)=1/((1+j*i/NC));  

end

Здесь NC - полоса пропускания фильтра по уровню 0,7 амплитуды выражена в количестве отчетов спектра БПФ, пропускаемых фильтром. Остальные отсчеты в массиве частотного спектра будут ослабляться по амплитуде. Таким образом,  понятие постоянной времени фильтра, равно как и полосы пропускания при дискретизированном представлении линейного фильтра отсутствует.

Ниже приведена программа фильтрации сигналов и временные диаграммы.

%Низкочастотный фильтр

A=20; %амплитуда сигнала

Q=5; %амплитуда шума

KP1=12;% - количество периодов первого сигнала

NFFT=1024;%количество точек расчета

Fs=1024;

for k=1:NFFT % генерация сигнала и шума

s(k) = A*sin(2*pi*KP1*k/NFFT);

q(k)=Q*(randn(size(Fs))); %шум

x(k)=s(k)+q(k); % суммирование сигнала и шума

end

figure

plot(x);

title('Зашумленный сигнал до фильтра');

Y=fft(x,NFFT)/NFFT; %БПФ сигнала с шумом

SS1=Y.*conj(Y)/Fs; %спектр мощности сигнала с шумом

figure

plot(f,2*abs(SS1(1:NFFT/2)));

title('Частотный спектр сигнала с шумом');

NC=12; %NC - полоса пропускания фильтра по уровню 0,7 амплитуды

% выражена в количестве отчетов спектра БПФ, пропускаемых фильтром

% остальные отсчеты (в частотном спектре!) будут ослабляться по амплитуде            

for i=1:NFFT    

H(i)=1/((1+j*i/NC)); %передаточная функция простого фильтра

%в частотной области

End

i=1:400;

figure

%plot(i,abs(H(1:400))); %вывод графика частотной характеристики фильтра

semilogx(i,abs(H(1:400)));%то же, что и plot, но в логарифмическом

%масштабе по Х

title('Частотная хар-ка НЧ-фильтра');

i=1:NFFT;

XX1=fft(x,NFFT); %частотный спектр сигнала с шумом

Z=ifft(XX1.*H);   %свертка зашумленного сигнала с частотной хар-кой фильтра

i=1:NFFT;

figure

plot(i,2*Z(1:NFFT)); %вывод отфильтрованного сигнала

title('Сигнал после фильтра');

pause;

close all;

                                       А                                                     Б

       

                 

                                      В                                                      Г

                                   В                                                       Г

Рис.1. Исходный сигнал с шумом (А), его частотный спектр (Б), частотная характеристика фильтра в полулогарифмическом масштабе (В) и сигнал после фильтра (Г).

ОПТИМАЛЬНЫЙ ФИЛЬТР КОЛМОГОРОВА-ВИНЕРА

Фильтры низкой частоты, высокой частоты и полосовые фильтры эффективны в том случае, когда частотные спектры сигнала и шума не перекрываются.

Наилучшее разделение сигнала и шума цифровыми методами обеспечивает оптимальный фильтр Колмогорова-Винера.

Частотная характеристика фильтра Колмогорова-Винера:

                              H(w) = Ws(w) / [Ws(w)+Wq(w)]

где Ws(w) и Wq(w) - энергетические спектры (плотности мощности) сигнала и помех.

                                         А                                                  Б

 

Рис. 2. Исходный сигнал с шумом (А) и после фильтра (Б).

                                    А                                                     Б

Рис. 3. Частотная характеристика  оптимального фильтра  (А)

и сигнал после фильтра (Б).

Программа, реализующая оптимальный фильтр Колмогорова – Винера в среде MATLAB, приведена ниже.

%Программа оптимального фильтра Колмогорова - Винера

A=20; %амплитуда сигнала

Q=20; %амплитуда шума

Fs=1024;

NFFT=1024;%количество точек расчета

L=1024;

for k=1:NFFT %цикл вычисления сигнала и шума

%s1(k)=A*exp(-0.00003*(k-500)^2.0); %колоколообразный сигнал

%s1(k)=A*sin(2*pi*12*k/1000.0)%синусоидальный сигнал

s1(k)=0;

if (k>400)&(k<600) % сигнал прямоугольной формы

  s1(k)=A;

end   

q(k)=Q*(randn(size(Fs))); %шум

x1(k)=s1(k)+q(k); % суммирование сигнала и шума

end

figure

plot(x1);

title('Зашумленный сигнал до фильтра');

 

Y=fft(s1,NFFT)/L; %БПФ сигнала без шума

f = Fs/2*linspace(0,1,NFFT/2);%вычисление шкалы для частотной области

% figure

% plot(f,2*abs(Y(1:NFFT/2)));

SS1=Y.*conj(Y)/Fs; %спектр мощности сигнала без шума

% figure

% plot(f,2*abs(SS1(1:NFFT/2)));

 

Y1=fft(q,NFFT)/L; %БПФ  шума

f = Fs/2*linspace(0,1,NFFT/2);

% figure

% plot(f,2*abs(Y1(1:NFFT/2)))

SS2=Y1.*conj(Y1)/Fs; %спектр мощности  шума

% figure

% plot(f,2*abs(SS2(1:NFFT/2)));

for i=1:NFFT    

H(i)=SS1(i)/(SS1(i)+SS2(i)); %передаточная функция оптимального фильтра

%в частотной области

end

% i=1:40;

% figure

% plot(i,abs(H(1:40)));

i=1:NFFT;

h=ifft(H);

XX2=conv(x1,h);

figure

plot(i,XX2 (1:NFFT)); %вывод отфильтрованного сигнала

title('Сигнал после фильтра 2');  

i=1:NFFT;

XX1=fft(x1,NFFT); %частотный спектр сигнала с шумом

Z=ifft(XX1.*H);   %свертка зашумленного сигнала с частотной характеристикой фильтра

figure

plot(i,Z (1:NFFT)); %вывод отфильтрованного сигнала

title('Сигнал после фильтра');

 

ФИЛЬТРАЦИЯ ШУМОВ С ИСПОЛЬЗОВАНИЕМ ПРЯМОГО И ОБРАТНОГО БПФ

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

%Программа БПФ. Сигнал содержит две частотные составляющие.

Fs = 1000;                    % Sampling frequency

T = 1/Fs;                     % Sample time

L = 1000;                     % Length of signal

t = (0:L-1)*T;                % Time vector

% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid

x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);

y = x + 2*randn(size(t));     % Sinusoids plus noise

figure

plot(Fs*t(1:50),y(1:50))

title('Signal Corrupted with Zero-Mean Random Noise')

xlabel('time (milliseconds)')

%NFFT = 2^nextpow2(L); % Next power of 2 from length of y

NFFT=1024;

Y = fft(y,NFFT)/L;

f = Fs/2*linspace(0,1,NFFT/2);

 

% Plot single-sided amplitude spectrum.

figure

plot(f,2*abs(Y(1:NFFT/2)))

title('Single-Sided Amplitude Spectrum of y(t)')

xlabel('Frequency (Hz)')

ylabel('|Y(f)|')

                                           А                                               Б

                  

Рис. 4. Зашумленный сигнал, представляющий сумму двух синусоидальных сигналов разных частот (количество периодов во временном окне 50 и 120 ) (А) и частотный спектр, полученный с помощью БПФ.

Если теперь обнулить участки спектра от 0 до 40, от 55 до 110 и от 125 до 500, а затем выполнить обратное преобразование БПФ (ifft), то получим спектр и сигнал, представленные на рис. 5.                              

                                          А                                                   Б

 

Рис. 5. Частотный спектр после удаления спектральных составляющих шума (А) и восстановленный с помощью обратного преобразования Фурье сигнал (Б)

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

%Программа фильтрации помех с использованием БПФ-ОБПФ

Fs = 1000;                    % Sampling frequency

T = 1/Fs;                     % Sample time

L = 1000;                     % Length of signal

t = (0:L-1)*T;                % Time vector

% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid

x = 1*sin(2*pi*50*t) + sin(2*pi*120*t);

y = x + 0.2*randn(size(t));     % Синусоиды+шум

figure

plot(Fs*t(1:50),y(1:50))

title('Signal Corrupted with Zero-Mean Random Noise')

xlabel('time (milliseconds)')

%NFFT = 2^nextpow2(L); % Next power of 2 from length of y

NFFT=1024;

Y = fft(y,NFFT)/L;%вычисление спектра сигнала с шумом

for i=1:NFFT %"вырезание" спектральных составляющих шума

if (i>125)|(i<40)|((i>55)&(i<110))

   Y(i)=0;

end 

end

f = Fs/2*linspace(0,1,NFFT/2);

figure

plot(f,2*abs(Y(1:NFFT/2)))

title('Single-Sided Amplitude Spectrum of y(t)')

xlabel('Frequency (Hz)')

ylabel('|Y(f)|')

 

%восстановление исходного сигнала после "вырезания"

%спектральных составляющих шума

z=ifft(Y);

f = Fs/2*linspace(0,1,NFFT);

figure

plot(f(1:50),z(1:50));

 

pause;

clear all; %стирание всех окон графического вывода

ФИЛЬТР СКОЛЬЗЯЩЕГО СРЕДНЕГО

Пусть мы имеем массив N значений измеренного сигнала, представленный в цифровой форме:

                                      {f1, f2, …fN}, i=1, 2, 3, …N

Для нахождения скользящего среднего в окрестности точки fi берем среднее арифметическое от K предыдущих и K последующих точек, включая и fi  . Таким же образом производим обработку для всех значений i. В результате вычисляем новый массив gi:

или

Текст программы фильтрации помех с помощью фильтра скользящего среднего приведен ниже.

%Фильтр скользящего среднего

 

A=20; %амплитуда сигнала

Q=1; %СКО шума

KP1=6;% - количество периодов первого сигнала

KP2=5;% - количество периодов второго сигнала

N=256;%количество точек расчета

 

for k=1:N % генерация сигнала и шума

s(k) = A*sin(2*pi*KP1*k/N);%+ A*sin(2*pi*KP2*k/1000);

q(k)=Q*(randn(size(N))); %СКО шума, амплитуда равна 3Q

x(k)=s(k)+q(k); % суммирование сигнала и шума

end

figure

plot(x);

hold on;

title('Зашумленный сигнал до фильтра');

S=x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7);

y(4)=S/7;

for i=1:N-7 %сглаживание зашумленного сигнала

  S=S-x(i)+x(i+7);

  y(i+4)=S/7;

end

i=1:N-7;

%figure;

plot(i,y(1:N-7),'r-');

title('Сигнал после фильтра');

xlabel('Номер отсчета'); % подпись по оси X

i=1:N-7;

DX(i)=x(i)-y(i);

figure

plot(i,DX(i:N-7)); %вывод погрешности отфильтрованного сигнала

title('Погрешность отфильтрованного сигнала');

ylabel('Случайная погрешность'); % подпись по оси Y

pause;

clear all; %стирание всех окон графического вывода

Указания к выполнению работы

 

1. При исследовании эффекта улучшения отношения сигнал/шум и уменьшения погрешности обработанного сигнала в сравнении с исходным благодаря накоплению построить зависимость отношения сигнал/шум и разности исходного и обработанного сигналов от количества накоплений.

2. При исследовании эффекта улучшения отношения сигнал/шум и уменьшения погрешности обработанного сигнала в сравнении с исходным благодаря использованию фильтров (НЧ, Баттерворта, БПФ-ОБПФ) найти оптимальную полосу пропускания фильтра, при которой эффект будет наибольшим с точки зрения улучшения отношения сигнал/шум и уменьшения погрешности обработанного сигнала отдельно.

3. При исследовании эффекта улучшения отношения сигнал/шум и уменьшения погрешности обработанного сигнала в сравнении с исходным благодаря использованию фильтра скользящего среднего (Smoothing) определить зависимость степени подавления шумов от ширины окна (при рамере окна 3, 5, 7 элементов) при различном уровне шумов и влияние параметров фильтра на изменения амплитуды и фазы сигнала на выходе фильтра.

4. При исследовании эффекта улучшения отношения сигнал/шум и уменьшения погрешности обработанного сигнала произвести сравнение эффективности исследуемых цифровых фильтров с оптимальным фильтром Колмогорова-Винера при обработке сигналов различной формы: гармонических, импульсных, колоколообразных при различных параметрах частоты и  длительности.

Содержание отчета

  1.  Задание к работе.
  2.  Таблица исходных данных.
  3.  Тексты  программ фильтрации с комментариями
  4.  Графики исходного и обработанного сигналов, график погрешности при различных параметрах обработки.
  5.  Выводы.


Работа 4. Цифровая обработка сигналов в среде MATLAB. Комбинированное использование ключевых операций ЦОС.

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

Задание к работе

Имеется набор экспериментальных данных в виде числового массива. Требуется спроектировать на внутреннем языке MATLAB программу цифровой обработки данных, реализующую точное определение количества периодов сигнала и частоту во временной области с использованием нескольких ключевых операций ЦОС: БПФ, корреляции, сплайн-аппроксимации и передискретизации.

Теоретические основы

Одной из важнейших задач цифровой обработки зашумленных сигналов является обнаружение  информативного сигнала в потоке данных, искаженных шумами и помехами, и определение его параметров. Для этого применяются различные методы, такие как временная фильтрация (накопление), оптимальная частотная фильтрация, прямое и обратное преобразование Фурье, корреляционная обработка. Каждая из этих операций позволяет выполнять преобразования исходного сигнала, например, переход сигнала из временной области в частотную или наоборот,  причем при этом производится уменьшение уровня шумов в обработанном сигнале. В задачах обнаружения и определения параметров защумленных сигналов усиление эффекта подавления шумов и увеличения точности определения параметров сигнала можно достичь, используя несколько методов цифровой обработки в комплексе. Примером может быть задача обработки эхо-сигнала спектрометра ЯМР

Результатом БПФ дискретизированного эхо-сигнала спектрометра ЯМР определенной частоты является количество периодов сигнала во временном окне. Если частота отсчетов или интервал дискретности по времени при измерении сигнала известен, то по количеству периодов во временном окне можно установить и частоту измеряемого сигнала. Точность определения частоты в спектре входного сигнала вполне определенна и зависит от количества периодов p сигнала. Если количество периодов целое, то частота с помощью БПФ находится абсолютно точно (при отсутствии зашумленности сигнала). Если же количество периодов не является целым, то появляется погрешность определения частоты. Максимальное значение погрешности равняется 1/p. В некоторых, практически важных случаях, например, при  обработке  эхо-сигналов  (рис. 1) импульсных спектрометров ЯМР, количество периодов анализируемого сигнала во временном окне принципиально ограничено величиной около 10 [1]. В этом случае погрешность определения частоты с помощью БПФ достигает 1/10, т. е. 10%.

Влияние шума в регистрируемом сигнале во временной области можно значительно уменьшать за счет многократного повторения эксперимента и синхронного накопления эхо-сигналов (см. рис. 1).

Рис. 1. Исходный (А) и накопленный сигнал (Б) в борате железа.

 Однако, как показано в [1], увеличение количества накоплений позволяет улучшать отношение сигнал/шум без искажения формы и уменьшения амплитуды накопленного эхо-сигнала лишь до некоторого предела. После этого предела накопление уже не приносит ощутимого улучшения качества. В частности, при большом времени накопления на эхо-сигнал начинают влиять постепенные изменения параметров приборов, входящих в состав импульсного спектрометра ЯМР. При ограничении времени проведения анализа веществ количество возможных накоплений сигнала должно быть ограничено или вообще должно отсутствовать. Проблема обработки эхо-сигналов в условиях значительных шумов возникает еще и в том случае, когда имеется необходимость исследования веществ  малой концентрации. Поэтому задача выполнения частотного анализа зашумленных эхо-сигналов актуальна.

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

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

Идея предлагаемого алгоритма, описанного в [2], заключается в том, что в небольшой окрестности от предполагаемой частоты сигнала или количества периодов (приближенное значение частоты сигнала может быть найдено с помощью быстрого преобразования Фурье) вычисляются коэффициенты корреляции с несколькими эталонными сигналами в некоторой окрестности от приближенного значения, затем с помощью сплайн-интерполяции и передискретизации строится функция, выражающая зависимость коэффициента корреляции от частоты эталонов и находится максимум этой функции, по положению максимума определяется частота эталонного сигнала. Функция, построенная таким образом, имеет вид параболы с явно выраженным максимумом (см. рис. 2) как в случае незашумленного так и зашумленного сигнала,  что и позволяет определить частоту эхо-сигнала более точно, чем это позволяет сделать БПФ. При наличии шума форма функции сохраняется, уменьшается лишь абсолютное значение максимума.

Рис. 2. Зависимость коэффициента корреляции от частоты при отсутствии шума (А) и при отношении сигнал/шум 1/3 (Б). Точное значение частоты равно 1010. Аппроксимирующие кривые построены с помощью функции сплайн-аппроксимации spaps в MATLAB.

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

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

Содержание работы

Исследовать эффективность использования комбинированнного использования нескольких операции цифровой обработки и итерационного процесса  для определения количества периодов и частоты сигнала по сравнению с использованием для решения этой задачи быстрого преобразования Фурье. Исследование провести для различных условий:

  1.  Для различного количества итераций.
  2.  При  целом и нецелом количестве периодов сигнала, меньшем 10.
  3.  При различном уровне зашумленности сигнала

Указания к выполнению

1. Использовать в качестве основы программу, приведенную в приложении.

2. Расчеты сделать по результатам 1-й и 2-й итерации отдельно. В качестве приближенного значения количества периодов на 1-й итерации взять результат, полученный с помощью БПФ, для 2-й итерации – уточненное в результате 1-й итерации значение количества периодов, величину окрестности вблизи уточненного значения количества периодов, в которой создаются эталонные сигналы (параметр procch в программе) уменьшить в m раз, m<=10.

3. При исследовании эффекта увеличения точности определения количества периодов и частоты сигнала по сравнению с БПФ за счет дополнительных операций цифровой обработки произвести измерения количества периодов и частоты сигнала в диапазоне количества периодов от К до К+1 с шагом 0.05 и вычислить максимальную, среднюю и среднеквадратическую погрешности определения количества периодов и частоты сигнала на этом интервале.

4. При исследовании эффекта увеличения точности определения количества периодов и частоты сигнала по сравнению с БПФ за счет дополнительных операций цифровой обработки при зашумленности сигнала произвести измерения количества периодов и частоты сигнала в диапазоне количества периодов от К до К+1 с шагом 0.05 при значениях амплитуды шума от 0 до 1 с шагом 0.1 и вычислить максимальную, среднюю и среднеквадратическую погрешности определения количества периодов и частоты сигнала на этом интервале для каждого уровня шума.

5. При исследовании зависимости погрешности определения количества периодов и частоты сигнала от количества периодов сигнала с помощью БПФ и комбинированного способа выполнить п.п.2 и 3 при значениях К=2, 3, …10, и построить графики зависимости максимальной, средней и среднеквадратической погрешностей от количества периодов сигнала.

Содержание отчета

  1.  Задание к работе.
  2.  Текст разработанной программы.
  3.  Графики  зависимости максимальной, средней и среднеквадрати-ческой погрешностей при различном уровне шума  от количества периодов сигнала для БПФ и исследуемого способа комбинирован-ной обработки.
  4.  Выводы.

Приложение. Текст базовой программы.

%Комбинированное использование ключевых операций ЦОС

%Для повышения точности определения количества периодов и частоты

%"короткого" сигнала используется комбинация

%БПФ, кросскорреляции, сплайн-аппроксимации,передискретизации

kt=1024; % количество отсчетов

f=12; %частота сигнала

dt=2;%шаг дискретности по времени при измерении

k2=500; %декремент затухания огибающей сигнала

shum=0;%шум

kp=4.5;%количество периодов сигнала

%1. ГЕНЕРАЦИЯ МОДЕЛЬНОГО СИГНАЛА

for i=1:kt %обнуление массива сигнала

   y(i)=0;

end    

for i=1:kt %генерация модельного сигнала

   if(i>0)&(i<=kt/2)             

      y(i)=sin(2*3.14*kp*i/kt)*i*exp(i/k2)/1200;

   end

   if(i>kt/2)&(i<(kt))             

      y(i)=sin(2*3.14*kp*i/kt)*(kt-i)*exp((kt-i)/k2)/1200;

   end

    y(i)=y(i)+shum*(2*rand(1)-1);                                               

end

i=1:kt; %отображение модельного сигнала во временной области

figure

plot(i,y);

axis tight;

title('Time domain')

xlabel('Sample number')

%2. ФУНКЦИОНАЛЬНОЕ ПРЕОБРАЗОВАНИЕ (БПФ)

bpfy=fft(y,kt);%БПФ

bpf=bpfy.*conj(bpfy)/kt;%БПФ

%f=1000*(0:256)/512;

figure

plot(i(1:257),bpf(1:257));

axis tight;

title('Frequency domain')

xlabel('frequency')

%нахождение макс. знач. функции БПФ для массива Y

C=max(bpf);

for i=1:kt %поиск количества периодов, соответствующих максимуму БПФ

   if (bpf(i)==C)          

       kpbpf=(i-1);         

       break

   end

end

kp_bpf=kpbpf

%3. СОЗДАНИЕ ЭТАЛОНОВ И КРОССКОРРЕЛЯЦИЯ

fr=kpbpf;

   procch=0.1;%область поиска в процентах относит. kp_bpf    

shagkor=fr*procch/3;%шаг поиска

       k=0;

 for iii=fr-fr*procch:shagkor:fr+fr*procch %цикл для создания 6 эталонов в окрестности приближенного

           %значения количества периодов, определенных с помощью БПФ.           

           k=k+1;

           xkor(k)=iii;

           kor(k)=0;

           for i=1:kt           

               x(i)=0;    

           end

%Вычисление массивов эталонных сигналов              

       for i=1:kt                                                

           if(i>0)&(i<=kt/2)                       

               x(i)=sin(2*3.14*iii*i/kt)*i*exp(i/k2)/1200;

           end

           if(i>kt/2)&(i<(kt))                        

               x(i)=sin(2*3.14*iii*i/kt)*(kt-i)*exp((kt-i)/k2)/1200;

           end

       end    

%вычисление средних значений модельного и эталонных сигналов

           x_sr=mean(x);

           y_sr=mean(y);

           x_sko=0;

           y_sko=0;

%вычисление СКО и коэф. корреляции модельного и эталонных сигналов

           for i=1:kt

               x_sko=x_sko+(x(i)-x_sr)*(x(i)-x_sr);

               y_sko=y_sko+(y(i)-y_sr)*(y(i)-y_sr);

               kor(k)=kor(k)+(x(i)-x_sr)*(y(i)-y_sr);

           end

           kor(k)=kor(k)/(sqrt(x_sko*y_sko));

 end %конец цикла создания эталонов и вычисления массива коэф. корр.

 %СПЛАЙН-АППРОКСИМАЦИЯ И ПЕРЕДИСКРЕТИЗАЦИЯ

       xx=1:k;

       xi=1:0.1:k;

       r1=sin(xx); %только для тестирования сплайн-аппроксимации       

       yint=interp1(xx,kor,xi,'spline');% сплайн-аппроксимация коэф корреляции               

       r1=kor;

       %%apr=csaps(xx,r1);

       apr=spaps(xkor,kor,0.000001);%%%%%%%%%%%%%%%

        fnplt(apr)

        hold on

        plot(xkor,r1,'ro')%%%%%%%%%%%%%%%%%

        hold off  

%НАХОЖДЕНИЕ УТОЧНЕННОГО ЗНАЧЕНИЯ КОЛИЧЕСТВА ПЕРИОДОВ СИГНАЛА

       cmax=max(yint); %нахождение максимума коэф. корр.       

       for i=1:round((k-1)/0.1+1)

           if (yint(i)==cmax)     

               kp_int=fr-fr*procch+(i-1)*shagkor/10 %уточненное значение частоты по МАХ функции коэф. корр.

           end           

       end

pause;

close all;


Работа 5. Базовые средства фильтрации шумов на изображениях.

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

Задание к работе

  1.  Исследовать связь эффективности фильтрации зашумленных изображений с визуальным восприятием изображений и степенью сходства отфильтрованного изображения с исходным незашумленным изображением, найти оптимальные параметры фильтров;
  2.  Исследовать связь эффективности фильтрации от показателей яркости и контрастности исходного изображения;
  3.  Спроектировать на внутреннем языке MATLAB программу цифровой фильтрации изображений, содержащей средства интерфейса пользователя, позволяющие выбирать вид и задавать параметры фильтрации.

Описание программного обеспечения и порядок работы

Программное обеспечение включает базовую программу Filtering.m  и файлы фотоизображений. Программа Filtering.m  позволяет загрузить два  изображения, выполнить зашумление одного из них, произвести фильтрацию зашумленного изображения с помощью различных фильтров, вычислить коэффициент корреляции зашумленного и отфильтрованных изображений с исходным, выполнить построение 2D и 3D графика коэффициента корреляции. Виды и параметры шума и параметры фильтров могут задаваться. Текст программы приведен в приложении.

 

Указания к выполнению работы

  1.  При выполнении п.1 Программы установить в программе уровень шума 0.005, вид шума – Гауссов, запустить программу Filtering.m, произвести кадрирование изображения, выделив центральную часть лица,  и зафиксировать в таблице получаемые в окне Command Window при выполнении программы максимальные значения коэффициентов корреляции зашумленного изображения и отфильтрованных разными фильтрами изображений. Затем, изменяя параметры фильтров, добиться получения наиболее высоких значений коэффициентов корреляции отфильтрованных сигналов с исходным и вспомогательным.
  2.  Повторить выполнение п. 1 при шуме  salt & pepper с параметрами d=0.01, 0.05 и 0.1 и при мультипликативном шуме speckle с нулевым  средним значением и среднеквадратичным отклонением v=0.02, 0.04 и 0.06.

  1.  При выполнении п. 2 Программы спроектировать на внутреннем языке MATLAB программу цифровой обработки изображений, реализующую уменьшение шумов на изображениях , используя стандартные базовые программы:
  •  average – усредняющий фильтр;
  •  medfilt – медианный фильтр;
  •  gaussian – фильтр Гаусса;
  •  ordfilt – ранговый фильтр;
  •  unsharpфильтр повышения резкости;
  •  wiener2 – адаптивный фильтр Винера;

Программа дожна поволять производить интерактивный выбор вида фильтра и параметров фильтра

Содержание отчета

  1.  Задание к работе.
  2.  Таблицы с показателями корреляционного сравнения изображений по п. 1 и 2 Указаний по выполнению работы с комментариями.
  3.  Текст программы по п. 3 Указаний по выполнению работы и экранная форма.
  4.  Выводы.

Приложение. Текст базовой программы.

 %Программа производит зашумление изображения

 %фильтрацию зашумленного изображения с помощью

 %различных фильтров, определение коэффициента корреляции

 %зашумленного и отфильтрованных изображений с исходным

  

  img=imread ('m00200021.tif');

  I=imcrop(img);  

  figure;   

  imshow (img);

  title('Исходное изображение');

  img1=imnoise(img,'gaussian',0,0.005);% 0.005

  figure;   

  imshow (img1);    

  title('Зашумленное изображение');   

        

 %Медианный фильтр 'medfilt2'

 hsize=[3 3 ];

 F4= medfilt2(img1,hsize);

 figure;

 imshow(F4);

 title('После медианного фильтра');

 pause;

   

 %Усредняющий фильтр 'Average'

 hsize=[3 3 ];

 h= fspecial('average',hsize);

 F1=imfilter(img1,h,'replicate');

 figure;

 imshow (F1);   

 title('После усредняющего фильтра');

 pause;

 

 ncorr = normxcorr2(I(:,:,1),img1(:,:,1));

 figure, surf(ncorr), shading flat;

 title('После зашумления');

 max_c_noised = max(abs(ncorr(:)))

 pause;

 

  ncorr = normxcorr2(I(:,:,1),F4(:,:,1));

  figure, surf(ncorr), shading flat;

  title('После медианного фильтра');

       max_c_median = max(abs(ncorr(:)))

  pause;

  

  ncorr = normxcorr2(I(:,:,1),F1(:,:,1));

  figure, surf(ncorr), shading flat;

  title('После усредняющего фильтра');

  max_c_average = max(abs(ncorr(:)))

  pause;   

 

 %Фильтр Гаусса 'gaussian'

 hsize=[9 9];

 sigma=0.99;

 h= fspecial('gaussian',hsize,sigma);

 F2=imfilter(img1,h,'replicate');

 figure;

 imshow(F2);title('После фильтра Гаусса');

 pause;

 

  ncorr = normxcorr2(I(:,:,1),F2(:,:,1));

  figure, surf(ncorr), shading flat;

  title('После  фильтра Гаусса');

  max_c_gaussian = max(abs(ncorr(:)))

  pause;

  

 %Фильтр Лапласа 'laplacian'    

 alpha=0.5;

 h= fspecial('laplacian',alpha);

 F3=imfilter(img1,h,'replicate');

 figure;

 imshow(F3);title('После фильтра Лапласа');

 pause;

 

  ncorr = normxcorr2(I(:,:,1),F3(:,:,1));

  figure, surf(ncorr), shading flat;

  title('После  фильтра Лапласа');

  max_c_laplasian = max(abs(ncorr(:)))

  pause;

  

  %Фильтр повышения резкости 'unsharp'    

 alpha=0.2;

 h= fspecial('unsharp',alpha);

 F4=imfilter(img1,h);

 figure;

 imshow(F4);title('После фильтра unsharp');

 pause;

 

  ncorr = normxcorr2(I(:,:,1),F4(:,:,1));

  figure, surf(ncorr), shading flat;

  title('После  фильтра unsharp');

  max_c_unsharp = max(abs(ncorr(:)))

  pause;

  

 %Ранговый фильтр

 m=5;n=5;

 J = imnoise(img1,'gaussian',0,0.005);

 imshow(J);

 J6 = ordfilt2(J, 7, ones(4,4));  

 figure;

 imshow(J6);title('После рангового фильтра');

 pause;

 

  ncorr = normxcorr2(I(:,:,1),J6(:,:,1));

  figure, surf(ncorr), shading flat;

  title('После  рангового фильтра');

  max_c_ordfilt2 = max(abs(ncorr(:)))

  pause;

  

  close all;


 Работа 6. Средства идентификации объектов на изображениях

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

Задание к работе

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

Описание программного обеспечения и порядок работы

Основные программы системы лабораторной работы функционируют в среде MATLAB.

Программное обеспечение включает программы FRS_AMC.m, FRS_FOTO.m и файлы 100 полноформатных фотоизображений. Первый этап подготовки к работе системы заключается в создании базы данных эталонных изображений с помощью программы FRS_FOTO.m. В результате работы программы FRS_FOTO.m на основе каждого полноформатного изображения формируются 16 эталонных изображений центральной части лица, отличающиеся масштабом от исходного в пределах +/-10%.

На рис. 1 приведен пример полноформатного фотоизображения, на рис. 2 – 16 эталонных фотоизображений центральной части лица, отличающихся масштабом в пределах ±10%.

    Рис. 1

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

Рис. 2

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

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

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

Указания к выполнению работы

1. Для формирования эталонных изображений запустить программу FRS_FOTO.m. При появлении окна с полноформатным изображением с помощью курсора выделить центральную часть лица, затем из контекстного меню выбрать пункт Imcrop. Далее будет автоматически производиться программная генерация 16 эталонных изображений, отличающихся масштабом от исходного в пределах +/-10%.

2.  Корреляционное сравнение текущих изображений с эталонными производить в следующем порядке.

  1.  Произвести корреляционное сравнение выбранного изображения с серией эталонных изображений, созданных при выполнении п. 1. Для этого запустить программу FRS_AMC1.m, после чего зафиксировать результаты корреляционного сравнения, выводимые в окно Command Window (максимальное значение коэффициента корреляции). Аналогичные действия произвести для всех полноформатных изображений.
  2.  Произвести корреляционное сравнение выбранного изображения с серией  эталонных изображений других людей, созданных при выполнении п. 1. Для этого запустить программу FRS_AMC2.m, после чего зафиксировать результаты корреляционного сравнения, выводимые в окно Command Window (максимальные значения коэффициентов корреляции). Аналогичные действия произвести для всех полноформатных изображений.

3. По полученным массивам коэффициентов корреляции построить интервальные гистограммы, затем массивы гистограмм аппроксимировать непрерывными функциями, используя программу подгонки кривых Curve Fitting и произвести проверку правильности гипотезы о законе распределения по критерию .

4.  Произвести анализ результатов корреляционого сравнения изображений «свой - свой» и «свой - чужой» и на основании этого определить пороговое правило по принципу максимума правдоподобия для разделения по значению коэффициента корреляции «своих» и «чужих». Оценить вероятность ошибок 1-го (принять «своего» за «чужого») и 2-го рода (принять «чужого» за «своего»).

5.  Вычислить порог корреляционного сравнение по принципу «идеального наблюдателя» и Неймана-Пирсона, считая допустимой ошибкой «пропуска чужого» - 10-3.

Содержание отчета

  1.  Задание к работе
  2.  Текст программы с комментариями.
  3.  Таблицы полученных значений коэффициентов корреляции.
  4.  Расчет и обоснование порогового правила для различения «своих» и «чужих» по принципу максимума правдоподобия.
  5.  Расчет вероятности ошибок 1-го и 2-го рода.
  6.  Выводы.


Приложение. Критерий
  с степенями свободы.

где

 r – число параметров распределения, определяемых по выборке;

- табличная частота;

- теоретич. частота;

- вероятность функции распределения, вычисляемая по формуле:

                                                                                                                    Табл.2


Литература

  1.  Сергиенко А.Б. Цифровая обработка сигналов. Учебник для вузов. 2-е изд.-СПб.: Питер, 2006.-751с.
  2.  А.И.Солонина, С.М.Арбузов. Цифровая обработка сигналов. Моделирование в MATLAB: Учебное пособие. – СПб.: БХВ-Петербург, 2008 – 816с. ISBN 978-5-9775-0259-7
  3.  Юкио Сато Без паники! Цифровая обработка сигналов: Пер. с яп.. – М.: Изд. дом Додэка – XXI, 2010 - 176с. ISBN 978-5-94120-251-5.
  4.  С.Л.Марпл-мл. Цифровой спектральный анализ и его приложения: Пер. с англ. – М.:Мир, 1990 – 584с. ISBN 5-03-001191-9
  5.  Давыдов А.В. Цифровая обработка сигналов. Конспект лекций. http://prodav.narod.ru/textbook/index.html 
  6.  Гонсалес Р., Вудс Р. Цифровая обработка изображений.// Техносфера.2006 г.-1072с.
  7.  Гонсалес Р., Вудс Р., Эддинс С., Цифровая обработка изображений в среде MATLAB.// Техносфера.2006 г.-616с.
  8.  В.Дьяконов, И.Абраменкова. MATLAB. Обработка сигналов и изображений. Специальный справочник. –СПб.: Питер, 2002.-608с.

1 Синтаксис языка С в MATLAB имеет ряд особенностей, в частности, связанных с тем, что объектами при вычислениях являются матрицы.

LINK Paint.Picture D:\\TSASU03\\fig4.bmp  \a \p Error! Not a valid link.

LINK Paint.Picture D:\\TSASU03\\fig3.bmp  \a \p Error! Not a valid link.

EMBED PBrush  

EMBED PBrush  


 

А также другие работы, которые могут Вас заинтересовать

35860. Методи використання тренажерів на уроках теоретичного навчання 393 KB
  Методи використання тренажерів на уроках теоретичного навчання У машинобудівній галузі верстати з числовим програмним управлінням у найближчому майбутньому займуть пріоритетне становище у верстатному парку. Одним з найбільш ефективних методів інтенсивного навчання є використання комп’ютерних засобів або комп’ютерні навчаючі програми а також комп’ютерні тренажери або комп’ютерні тренажериімітатори роботи верстатів. Навчання на тренажерах проводиться у кабінеті навчального закладу під наглядом викладача тому воно позбавлене недоліків...
35861. Алгоритмы кэширования современных микропроцессоров 387.5 KB
  Процесс выполнения программы можно представить как последовательность обращения к строкам основной памяти. Вся информация хранится в основной памяти а часть в кэш памяти. ОПТ оптимальный – известна вероятность обращения к строкам памяти. Физически реализуемые Алгоритмы выбора строки из кэш памяти.
35862. Экзаменационные задачи по физике 333.5 KB
  Определите работу совершаемую электрическим током в электродвигателе настольного вентилятора за промежуток времени 30 с если при напряжении 220 В сила тока потребляемого двигателем 100 мА. Определите количество теплоты которое выделилось на резисторе сопротивлением 20 Ом за промежуток времени 5 мин если через его поперечное сечение ежесекундно проходит заряд 10 Кл. Определите силу тока потребляемого электродвигателем лифта и расход электроэнергии при одном подъеме если напряжение на зажимах 380 В а его КПД равен 90 . Определите...
35863. ТЕХНОЛОГІЯ ВЛАШТУВАННЯ МАСТИКОВИХ ПОКРІВЕЛЬ 320.5 KB
  ТЕХНОЛОГІЯ ВЛАШТУВАННЯ МАСТИКОВИХ ПОКРІВЕЛЬ Мастикові покрівлі улаштовують з бітумних емульсійних паст і мастик полімерних мастик гарячих бітумних мастик бітумногумових мастик. Захист покрівлі Бронювання нанесення на покрівлю алюмінієвого пилу Засипання гравієм або мармуровим щебенем 2мм Бітумні емульсійні матеріали це дисперсні системи з бітуму емульгаторів наповнювачів і води. Комбіновані покрівлі це різновид мастикових. Залежно від похилу конструкцію водоізоляційного килима такої покрівлі утворює один або два шари звичайних...
35865. ПРЕВРАЩЕНИЯ В СТАЛИ ПРИ ОХЛАЖДЕНИИ 283 KB
  При скорости охлаждения стали обеспечивающей полное протекание диффузионных процессов и соответственно близкое к равновесному состоянию стали в структуре последней согласно диаграмме железо углерод образуется перлит.5 приведена диаграмма изотермического превращения аустенита для эвтектоидной стали 08 С. Диаграмма изотермического превращения аустенита эвтектоидной стали На диаграмме можно выделить следующие области: 1 область устойчивого аустенита для стали содержащей 08 С выше АС1; 2 область переохлажденного аустенита; 3...
35867. БЖД. Содержание, цель и задачи БЖД 101.92 KB
  Как видим она посвящена решению задач сохранения здоровья и жизни человека в среде его обитания. Объединяющим ее началом стали: воздействие на человека одинаковых по физике опасных и вредных факторов среды его обитания общие закономерности реакций на них у человека и единая научная методология а именно количественная оценка риска несчастных случаев профессиональных заболеваний экологических бедствий и т. Цель дисциплины вооружить будущих специалистов теоретическими знаниями и практическими навыками необходимыми для: 1 создания...