- •Содержание:
- •Задание
- •1. Генерация входной последовательности.
- •Реальный сигнал
- •Теоретическое введение
- •2.1 Цифровые фильтры и их свойства.
- •2.2 Свойства цифровых фильтров.
- •2.3.1 Аналоговые фильтры-прототипы.
- •2.3.2 Фильтры Баттерворта.
- •3. Генерация входной последовательности сигнала
- •3.1 Полигармонический сигнал и случайный шум.
- •Реальный сигнал
- •4. Реализация спектрального анализа с использованием бпф
- •Xlabel('Частота (Гц)');
- •Xlabel('Частота (Гц)');
- •Xlabel('Частота (Гц)');
- •Xlabel('Частота (Гц)');
- •5. Проектирование и реализация цф
- •Xlabel('Частота (Гц)');
- •Xlabel('Частота (Гц)');
- •Xlabel('Частота (Гц)');
- •6. Вывод
- •7. Приложение
5. Проектирование и реализация цф
Код для реализации фильтра низких частот по приведенной в теории методике показан ниже.
Wp = 0; % частота среза, Гц
Ws = 35; % частота полосы задержки, Гц
Rp = 3; % затухание в полосе пропускания, dB
Rs = 20; % затухание в полосе задержки, dB
[b,a] = butter(4,(Ws/Fs)*2);
[H,w] = freqz(b,a,n,Fs);
clf,plot (w,abs(H));
grid on;
axis ([0 90 0 1]);
ylabel('Амплитуда');
Xlabel('Частота (Гц)');
title('АЧХ');
Из графика видно, что низкочастотный фильтр реализован.
Теперь проведем фильтрацию заданных сигналов.
y3 = filter(b,a,y1);
y4 = filter(b,a,y2);
clf,plot(t,y3);
grid on;
xlabel('В р е м я (с е к)');
ylabel('А м п л и т у д а');
title('Полигарм. сигнал после фильтрации');
На графике представлен полигармонический сигнал после фильтрации.
Чтобы определить частотный спектр отфильтрованного сигнала снова проведен спектральный анализ.
Fy3 = fft(window.*y3);
Fy3 = Fy3(1:n/2);
clf, plot(step,abs(Fy3));
grid on;
ylabel('Величина');
Xlabel('Частота (Гц)');
title('Спектр отфильтрованного сигнала.');
Проведем те же действия с реальным сигналом.
clf,plot(t,y4);
grid on;
xlabel('В р е м я (с е к)');
ylabel('А м п л и т у д а');
title('Реальный сигнал после фильтрации');
На верхнем графике представлен реальный сигнал после фильтрации, на нижнем графике его спектр.
Fy4 = fft(window.*y4);
Fy4 = Fy4(1:n/2);
clf, plot(step,abs(Fy4));
grid on;
ylabel('Величина');
Xlabel('Частота (Гц)');
title('Спектр отфильтрованного сигнала.');
6. Вывод
Поставленная цель курсовой работы решена. Проанализировав графики спектральной функции можно заметить разницу между реальными и известными не зашумленными сигналами. По графику спектральной функции полигармонического сигнала можно четко определить его частотные составляющие, когда как по реальному сигналу однозначно сделать этого нельзя.
По графику АЧХ фильтра можно определить, что низкочастотный фильтр реализован, на низких частотах амплитуда гораздо больше, нем на высоких.
Если провести перпендикуляр на ось частот графика АЧХ в точке соответствующей 0,707 амплитуды, то мы как раз попадем на заданную частоту среза нашего фильтра. Это подтверждает, что реализован именно заданный фильтр.
7. Приложение
Используемые функции MatLab:
1. FILTER
Цифровой фильтр.
Y = FILTER(B, A, X) фильтрует данные вектора X с фильтром, описанном векторами A и B для создания фильтрованных данных Y. Фильтр - реализация "Direct Form II Transposed" ("Форма 2 прямого преобразования") стандартного разностного уравнения:
y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)
2. FREQZ
Фильтр цифрового Z-преобразования частоты ответа.
Когда N целое, [H,W] = FREQZ(B,A,N) возвращает N-точечную частоту в векторе W в радианах и N-точечную комплексную частоту отклика в векторе H фильтра B/A:
-1 -nb
jw B(z) b(1) + b(2)z + .... + b(nb+1)z
H(e) = ---- = ----------------------------
A(z) -1 -na
1 + a(2)z + .... + a(na+1)z
даёт числитель и знаменатель коэффициентов в векторах B и A. Частота отклика оценивается в N точках одинаково расположенных интервалов верхней половины единичной окружности. Если N не определено, то по умолчанию = 512.
3. BUTTER
Проектирование цифрового и аналогового фильтра Баттерворта.
[B,A] = BUTTER(N,Wn) проектирует аналоговый НЧ Бесселя фильтр N-го порядка и возвращает коэффициенты фильтра в векторах B и A длиной N+1. Вырезаемая частота Wn должна быть 0.0 < Wn < 1.0, с 1.0 соответствующий половине заданной нормы. Если Wn - двухэлементный вектор, Wn = [W1 W2], BUTTER возвращает полосовой фильтр 2N порядка с полосой пропускания W1 < W < W2.
[B,A] = BUTTER(N,Wn,'high') проектируется ВЧ фильтр.
[B,A] = BUTTER(N,Wn,'stop') - bandstop (с полосой не пропускания) фильтр, если Wn = [W1 W2].
4. FFT
ДПФ (дискретное преобразование Фурье).
FFT(X) - ДПФ вектора X. Если длина X - два, то быстрое основание системы счисления -2 и используется алгоритм БПФ (быстрое ДПФ). Если длина X не два, то используется более медленный алгоритм, который сходится медленнее, чем БПФ. FFT(X,N) - N-точечное FFT, дополненное нулями, если X меньше, чем N точек, и обрезанное, если их больше.
Если X - матрица, то операция FFT выполняется для каждого столбца.
5. IFFT
Обратное дискретное преобразование Фурье (ОДПФ).
IFFT(X) - ОДПФ вектора X.
IFFT(X,N) - N-точечное преобразование.
