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

Захват, обработка и генерирование сигнала
GoodSimon
beginner
beginner
Сообщения: 12
Зарегистрирован: 12 апр 2017, 17:25
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение GoodSimon »

Здравствуйте, хочу спросить совета и помощи в построении фильтр Чебышёва 1 рода чётного порядка.
Конечно, в LabView есть реализованный фильтр, но у меня стоит задача самостоятельной реализацией данного фильтра.
Почитав множество статей я так и не нашел нужного мне решения. Полагаю, что сама фильтрация сводится к домножению входного сигнала на определенные коэффициенты.
По этому мой вопрос сводится к тому как рассчитать данные коэффициенты.
Пользуясь Википедией я посчитал коэффициенты как в ней указано, но у меня со временем выходное значение уходит в ± бесконечность.
Прикрепляю архив с тем что наработал, главный файл main.vi
Делал в LabView 2016, но сохранял под 2012-ю версию, надеюсь откроется в 2012-ой.
Прошу помочь доработать и объяснить ошибки.
Вложения
Chebyshev.zip
(96.7 КБ) 241 скачивание
Аватара пользователя
Shamrel
beginner
beginner
Сообщения: 38
Зарегистрирован: 02 мар 2017, 12:15
Версия LabVIEW: 2015

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

Сообщение Shamrel »

Свертку делайте. Свертку сигнала и коэффициентов.
GoodSimon
beginner
beginner
Сообщения: 12
Зарегистрирован: 12 апр 2017, 17:25
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение GoodSimon »

Shamrel писал(а):Свертку делайте. Свертку сигнала и коэффициентов.
Почувствовал, что ничего не знаю в этой теме.
Вы можете мне полностью объяснить, что и как делается? Как коэффициенты считать и как свертку делать?
В интернете простого объяснения не найти, а в учебниках слишком долго копаться...
Аватара пользователя
Shamrel
beginner
beginner
Сообщения: 38
Зарегистрирован: 02 мар 2017, 12:15
Версия LabVIEW: 2015

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

Сообщение Shamrel »

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

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

Сообщение GoodSimon »

Shamrel писал(а): По буржуйски "свертка" -- это "convolution". Вот по этому слову и ищите в LabVIEW нужную функцию.
Ок, но мне то самому надо реализовать фильтр, так что придется и свертку самому делать. Хотя её то я сделал вроде как...
Shamrel писал(а): Коэффициенты фильтра можно посчитать в MatLab, там, помнится, годный инструмент был.
Коэффициенты мне нужно считать в самой программе ибо я сам указываю порядок фильтра перед работой программы.
По этому то и спрашиваю: "Как правильно считать коэффициенты для фильтра Чебышева 1-го рода?" Это моя основная проблема.
Аватара пользователя
Shamrel
beginner
beginner
Сообщения: 38
Зарегистрирован: 02 мар 2017, 12:15
Версия LabVIEW: 2015

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

Сообщение Shamrel »

Это, пардон, онанизм какой-то. Писать на LabVIEW, но использовать лишь простейшие арифметические операции -- движение есть, а толку не много.
Предвижу, что вам даже нельзя использовать готовые блоки для получения этих коэффициентов.
Ваш преподаватель немножко не верно представляет назначение инструмента LabVIEW. С таким подходом гораздо удобнее писать на Великом Могучем (если кто не понял, то я про Си).
В этом случаее ваш вопрос:
Как правильно считать коэффициенты для фильтра Чебышева 1-го рода?
лежит не в области LabVIEW, а в области цифровой обработки сигналов.
Тут без спец.литературы не обойтись.
GoodSimon
beginner
beginner
Сообщения: 12
Зарегистрирован: 12 апр 2017, 17:25
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение GoodSimon »

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

Так вот я ни как не могу найти кто бы с формулами помог, по сути то прикладная математика..
Жаль, что никто больше не заходит в мою тему с предложениями по решению
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение zxc_pavel »

В 1 файле написано, что такое свертка
Во 2 файле немного про фильтры Чебышева, что-то рассчитывается даже, может поможет
Вложения
dsp01-Введение в цифровую обработку сигналов.doc
(181 КБ) 207 скачиваний
dsp10-Рекурсивные частотные фильтры.doc
(249.5 КБ) 227 скачиваний
GoodSimon
beginner
beginner
Сообщения: 12
Зарегистрирован: 12 апр 2017, 17:25
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение GoodSimon »

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

И ведь действительно в обработке сигналов я не шарю ничего, но РГР вот такая у меня. Очень прошу помочь. :help:
Если есть тут кто-то кто может мне объяснить всю эту математику цифровой обработки сигналов, то очень прошу написать мне. :help:
Самому очень интересно все это решить, но из общих учебников не понятно, статей кучу перерыл, нашел проект фильтра на с++ но там, все так разрозненно по классам раскидано что чёрт ногу сломит.
Наверно скоро я :suicide:
Аватара пользователя
Shamrel
beginner
beginner
Сообщения: 38
Зарегистрирован: 02 мар 2017, 12:15
Версия LabVIEW: 2015

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

Сообщение Shamrel »

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

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

Сообщение GoodSimon »

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

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

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

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

Сообщение Artem.spb »

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

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

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

Сообщение GoodSimon »

может, дело в вашей способности понять эти формулы?
может и так..
Artem.spb писал(а):вы себе противоречите.
сами назвали минимум 4 истояника формул. Чем эти формулы васне устраивают? и какие магические формулы вы ожитдаете от нас?
Тем, что везде по разному написано, не понятно, где правда. И вообще не понятно как считать.
Аватара пользователя
Shamrel
beginner
beginner
Сообщения: 38
Зарегистрирован: 02 мар 2017, 12:15
Версия LabVIEW: 2015

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

Сообщение Shamrel »

Там везде одинаково написано. Вы просто щупаете слона в темноте.
Расчет рекурсивных фильтров это не такая тривиальная вещь, существует общая теория и множество методов реализаций на различных этапах. Ту же передаточную функцию можно получить разными способами и в разных видах.
Начните с изучения КИХ фильтров. Там гораздо проще. Как при реализации, так и для понимания.
GoodSimon
beginner
beginner
Сообщения: 12
Зарегистрирован: 12 апр 2017, 17:25
Версия LabVIEW: 2016
Контактная информация:

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

Сообщение GoodSimon »

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

Вернуться в «Обработка сигнала»