|
IIR фильтры с линейной фазой, Кому нужны? |
|
|
|
 |
Ответов
(1 - 54)
|
Feb 18 2013, 11:56
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата не CIC и не развод Если не CIC, то развод или заблуждение.
|
|
|
|
|
Feb 19 2013, 16:01
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120

|
--------------------
Ох не лёгкая это работа попасть в группу "свой"....
|
|
|
|
|
Feb 20 2013, 10:31
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Всем спасибо, все ответы учту. Отдельное спасибо brig01. Пока из статьи не понял: 1) в каком виде коэффициенты (с плавающей или фиксированной точкой), 2) нелинейность ФЧХ, 3) было ли реализовано на практике. Характеристики похожи, с методом буду разбираться. На первый взгляд - нет, не то. litv, тоже спасибо. Книжку попробую найти. Модель фильтра 8-го порядка в Simulink 210b. Fs= 2КHz, Fpass 0,5 KHz, Fstop 0,6 KHz, Apass < 1 дБ, Astop 45 дБ. Все коэффициенты – в int16. Нелинейность фазы в полосе пропускания - не более 10 градусов. Есть подозрение, что эта погрешность моделирования, а не самого фильтра, и на практике нелинейность около 4-х градусов. Если как-то еще можно спроектировать такой же фильтр - сообщите, пожалуйста. Матлабом мне сделать такого не удалось. Проектные АЧХ и ФЧХ в архиве. Коэффициенты фильтра (коэффициент log2(a0) - количество разрядов, на которые сдвигаем вправо на выходе звена, см. модель): b0 b2 b1 -a2 -a1 log2(a0) 1) 17507, -370, 5978, -4465, 3529, 14, 2) -1542, -2583, 1839, -10193, 13696, 14, 3) 3454, -13659, 5547, -5194, 11240, 13, 4) -12695, -11476, -10796, 4389, -3111, 14, 5) 3371, 5886, -7776, -4941, 3281, 13, 6) 1570, -15956, -6017, 2497, 6726, 14, 7) -2582, -9863, -5677, 7738, 835, 14, 8) 788, -16072, -10502, -14014, -134, 14
|
|
|
|
|
Feb 20 2013, 11:49
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
А просто коэффициенты в плавающей точке без инт16 и симуликов не проще было выложить? Цитата voloda: Нелинейность фазы в полосе пропускания - не более 10 градусов Нелинейность фазы это что? Отклонение от линейной? Тогда что берется за образец? Лучше приводить х-гу гвз. Это более информативно.
Сообщение отредактировал thermit - Feb 20 2013, 13:03
|
|
|
|
|
Feb 21 2013, 12:20
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Цитата(thermit @ Feb 20 2013, 15:49)  А просто коэффициенты в плавающей точке без инт16 и симуликов не проще было выложить? Коэффициенты изначально рассчитываются в целых числах заданной разрядности. Поэтому - нет, не проще. Симулинк нагляден. Даже в Матлабе такого не создать. ИМХО, конечно. В какой среде вы хотели бы получить модель? Цитата(thermit @ Feb 20 2013, 15:49)  Нелинейность фазы это что? Отклонение от линейной? Тогда что берется за образец? Да. В качестве образца в модели считается фаза по формуле pi=F*2.899 . F- частота входного сигнала, pi - фаза Цитата(thermit @ Feb 20 2013, 15:49)  Лучше приводить х-гу гвз. Это более информативно. Можно и гвз, Вы правы. Фазовые характеристики проще сравнивать, например, с искажениями, вносимыми АЦП. Одно и то же отклонение гвз от константы на разных частотах вызывает разные отклонения фазы от линейной. Поэтому выложил фазу. Теория. Новый метод проектирования цифровых БИХ фильтров позволяет: 1) Рассчитывать БИХ-фильтры с линейной (с точностью до 1-2х градусов) ФЧХ в полосе пропускания; 2) Рассчитывать коэффициенты фильтров изначально в целочисленной арифметике (а не в числах с плавающей точкой с последующим округлением). 3) Проверять устойчивость на всех этапах проектирования. А не только после завершения расчетов. Наиболее распространенным методом проектирования БИХ – фильтров на сегоднешний день является метод билинейного преобразования. В процессе расчета фильтров этим методом, АЧХ фильтра аппроксимируется с использованием специальных функций. Существуют аппроксимации по Баттерворту, по Чебышеву, и эллиптическая аппроксимация. Данный метод позволяет управлять только АЧХ проектируемого фильтра, в то время как ФЧХ фильтра при таком подходе не может быть задана. ФЧХ фильтра, спроектированного билинейным методом, существенно (до сотен градусов) отличается от линейной. Между тем, такая сильная нелинейность БИХ фильтра обусловлена только методом его проектирования, и при использовании метода, предлагаемого далее, этот недостаток может быть устранен. Другим существенным недостатком метода билинейного преобразования является то, что расчёт коэффициентов фильтра осуществляется в числах с плавающей точкой, и, при реализации фильтра в арифметике с фиксированной точкой, происходит округление вещественных коэффициентов до ближайшего числа с фиксированной точкой. Билинейный способ не позволяет учитывать эффекты квантования перед расчётом фильтров. В результате округления меняются АЧХ и ФЧХ спроектированного фильтра. Кроме того, фильтр может стать неустойчивым. Неизвестно так же, являются ли полученные округленные коэффициенты оптимальными, или же в арифметике с фиксированной точкой можно найти какой-то другой, более подходящий набор коэффициентов, позволяющий реализовать лучший фильтр. Отметим так же, что это недостатки именно метода билинейного расчета фильтров, а не самих БИХ-фильтров. Разработанный метод позволяет рассчитывать БИХ фильтр по заданной АЧХ при линейной ФЧХ в целочисленных коэффициентах заданной разрядности. При этом существует возможность изменять приоритет требований. Так, можно рассчитать фильтр в целочисленных коэффициентах без учета требования линейности ФЧХ, можно жестко выдерживать требование линейности ФЧХ, платя за это незначительными ухудшениями АЧХ. Можно задавать так же одинаковый приоритет обоих требований, при которых получается «средний» по амплитуде и по фазе фильтр, или указать произвольное дробное соотношение приоритетов. В процессе расчета проверяется устойчивость фильтра на каждом этапе. Да, ФЧХ все равно получается нелинейной. Однако, ее получается сделать незначительно (несколько градусов) отличающейся от линейной. Автор метода не я, автор – В. Н. Бугров. Его основная статья: http://www.unn.ru/pages/issues/vestnik/999...6%281%29/10.pdf Картинки с гвз там тоже есть. Другие статьи: http://www.unn.ru/pages/issues/vestnik/999...st_2012_3/8.pdfhttp://www.unn.ru/pages/issues/vestnik/999...t_2009_2/11.pdfЛюбые вопросы пишите сюда или напрямую автору. Контактные данные автора указаны в статьях по ссылкам выше.
|
|
|
|
|
Feb 21 2013, 13:25
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Ну, раз так, вот вам критика. На картинках сравнительные х-ки приведенного вами фильтра и фильтра рассчитанного скриптом с избирательными х-ками примерно соответствующим вашим: Код [be,ae] = ellip(5,0.3,45,0.5); f = 0:0.0005:0.5; g = grpdelay(be,ae,f,2); a = max(g)-g; [num,den]=iirgrpdelay(10, f, [0 0.5], a); b2=conv(be,num); a2=conv(ae,den); b2=round(b2*32768)/32768; a2=round(a2*32768)/32768; АЧХ
ФЧХ
ГВЗ
При формально равных порядках ваш фильтр проигрывает в линейности фазы эллиптическому с выравниванием. Замечу, что у нашего фильтра коэффициенты квантованы 16-ю разрядами. Квантование вообще не доставляет много проблем. зы 1-ю статью прочитал по диагонали. Позже почитаю внимательнее.
|
|
|
|
|
Feb 21 2013, 15:25
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Цитата(thermit @ Feb 21 2013, 17:25)  Ну, раз так, вот вам критика. Большое спасибо за отклик. Выполнил скрипт. Вектор а2 7-ой коэффициент 107,1364, 8-ой -100,5486. Это можно представить в инт16? И вообще, м.б. вместо a2=round(a2*32768)/32768 надо как-то типа a2=int16(round(a2*32768))/32768 ? А то они целые, но по модулю не ограниченные (более 32768) могут выйти..
|
|
|
|
|
Feb 21 2013, 15:37
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата voloda: Вектор а2 7-ой коэффициент 107,1364, 8-ой -100,5486. Это можно представить в инт16? А зачем? К-ты надо преобразовать в к-ты биквадратных секций. И уже полученные к-ты квантовать с какой нужно разрядностью. В лоб такие фильтры да еще и в арифметике с фиксированной точкой никто не делает... Это я для простоты так поступил. И несовсем корректно. При квантовании к-тов биквадратных секций картина принципиально не изменится.
|
|
|
|
|
Feb 22 2013, 08:14
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Цитата(thermit @ Feb 21 2013, 19:37)  При квантовании к-тов биквадратных секций картина принципиально не изменится. А стабильность фильтр случайно не потеряет? Не могли бы Вы привести корректно посчитанные коэффициенты, для полноты картины? Цитата В лоб такие фильтры да еще и в арифметике с фиксированной точкой никто не делает... Есть подозрение, что сразу в фиксированной точке можно рассчитывать легче и точнее, чем в плавающей.
|
|
|
|
|
Feb 22 2013, 09:50
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата voloda: А стабильность фильтр случайно не потеряет? Не могли бы Вы привести корректно посчитанные коэффициенты, для полноты картины? Код [be,ae] = ellip(5,0.3,50,0.5); ff = 0:0.001:0.5; g = grpdelay(be,ae,ff,2); a = max(g)-g; [num,den]=iirgrpdelay(10, ff, [0 0.5], a); b2=conv(be,num); a2=conv(ae,den); sos=tf2sos(b2,a2); sos(:,1:3)=round(sos(:,1:3)*256)/256;% quantize 8 bit in 8.8 format sos(:,5:6)=round(sos(:,5:6)*1024)/1024;% quantize 10 bit in 6.10 format [m,n]=size(sos); f=ones(1000,1); g=zeros(1000,1); plot(exp(j*2*pi/100*(0:99))); hold on; grid on; for i=m:-1:1 f=f.*freqz(sos(i,1:3),sos(i,4:6),1000); g=g+grpdelay(sos(i,1:3),sos(i,4:6),1000); plot(roots(sos(i,4:6)+0.00000000001*1j),'rx'); end; figure(2); plot(20*log10(abs(f))); grid on; figure(3); plot(g); grid on; Все полюсы остаются по модулю < 1. Так что фильтр устойчивый. Цитата Есть подозрение, что сразу в фиксированной точке можно рассчитывать легче и точнее, чем в плавающей. А вот это совсем не факт. По сути, расчет фильтра - поиск нулей-полюсов (z0 -p0) минимизирующий некоторый функционал. Если наложить ограничения на количество значащих цифр в коэффициентах, оптимальные в этом смысле нули-полюсы z-p будут лежать в каких-то окрестностях с центрами в z0-p0. Что эквивалентно квантованию. Радиусы этих окрестностей будут определяться суровостью квантования. Да, возможно, что к-ты при таком расчете будут другими, но в целом ошибка аппроксимации меньше не будет.
|
|
|
|
|
Mar 13 2013, 12:51
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Получилось рассчитывать фильтры с коэффициентами менее 8-ми разрядов. В качестве примера - 4-х и 7-ми разрядные коэффициенты с ГВЗ, близкой к константе в полосе пропускания. 7-ми разрядные коэффициенты: Код clear all; close all; m=10; n=6; mat0 = zeros(m,n); mat0= [ 0.96875 0.71875 0.46875 1 -0.84375 0.375 -0.375 -0.28125 -0.3125 1 -0.03125 0.28125 0.28125 -0.625 -0.96875 1 -0.15625 0 0.28125 -0.875 -0.875 1 -0.09375 0 -0.125 0.5625 0.6875 1 -0.09375 0.46875 0.21875 0 -1 1 -0.4375 0.03125 -0.09375 0.21875 -0.40625 1 -0.4375 0 0.4375 -0.6875 -0.9375 1 0.125 0.15625 -0.09375 0.15625 -0.25 1 -0.40625 0 0.34375 -0.6875 -0.96875 1 0.125 0.625 ]; ff = 0:0.0005:0.5; f=ones(1000,1); g=zeros(1000,1); r=zeros(m,2); radius=zeros(m,1); figure(11); plot(exp(j*2*pi/100*(0:99))); hold on; grid on; for i=m:-1:1 f=f.*freqz(mat0(i,1:3),mat0(i,4:6),1000); g=g+grpdelay(mat0(i,1:3),mat0(i,4:6),1000); plot(roots(mat0(i,4:6)+0.00000000001*1j),'rx'); end;
figure(22); plot(20*log10(abs(f))); grid on; axis([0 1000 -40 2]) figure(33); plot(g); grid on; 4-рех разрядные коэффициенты: Код clear all; close all; m=10; n=6; mat0 = zeros(m,n); mat0= [0.75 0.75 0.5 1 -0.75 0.25 -0.25 -0.75 0 1 0 0.5 0.5 -0.5 -0.75 1 -0.25 0 0.25 -0.75 -1 1 0 0 0 0.5 0.5 1 0 0.25 0 0 -1 1 -0.5 0 0 0.25 -0.5 1 -0.25 0 0 -0.5 -1 1 0 0 0 0 -0.25 1 -0.25 0 0 0.5 0.75 1 0 0.5 ];
ff = 0:0.0005:0.5; f=ones(1000,1); g=zeros(1000,1); r=zeros(m,2); radius=zeros(m,1); figure(11); plot(exp(j*2*pi/100*(0:99))); hold on; grid on; for i=m:-1:1 f=f.*freqz(mat0(i,1:3),mat0(i,4:6),1000); g=g+grpdelay(mat0(i,1:3),mat0(i,4:6),1000); plot(roots(mat0(i,4:6)+0.00000000001*1j),'rx'); end;
figure(22); plot(20*log10(abs(f))); grid on; axis([0 1000 -40 2]) figure(33); plot(g); grid on; Прошу критики.
|
|
|
|
|
Mar 16 2013, 11:04
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата voloda: Если есть известные способы рассчета фильтров с коэффициентами меньше 8-ми бит, подскажите, пожалуйста! Рассчитываете к-ты в плавающей точке и квантуете их хоть 1 битом. ps На мой дилетанский взгляд, тема гроша выеденного не стоит...
|
|
|
|
Guest_TSerg_*
|
Mar 16 2013, 11:53
|
Guests

