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

 
 
 
Reply to this topicStart new topic
glb
сообщение Sep 18 2015, 16:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 28-08-15
Пользователь №: 88 193



Доброго времени суток. В ЦОС новичок, возникла необходимость установить в канале корректирующий фильтр, для выравнивания АЧХ ЦАП, решил воспользоваться методом частотных выборок опираясь на эту статью http://www.dsplib.ru/content/filters/fir/fir.html при расчете получаются комплексные коэффициенты ИХ. Нашел еще статью Прикрепленный файл  _______.pdf ( 467.92 килобайт ) Кол-во скачиваний: 641
, в ней говорится, что для получения их, при наличие только АЧХ можно воспользоваться следующей формулой, получаю ИХ состоящую из действительных коэффициентов, все бы хорошо, но при восстановлении АЧХ из ИХ получаю совсем не то что должно быть.. Долго бьюсь, но понимание так и не наступает.
прикладываю код в Matlab
Ts = 0.5e-6;%длительность сигнала
Fd = 720e5; %частота дискретизации
Ns = Fd*Ts;%количество отсчетов
f = 0:Fd/Ns:Fd-Fd/Ns;%вектор частот

%%
K=((sinc((f)/F_cap))); %АЧХ ЦАП
H=1./K; %АЧХ фильтра

%%
P=29; %порядок фильтра
N=P-1; %колтчестов отсчетов ИХ
alfa = (N-1)/2;
for n = 0:N-1
k = [1:N/2-1];
h(n+1) = (1/N)*(sum(2*abs(H(k+1)).*cos(2*pi.*k*(n-alfa)/N))+H(1));%формула из статьи
plot((abs(freqz((h),1,720000)))); %восстановленная АЧХ
end

Go to the top of the page
 
+Quote Post
glb
сообщение Sep 18 2015, 18:43
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 28-08-15
Пользователь №: 88 193



Если делать по алгоритму приведенном в ссылке, то выполняя пример как у них все получается как надо
R = [1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1];
for k = 0:15
if (k<N/2)
FI(k+1) = -(N-1)*pi*k/N;
else
FI(k+1) = -(N-1)*(k-N)*pi/N;
end
end
K = H.*exp(j*FI);

Однако, если изменить АЧХ на ту которая нужна 1/sinc(x), и оставить длину ИХ 16, опять импульсная характеристика получается комплексная
Go to the top of the page
 
+Quote Post
stealth-coder
сообщение Sep 20 2015, 12:58
Сообщение #3


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

Группа: Участник
Сообщений: 112
Регистрация: 27-12-08
Пользователь №: 42 786



АЧХ и ИХ связаны между собой через преобразование Фурье.
Для получения АЧХ из ИХ нужно выполнить преобразование Фурье, результат комплексный, т.к. содержит не только АЧХ, но и ФЧХ. Для выделения АЧХ надо получить амплитудный спектр (корень квадратный из суммы квадратов действительной и мнимой частей).
Go to the top of the page
 
+Quote Post
glb
сообщение Sep 25 2015, 13:27
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 28-08-15
Пользователь №: 88 193



Цитата(stealth-coder @ Sep 20 2015, 16:58) *
АЧХ и ИХ связаны между собой через преобразование Фурье.
Для получения АЧХ из ИХ нужно выполнить преобразование Фурье, результат комплексный, т.к. содержит не только АЧХ, но и ФЧХ. Для выделения АЧХ надо получить амплитудный спектр (корень квадратный из суммы квадратов действительной и мнимой частей).



С этим все понятно, я не об этом спрашиваю, у меня в импульсной характеристики получились комплексные коэффициенты.
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 25 2015, 15:05
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(glb @ Sep 25 2015, 16:27) *
С этим все понятно, я не об этом спрашиваю, у меня в импульсной характеристики получились комплексные коэффициенты.


Для того, чтобы ИХ перестала быть комплексной требуется, чтобы реальная часть передаточной характеристки была четной, а мнимая - нечетной функцией от частоты. В этом стоит убедиться перед тем, как сделали обратное преобразование Фурье.
Go to the top of the page
 
+Quote Post
glb
сообщение Sep 25 2015, 16:07
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 28-08-15
Пользователь №: 88 193



Цитата(andyp @ Sep 25 2015, 19:05) *
Для того, чтобы ИХ перестала быть комплексной требуется, чтобы реальная часть передаточной характеристки была четной, а мнимая - нечетной функцией от частоты. В этом стоит убедиться перед тем, как сделали обратное преобразование Фурье.


АЧХ имеет вид sinc(x), значит она нечетна и ИХ будет только комплексной?
Go to the top of the page
 
+Quote Post
andyp
сообщение Sep 25 2015, 16:29
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(glb @ Sep 25 2015, 19:07) *
АЧХ имеет вид sinc(x), значит она нечетна и ИХ будет только комплексной?


>> ifft(ifftshift(sinc(-3:0.5:3)))
ans =

Columns 1 through 4:

0.16181 + 0.00000i 0.14505 - 0.00000i 0.16662 + 0.00000i 0.11143 - 0.00000i

Columns 5 through 8:

-0.00573 - 0.00000i 0.00241 + 0.00000i -0.00068 + 0.00000i -0.00068 - 0.00000i

Columns 9 through 12:

0.00241 - 0.00000i -0.00573 + 0.00000i 0.11143 + 0.00000i 0.16662 - 0.00000i

Column 13:

0.14505 + 0.00000i

вполне себе действительная (мнимая часть ~ 3e-18)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 09:54
Рейтинг@Mail.ru


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