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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> синтез цифрового фильтра из аналогового фильтра-прототипа
Наталия_К
сообщение Feb 22 2013, 19:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Здравствуйте. Данный вопрос возник в процессе выполнения контрольной по ЦОС, кучу литературы перекопала, но следующий вопрос так и остался непонятен. Уже совсем запуталась, а преподаватель толком не объясняет.

я записала передаточную функцию аналогового фильтра прототипа H(s), теперь мне надо из нее получить H(z) методом инвариантного преобразования импульсной характеристики.

функция записана в виде произведения 4 множителей (порядок получился N=8), причем в числителе и знаменателе многочлен второй степени. (конкретный H(s) приложен).

собственно вопрос: согласно заданному методу найденную H(s) нужно представить в виде суммы простых дробей. нужно ли мне из всего произведения делать разложение? или каждый множитель - это отдельный фильтр, тогда я беру первый множитель и раскладываю его на две простые дроби, далее нахожу h(t) - h(nT) - H1(z), аналогично H2(z),H3(z) и H4(z), а итоговую нахожу как их произведение H(z)=H1(z)H2(z)H3(z)H4(z), т.е. структурная схема цифрового фильтра будет как на рис.2
или это неправильно?

дело в том, что программу надо написать в маткаде, я пробовала H(s) представлять в виде суммы простых дробей, правда в знаменателе так и оставался многочлен второй степени. и возникли трудности на этапе h(nT) - H1(z) при использовании функции z-преобразования...

Вот и берут сомнения а правильно ли я делаю, а то может ошиблась в самом начале и ерунда получается. могу файл mcd выложить для проверки.

заранее огромное спасибо, очень надеюсь на наставление на правильный путь
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Feb 23 2013, 08:25
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Признаться, всё забыл.
Если s=сигма+j*омега, где омега - круговая частота, то для прямого перехода на Z - плоскость используют билинейное z - преобразование. Тогда и получаются рекурсивные фильтры, вроде нарисованного вами каскадного.
Но насколько помню, инвариантность импульсной характеристики подразумевает расчёт импульсной характеристики фильтра по известной частотной, затем расчёт выборок импульсной характеристики фильтра с заданной частотой дискретизации от момента времени 0 до момента затухания импульсной характеристики (у вас фильтр с бесконечной импульсной характеристикой, поэтому до какого-то очень малого уровня - определяется требуемой точностью), затем просто выборки импульсной характеристики берутся в качестве коэффициентов нерекурсивного (КИХ) фильтра.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 23 2013, 08:46
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Есть книжка Ричард Лайонс. Цифровая обработка сигналов. Там про это написано. В интернете была. И здесь есть. Если модератора упросите...
Go to the top of the page
 
+Quote Post
thermit
сообщение Feb 24 2013, 20:36
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Наталия_К:
обственно вопрос: согласно заданному методу найденную H(s) нужно представить в виде суммы простых дробей. нужно ли мне из всего произведения делать разложение? или каждый множитель - это отдельный фильтр, тогда я беру первый множитель и раскладываю его на две простые дроби, далее нахожу h(t) - h(nT) - H1(z), аналогично H2(z),H3(z) и H4(z), а итоговую нахожу как их произведение H(z)=H1(z)H2(z)H3(z)H4(z), т.е. структурная схема цифрового фильтра будет как на рис.2
или это неправильно?