|
Цитата(thermit @ Mar 16 2013, 15:04)  Рассчитываете к-ты в плавающей точке и квантуете их хоть 1 битом.
ps На мой дилетанский взгляд, тема гроша выеденного не стоит... Могут быть ньансы, связанные с наличием более оптимальных, чем грубо квантованных коэффициентов, с точки зрения требований к ЧХ. Решается численными оптимизирующими расчетами. Но тема, действительно - яйцо выеденное
|
|
|
|
|
Mar 16 2013, 17:13
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Цитата(thermit @ Mar 16 2013, 15:04)  Рассчитываете к-ты в плавающей точке и квантуете их хоть 1 битом. Это как? К-ты фильтра с плавающей точкой могут отличаться на порядки. Под каждый коэффициент свой формат, что ли? Цитата Могут быть ньансы, связанные с наличием более оптимальных, чем грубо квантованных коэффициентов, с точки зрения требований к ЧХ. Решается численными оптимизирующими расчетами. Собственно, я об том же. Весь метод - это и есть оптимизирование. Весь вопрос, есть ли какие-то преимущества по сравнению с другими, известными оптимизационными методами.
|
|
|
|
|
Mar 16 2013, 20:04
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата voloda: Это как? К-ты фильтра с плавающей точкой могут отличаться на порядки. Под каждый коэффициент свой формат, что ли? К-ты знаменателя биквадратной секции всегда в диапазоне +-2. К-ты числителя - да, могут отличаться значительно. Числитель квантуется отдельно, знаменатель -отдельно. Честно говоря, не вижу проблем. Вы пытаетесь изобрести нечто, что уже давно изобретено. Цитата TSerg: Могут быть ньансы, связанные с наличием более оптимальных, чем грубо квантованных коэффициентов, с точки зрения требований к ЧХ. Вы очень туманно про нюансы пишете. Целевая функция имеет 1 локальный минимум и любое квантование к-тов даст смещение от этого минимума. Я не очень понимаю термин "грубое квантование". Чем оно отличается от негрубого? Требования к ачх заключаютя в максимальном отклонении ее от идеала. Если квантование к-тов удовлетворяет этому критерию чего тут еще оптимизировать?
|
|
|
|
|
Mar 17 2013, 06:42
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Цитата(thermit @ Mar 17 2013, 00:04)  К-ты знаменателя биквадратной секции всегда в диапазоне +-2. Если не секрет - почему? Цитата(thermit @ Mar 17 2013, 00:04)  К-ты числителя - да, могут отличаться значительно. Числитель квантуется отдельно, знаменатель -отдельно. Если привести и числитель и знаменатель к одному формату - разрядность аккумулятора можно будет понизить, вроде бы. Цитата(thermit @ Mar 17 2013, 00:04)  Честно говоря, не вижу проблем. Вы пытаетесь изобрести нечто, что уже давно изобретено. Увы, очень может быть. До Ваших ответов вообще не знал многое про возможности БИХ-фильтров. Цитата(thermit @ Mar 17 2013, 00:04)  Вы очень туманно про нюансы пишете. Целевая функция имеет 1 локальный минимум и любое квантование к-тов даст смещение от этого минимума. Вопрос - насколько сильно меняется положение минимума после квантования? Остается ли он после этого глобальным? Был "узкий" глобальный минимум, его нашли до квантования. После кв-ия он сместился так, что перестал быть глобальным, или вообще перестал быть минимумом. Цитата Требования к ачх заключаютя в максимальном отклонении ее от идеала. Если квантование к-тов удовлетворяет этому критерию чего тут еще оптимизировать? Оптимизировать - что бы уменьшить ресурсы, необходимые для реализации фильтра в железе.
|
|
|
|
|
Mar 17 2013, 17:33
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата voloda: Если не секрет - почему? Устойчивый фильтр имеет полюсы внутри единичной окружности (<1 по модулю); если полюсы r*exp(+-j*alpha) то a1 = 2*r*cos(alpha) - при r<1 a1<2 a2 = r^2 - при r<1 a2<1 Цитата Если привести и числитель и знаменатель к одному формату - разрядность аккумулятора можно будет понизить, вроде бы. Разрядность аккумулятора полностью определяется требованиями к шуму фильтра. Цитата Увы, очень может быть. До Ваших ответов вообще не знал многое про возможности БИХ-фильтров Надо книжки читать. Рабинер Голд Теория и применение цос Цитата Вопрос - насколько сильно меняется положение минимума после квантования? Остается ли он после этого глобальным? Был "узкий" глобальный минимум, его нашли до квантования. После кв-ия он сместился так, что перестал быть глобальным, или вообще перестал быть минимумом. Минимум не зависит от квантования. Он (его положение )зависит от целевой ф-ции. Если все к-ты квантуются одинаково - происходит смещение от минимума. Если речь идет о квантовании разных к-тов разным числом разрядов - это уже другая целевая функция со своим минимумом. И возможно, такая оптимизация может дать лучший результат чем одинаковое квантование всех к-тов. На сколько эти минимумы будут отличаться? Никто вам не ответит на этот вопрос.
|
|
|
|
Guest_TSerg_*
|
Mar 17 2013, 19:34
|
Guests

