реклама на сайте
подробности

 
 
> КИХ и Матлаб, Знакомлюсь со средством
Мусатов Констант...
сообщение Apr 2 2011, 12:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 10-10-06
Пользователь №: 21 172



Разбирая алгоритмы, предоставляемые Матлабом по теме FIR, не смог найти нужную функцию.
Есть некий фильтр, заданный по контрольным точкам с амплитудой и фазой.
Код
Fo=192000/128;
F=[0   ,10  ,15 , 20,30 ,40 ,50 ,60 ,80 ,100,150,200,250,300,350,Fo/2];
A=[-200,-100,-20, -3,0  ,0  ,0  ,  0, 0 , 0 , -6,-100,-130,-160,-190,-200];
P=[0,10 ,15, 20, 40,80 ,130,160,200,240,310,330,340,350,355,360];

привел его к нормальной комплексной форме.
Код
RealA=times(power(10,A/20),cosd(P));
ImgA=times(power(10,A/20),sind(P));
H=complex(RealA,ImgA);
Fn=times(F,2/Fo);

Нужно построить оптимальный FIR фильтр. Нашел функцию fir2, она согласилась принять задачу
Код
B=fir2(1024,Fn,H);
fvtool(B,1);

Однако, в результате, фаза не такая, как я просил, а линейная в полосе пропускания. Есть ли способ построить фильтр и с заданной ФЧХ?
Думал уже пойти напрямую, через FFT, но не смог пока сгладить АФЧХ и отсемплировать ее, перед тем как провести FFT
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Мусатов Констант...
сообщение Jul 2 2011, 21:51
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 10-10-06
Пользователь №: 21 172



Вот итоговый вариант с сохранением коэффициентов
Код
Fs=192000/256; % Частота и дециматор

N=512; % Длина
% Частоты
F=[1e-12   ,10   , 20,30 ,40 ,50 ,60 ,80 ,100,125, 150,160,Fs/2-1];
% Амплитуды в дБ
A=[-200,-200, 0,0  ,0  ,0  ,  0, 0 , 0 , -1, -6,-200,-200];
% Фазы в градусах с приведением на ВЧ к 0 (нормировка задержки)
P=[0   ,5  , 90, 180,39 ,13,0,-10,-150,-27,-10,0, 0];
%P=[0,0,0,0,0,0,0,0,0,0,0,0,0];

P = P * pi / 180  - (F * 2 * pi ); % перевод в радианы и добавка линии
An=power(10,A/20); % перевод в абсолютные значения усиления

% Таблица частот
Fi=freqspace(N,'whole');
Fi=times(Fi,Fs/2);
% Удвоенные частоты для вещественной функции
Ft=horzcat(F, flipdim(-F + Fs ,2));
% Меняем знак фазы
Pt=horzcat(P, flipdim(-P,2));
% Амплитуду не трогаем
At=horzcat(An, flipdim(An,2));
% Интерполяция амплитуды и фазы
Pi=interp1(Ft,Pt,Fi,'cubic');
Ai=interp1(Ft,At,Fi,'cubic');
% Комплексный коэффициент передачи
Ro=complex(times(Ai,cos(Pi)),times(Ai,sin(Pi)));
% Обратное преобразование Фурье
Ti=Ro*conj(dftmtx(length(Ro)))/length(Ro);
% Берем реальную часть фильра
Bi=real(Ti);
% Оконная функция
%Ok = rot90(kaiser(length(Ro),0.5));
%Bi=times(Ok,Bi);
fvtool(Bi,1);
%y=wavread('d:\test.wav','double');
%y=filter(Bi,1,y);
%wavwrite(y,48000,24,'d:\resp.wav');
fid = fopen( 'D:\WORK\Matlab\Prj1\Sub.dat', 'w');
fprintf( fid, '%e,\r\n', Bi );
fclose(fid);
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Мусатов Константин   КИХ и Матлаб   Apr 2 2011, 12:49
- - Мусатов Константин   Если кому интересно, решение получено. Первичная ...   Apr 3 2011, 23:28
- - Чиповод   Еще в matlab есть функции fdesign.arbmag и fdesign...   Apr 13 2011, 08:41
- - Мусатов Константин   У меня функция свободного построения фильтра после...   Apr 13 2011, 21:36
- - Мусатов Константин   Возник еще один вопрос. Если я создаю Fir фильтр в...   Jun 19 2011, 10:26
|- - Mad_max   Цитата(Мусатов Константин @ Jun 19 2011, 14...   Jun 24 2011, 07:51
|- - qxov   Цитата(Mad_max @ Jun 24 2011, 11:51) Как-...   Jun 24 2011, 08:53
- - bahurin   если задана АЧХ и даже задана ФЧХ, то расчет ких ф...   Jun 24 2011, 10:52
- - bahurin   если задана АЧХ и даже задана ФЧХ, то расчет ких ф...   Jun 24 2011, 10:52
- - bahurin   если задана АЧХ и даже задана ФЧХ, то расчет ких ф...   Jun 24 2011, 10:54
- - Мусатов Константин   Отвалился на некоторое время от темы, потому не ре...   Jul 2 2011, 18:48
- - mml   Пробовал воспользоваться приведенным здесь примеро...   Dec 16 2012, 11:08


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 13:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016