Для его построения используются полученные ранее значения векторов F, b. Дополнительно создается вектор Af – имитирует АЧХ идеального фильтра (рисунок 2.3).
1 |
|
1 |
1 |
|
|
|
|
|
||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Af |
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
|
|
|
0 |
0 |
|
|
|
fs |
fl |
fh |
|
fe |
f, Гц |
|||||
|
|
|||||||||
Рисунок 2.3 – Имитация идеальной АЧХ
Для примера вектор F = [fs fl fl fh fh fe]; Af = [0 0 1 1 0 0]; fs –
начальное значение; fe – значение частоты, превышающее значение fh.
% Построение характеристики фильтра в среде Matlab: in = load('b_filt.mat');
b_filt = in. b_filt; Af = [ ];
F = [ ];
nf = 1024; % количество точек аппроксимации
[h, w] = freqz(b_filt, 1, nf); plot(F, Af, 'color', 'r'); hold on;
f = 0:(44100/2)/nf: 44100/2-1; plot(f, abs(h), 'color', 'b'); hold off;
legend('Идеальный', 'Результат расчета');
11
|
|
|
Характеристика полосового фильтра |
|||||||||
|
1.4 |
|
|
|
|
|
|
|
|
|
|
|
пропускания |
|
|
|
|
|
|
|
|
Идеальный |
|
||
1.2 |
|
|
|
|
|
|
|
Результат расчета |
||||
|
|
|
|
|
|
|
|
|
|
|
||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Коэффициент |
0.8 |
|
|
|
|
|
|
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
500 |
1000 |
1500 |
2000 |
2500 |
3000 |
3500 |
4000 |
4500 |
5000 |
|
|
|
|
|
|
Частота, Гц |
|
|
|
|
||
|
|
Рисунок 2.4 – Характеристика полосового фильтра |
|
|||||||||
2.3 Реализация фильтра в среде Matlab
Основными функциями для осуществления одномерной линейной дискретной фильтрации в Matlab являются функции filter, filtfilt, fftfilt.
Синтаксис функций фильтрации:
s_out = filter(b_filt, 1, s_in); s_out = filtfilt(b_filt, 1, s_in); s_out = fftfilt(b_filt, s_in);
где: b_filt – коэффициенты фильтра; s_in – отсчеты входного сигнала; s_out - результат фильтрации.
Результат фильтрации с помощью функций … представлен на рисунке
2.5.
12
|
|
|
|
|
|
Результат фильтрации |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Исходный сигнал |
|
|
|
|
|
|
|
|
|
0.8 |
|
Отфильтрованный сигнал |
|
|
|
|
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
Амплитуда |
|
|
|
|
|
|
|
|
|
|
|
-0.2 |
|
|
|
|
|
|
|
|
|
|
|
-0.4 |
|
|
|
|
|
|
|
|
|
|
|
-0.6 |
|
|
|
|
|
|
|
|
|
|
|
-0.8 |
|
|
|
|
|
|
|
|
|
|
|
-10 |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
6 |
|
|
|
|
|
|
|
Время, с |
|
|
|
|
|
|
|
|
|
|
Спектр отфильтрованного сигнала |
|
|
|
|
||
0.03 |
|
|
|
|
|
|
|
|
|
|
|
0.025 |
|
|
|
|
|
|
|
|
|
|
|
0.02 |
|
|
|
|
|
|
|
|
|
|
|
|Y| 0.015 |
|
|
|
|
|
|
|
|
|
|
|
0.01 |
|
|
|
|
|
|
|
|
|
|
|
0.005 |
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
500 |
1000 |
1500 |
2000 |
2500 |
3000 |
3500 |
4000 |
4500 |
5000 |
|
|
|
|
|
|
Частота, Гц |
|
|
|
|
|
|
|
|
Рисунок 2.5 – Результат фильтрации |
|
|
|
|||||
Программа Matlab для фильтрации сигнала
% Фильтрация сигнала в среде Matlab:
data = load('fx.mat'); % считывание исходного сигнала из файла
s_in = data.fx; fd = data.fd;
k = load('b_filt.mat'); % весовые коэффициенты фильтра хранятся в векторе b_filt
s_out = функция фильтрации; % фильтрация исходного сигнала
Текст программы для фильтрации сигнала в среде Matlab и построение графиков на рисунке 2.5.
По спектру отфильтрованного сигнала определить значения
максимумов. Занести значения в таблицу 2.3.
Таблица 2.3 – Таблица гармоник отфильтрованного сигнала
№ |
Значение, Гц |
Амплитуда | | |
|
f1 |
|
|
|
f2 |
|
|
|
… |
|
|
|
fn |
|
|
|
|
|
13 |
|
3 Разработка алгоритма обнаружения сигнала
Алгоритм обнаружения сигнала основан на сравнении амплитуд спектральных составляющих отфильтрованного сигнала с пороговыми значениями (метод частотной выборки). Коэффициенты фильтра используются из п. 2.3. Пороговые значения задаются на основании результатов, полученных в п.2.3 (таблица 2.3). Для разработки алгоритма необходимо заполнить таблицу 3.1, где для каждой гармоники полезного сигнала указать значение порога и интервал поиска. Критерием обнаружения полезного сигнала будет одновременное наличие во всех интервалах спектральных
составляющих, удовлетворяющих заданному соотношению:
|
|
|
|
, |
(3.1) |
|
|
где: |
нижний порог; |
верхний порог; |
значение гармоники с |
||||
номером i. |
|
|
|
|
|
|
|
Значения и |
рассчитываются на основании значений таблицы 2.3: |
||||||
|
|
| | |
| |
| |
|
|
(3.2) |
где |
количество значений частот в таблице 2.3. |
|
|||||
Таблица 3.1 –Пороговые значения для поиска |
|
|
|||||
|
|
|
|
|
|
||
№ |
Центральная |
Интервал |
|
Пороговое |
Пороговое |
||
|
частота, Гц |
поиска, Гц |
|
значение | | |
значение | | |
||
|
|
|
|
|
|
|
|
f1 |
|
|
|
|
|
|
|
f2 |
|
|
|
|
|
|
|
… |
|
|
|
|
|
|
|
fn |
|
|
|
|
|
|
|
На рисунке 3.1 необходимо изобразить алгоритм обнаружения полезного сигнала на основе анализа амплитудного спектра. Алгоритм должен содержать все этапы обработки сигнала: считывание, фильтрацию, поиск максимумов в интервалах, принятие решения.
14
Начало
Конец
Рисунок 3.1 – Алгоритм обнаружения полезного сигнала Для оценки работоспособности алгоритма следует составить программу.
Текст программы для обнаружения полезного сигнала в среде Matlab.
Программа обнаружения сигнала тестируется на выборке фрагментов неизвестных сигналов. Результат проверки по всем фрагментам сводится в таблице 3.2.
Таблица 3.2 – Сводная таблица результатов тестирования алгоритма
Название |
Значения |
| | гармоник на |
|
|||
интервале |
|
|
|
Решение |
||
фрагмента |
|
|
|
|||
f1 |
f2 |
|
… |
fn |
|
|
|
|
|
||||
|
|
|
|
|
|
|
4 Разработка блок-схемы устройства цифровой обработки сигнала
Привести описание обобщенной блок-схемы системы цифровой обработки сигналов реального времени.
fвх (t) |
f (t) |
|
f |
(nT ) |
|
f ' (nT ) |
|
fкв (nTд ) |
|
fвых (t) |
||||||||||
|
|
|
|
|
|
|
ц |
д |
|
ц д |
|
|
|
|
|
|
|
|||
|
|
|
ФНЧ 1 |
|
|
АЦП |
|
|
|
ПЦОС |
|
|
|
ЦАП |
|
|
|
ФНЧ 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fд
Рисунок 4.1 – Блок-схема системы ЦОС
15