|
Цитата(thermit @ Mar 17 2013, 00:04)  Я не очень понимаю термин "грубое квантование". Чем оно отличается от негрубого? Отвечаю с опозданием: Вы уже и так все верно расписали - важна целевая функция "квантования". Если она чисто математическая, то вполне возможно, что получим совсем не ту частотно-фазовую систему (ЧФС) и совсем не с той линейностью, которую хотели. Если задать целевую функцию в зависимости от параметров и допуска их для достижения желаемой ЧФС - тут и встает вопрос в полный рост. Пример из аналоговой ЧФС: - рассчитали идеальный фильтр 7-го порядка по Чебышеву, но Заказчик/Поставщик обломал расчетчика рядом E12  В данном случае это и будет "грубым" квантованием. Однако, поиграв номиналами в рамках того же Е12, можно достичь оптимального значения одного или нескольких выходных системных параметров. Аналогичные процессы (и даже хуже) присущи процессу перехода от "точных" вычисленных коэффициентов в сетке современных ЭВМ к квантованным коэффициентам в заданной разрядной сетке какого-либо микропроцессора. Понятно, что выбор его должен решаться исходя из заданного качества решения, но иногда бывает присуща заданность его реализации, стоимостная оценка, исследовательская составляющая и т.д и т.п.
|
|
|
|
|
Mar 18 2013, 19:26
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 4-12-09
Из: Н. Новгород
Пользователь №: 54 053

