- •Исследование параметров случайного процесса
- •Расчет числовых характеристик
- •Спектральный анализ сигнала
- •Выбор метода предварительной обработки сигнала
- •Спецификация требований к фильтрам.
- •Вычисление коэффициентов фильтра.
- •2.3 Реализация фильтра в среде Matlab
- •Разработка алгоритма обнаружения сигнала.
- •4. Разработка блок-схемы устройства цифровой обработки сигнала
- •Расчет параметров аналого-цифрового тракта
- •Расчет объема внутренней памяти для хранения данных
- •Основные результаты и выводы:
Выбор метода предварительной обработки сигнала
На данном этапе задается тип фильтра (ФНЧ, ФВЧ, ПФ или РФ), нужная амплитудная характеристика и разрешенные допуски, частота дискретизации.
Спецификация требований к фильтрам.
Амплитудно-частотная характеристика полосового КИХ-фильтра задается следующими параметрами:
–
затухание
в полосе подавления;
–
неравномерность
в полосе пропускания;
ширина
полосы пропускания относительно
центральной частоты фильтра
;
– ширина полосы спада относительно граничной частоты среза фильтра. Расчет граничных частот фильтра выполняется по формулам (2.1-2.2)
,
(2.1)
,
(2.2)
где:
–
нижняя граничная частота полосы
пропускания;
–
верхняя
граничная частота полосы пропускания;
–
нижняя
граничная частота полосы подавления;
–
верхняя
граничная частота полосы подавления.
На основании формул (2.1-2.2) для каждой центральной частоты из таблицы 1.2 заполнить таблицу 2.1.
Таблица 2.1 – Частоты фильтра
Частота, Гц |
Полоса пропускания, Гц |
Полоса подавления, Гц |
|||
|
|
|
|
||
|
1488 |
1648 |
1398 |
1738 |
|
|
2024 |
2184 |
1934 |
2274 |
|
|
2654 |
2814 |
2564 |
2904 |
|
По формулам (2.3) рассчитаны отклонения в полосе пропускания δs, результаты занесены в таблицу 2.2.
(2.3)
Таблица 2.2– Значения отклонений в полосе пропускания и подавления
|
|
0.0839 |
1.0000e-003 |
Вычисление коэффициентов фильтра.
Стандартный КИХ-фильтр характеризуется
следующими уравнениями:
,
(2.4)
где h(k), k = 0,1,…, N-1 – коэффициенты импульсной
характеристики, N – длина фильтра, т.е.
число коэффициентов фильтра.
Наиболее распространенным
методом вычисления коэффициентов
КИХ-фильтра является оптимизационный
метод. Частотная характеристика
оптимального фильтра имеет равные
колебания в пределах полос пропускания
и подавления: в полосе пропускания
реальная характеристика осциллирует
между значениями
и
;
в полосе подавления – между 0 и
.
Расчет коэффициентов
КИХ-фильтра выполняется в среде Matlab
методом Парса-Мак Клелана (также можно
пользоваться методом Ремеза). Для расчета
необходимо сформировать вектор частотной
характеристики F, вектор
коэффициентов передачи A в
частотной области, вектор допустимых
отклонений D амплитудно-частотной
характеристики фильтра от заданной.
Вектор F формируется по
значениям из таблицы 2.1 в следующем
виде:
.
Вектор
коэффициентов передачи строится на
основе таблицы 1.2:
.
Вектор
коэффициентов отклонений строится
на основе таблицы 2.2:
.
Для
оценки требуемого порядка фильтра
в среде Matlab используется функция
firpmord.
Для синтеза фильтра используется
функция firpmord.
Текст программы Matlab для расчета коэффициентов фильтра и построения графиков на рисунке 2.2
clear;
clc;
As=60;
Ap=0.7;
dfp=80;
dfs=90;
fc1=1568;
fc2=2104;
fc3=2734;
flp1=fc1-dfp
flp2=fc2-dfp
flp3=fc3-dfp
fhp1=fc1+dfp
fhp2=fc2+dfp
fhp3=fc3+dfp
fls1=flp1-dfs
fls2=flp2-dfs
fls3=flp3-dfs
fhs1=fhp1+dfs
fhs2=fhp2+dfs
fhs3=fhp3+dfs
sgp=(10.^(Ap/20))-1
sgs=10.^(-As/20)
% Расчет коэффициентов фильтра в среде Matlab:
F = [fls1 flp1 fhp1 fhs1 fls2 flp2 fhp2 fhs2 fls3 flp3 fhp3 fhs3];
A = [0 1 0 1 0 1 0 ];
D = [sgs sgp sgs sgp sgs sgp sgs ];
[n, F0, A0, W] = firpmord(F, A, D, 44100);
b_filt = firpm(n, F0, A0, W);
xlim([0 10000])
% Построение графика АЧХ фильтра:
freqz(b_filt, 1, 1024, 44100);
xlim([0 10000])
set(gcf,'color','w')
% Сохранение коэффициентов фильтра:
save('b_filt.mat', 'b_filt');
Рисунок 2.2 – АЧХ и ФЧХ
фильтра
На рисунке 2.4 показана идеальная характеристика и результат расчета передаточной характеристики фильтра.
Для примера вектор F = [fls1 flp1 flp1 fhp1 fhp1 flp2 flp2 fhp2 fhp2 flp3 flp3 fhp3 fhp3 fhs3];
Af = [0 0 1 1 0 0 1 1 0 0 1 1 0 0];
fs – начальное значение; fe – значение частоты, превышающее значение fh.
% Построение характеристики фильтра в среде Matlab:
clc;
clear;
As=60;
Ap=0.7;
dfp=80;
dfs=90;
fc1=1568;
fc2=2104;
fc3=2734;
flp1=fc1-dfp;
flp2=fc2-dfp;
flp3=fc3-dfp;
fhp1=fc1+dfp;
fhp2=fc2+dfp;
fhp3=fc3+dfp;
fls1=flp1-dfs;
fls2=flp2-dfs;
fls3=flp3-dfs;
fhs1=fhp1+dfs;
fhs2=fhp2+dfs;
fhs3=fhp3+dfs;
in = load('b_filt.mat');
b_filt = in. b_filt;
Af = [0 0 1 1 0 0 1 1 0 0 1 1 0 0];
F = [fls1 flp1 flp1 fhp1 fhp1 flp2 flp2 fhp2 fhp2 flp3 flp3 fhp3 fhp3 fhs3];
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('Идеальный', 'Результат расчета');
xlim([0 5000])
Рисунок 2.4 – Характеристика
полосового фильтра