Структура результирующего фильтра в любом случае будет как на рис.
Что касается самого расчета:
Вся дробь разлагается на сумму простейших.
Дроби вида a/(s+cool.gif конвертятся в a/(1-exp(-b/Fd)*z^-1)
Дроби второго порядка разлагаются в суммы
a/(s+cool.gif+conj(a)/(s+conj(cool.gif)
Здесь a и b уже комплексные.
Чтобы не париться:
a=g+j*h
b=sigma+j*omega
Тогда
a/(s+cool.gif+conj(a)/(s+conj(cool.gif) = (2*g*s+2*(sigma*g+omega*h))/(s^2+2*sigma*s+(sigma^2+omega^2))
Отсюда можно найти sigma omega g h сразу из дроби 2-го порядка.
Затем получить уже цифровую дробь 2-го порядка:

(2*g - exp(-sigma/Fd)*(2*g*cos(omega/Fd)-2*h*sin(omega/Fd))*z^-1)/(1 - 2*exp(-sigma/Fd)*cos(omega/Fd)*z^-1 + exp(-2*sigma/Fd)*z^-2)

Затем полученные дроби приводятся к общему знаменателю, суммируются. Ищутся нули - полюсы.
Комплексно сопряженные пары нулей-полюсов дают звенья 2-го порядка, объединяемые последовательно.

Либо реализовывать фильтр параллельным включением полученных биквадратных блоков.

Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Feb 28 2013, 10:19
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(ViKo @ Feb 23 2013, 12:46) *
Есть книжка Ричард Лайонс. Цифровая обработка сигналов. Там про это написано. В интернете была. И здесь есть. Если модератора упросите...

есть такая, и кроме нее еще всего много, поэтому уже и запуталась.
посмотрю спасибо

Цитата(thermit @ Feb 25 2013, 00:36) *
Дроби второго порядка разлагаются в суммы
Затем получить уже цифровую дробь 2-го порядка:

(2*g - exp(-sigma/Fd)*(2*g*cos(omega/Fd)-2*h*sin(omega/Fd))*z^-1)/(1 - 2*exp(-sigma/Fd)*cos(omega/Fd)*z^-1 + exp(-2*sigma/Fd)*z^-2)

Затем полученные дроби приводятся к общему знаменателю, суммируются. Ищутся нули - полюсы.
Комплексно сопряженные пары нулей-полюсов дают звенья 2-го порядка, объединяемые последовательно.

Либо реализовывать фильтр параллельным включением полученных биквадратных блоков.

сумма получилась вот такого вида (при помощи маткада) (эскиз внизу сообщения)
а чтобы получить цифровую дробь - это ведь обратное преобразование Лапласа? то есть результат будет тот же, если к этому выражению я применю готовую функцию invlaplace,s ?
в моем выражение вроде не совсем так получилось, как Вы в общем виде записали...
нули-полюсы ищутся из полученной дроби, приведенной к общему знаменателю?

спасибо, Ваш ответ для меня был наиболее исчерпывающий

Цитата(Дмитрий_Б @ Feb 23 2013, 12:25) *
Признаться, всё забыл.
Если s=сигма+j*омега, где омега - круговая частота, то для прямого перехода на Z - плоскость используют билинейное z - преобразование. Тогда и получаются рекурсивные фильтры, вроде нарисованного вами каскадного.
Но насколько помню, инвариантность импульсной характеристики подразумевает расчёт импульсной характеристики фильтра по известной частотной, затем расчёт выборок импульсной характеристики фильтра с заданной частотой дискретизации от момента времени 0 до момента затухания импульсной характеристики (у вас фильтр с бесконечной импульсной характеристикой, поэтому до какого-то очень малого уровня - определяется требуемой точностью), затем просто выборки импульсной характеристики берутся в качестве коэффициентов нерекурсивного (КИХ) фильтра.

Согласно Айфичеру, получила H(s) затем, чтобы записать H(z) надо к полученной H(s) применить обратное преобразование Лапласа, но надо предварительно раскладывать на простые дроби, поэтому и возник вышеописанный вопрос

ну и каждое из слагаемое при помощи того же маткада разложилось на множители:

сейчас попробую сделать замену, которую предложили, результаты приложу

Сообщение отредактировал Наталия_К - Feb 28 2013, 10:07
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Feb 28 2013, 12:53
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Вот вам шпаргалка. маткад 14

Прикрепленные файлы
Прикрепленный файл  test.xmcd.zip ( 133.42 килобайт ) Кол-во скачиваний: 118
 
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Feb 28 2013, 12:56
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Цитата(Наталия_К @ Feb 28 2013, 14:19) *
Согласно Айфичеру, получила H(s) затем, чтобы записать H(z) надо к полученной H(s) применить обратное преобразование Лапласа, но надо предварительно раскладывать на простые дроби, поэтому и возник вышеописанный вопрос

ну и каждое из слагаемое при помощи того же маткада разложилось на множители:

сейчас попробую сделать замену, которую предложили, результаты приложу

Обратное преобразование Лапласа, применённое к передаточной функции линейной системы H(s) (которую для фильтров принято называть частотной характеристикой, поскольку сигма полагают равной нулю и преобразование Лапласа становится эквивалентно преобразованию Фурье), даст функцию времени, называемую импульсной характеристикой аналогового фильтра - прототипа.
Импульсная характеристика фильтра - сигнал на выходе фильтра, на вход которого подали дельта - функцию (импульс с длительностью, стремящейся к нулю, и амплитудой, стремящейся к бесконечности).
Если рассчитать значения импульсной характеристики через интервалы времени, равные периоду частоты дискретизации, начиная с момента подачи дельта-функции на вход, то таким образом будут вычислены отсчёты импульсной характеристики искомого нерекурсивного цифрового фильтра.
Отсчёты импульсной характеристики являются коэффициентами искомого нерекурсивного цифрового фильтра.
Так обеспечивается эквивалентность импульсной характеристики аналогового фильтра - прототипа и цифрового фильтра. Поэтому и метод называется "инвариантность импульсной характеристики".
Если от Вас хотят, чтобы Вы его использовали - так используйте, он несложный.
Есть масса других методов синтеза цифровых фильтров, куда более популярных. Этот метод более естественен в задачах моделирования поведения динамических систем.
Go to the top of the page
 
+Quote Post
thermit
сообщение Feb 28 2013, 14:05
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Дмитрий_Б:
Если рассчитать значения импульсной характеристики через интервалы времени, равные периоду частоты дискретизации, начиная с момента подачи дельта-функции на вход, то таким образом будут вычислены отсчёты импульсной характеристики искомого нерекурсивного цифрового фильтра.
Отсчёты импульсной характеристики являются коэффициентами искомого нерекурсивного цифрового фильтра.
Так обеспечивается эквивалентность импульсной характеристики аналогового фильтра - прототипа и цифрового фильтра. Поэтому и метод называется "инвариантность импульсной характеристики".


Все верно. За тем исключением, что метод инвариантности их - метод синтеза именно рекурсивных фильтров со всеми вытекающими отсюда последствиями.
Все не так просто, короче говоря...
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Feb 28 2013, 16:56
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(thermit @ Feb 28 2013, 16:53) *
Вот вам шпаргалка. маткад 14

спасибо. завтра покажу, что у меня получилось.

Цитата(Дмитрий_Б @ Feb 28 2013, 16:56) *
Обратное преобразование Лапласа, применённое к передаточной функции линейной системы H(s) (которую для фильтров принято называть частотной характеристикой, поскольку сигма полагают равной нулю и преобразование Лапласа становится эквивалентно преобразованию Фурье), даст функцию времени, называемую импульсной характеристикой аналогового фильтра - прототипа.

Если от Вас хотят, чтобы Вы его использовали - так используйте, он несложный.

да, нужно использовать именно этот метод. другие - в других вариантах.
а вот сигма получилась отличной от нуля. (если вы говорим об одном и том же) - это ведь множитель в знаменателе при s ?
и еще - при использовании обратного преобразования Лапласа в маткаде появляется функция Dirac(t) , что с ней то делать?...
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Feb 28 2013, 17:40
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Цитата(Наталия_К @ Feb 28 2013, 20:56) *
да, нужно использовать именно этот метод. другие - в других вариантах.
а вот сигма получилась отличной от нуля. (если вы говорим об одном и том же) - это ведь множитель в знаменателе при s ?
и еще - при использовании обратного преобразования Лапласа в маткаде появляется функция Dirac(t) , что с ней то делать?...

Должен извиниться. laughing.gif Наверное, thermit прав. Хотя алгоритм, о котором я Вам рассказал, работает, но Ваш преподаватель скорее всего имел ввиду другой, его в современных книжках по ЦОС приводят.
Обратное преобразование Лапласа не стоит делать в Mathcad. Дроби в изображении Лапласа имеют хорошо известный оригинал (посмотрите мат. справочник - или книжку по ЦОС с этим методом). А функции Дирака у Вас не должно было получиться, если изображения по Лапласу - абсолютно интегрируемые функции. Вообще, положительные действительные части полюсов H(s) соответствуют неустойчивым системам - крайне сомнительно, что у Вас этот случай. Проверьте ещё раз.
Go to the top of the page
 
+Quote Post
thermit
сообщение Feb 28 2013, 18:18
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Наталия_К:
а вот сигма получилась отличной от нуля.


Наташ, то что вам тут пытаются советовать не имеет ничего общего с тем, что вам нужно сделать.
Сигма, про которую вам рассказывает Дмитрий_Б это другая сигма.


Вам нужно синтезировать цифровой рекурсивный фильтр по заданному аналоговому прототипу методом инвариантности импульсной характеристики. Внимательно посмотрите мою писанину в маткаде.
Там на вашем примере по шагам расписана методика такого синтеза.

Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 1 2013, 11:57
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(thermit @ Feb 28 2013, 22:18) *
Вам нужно синтезировать цифровой рекурсивный фильтр по заданному аналоговому прототипу методом инвариантности импульсной характеристики. Внимательно посмотрите мою писанину в маткаде.
Там на вашем примере по шагам расписана методика такого синтеза.


наконец установился 14-й маткад wink.gif (у меня была другая версия, этот файл не открывался) открыла, посмотрела.
ого!!! Вы такую огромную работу проделали, спасибо большущее!
ну и в этом свете еще один вопрос: как построить карту нулей полюсов синтезированного фильтра?
ФЧХ сама построила (ну это совсем просто wink.gif)


а можете посмотреть этот файл и подсказать где тут ошибка?
ну вот, хотела маткадовский файл прикрепить, не получилоась, пришлось картинками...
это уже метод взвешивания. теоретически определили,что используем вырезающую функцию Кайзера, для нее записали импульсную характеристику, она даже построилась, и вроде как правильно (хотя здесь тоже есть вопрос - по формуле для ФНЧ импульсная характеристика hd(n)=2fc*sin(n*w среза)/(n*w среза), если подставлять именно круговую частоту, все, кроме первого составляющего равны нулю..., потому как появляется 2*пи и синус становится равным нулю, а вот если просто fc , т.е. частоту среза, то все нормально).
а вот дальше, когда нужно выполнить преобразование H(z)= sum(h(n)*z^-n) не получатеся.
попробовала вручную записать эту функцию, т.е. соответствующее значение h(n) умножила на z в соответствующей степени, но АЧХ какая-то непонятная получается...

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

Цитата(thermit @ Feb 28 2013, 22:18) *
Вам нужно синтезировать цифровой рекурсивный фильтр по заданному аналоговому прототипу методом инвариантности импульсной характеристики. Внимательно посмотрите мою писанину в маткаде.
Там на вашем примере по шагам расписана методика такого синтеза.

возник вопрос: по Айфичеру перед тем, как применять метод инвариантного преобразования импульсной характеристики, следует масштабировать нормированную передаточную функцию. Для этого s меняется на s/a, где a=2∙π∙fp, в результате чего фильтр получит желаемую характеристику.
так вот, та характеристика, которую я привела изначально - не масштабированная, если в Вашем файле я ее масштабирую (а сделала я это предельно внимательно), ПФ превратилась в прямую... crying.gif

вот такой график (масштабированное P1 и R1) так может не надо масштабировать? тогда зачем написано...?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

 
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Mar 1 2013, 17:19
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Наталия, присмотрелся я повнимательнее к Вашей H(s). Где Вы её такую взяли? Это фильтр с неограниченной полосой пропускания. Отсюда и функция Дирака (дельта-функция) во временной области.
Посмотрите сами: при омега (s=i*омега, i - мнимая единица) стремящейся к бесконечности (частота стремится к бесконечности) H(s)=const.
Крайне сомнительный фильтр - прототип. Лучше перепроверьте условие задачи.
Go to the top of the page
 
+Quote Post
thermit
сообщение Mar 1 2013, 19:00
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Дмитрий_Б:
Наталия, присмотрелся я повнимательнее к Вашей H(s). Где Вы её такую взяли? Это фильтр с неограниченной полосой пропускания. Отсюда и функция Дирака (дельта-функция) во временной области.
Посмотрите сами: при омега (s=i*омега, i - мнимая единица) стремящейся к бесконечности (частота стремится к бесконечности) H(s)=const.
Крайне сомнительный фильтр - прототип. Лучше перепроверьте условие задачи.


Фильтр - как фильтр. Ничего выдающегося в нем нет. Фильтр устойчивый. Чего еще надо? Все вполне решаемо. Не парьте мозг ни себе ни студенту. Это просто учебная задача.

Сообщение отредактировал thermit - Mar 1 2013, 19:00
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 2 2013, 12:00
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(Дмитрий_Б @ Mar 1 2013, 21:19) *
Наталия, присмотрелся я повнимательнее к Вашей H(s). Где Вы её такую взяли? Это фильтр с неограниченной полосой пропускания. Отсюда и функция Дирака (дельта-функция) во временной области.
Посмотрите сами: при омега (s=i*омега, i - мнимая единица) стремящейся к бесконечности (частота стремится к бесконечности) H(s)=const.
Крайне сомнительный фильтр - прототип. Лучше перепроверьте условие задачи.

фильтр чебышева II типа, исходные данные: Fd=12000 Гц fp =2300 Гц fs =3000 Гц as =3дБ ap =55дБ
H(s) вывела сама, по известным формулам, там трудно было ошибиться.

Thermit , а что по поводу масштабирования скажете? не надо его делать выходит?

Сообщение отредактировал Наталия_К - Mar 2 2013, 12:04
Go to the top of the page
 
+Quote Post

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

 


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


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