На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 64,
участников - 1 [ muha131]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Программное обеспечение —› Расчет КИХ-фильтров (рабочие исходники, алгоритмы) 
Си-Би радиостанции в нашем магазине: Alan и Midland, Alinco, Intek, MegaJet, President, Yosan, Беркут, Таис


Alan 48 Excel
руб.

Alinco DR-135CBA New
руб.

MegaJet MJ-3031M Turbo
руб.

President Harry III ASC
руб.

Yosan Stealth 5
руб.
 Страница:  ««  1  2Поиск в теме
Автор Сообщение
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 09 Ноя 2010 20:22:23 #  

sea Блин. Что-то никак. Наверное надо диплом вернуть сходить ((( Неа, сделать нужно так как сказано. :) По поводу нормирования. :) Получается 0,98082064161642 И? Типо вас это устраивает? Должно быть 1!. Если поделить кажный на сумму, то не "почти ничего не меняется", а будет так как должно, а не как вышло. Что ж мешает вам после нормирования вычесть все значения из еденицы и получить нормал ФВЧ? К стати с нормированием ньаюнсы могут быть при антисимметричных КИХах, но решается всё оно ессно без проблем.
RU3XN
Участник
Offline1.0
с ноя 2010
Калуга
Сообщений: 3

Дата: 09 Ноя 2010 20:23:37 #  

sea
а где в формуле
filtr_arr[j+i]:=sin(2*pi*i*Fc) / ((i)*pi);
порядок фильтра?
Реклама
Google
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 09 Ноя 2010 21:14:23 #  

Mesh

Л.Рабинер, Б.Гоулд.
Теория и применение цифровой обработки сигналов. стр.97
http://lord-n.narod.ru/walla.html#RabinerGoldDSP

На вскидку программы под рукой отказались рассчитывать КИХ ФВЧ фильтр с симметричной импульсной характеристикой с чётным количеством коэффициентов, оно и понятно ;)

Верно на счёт задержки для фильтров с чётным количеством коэффициентов и симметричной ИХ, задержка получается кратной половине дискрета. Вот теперь смотрите как нам из симметричного ФНЧ с чётным количеством коэффициентов получить симметричный ФВЧ с чётным количеством коэффициентов, нужно сигнал с выхода ФНЧ вычесть из сигнала на входе ФНЧ задержанного на задержку в ФНЧ, а она дробная! Дробную задержку кратную половине дискрета мы можем получить только ФНЧ фильтром с чётным количеством коэффициентов, таким образом мы всегда будем иметь завал у полученного ФВЧ фильтра при приближении к половине частоты дискретизации, и чем меньше порядок фильтра с помощью которого мы компенсируем дробную задержку тем раньше у нас завал будет наблюдаться. Совершенно иная картина с ФНЧ с нечётным количеством коэффициентов, нужно вычитать из сигнала задержанного на целое количество дискретов, завала в принципе нету, так как задержка на целое количество отсчётов все частоты одинаково пропускает.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 09 Ноя 2010 21:31:12 #  

petr0v оно и понятно ;) Гм, не знаю, мне например непонятно. :) Нужны примеры. Так всё это гурманские изыскания. Проблема чёт не чёт да действительно существует и с най я знаком. Проблема кривизны ФВЧ как такового в зааисимости от количества отсчётов мне неизнвестна. Хочу видеть практикал резалты. :) Вобще страно всё как-то. Границы Котельникова Найквиста есть теоритические точки, где всё пучкам только в теории. По этой причине никто никогда не делает частоту дискрета строго равной удвоеной максимаольной частоте сигналкков. Практические фильтры тем боле КИХ не обладают асболютными параметрами и не могут ими обладать по определению. И дискрет всегда в нормальных разработках берётся чуть выше теоритического предела. Это то ж написано в книгах. Нужны доки, что это всё не карсивая легенда теортических казусов, а реально меншающая жить. Вот на это хочется посмтореть. :)
sea
Участник
Offline3.3
с авг 2006
Ярославль
Сообщений: 832

Дата: 09 Ноя 2010 21:38:28 · Поправил: sea (09 Ноя 2010 21:43:36) #  

И? Типо вас это устраивает? Должно быть 1!.
Нет. Не устраивает. Я в пределах своих возможностей стараюсь сделать идеально.
Потому что в итоге может получиться хуже. Зачем заранее занижать результат?

