- •1. Спектральный анализ
- •Freqz – частотная характеристика цифрового фильтра.
- •Окно Чебышева
- •Окно Ханнинга
- •Свойства цифровых фильтров
- •Представление цифрового фильтра в виде разностного уравнения
- •Бих-фильтры. Методы синтеза
- •Обобщенное окно Хэмминга
- •Проектирование бих-фильтров fir1 – фильтр fir проектируется с использованием метода окна:
- •Filter – цифровой фильтр:
- •3. Генерация входной последовательности сигнала
- •4. Реализация спектрального анализа с использованием бпф
- •5. Проектирование и реализация цф
- •6. Вывод
Обобщенное окно Хэмминга
Формула обобщенного окна Ханнинга имеет вид
причем, лежит в пределах 0£a£1. Случай= 0.5 соответствует окну Ханнинга.
Проектирование бих-фильтров fir1 – фильтр fir проектируется с использованием метода окна:
B = FIR1(N,Wn) проектирует НЧ цифровой фильтр FIR N-го порядка и возвращает коэффициенты в векторе B длиной N + 1. Частота среза Wn должна быть между 0 < Wn < 1.0, с 1.0 соответствует половине частоты дискретизации.
Если Wn – двухэлементный вектор, Wn = [W1 W2], FIR1 возвращает полосовой фильтр порядка N с полосой W1 < W < W2. B = FIR1(N,Wn,'high') проектирует ВЧ-фильтр. B=FIR1(N,Wn,'stop') проектирует фильтр с полосой задержки, если Wn = [W1 W2]. Для высокочастотных и фильтров с полосой задержки N должно быть четным.
По умолчанию FIR1 использует окно Хэмминга. Другие представленные окна, включая прямоугольное (Boxcar), Хэмминга, Бартлетта, Блэкмана, Кайзера и Чебышева (Chebwin), могут быть определены с помощью необязательных аргументов. Например, B=FIR1(N,Wn,bartlett(N+1)) использует окно Бартлетта. B=FIR1(N,Wn,'high',chebwin(N+1,R)) использует окно Чебышева.
Filter – цифровой фильтр:
Y = FILTER(B, A, X) фильтрует данные вектора X с фильтром, описанным векторами A и B для создания фильтрованных данных Y. Фильтр – реализация прямой формы 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);
[Y, Zf] = FILTER(B,A,X,Zi) дает доступ к начальному и конечному состояниям задержек Zi и Zf.
3. Генерация входной последовательности сигнала
1. Сигнал составленный из подпоследовательностей различной частоты (3, 7, 10, 25Гц) с равным числом периодов задания подпоследовательностей сигнала
Сгенерируем сигнал составленный из подпоследовательностей различной частоты (3, 7, 10, 25Гц) с равным числом периодов задания подпоследовательностей сигнала с помощью средств программы MatLab и построим график полученного сигнала:
Fs=128; % частота дискретизации
T=4; % время реализации
n=512; % длина реализации
indx=(0:n-1); % вектор целых чисел от 0 до 511
% генерация входной последовательности сигнала
A=500; % амплитуда
t1=(0:127)/Fs; % интервал реализации для 1 подпоследовательности
t2=(128:255)/Fs; % интервал реализации для 2 подпоследовательности
t3=(255:384)/Fs; % интервал реализации для 3 подпоследовательности
t4=(385:511)/Fs; % интервал реализации для 4 подпоследовательности
y1=A*sin(3*t1*2*pi); % 1 подпоследовательность
y2=A*sin(7*t2*2*pi); % 2 подпоследовательность
y3=A*sin(10*t3*2*pi); % 3 подпоследовательность
y4=A*sin(25*t4*2*pi); % 4 подпоследовательность
t=[t1 t2 t3 t4]; % шаг дискретизации
y=[y1 y2 y3 y4]; % входной сигнал
figure(1);
clf, plot(t,y);
grid on;
ylabel('Amplitude (mkV)');
xlabel('Time');
title('Input signal');
Реальный сигнал
Введем реальный сигнал из файла. Но в связи с тем, что реальный сигнал в файле записан с частотой 256Гц (а это в два раза больше используемой нами частотой), то значения будут считываться из файла через одно.
% реальный сигнал
fid=fopen('C:\Documents and Settings\Dinara\Рабочий стол\ЦОС\kursov\Signal.D05','r');
yf=fread(fid,n,'bit16',16);
fclose(fid);
figure(2);
clf,plot(t,yf);
grid on;
ylabel('Amplitude (mkV)');
xlabel('Time');
title('Real signal');