Страница 1 из 2

Фильтр Чебышёва 1 рода

Добавлено: 28 апр 2017, 11:36
GoodSimon
Здравствуйте, хочу спросить совета и помощи в построении фильтр Чебышёва 1 рода чётного порядка.
Конечно, в LabView есть реализованный фильтр, но у меня стоит задача самостоятельной реализацией данного фильтра.
Почитав множество статей я так и не нашел нужного мне решения. Полагаю, что сама фильтрация сводится к домножению входного сигнала на определенные коэффициенты.
По этому мой вопрос сводится к тому как рассчитать данные коэффициенты.
Пользуясь Википедией я посчитал коэффициенты как в ней указано, но у меня со временем выходное значение уходит в ± бесконечность.
Прикрепляю архив с тем что наработал, главный файл main.vi
Делал в LabView 2016, но сохранял под 2012-ю версию, надеюсь откроется в 2012-ой.
Прошу помочь доработать и объяснить ошибки.

Re: Фильтр Чебышёва 1 рода

Добавлено: 28 апр 2017, 19:42
Shamrel
Свертку делайте. Свертку сигнала и коэффициентов.

Re: Фильтр Чебышёва 1 рода

Добавлено: 29 апр 2017, 10:11
GoodSimon
Shamrel писал(а):Свертку делайте. Свертку сигнала и коэффициентов.
Почувствовал, что ничего не знаю в этой теме.
Вы можете мне полностью объяснить, что и как делается? Как коэффициенты считать и как свертку делать?
В интернете простого объяснения не найти, а в учебниках слишком долго копаться...

Re: Фильтр Чебышёва 1 рода

Добавлено: 29 апр 2017, 16:21
Shamrel
Цифровая фильтрация -- это есть математическая операция "Свертка" фильтруемого сигнала с коэффициентами фильтра. Уровня википедии будет достаточно для нужной глубины погружения.
По буржуйски "свертка" -- это "convolution". Вот по этому слову и ищите в LabVIEW нужную функцию. Там их должно быть много. С примерами. (у меня на домашнем компутере LabVIEW нет, потому глянуть оперативно не могу).
Коэффициенты фильтра можно посчитать в MatLab, там, помнится, годный инструмент был. Либо найти какой-другой онлай/офлайн калькулятор.
Ну и смайлик вам, что б так грустно не было: :vampire:

Re: Фильтр Чебышёва 1 рода

Добавлено: 30 апр 2017, 22:46
GoodSimon
Shamrel писал(а): По буржуйски "свертка" -- это "convolution". Вот по этому слову и ищите в LabVIEW нужную функцию.
Ок, но мне то самому надо реализовать фильтр, так что придется и свертку самому делать. Хотя её то я сделал вроде как...
Shamrel писал(а): Коэффициенты фильтра можно посчитать в MatLab, там, помнится, годный инструмент был.
Коэффициенты мне нужно считать в самой программе ибо я сам указываю порядок фильтра перед работой программы.
По этому то и спрашиваю: "Как правильно считать коэффициенты для фильтра Чебышева 1-го рода?" Это моя основная проблема.

Re: Фильтр Чебышёва 1 рода

Добавлено: 01 май 2017, 06:43
Shamrel
Это, пардон, онанизм какой-то. Писать на LabVIEW, но использовать лишь простейшие арифметические операции -- движение есть, а толку не много.
Предвижу, что вам даже нельзя использовать готовые блоки для получения этих коэффициентов.
Ваш преподаватель немножко не верно представляет назначение инструмента LabVIEW. С таким подходом гораздо удобнее писать на Великом Могучем (если кто не понял, то я про Си).
В этом случаее ваш вопрос:
Как правильно считать коэффициенты для фильтра Чебышева 1-го рода?
лежит не в области LabVIEW, а в области цифровой обработки сигналов.
Тут без спец.литературы не обойтись.

Re: Фильтр Чебышёва 1 рода