Сумму посчитал. Каждый поделил на нее. Еще раз посчитал сумму - стало 1.
ФНЧ работал и работает как с нормированием, так и без.

Порядок фильтра - 31.
Коэффициенты (после нормирования):
k[0]=0
k[1]=-0,00890194908359772
k[2]=-0,0176235611952719
k[3]=-0,0247975456259727
k[4]=-0,02907739246961
k[5]=-0,0293061902852405
k[6]=-0,0246729856733806
k[7]=-0,0148365818059962
k[8]=-2,36443290643236E-21
k[9]=0,019075605179138
k[10]=0,0411216427889677
k[11]=0,0644736186275291
k[12]=0,0872321774088299
k[13]=0,107456031045882
k[14]=0,123364928366903
k[15]=0,133529236253966
k[16]=0,137023983852111
k[17]=0,133529236253966
k[18]=0,123364928366903
k[19]=0,107456031045882
k[20]=0,0872321774088299
k[21]=0,0644736186275291
k[22]=0,0411216427889677
k[23]=0,019075605179138
k[24]=-2,36443290643236E-21
k[25]=-0,0148365818059962
k[26]=-0,0246729856733806
k[27]=-0,0293061902852405
k[28]=-0,02907739246961
k[29]=-0,0247975456259727
k[30]=-0,0176235611952719

А. Похоже дошло. С индексами ошибся.
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 09 Ноя 2010 21:41:26 #  

Mesh

Вы опять не про то, никто не заставляет впритык дисктретизировать сигнал на удвоенной верхней, но ФВЧ с линейной ФЧХ и чётным количеством коэффициентов вы не получите. Пример можно сделать вручную, но причина этого явления сразу становится очевидна при переходе от ФНЧ прототипа к ФВЧ, фактически мы сами этот завал контролируем при переходе.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 09 Ноя 2010 21:46:42 #  

sea Гм, да оно всё рвботает. :) Только в одном случае оно работает так как оно сложилось там где-то почему-то, а в другом так как надо, и что не маловажно, вы в этом уверены. :) А до нормирования, вы думаете что уверены в чём-то, но это не так. :) И таких подстав будет сплошь и рядом, пока не выработается у вас привычка чекить всё подряд, даже то, что вроде чекить и не нужно. А нужно, ой как нужно. Иначе Васьки, "открытия", хобота, и весь комплекс дежурных и уже тут виденых проблем гарантирован. :)
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 09 Ноя 2010 21:50:16 #  

petr0v Пример можно сделать вручную Сделайте и покажите это наглядно. Плз. Покажите, что КИХ ФВЧ такой-то обладает нелинейной ФЧХ, Зачем так много слов? Сигналик, было, стало. Вот другой ФВЧ было, стало. Всё понятно, наглядно, убедительно. :)
sea
Участник
Offline3.3
с авг 2006
Ярославль
Сообщений: 832

Дата: 09 Ноя 2010 21:55:35 · Поправил: sea (09 Ноя 2010 21:58:48) #  

Ну. У меня пока еще не работает (ФВЧ).
Я тоже уверен, что с ФНЧ мне повезло, что оно заработало.
Просто там не особо критично, видимо, к моим ошибкам. Индекс на один смещен или еще что.
ФВЧ работает даже если я из 31 коэффициента только 18 оставлю, но это все не научно...

А пока буду дальше пытаться найти ошибку у себя. А вы нам, молодежи, помогайте. Для меня ЦОС -непривычное дело, поэтому и ошибки могут быть детские. Способы поиска ошибок пока не наработаны. В том направлении, где я по программерски тружусь - ошибки видны сразу. А тут сразу и не увидать. К примеру, ФНЧ давал верную картинку, а в нем все равно была ошибка.

upd. это коэффициенты и получившиеся графики.
http://www.radioscanner.ru/uploader/2010/fir_delphi.xls
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 09 Ноя 2010 22:03:57 #  

Mesh

Просто у вас тут принят странный способ моделирования ЦОС, через какое-то подобие кулэдита доморощенного, ну приведу я вам скрины АЧХ фильтров в матлабе, вы скажете не верю и про шерсть на рыбе. Давайте вы приведёте пример коэффициентов ФВЧ с симметричной ИХ и чётным количеством, например всё что до четверти частоты дискретизации давит, всё что выше пропускает, не длинный на пару-тройку десятков коэффициентов, и все желающие смогут посмотреть его АЧХ, ФВЧ это или полосовой по сути получается.
sea
Участник
Offline3.3
с авг 2006
Ярославль
Сообщений: 832

