Страница 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, там, помнится, годный инструмент был. Либо найти какой-другой онлай/офлайн калькулятор.
Ну и смайлик вам, что б так грустно не было:
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) Просто у меня такая тема РГР и предмет такой
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 все эти блоки основаны на библиотеках написанных на "С".
И ведь действительно в обработке сигналов я не шарю ничего, но РГР вот такая у меня. Очень прошу помочь.
Если есть тут кто-то кто может мне объяснить всю эту математику цифровой обработки сигналов, то очень прошу написать мне.
Самому очень интересно все это решить, но из общих учебников не понятно, статей кучу перерыл, нашел проект фильтра на с++ но там, все так разрозненно по классам раскидано что чёрт ногу сломит.
Наверно скоро я
Re: Фильтр Чебышёва 1 рода
Добавлено: 04 май 2017, 07:14
Shamrel
GoodSimon писал(а):zxc_pavel писал(а):
По предыдущим ответам понятно, что LabView для такого не предназначен. Даже в LabView все эти блоки основаны на библиотеках написанных на "С".
Наверно скоро я
Как раз для такого 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 не предназначен для написания в лоб всех этих блоков фильтрации, т.к. они реализуются на "С".
И даже в лоб "предназначена".
- вполне себе полнофункциональный язык программирования, что означает возможность написания на этом языке любой программы по обработке массива данных. Вопрос только в сложности построения формул.
То, что в конченом итоге фильтр «спрятан» в 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 писал(а):Начните с изучения КИХ фильтров. Там гораздо проще. Как при реализации, так и для понимания.
Ок, а КИХ топологии Чебышева можно сделать? Или Чебышев это только БИХ?