Добавлено: 01 май 2017, 13:43
GoodSimon
Shamrel писал(а):Предвижу, что вам даже нельзя использовать готовые блоки для получения этих коэффициентов.
А где такие блоки взять?
Shamrel писал(а): С таким подходом гораздо удобнее писать на Великом Могучем (если кто не понял, то я про Си).
1) Преподаватель не признает Си.
2) Просто у меня такая тема РГР и предмет такой :buuh:
Shamrel писал(а): В этом случаее ваш вопрос:
Как правильно считать коэффициенты для фильтра Чебышева 1-го рода?
лежит не в области LabVIEW, а в области цифровой обработки сигналов.
Тут без спец.литературы не обойтись.
1) По этому пишу в ветку "Обработка сигнала"
2) А LabView разве не позволяет раскрыть тему обработки сигналов?

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

Re: Фильтр Чебышёва 1 рода

Добавлено: 01 май 2017, 15:20
zxc_pavel
В 1 файле написано, что такое свертка
Во 2 файле немного про фильтры Чебышева, что-то рассчитывается даже, может поможет

Re: Фильтр Чебышёва 1 рода

Добавлено: 03 май 2017, 20:04
GoodSimon
zxc_pavel писал(а):В 1 файле написано, что такое свертка
Во 2 файле немного про фильтры Чебышева, что-то рассчитывается даже, может поможет
Вроде помогло а вроде и нет, я видимо настолько туп что ничего не понимаю..
По предыдущим ответам понятно, что LabView для такого не предназначен. Даже в LabView все эти блоки основаны на библиотеках написанных на "С".

И ведь действительно в обработке сигналов я не шарю ничего, но РГР вот такая у меня. Очень прошу помочь. :help:
Если есть тут кто-то кто может мне объяснить всю эту математику цифровой обработки сигналов, то очень прошу написать мне. :help:
Самому очень интересно все это решить, но из общих учебников не понятно, статей кучу перерыл, нашел проект фильтра на с++ но там, все так разрозненно по классам раскидано что чёрт ногу сломит.
Наверно скоро я :suicide:

Re: Фильтр Чебышёва 1 рода

Добавлено: 04 май 2017, 07:14
Shamrel
GoodSimon писал(а):
zxc_pavel писал(а): По предыдущим ответам понятно, что LabView для такого не предназначен. Даже в LabView все эти блоки основаны на библиотеках написанных на "С".
Наверно скоро я :suicide:
Как раз для такого LabVIEW и предназначен. Для построения "боевых" приложений, где выполняется фильтрация и обработка сигналов. Для этого есть множество инструментов.
А то, что большинство функций в конечном итоге выходят на использование dll, это вполне закономерно. Назначение LabVIEW (в моем понимании) -- это сделать удобный интерфейс для вызова этих функции. С чем, она (или он? LabVIEW какого рода? У меня стойкая ассоциация, что это "девушка") успешно справляется. Ваша техническая задача, решается в лоб при использовании готовых модулей фильтрации. Причем решается с приемлемым быстродействием и возможностью запускать на разных платформах.
У вас же стоит академическая задача, где результат -- это не готовая программа, а ваше понимание учебного материала.
Математику эту для решения именно учебной задачи в двух словах не объяснить. От вас требуется знания в области высшей математики и общей теории сигналов. Это несколько семестровых курсов. Читайте книжки.

Re: Фильтр Чебышёва 1 рода

Добавлено: 04 май 2017, 09:18
GoodSimon
1)
По предыдущим ответам понятно, что LabView для такого не предназначен. Даже в LabView все эти блоки основаны на библиотеках написанных на "С".
Под этим я подразумевал, что LabView не предназначен для написания в лоб всех этих блоков фильтрации, т.к. они реализуются на "С".
2)
Shamrel писал(а):От вас требуется знания в области высшей математики и общей теории сигналов. Это несколько семестровых курсов. Читайте книжки.
В нашем курсе высшая математика была на первом курсе и чуточку на втором, про теорию сигналов пока-что вообще ничего подобного не рассказывается, точнее её пока что не было. И пожалуйста, хватит посылать за книжками, я уже читал, к примеру Сергиенко А. Б., но он все коэффициенты в матлабе считает, но я так и не понял формул.