Дата: 09 Ноя 2010 22:12:06 #  

petr0v
Л.Рабинер, Б.Гоулд.
Теория и применение цифровой обработки сигналов. стр.97
http://lord-n.narod.ru/walla.html#RabinerGoldDSP

Кстати, интересная книга. И программы, как я понял, с примерами есть.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 09 Ноя 2010 22:18:23 #  

petr0v Это простите у вас тут странный способ доказательств. Мне не нужны голые скрины, мне нужен исходный сигналик, сигналик убитый кривым ФВЧ. Сигналки не убитый нормал ФВЧ и параметры этих ФВЧ, типо какая длина, частота среза и всё такое, что б я мог это всё повторить. А скрины чего вы тут положите ворованного Матлаба или купленого мне всё равно. Меня интересуют не скрины, а матерьял. И больше всего меня интересует, ваша фраза что это реальная проблема. :) Вот я и хочу видеть, насколько она реальная, и сдаётся мне, что она иррелаьная. Но это нужно видеть. Може и не прав. Я приводить примерв ничего пока не буду, потому что не знаю или не понимаю, о чём вы вообще, и хочу это увидеть на реальном матеряале.
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 09 Ноя 2010 22:18:24 #  

sea

Ну вы даёте, лучшее из лучших, вряд ли найдётся специалист по ЦОС который не читал эту книгу.
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 09 Ноя 2010 22:23:54 #  

Mesh

что она иррелаьная

И Рабинер с Голдом нам не указ :) Попробую попозже показать как-нибудь более доходчиво, неохота с WAV файлами связываться, лишние заморочки к задаче отношения не имеющие.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 09 Ноя 2010 22:32:05 #  

petr0v нам не указ :) Кому нам? :) Вам не знаю, по мне хорошая книжка как учебник. Как указ или нет не знаю. Не заню. :) неохота с WAV файлами связываться А их особо никто и не просил. Ложите raw дату, каки проблемы-то? Дискрет и разрядность только говорите.
sea
Участник
Offline3.3
с авг 2006
Ярославль
Сообщений: 832

Дата: 10 Ноя 2010 00:50:12 #  

В общем сверял значение коэффициентов полученных мной с коэффициентами программы ScopeFIR.

Фильтры считал 31 порядка. Тип WindowedSinc тип окна - none. То, что надо. До окон еще...

Результаты такие:

ФНЧ - коэффициенты расчитанные мной ПОЛНОСТЬЮ совпадают с коэффициентами ScopeFIR.
мой результат - имеется в виду после нормирования, когда сумма = 1. До нормирования было sum=0,904128261941801. Соответственно на нее и делил.

ФВЧ - коэффициенты считал так, как посоветовал RU3XN ( 1) меняем арифметические знаки всех коэффициентов фильтра на противоположные; 2) добавляем единицу к среднему отсчету, относительно которого импульсная характеристика симметрична ). До нормирования сумма коэффициентов равна 0,0958717380581989. НО внешний вид графиков идентичен. Если мои коэффициенты домножить на число 1.003964924917464 то мои коэффициенты полностью совпадают с коэффициентами программы.

От сюда вопросы: от куда брать это число и как нормировать ФВЧ?
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 10 Ноя 2010 01:17:12 · Поправил: Mesh (10 Ноя 2010 01:19:55) #  

sea Ага, RU3XN правильно сказал, я что-то пургу тут брякнул. :) Всепропускающий чёто по глупости взял как все еденицы, а у него ж только центральный один отсчёт, отсутсвие практики однако. И в табличке формула правильная. Ну да ладно. ФВЧ коефициенты покажите. Расчёты не могут не совпадать, формулы собсно одни и те ж, независимо от назавния проги, книги или ещё чего. :) Если не совпадают, значит где-то у кого-то ошибка.
sea
Участник
Offline3.3
с авг 2006
Ярославль
Сообщений: 832

Дата: 10 Ноя 2010 02:30:25 · Поправил: sea (10 Ноя 2010 02:32:48) #  