|
Цитата(thermit @ Mar 17 2013, 21:33)  Устойчивый фильтр имеет полюсы внутри единичной окружности (<1 по модулю) ... Разрядность аккумулятора полностью определяется требованиями к шуму фильтра. Спасибо! Цитата(thermit @ Mar 17 2013, 21:33)  Минимум не зависит от квантования... Ушел осмыслять. Цитата(TSerg @ Mar 17 2013, 23:34)  Если задать целевую функцию в зависимости от параметров и допуска их для достижения желаемой ЧФС - тут и встает вопрос в полный рост. Пример из аналоговой ЧФС: - рассчитали идеальный фильтр 7-го порядка по Чебышеву, но Заказчик/Поставщик обломал расчетчика рядом E12  В данном случае это и будет "грубым" квантованием. Однако, поиграв номиналами в рамках того же Е12, можно достичь оптимального значения одного или нескольких выходных системных параметров. Аналогичные процессы (и даже хуже) присущи процессу перехода от "точных" вычисленных коэффициентов в сетке современных ЭВМ к квантованным коэффициентам в заданной разрядной сетке какого-либо микропроцессора. Как раз такие задачи мы можем решать.  Если приведете какие-нибудь еще примеры, где есть сложные ограничения на коэффициенты - буду рад порешать.
|
|
|
|
Guest_TSerg_*
|
Mar 19 2013, 13:37
|
Guests

