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

Захват, обработка и генерирование сигнала

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

Postby GoodSimon on 28 Apr 2017, 11:36

Здравствуйте, хочу спросить совета и помощи в построении фильтр Чебышёва 1 рода чётного порядка.
Конечно, в LabView есть реализованный фильтр, но у меня стоит задача самостоятельной реализацией данного фильтра.
Почитав множество статей я так и не нашел нужного мне решения. Полагаю, что сама фильтрация сводится к домножению входного сигнала на определенные коэффициенты.
По этому мой вопрос сводится к тому как рассчитать данные коэффициенты.
Пользуясь Википедией я посчитал коэффициенты как в ней указано, но у меня со временем выходное значение уходит в ± бесконечность.
Прикрепляю архив с тем что наработал, главный файл main.vi
Делал в LabView 2016, но сохранял под 2012-ю версию, надеюсь откроется в 2012-ой.
Прошу помочь доработать и объяснить ошибки.
Attachments
Chebyshev.zip
(96.7 KiB) Downloaded 40 times
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

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

Postby Shamrel on 28 Apr 2017, 19:42

Свертку делайте. Свертку сигнала и коэффициентов.
User avatar
Shamrel
beginner
beginner
 
Posts: 38
Joined: 02 Mar 2017, 12:15
LabVIEW Version: 2015
Karma: 11

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

Postby GoodSimon on 29 Apr 2017, 10:11

Shamrel wrote:Свертку делайте. Свертку сигнала и коэффициентов.

Почувствовал, что ничего не знаю в этой теме.
Вы можете мне полностью объяснить, что и как делается? Как коэффициенты считать и как свертку делать?
В интернете простого объяснения не найти, а в учебниках слишком долго копаться...
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

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

Postby Shamrel on 29 Apr 2017, 16:21

Цифровая фильтрация -- это есть математическая операция "Свертка" фильтруемого сигнала с коэффициентами фильтра. Уровня википедии будет достаточно для нужной глубины погружения.
По буржуйски "свертка" -- это "convolution". Вот по этому слову и ищите в LabVIEW нужную функцию. Там их должно быть много. С примерами. (у меня на домашнем компутере LabVIEW нет, потому глянуть оперативно не могу).
Коэффициенты фильтра можно посчитать в MatLab, там, помнится, годный инструмент был. Либо найти какой-другой онлай/офлайн калькулятор.
Ну и смайлик вам, что б так грустно не было: :vampire:
User avatar
Shamrel
beginner
beginner
 
Posts: 38
Joined: 02 Mar 2017, 12:15
LabVIEW Version: 2015
Karma: 11

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

Postby GoodSimon on 30 Apr 2017, 22:46

Shamrel wrote: По буржуйски "свертка" -- это "convolution". Вот по этому слову и ищите в LabVIEW нужную функцию.

Ок, но мне то самому надо реализовать фильтр, так что придется и свертку самому делать. Хотя её то я сделал вроде как...
Shamrel wrote: Коэффициенты фильтра можно посчитать в MatLab, там, помнится, годный инструмент был.

Коэффициенты мне нужно считать в самой программе ибо я сам указываю порядок фильтра перед работой программы.
По этому то и спрашиваю: "Как правильно считать коэффициенты для фильтра Чебышева 1-го рода?" Это моя основная проблема.
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

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

Postby Shamrel on 01 May 2017, 06:43

Это, пардон, онанизм какой-то. Писать на LabVIEW, но использовать лишь простейшие арифметические операции -- движение есть, а толку не много.
Предвижу, что вам даже нельзя использовать готовые блоки для получения этих коэффициентов.
Ваш преподаватель немножко не верно представляет назначение инструмента LabVIEW. С таким подходом гораздо удобнее писать на Великом Могучем (если кто не понял, то я про Си).
В этом случаее ваш вопрос:
Как правильно считать коэффициенты для фильтра Чебышева 1-го рода?
лежит не в области LabVIEW, а в области цифровой обработки сигналов.
Тут без спец.литературы не обойтись.
User avatar
Shamrel
beginner
beginner
 
Posts: 38
Joined: 02 Mar 2017, 12:15
LabVIEW Version: 2015
Karma: 11

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

Postby GoodSimon on 01 May 2017, 13:43

Shamrel wrote:Предвижу, что вам даже нельзя использовать готовые блоки для получения этих коэффициентов.
А где такие блоки взять?

Shamrel wrote: С таким подходом гораздо удобнее писать на Великом Могучем (если кто не понял, то я про Си).
1) Преподаватель не признает Си.
2) Просто у меня такая тема РГР и предмет такой :buuh:

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

Так вот я ни как не могу найти кто бы с формулами помог, по сути то прикладная математика..
Жаль, что никто больше не заходит в мою тему с предложениями по решению
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

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

Postby zxc_pavel on 01 May 2017, 15:20