Коэффициенты:
http://www.radioscanner.ru/uploader/2010/fir_delphi.xls

Они совпадают, только немного отличаются. График получается один и тот же. И Если мои коэффициенты домножить на число 1.003964924917464 то мои коэффициенты полностью совпадают с коэффициентами программы. Понимаю, что это "подгонка" под результат, но домножать-то все равно надо, чтобы нормировать (это я по аналогии с ФНЧ)?

И еще вопрос: если просуммировать коэффициенты ФВЧ, то еденицы не получается. Почему?
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 10 Ноя 2010 02:59:43 · Поправил: Mesh (10 Ноя 2010 03:35:48) #  

sea Странно, а что в проге то ж централ коефициент равен 9 с копейками? Откуда такие величины? Бррр. Централ коефициент по формуле 1-2fc, fc это нормированая частота среза, она по идее больше 0,5 быть не должна. А для ФВЧ срез 0.5 это вобще резать всё. Я что-то вобще в думках странных. Или я всё забыл насмерть, или где-то какие-то косяки неимоверные. Другие коефициенты есть функция синуса, больше еденицы быть тож не должны, с учетом делителя вроде и тем боле, у вас и -1,2 и всё такое, как это? У ФВЧ сумма не еденице равна должна быть, а по моему нулю, или считается по другому, как масштабировать я так сразу не помню, искать надо в букварях. Нормирование вобще это дело такое, читать нужно, там ньюансы есть от типа фильтра, симметрикал или антисимметрикал. ФНЧ, ФВЧ или ещё чего.
RU3XN
Участник
Offline1.0
с ноя 2010
Калуга
Сообщений: 3

Дата: 10 Ноя 2010 09:39:49 · Поправил: RU3XN (10 Ноя 2010 09:40:24) #  