|
Так у меня вопросов-то нет
|
|
|
|
|
May 22 2015, 05:11
|
Группа: Новичок
Сообщений: 5
Регистрация: 24-01-11
Пользователь №: 62 443

|
Подниму-ка тему. Последнее время пришлось активно копать тему IIR c линейной фазой - FIR просто физически нужный мне МК не "тянул". Как оказалось - новое (для меня) - это забытое старое. Как оказалось, линейным по фазе можно сделать любой IIR фильтр, если использовать "разворот времени", т.е. всю входящую последовательность просчитать в прямом и обратном порядке. Предлагаю прочитать, как эту идею реализовывали и дорабатывали для работы в режиме реального времени. Судя по написанному - заманчиво. Для меня остается непонятным, почему об этом алгоритме очень мало известно?
A_Technique_for_Realizing_Linear_Phase_IIR_Filters.pdf ( 1.07 мегабайт )
Кол-во скачиваний: 424
A_Linear_Phase_IIR_Filter_for_Audio_Signal.pdf ( 386.81 килобайт )
Кол-во скачиваний: 365
|
|
|
|
|
Jun 3 2015, 06:44
|
Частый гость
 
Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548

|
Цитата(avtoneru @ May 22 2015, 08:11)  Подниму-ка тему. Последнее время пришлось активно копать тему IIR c линейной фазой - FIR просто физически нужный мне МК не "тянул". Как оказалось - новое (для меня) - это забытое старое. Как оказалось, линейным по фазе можно сделать любой IIR фильтр, если использовать "разворот времени", т.е. всю входящую последовательность просчитать в прямом и обратном порядке. Предлагаю прочитать, как эту идею реализовывали и дорабатывали для работы в режиме реального времени. Судя по написанному - заманчиво. Для меня остается непонятным, почему об этом алгоритме очень мало известно?
A_Technique_for_Realizing_Linear_Phase_IIR_Filters.pdf ( 1.07 мегабайт )
Кол-во скачиваний: 424
A_Linear_Phase_IIR_Filter_for_Audio_Signal.pdf ( 386.81 килобайт )
Кол-во скачиваний: 365Потому что весь сигнал должен быть известен заранее. Как раз одна из вами приведенных статей и описывает работу с аудио. В других областях весь сигнал не всегда доступен и обработать его так в реальном времени не представляется возможным.
|
|
|
|
|
Apr 20 2016, 21:48
|
Частый гость
 