3) Так трудно дать хотя бы последовательность математических уравнений? Я полагаю, что рас уж на "С" написано, то алгоритм мат. действий должен быть. Но почему-то всех тянет рассказать замысловатую теорию, а дальше выводите сами... такое напрягает. К примеру в файлах что скинул zxc_pavel один алгоритм расчета, в Википедии другой, вот тут третий, вот пример человека с GitHub написанный на "С++" и он тоже считает по своему.

Re: Фильтр Чебышёва 1 рода

Добавлено: 04 май 2017, 10:18
Artem.spb
GoodSimon писал(а):1)
По предыдущим ответам понятно, что LabView для такого не предназначен. Даже в LabView все эти блоки основаны на библиотеках написанных на "С".
Под этим я подразумевал, что LabView не предназначен для написания в лоб всех этих блоков фильтрации, т.к. они реализуются на "С".
И даже в лоб "предназначена". :labview: - вполне себе полнофункциональный язык программирования, что означает возможность написания на этом языке любой программы по обработке массива данных. Вопрос только в сложности построения формул.
То, что в конченом итоге фильтр «спрятан» в dll – всего лишь следствие того, что сама LV пишется на С (или С++). и код, написанный на С работает немного быстрее, чем тот же самый, написанный на LV.
По большому счёту любой язык программирования – это всего лишь арифметические операции, обёрнутые в удобную оболочку. И в LV, как ни странно, все арифметические операции есть.

2)
Shamrel писал(а):От вас требуется знания в области высшей математики и общей теории сигналов. Это несколько семестровых курсов. Читайте книжки.
В нашем курсе высшая математика была на первом курсе и чуточку на втором, про теорию сигналов пока-что вообще ничего подобного не рассказывается, точнее её пока что не было. И пожалуйста, хватит посылать за книжками, я уже читал, к примеру Сергиенко А. Б., но он все коэффициенты в матлабе считает, но я так и не понял формул.
может, дело в вашей способности понять эти формулы?
3) Так трудно дать хотя бы последовательность математических уравнений? Я полагаю, что рас уж на "С" написано, то алгоритм мат. действий должен быть. Но почему-то всех тянет рассказать замысловатую теорию, а дальше выводите сами... такое напрягает. К примеру в файлах что скинул zxc_pavel один алгоритм расчета, в Википедии другой, вот тут третий, вот пример человека с GitHub написанный на "С++" и он тоже считает по своему.
вы себе противоречите.
сами назвали минимум 4 истояника формул. Чем эти формулы васне устраивают? и какие магические формулы вы ожитдаете от нас?

Re: Фильтр Чебышёва 1 рода

Добавлено: 04 май 2017, 17:03
GoodSimon
может, дело в вашей способности понять эти формулы?
может и так..
Artem.spb писал(а):вы себе противоречите.
сами назвали минимум 4 истояника формул. Чем эти формулы васне устраивают? и какие магические формулы вы ожитдаете от нас?
Тем, что везде по разному написано, не понятно, где правда. И вообще не понятно как считать.

Re: Фильтр Чебышёва 1 рода

Добавлено: 05 май 2017, 05:25
Shamrel
Там везде одинаково написано. Вы просто щупаете слона в темноте.
Расчет рекурсивных фильтров это не такая тривиальная вещь, существует общая теория и множество методов реализаций на различных этапах. Ту же передаточную функцию можно получить разными способами и в разных видах.
Начните с изучения КИХ фильтров. Там гораздо проще. Как при реализации, так и для понимания.

Re: Фильтр Чебышёва 1 рода

Добавлено: 06 май 2017, 08:13
GoodSimon
Shamrel писал(а):Начните с изучения КИХ фильтров. Там гораздо проще. Как при реализации, так и для понимания.
Ок, а КИХ топологии Чебышева можно сделать? Или Чебышев это только БИХ?