sea
Может я чего-то путаю, вроде базовая формула для вычисления коэф. такая
h[i]=K*((sin(2*PI*Fc*(i-M/2))/(i-M/2))*(функция окна), где М+1 - порядок фильтра, ну i - индекс коэффициентов. Кроме того, при i=M/2 принимают h[i]=K*2*PI*Fc
sea
Участник
Offline3.3
с авг 2006
Ярославль
Сообщений: 832

Дата: 10 Ноя 2010 10:21:07 #  

RU3XN
Может я чего-то путаю, вроде базовая формула для вычисления коэф. такая

Это для какого типа фильтра? Если сравнить с таблицей 4.4 первой страницы, то знаменатель не похож.
Числитель похож. А так же, если принять К=1 и не использовать функцию окна.

Странно, а что в проге то ж централ коефициент равен 9 с копейками? Откуда такие величины? Бррр.
Это я по вашей рекомендации поделил все коэффициенты на их сумму. Но если не учитывать нормирование, то график совпадает с другими программами.

Центральный равен:

Fд = 48000
Fs = 3000
Fc = (Fs/Fd) = 0.0625

h[0] = 1 - 2*Fc = 0.875
YuriVR
Участник
Offline5.0
с ноя 2008
Омск
Сообщений: 2681

Дата: 10 Ноя 2010 18:23:11 #  

И? Типо вас это устраивает? Должно быть 1!.
Нет. Не устраивает. Я в пределах своих возможностей стараюсь сделать идеально.
Потому что в итоге может получиться хуже. Зачем заранее занижать результат?

Сумму посчитал. Каждый поделил на нее. Еще раз посчитал сумму - стало 1.
ФНЧ работал и работает как с нормированием, так и без.

Порядок фильтра - 31.
Коэффициенты (после нормирования):

k[0]=0
k[1]=-0,00890194908359772
k[2]=-0,0176235611952719
k[3]=-0,0247975456259727
k[4]=-0,02907739246961
k[5]=-0,0293061902852405
k[6]=-0,0246729856733806
k[7]=-0,0148365818059962
k[8]=-2,36443290643236E-21
k[9]=0,019075605179138
k[10]=0,0411216427889677
k[11]=0,0644736186275291
k[12]=0,0872321774088299
k[13]=0,107456031045882
k[14]=0,123364928366903
k[15]=0,133529236253966
k[16]=0,137023983852111
k[17]=0,133529236253966
k[18]=0,123364928366903
k[19]=0,107456031045882
k[20]=0,0872321774088299
k[21]=0,0644736186275291
k[22]=0,0411216427889677
k[23]=0,019075605179138
k[24]=-2,36443290643236E-21
k[25]=-0,0148365818059962
k[26]=-0,0246729856733806
k[27]=-0,0293061902852405
k[28]=-0,02907739246961
k[29]=-0,0247975456259727
k[30]=-0,0176235611952719


первые два коэффициента настораживают – они кажутся лишними, т.к. если их убрать, то восстанавливается ожидаемая симметрия коэффициентов (по текущим индексам относительно коэффициента номер 16)
ноль с индексом ноль уж точно лишний
sea
Участник
Offline3.3
с авг 2006
Ярославль
Сообщений: 832

Дата: 10 Ноя 2010 21:00:17 · Поправил: sea (10 Ноя 2010 21:01:34) #  

первые два коэффициента настораживают – они кажутся лишними, т.к. если их убрать, то восстанавливается ожидаемая симметрия коэффициентов (по текущим индексам относительно коэффициента номер 16)
ноль с индексом ноль уж точно лишний

Да. Я тоже заметил ошибку. У меня сдвинуто все на 1 в плюс. Исправил.

Пересчитал:

ФНЧ чистый без перенормирования:
k[0]=-0,00812079465337027
k[1]=-0,016077077074234
k[2]=-0,0226215376031693
k[3]=-0,0265258238486492
k[4]=-0,0267345444401092
k[5]=-0,0225079079039277
k[6]=-0,0135346577556171
k[7]=-2,1569516882755E-21
k[8]=0,0174017028286506
k[9]=0,0375131798398794
k[10]=0,0588159977682403
k[11]=0,0795774715459477
k[12]=0,0980266629470671
k[13]=0,112539539519638
k[14]=0,121811919800554
k[15]=0,125
k[16]=0,121811919800554
k[17]=0,112539539519638
k[18]=0,0980266629470671
k[19]=0,0795774715459477
k[20]=0,0588159977682403
k[21]=0,0375131798398794
k[22]=0,0174017028286506
k[23]=-2,1569516882755E-21
k[24]=-0,0135346577556171
k[25]=-0,0225079079039277
k[26]=-0,0267345444401092
k[27]=-0,0265258238486492
k[28]=-0,0226215376031693
k[29]=-0,016077077074234
k[30]=-0,00812079465337027

ФВЧ чистый без перенормирования:
k[0]=0,00812079465337027
k[1]=0,016077077074234
k[2]=0,0226215376031693
k[3]=0,0265258238486492
k[4]=0,0267345444401092
k[5]=0,0225079079039277
k[6]=0,0135346577556171
k[7]=2,1569516882755E-21
k[8]=-0,0174017028286506
k[9]=-0,0375131798398794
k[10]=-0,0588159977682403
k[11]=-0,0795774715459477
k[12]=-0,0980266629470671
k[13]=-0,112539539519638
k[14]=-0,121811919800554
k[15]=0,875
k[16]=-0,121811919800554
k[17]=-0,112539539519638
k[18]=-0,0980266629470671
k[19]=-0,0795774715459477
k[20]=-0,0588159977682403
k[21]=-0,0375131798398794
k[22]=-0,0174017028286506
k[23]=2,1569516882755E-21
k[24]=0,0135346577556171
k[25]=0,0225079079039277
k[26]=0,0267345444401092
k[27]=0,0265258238486492
k[28]=0,0226215376031693
k[29]=0,016077077074234
k[30]=0,00812079465337027
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 18 Ноя 2010 21:12:25 #  

sea К стати, к стати, по моему YuriVR тут упоминал про оченно интересный способ синтеза КИХ фильтров, дык в библиотеке сайта это есть Расчет фильтров методом частотной выборки имхо, незаменимая метода для вычурных АЧХ, или там для спешиал задач, например треугольный ПФ, или с заданой АЧХ там ступеньки, наклоны и всё такое. Вобще библиотека сайта реально внушаит. Собралась оченно мощная колекция доков.
kirill_kuznecov92
Участник
Offline1.0
с окт 2017
Санкт-Петербург
Сообщений: 1

Дата: 25 Окт 2017 20:06:53 #  

SergUA6
приветствую, видел давненько ты писал программу по расчету характеристик фильтра, можешь помочь?
Реклама
Google
 Страница:  ««  1  2 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.048; miniBB ®