Группа: Свой
Сообщений: 100
Регистрация: 20-04-12
Из: Нижний Новгород
Пользователь №: 71 488

|
Цитата(petrov @ Apr 20 2016, 16:45)  Она же не сама по себе нужна, а для чего-то? Для PSK/QAM модемов, как минимум. Цитата Если действительные коэффициенты заменить комплексными, то проблему соотношения линейности фазы и задержки можно частично решить. Каким образом? Расскажите пожалуйста поподробнее, или скажите, где почитать. Сейчас для FIR используются реальные коэффициенты и комплексный входной сигнал. Но ограничений по архитектуре фильтра у меня никаких нет, поэтому если с комплексным БИХ ГВЗ в полосе пропускания будет меньше и близким к константе - я им воспользуюсь.
|
|
|
|
|
Apr 27 2016, 20:08
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
16 дБ это не чуть получше А про приём 8PSK на 6 дБ SNR - это сильно. Смотрим кривые BER  и видим, что 6 дБ - это > 2e-2 uncoded BER. Хорошие LDPC декодеры конечно вытаскивают не очень длинные пакеты при такой канальной ошибке, ок. Хотя бесперебойной связи уже не будет. Наличие эквалайзера предполагает канал с замираниями, в нём BER будет гарантированно хуже, чем в AWGN. Плюс на пороговом SNR линейный эквалайзер внесёт дополнительную ошибку, поэтому, даже если предположить, что канал не имеет замираний, чутьё станет несколько хуже. Либо нужно использовать ML. Конечно можно принимать 8PSK без всякого расширения спектра и ниже 6 дБ и в канале с замираниями, при условии наличия дополнительных антенн. MRC сильно облегчает жизнь.
|
|
|
|
|
Apr 28 2016, 08:07
|

