общие вопросы по ЦФ

Все что касается фильтрации
Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 942
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: общие вопросы по ЦФ

Сообщение Бахурин Сергей »

покажите код как считаете эту картинку из импульсной характеристики

eiyawii
Сообщения: 60
Зарегистрирован: 20 окт 2011, 07:38

Re: общие вопросы по ЦФ

Сообщение eiyawii »

Бахурин Сергей писал(а):покажите код как считаете эту картинку из импульсной характеристики

Код: Выделить всё

xa=sp.arange(0,3.14,0.00001)
f=0
q=0
while q<(n+2)/2:
	f+=2*sn[q]*np.cos(xa*(n+1-q*2))
	q+=1

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 942
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: общие вопросы по ЦФ

Сообщение Бахурин Сергей »

eiyawii писал(а):

Код: Выделить всё

xa=sp.arange(0,3.14,0.00001)
f=0
q=0
while q<(n+2)/2:
	f+=2*sn[q]*np.cos(xa*(n+1-q*2))
	q+=1
1. Где расчет самой |H(w)|?
2 что такое f и q?
3 почему q инкрементируется и откуда вы решили взять коэффициент 2 в строке f+=2*sn[q]*np.cos(xa*(n+1-q*2))?

eiyawii
Сообщения: 60
Зарегистрирован: 20 окт 2011, 07:38

Re: общие вопросы по ЦФ

Сообщение eiyawii »

Бахурин Сергей писал(а):1. Где расчет самой |H(w)|? 2 что такое f и q? 3 почему q инкрементируется и откуда вы решили взять коэффициент 2 в строке f+=2*sn[q]*np.cos(xa*(n+1-q*2))?
Извините, не подумал написать что к чему.

1.f+=2*sn[q]*np.cos(xa*(n+1-q*2)) - это и есть abs(H(w)). Это тоже самое что и
и на синусы не умножаю, потому что мнимая часть частотной характеристики равна нулю.

2. f - значение функции АЧХ, где аргументом выступает массив xa. q - это номер индекса элемента в массиве(списке) sn, сам же этот список представляет собой последовательность коэффициентов фильтра(число коэффициентов четное). Соответственно инкрементируется, потому что в цикле перебираем коэффициенты фильтра.

3. Так как фильтр симметричный, то вычисление произведения одинаковых коэффициентов на косинусы можно сделать для одной половины фильтра, а потом умножить на 2, отсюда и коэффициент 2 в строке f+=2*sn[q]*np.cos(xa*(n+1-q*2)).

в прошлом посте немного не ту импульсную характеристику запостил(с нечетным числом коэффициентов), вот на самом деле какая она:
Изображение

eiyawii
Сообщения: 60
Зарегистрирован: 20 окт 2011, 07:38

Re: общие вопросы по ЦФ

Сообщение eiyawii »

c *лапшой* разобрался. считаю что такой вид из-за ошибок округления и прочего подобного. если увеличить точность, то отчасти этот эффект пропадет, но я еще не проверял, пока не разобрался как увеличить точность.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 942
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: общие вопросы по ЦФ

Сообщение Бахурин Сергей »

eiyawii писал(а): на синусы не умножаю, потому что мнимая часть частотной характеристики равна нулю.
Я думаю что в этом кроется ваша ошибка. Я уверен, что

Это не верно :!:
Вот например скрипт для gnu octave (также будет работать и на матлабе) который доказывает нельзя принебрегать мнимой частью

Код: Выделить всё

clear all
N = 16;
#импульсная характеристика
h0 = hamming(N)';
h = h0(1:8);
h = [h fliplr(h)];
figure; plot(h,'-o')
#считаю комплексный к-т передачи заданного фильтра
w = 0:0.01:2*pi;

H = zeros(1,length(w));
for n = 0:length(h)-1
	H = H+h(n+1)*cos(n*w)-j*h(n+1)*sin(n*w);
endfor;

#вывожу на график реальную (синий) и мнимую части (зеленый) H(jw) и АЧХ (красный)
figure; plot(w,real(H),w,imag(H),w, abs(H)); legend('real', 'imag', 'abs');

В моем коде h - импульсная характеристика симметричная и имеет вид как показано ниже на верхнем графике. На втором графике показана реальная и мнимая часть H(jw) и хорошо видно что мнимая часть не равна нулю (зеленый график) так что игнорировать ее нельзя.
результат работы программы
результат работы программы
1.png (12.23 КБ) 6344 просмотра

eiyawii
Сообщения: 60
Зарегистрирован: 20 окт 2011, 07:38

Re: общие вопросы по ЦФ

Сообщение eiyawii »

Бахурин Сергей писал(а):Я думаю что в этом кроется ваша ошибка. Я уверен, что
\sum_{n=0}^{N-1} {b(n) \cdot sin(n \cdot w)} = 0
Это не верно
В вашем случае это неверно, так как период частотной характеристики у вас , в моем случае период чх равен , поэтому мнимая частотная характеристика равна нулю.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 942
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: общие вопросы по ЦФ

Сообщение Бахурин Сергей »

eiyawii писал(а): В вашем случае это неверно, так как период частотной характеристики у вас , в моем случае период чх равен , поэтому мнимая частотная характеристика равна нулю.
:o понимаете у вас ких фильтр задан импульсной характеристикой и его чх периодическая с периодом 2*pi.
Вы никак не сделаете чтобы она стала с периодом pi. Почему вы решили что она с периодом pi?

eiyawii
Сообщения: 60
Зарегистрирован: 20 окт 2011, 07:38

Re: общие вопросы по ЦФ

Сообщение eiyawii »

ну дело в том, что ачх сравни фильтру с равновеликими коэффициентами. если взять действительную частотную характеристику, то можно наблюдать главный лепесток в 0, pi, 2*pi, но лепесток в точке pi будет перевернут вниз. то есть конечно да, период ачх 2*pi, но если взять модуль ДЧХ, то картинка предстаёт в таком виде, что период равен pi

eiyawii
Сообщения: 60
Зарегистрирован: 20 окт 2011, 07:38

Re: общие вопросы по ЦФ

Сообщение eiyawii »

так, надо точно мне понять. ачх я могу построить используя это выражение:
Изображение

сейчас понял что в моём построении был просчет, но он не сильно меняет ситуацию. и еще - реально(насколько реально) ли построить цифровые фильтры с подавлением в 500 и более децибел в полосе среза? и сколько я не искал, не смог найти статьи/книги, в которых синтезировались фильтры более 150 дБ. можете подсказать где посмотреть фильтры с высоким коэффициентом подавления?

Ответить