В 1 файле написано, что такое свертка
Во 2 файле немного про фильтры Чебышева, что-то рассчитывается даже, может поможет
Attachments
dsp01-Введение в цифровую обработку сигналов.doc
(181 KiB) Downloaded 36 times
dsp10-Рекурсивные частотные фильтры.doc
(249.5 KiB) Downloaded 44 times
zxc_pavel
user
user
 
Posts: 74
Joined: 02 Jun 2016, 12:07
LabVIEW Version: 14
Karma: 64

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

Postby GoodSimon on 03 May 2017, 20:04

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

И ведь действительно в обработке сигналов я не шарю ничего, но РГР вот такая у меня. Очень прошу помочь. :help:
Если есть тут кто-то кто может мне объяснить всю эту математику цифровой обработки сигналов, то очень прошу написать мне. :help:
Самому очень интересно все это решить, но из общих учебников не понятно, статей кучу перерыл, нашел проект фильтра на с++ но там, все так разрозненно по классам раскидано что чёрт ногу сломит.
Наверно скоро я :suicide:
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

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

Postby Shamrel on 04 May 2017, 07:14

GoodSimon wrote:
zxc_pavel wrote:По предыдущим ответам понятно, что LabView для такого не предназначен. Даже в LabView все эти блоки основаны на библиотеках написанных на "С".
Наверно скоро я :suicide:

Как раз для такого LabVIEW и предназначен. Для построения "боевых" приложений, где выполняется фильтрация и обработка сигналов. Для этого есть множество инструментов.
А то, что большинство функций в конечном итоге выходят на использование dll, это вполне закономерно. Назначение LabVIEW (в моем понимании) -- это сделать удобный интерфейс для вызова этих функции. С чем, она (или он? LabVIEW какого рода? У меня стойкая ассоциация, что это "девушка") успешно справляется. Ваша техническая задача, решается в лоб при использовании готовых модулей фильтрации. Причем решается с приемлемым быстродействием и возможностью запускать на разных платформах.
У вас же стоит академическая задача, где результат -- это не готовая программа, а ваше понимание учебного материала.
Математику эту для решения именно учебной задачи в двух словах не объяснить. От вас требуется знания в области высшей математики и общей теории сигналов. Это несколько семестровых курсов. Читайте книжки.
User avatar
Shamrel
beginner
beginner
 
Posts: 38
Joined: 02 Mar 2017, 12:15
LabVIEW Version: 2015
Karma: 11

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

Postby GoodSimon on 04 May 2017, 09:18

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

3) Так трудно дать хотя бы последовательность математических уравнений? Я полагаю, что рас уж на "С" написано, то алгоритм мат. действий должен быть. Но почему-то всех тянет рассказать замысловатую теорию, а дальше выводите сами... такое напрягает. К примеру в файлах что скинул zxc_pavel один алгоритм расчета, в Википедии другой, вот тут третий, вот пример человека с GitHub написанный на "С++" и он тоже считает по своему.
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

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

Postby Artem.spb on 04 May 2017, 10:18

GoodSimon wrote:1)
По предыдущим ответам понятно, что LabView для такого не предназначен. Даже в LabView все эти блоки основаны на библиотеках написанных на "С".
Под этим я подразумевал, что LabView не предназначен для написания в лоб всех этих блоков фильтрации, т.к. они реализуются на "С".

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


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

может, дело в вашей способности понять эти формулы?

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

вы себе противоречите.
сами назвали минимум 4 истояника формул. Чем эти формулы васне устраивают? и какие магические формулы вы ожитдаете от нас?
Artem.spb
expert
expert
 
Posts: 1221
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 214
CLD hardware I/O VIP freelance

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

Postby GoodSimon on 04 May 2017, 17:03

может, дело в вашей способности понять эти формулы?
может и так..

Artem.spb wrote:вы себе противоречите.
сами назвали минимум 4 истояника формул. Чем эти формулы васне устраивают? и какие магические формулы вы ожитдаете от нас?
Тем, что везде по разному написано, не понятно, где правда. И вообще не понятно как считать.
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

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

Postby Shamrel on 05 May 2017, 05:25

Там везде одинаково написано. Вы просто щупаете слона в темноте.
Расчет рекурсивных фильтров это не такая тривиальная вещь, существует общая теория и множество методов реализаций на различных этапах. Ту же передаточную функцию можно получить разными способами и в разных видах.
Начните с изучения КИХ фильтров. Там гораздо проще. Как при реализации, так и для понимания.
User avatar
Shamrel
beginner
beginner
 
Posts: 38
Joined: 02 Mar 2017, 12:15
LabVIEW Version: 2015
Karma: 11

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

Postby GoodSimon on 06 May 2017, 08:13

Shamrel wrote:Начните с изучения КИХ фильтров. Там гораздо проще. Как при реализации, так и для понимания.
Ок, а КИХ топологии Чебышева можно сделать? Или Чебышев это только БИХ?
GoodSimon
beginner
beginner
 
Posts: 12
Joined: 12 Apr 2017, 17:25
LabVIEW Version: 2016
Karma: 0

Next

Return to Обработка сигнала

Who is online

Users browsing this forum: No registered users and 7 guests

cron