Профессионал
    
Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815

|
Цитата(serjj @ Apr 27 2016, 23:08)  16 дБ это не чуть получше А про приём 8PSK на 6 дБ SNR - это сильно. Смотрим кривые BER  и видим, что 6 дБ - это > 2e-2 uncoded BER. Хорошие LDPC декодеры конечно вытаскивают не очень длинные пакеты при такой канальной ошибке, ок. Хотя бесперебойной связи уже не будет. Наличие эквалайзера предполагает канал с замираниями, в нём BER будет гарантированно хуже, чем в AWGN. Плюс на пороговом SNR линейный эквалайзер внесёт дополнительную ошибку, поэтому, даже если предположить, что канал не имеет замираний, чутьё станет несколько хуже. Либо нужно использовать ML. Конечно можно принимать 8PSK без всякого расширения спектра и ниже 6 дБ и в канале с замираниями, при условии наличия дополнительных антенн. MRC сильно облегчает жизнь. Если мазать Уолшами, то характеристики BER от С/Ш становятся более крутыми и приближаются к квадрату в идеальном канале.
|
|
|
|
|
Apr 28 2016, 08:39
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Мои сомнения вызвало Цитата А каналы чуть получше (6 дБ+) - честное 8PSK, разумеется с эквалайзером.
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|