- •Обозначения и сокращения
- •Оглавление
- •1.Исследование параметров случайного процесса 3
- •2. Выбор метода предварительной обработки сигнала 10
- •4.Разработка блок-схемы устройства цифровой обработки сигнала 23
- •1 Исследование параметров случайного процесса
- •1.1 Расчет числовых характеристик
- •1.1 Расчет числовых характеристик
- •1.2 Спектральный анализ сигнала
- •2 Выбор метода предварительной обработки сигнала
- •2.1 Этапы разработки цифрового фильтра
- •2.2 Спецификация требований к фильтру
- •2.3 Вычисление коэффициентов фильтра
- •2.4 Реализация фильтра в среде Matlab
- •3 Разработка алгоритма обнаружения сигнала
- •4 Разработка блок-схемы устройства цифровой обработки сигнала
- •4.1 Расчет параметров аналого-цифрового тракта
- •4.2 Расчет объема внутренней памяти для хранения данных
- •Основные результаты и выводы
- •Список литературы
- •3. Цифровая обработка сигналов. Автор: Сергиенко Александр Борисович.
3 Разработка алгоритма обнаружения сигнала
Алгоритм
обнаружения сигнала основан на сравнении
амплитуд спектральных составляющих
отфильтрованного сигнала с пороговыми
значениями (метод частотной выборки).
Коэффициенты фильтра используются из
п. 2.3. Пороговые значения задаются на
основании результатов, полученных в
п.2.3 (таблица 2.3). Для разработки алгоритма
необходимо заполнить таблицу 3.1, где
для каждой гармоники полезного сигнала
указать значение порога и интервал
поиска. Критерием обнаружения полезного
сигнала будет одновременное наличие
во всех интервалах спектральных
составляющих, удовлетворяющих следующему
соотношению:
,
(3.1)
где:
-
нижний порог,
- верхний
порог,
- значение
амплитуды гармоники с номером .
Значения
и
рассчитываются
на основании значений таблицы 2.3:
,
,
(3.2)
где
- количество
значений частот в таблице 2.3.
Таблица 3.1 –Пороговые значения для поиска
№ |
Центральная частота, Гц |
Интервал поиска, Гц |
Пороговое
значение |
|
1568 |
{1500:2000} |
0,039 |
|
2105 |
{2000:2500} |
0,045 |
На рисунке 3.1 необходимо изобразить алгоритм обнаружения полезного сигнала на основе анализа амплитудного спектра. Алгоритм должен содержать все этапы обработки сигнала: считывание, фильтрацию, поиск максимумов в интервалах, принятие решения.
Начало
Конец файлов?
Конец
да
нет
Считывание
Фильтрация
Поиск max
Принятие решения
Отметить +
да
нет
Рисунок 3.1 – Алгоритм обнаружения полезного сигнал
Для оценки работоспособности алгоритма следует составить программу.
clc; clear; %шаг 1.1 Начало считывания data=load('fx.mat'); % считывание исходного сигнала из файла fx=data.fx; fd=data.fd; %шаг 1.2 data=load('b_filt.mat'); b_filt=data.b_filt; % Конец считывания %шаг 2 Начало фильтрации fy=filter(b_filt,1,fx); фильтрует сигнал, заданный в виде одномерного массива, используя дискретный фильтр %шаг 3.1 N=length(fy); %количество отсчетов отфильтрованного сигнала T=1/fd*N; %длительность сигнала,с Y=fft(fy); %Преобразование Фурье Y=2*abs(Y(1:N/2))/N; %Модуль|Y| f=1/T*(0:N/2-1);%Ось частот df=fd/N; % шаг по оси частот %интервал поиска fs=[1400 1700; 1900 2300; 3200 3600]; интервал поиска [m n]=size(fs); %m количество строк n количество столбцов Yf=zeros(1,m);%формирует массив нулей размера 1×m for i=1:m fs(i,1)=int32(fs(i,1)/df); %преобразовать в 32-разрядное целое число fs(i,2)=int32(fs(i,2)/df); %преобразовать в 32-разрядное целое число [value index]=max(Y(fs(i,1):fs(i,2))); index=index+fs(i,1)-1; %корректировка индекса смещения Yf(i)=value; %сохранение найденных амплитуд гармоник end % Конец фильтрации %шаг 4 Начало принятия решения Yeth=[0.0365 0.0250 0.0387]; find=0; for i=1:m yeth=Yeth(i)-Yeth(i)*0.1 if(Yf(i)>yeth)find=find+1;end; end; % Конец принятия решения % шаг 5 Отображение результата поиска if(find==m) disp(['+']); else disp(['-']);
|
Программа обнаружения сигнала тестируется на выборке фрагментов неизвестных сигналов. Результат проверки по всем фрагментам сводится в таблице 3.2.
Таблица 3.2 – Сводная таблица результатов тестирования алгоритма
Название фрагмента |
З начение гармоники на интервале Решение |
|||
|
|
|
|
|
fx165 |
0.0001 |
0.0024 |
0.0004 |
- |
fx196 |
0.0356 |
0.0417 |
0.0245 |
- |
fx236 |
0.0001 |
0.00001 |
0.0245 |
- |
fx385 |
0.0017 |
0.0025 |
0.0245 |
- |
fx402 |
0.0007 |
0.0007 |
0.0245 |
- |
fx422 |
0.0015 |
0.0001 |
0.0245 |
- |
fx757 |
0.0047 |
0.0068 |
0.0245 |
- |
fx804 |
0.0047 |
0.00002 |
0.00002 |
- |
fx808 |
0.0034 |
0.0024 |
0.00002 |
- |
fx823 |
0.00004 |
0.00001 |
0.00001 |
- |
fx1198 |
0.000005 |
0.000004 |
0.00001 |
- |
fx1216 |
0.00002 |
0.0007 |
0.00001 |
- |
fx1292 |
0.00001 |
0.00001 |
0.00001 |
- |
fx1489 |
0.00001 |
0.0001 |
0.00001 |
- |
fx1697 |
0.0365 |
0.0250 |
0.00001 |
+ |
fx1749 |
0.0004 |
0.0012 |
0.00001 |
- |
fx1836 |
0.0091 |
0.0150 |
0.00001 |
- |
fx1889 |
0.0002 |
0.00008 |
0.00001 |
- |
fx2420 |
0.0103 |
0.0123 |
0.00001 |
- |
fx2588 |
0.0304 |
0.0126 |
0.00001 |
- |
fx3351 |
0.0311 |
0.0228 |
0.00001 |
- |
Вывод: В данном пункте был построен алгоритм обнаружения полезного сигнала на основе анализа амплитудного спектра. По алгоритму была составлена программа в Mathlab и протестирована на выборке фрагментов неизвестных сигналов. Был обнаружен полезный сигнал fx1697.
