Вопрос не по теме но все таки, в программе есть два фильтра один даёт сдвиг +45, другой -45 Какие есть средства расчета фильтров с заданием фазы сдвига выходного сигнала ? Или фильтр отдельно делается , а сдвиг отдельно ?
Импульсная характеристика КИХ-фильтров с линейной ФЧХ расчитывается только посредством обратного FFT.
Алгоритм то какой ? 1. Делаем FFT 2. Делаем фильтр 3. Делаем обратное FFT То есть сдвиг фазы, делаем через FFT ?
так есть альт варианты.. https://git.videolan.org/ https://github.com/obsproject/obs-studio всё енто под вынь собирать можно. Вообще, куча фосса собирается под вынь и работает дажь лучше, чем в лине
Ты хочешь сказать что можно дернуть оттуда код инициализации аудио интерфейса и захвата аудио ??? А ты не знаешь какой нибудь простецкий диктофон под WIN, с открытым кодом ?
Andrei, капец на 7 страниц. Ответ был дан почти месяц назад: В той же теме были даны примеры. Что конкретно не получается? Любой КИХ фильтр рассчитывается элементарно. Задается АЧХ и ФЧХ, производится ОПФ - это и есть ядро фильтра. Для ядвига на 90 градусов применяется преобразование Гилберта.
Для кого элементарно, а для кого еще пока не очень, не обижайся я пока только еще разбираюсь со всем этим ОПФ , а вначале ДПФ нужно делать ? делаем фильтр, и ОПФ Или всетаки ДПФ -> фильтр Хемминга ->ОПФ
Конкретно, объясню я вот на гитаре также играю, .... Нот не знаю, и по нотам не смогу ничего сыграть, а вот если покажут как то запросто, так и тут Гитара (копм) , Ноты (документация)
Нет. Вот есть у тебя два массива в один заносишь ФЧХ в другой АЧХ. Далее переводишь из этого представления в комплексное, учитывая что АЧХ это модуль а ФЧХ аргумент комплексного числа. Потом делаешь ОПФ данного массива комплексных чисел и получаешь ядро фильтра. Это ядро не будет сходится к 0 на краях поэтому применяешь окно ( При желании выполняешь прямое преобразование Фурье если требуется посмотреть реальную характеристику после оконные функции). Да посмотри просто любой метод преобразования гильберта через дискретное преобразование фурье. В спектральной области делается всё тоже самое только через умножение вместо свертки.
Ок В чем я могу рассчитать коэффициенты фильтра нужного мне порядка с заданным сдвигом фазы ? Имею ввиду программный продукт, допустим Мне нужен ФНЧ с частотой среза 2800 Гц, 8-го порядка, со сдвигом на выходе -45 градусов ... В WinFilter я могу это сделать ? Или в какой программе это можно сделать ?
Преобразование Гильберта это зануление отрицательной части, и увеличение в два раза положительной части, это правильно ?
Не знаю насчет софта, я бы сделал просто через БПФ, либо по готовым формулам. Да. Умножаешь на 2 потому что энергия в 2 раза уменьшается при занулении половины, ну еще крайние частоты без изменений:
Немного расскажу почему так получается. как ты наверное знаешь ДПФ принимает на вход комплексный сигнал и на выходе также получается комплексный сигнал. В реальных задачах обычно в действительную часть пишут сам сигнал, а мнимую обнуляют. ДПФ реального сигнала всегда симметрично относительно половины частоты дискретизации. Если записать 2 сигнала в действительную и мнимую часть то можно выполнить преобразование сразу 2-х сигналов за раз и используя свойство симметрии извлечь результаты. Так к примеру два сигнала sr и si после преобразования в Re и Im будут содержать смеси тех самых зеркальных спектров. К примеру Re[1] содержит как амплитуду Cos первой гармоники сигнала sr так и амплитуду -Sin первой гармоники сигнала si. Чтобы выделить гармоники нужно сделать (Re[1] + Re[n-1])/2 - синусы si из-за нечетной симметрии ликвидируются, а косинусы sr удвоятся, (Im[1] + Im[n-1])/2 тоже самое только si и sr меняются местами. Обнуляя область отрицательных частот мы находим такой сигнал что (Re[n - 1] + Im[n - 1]) = 0, т.е. тогда когда амплитуда cos гармоники sr равна амплитуде sin гармоники si и наоборот. Отсюда следует что sin и cos меняются местами, что соответствует сдвиг фаз на 90 градусов.
Да уж, не так все просто, как казалось, пилить мне долго придется, но можь оно и к лучшему .... Подскажи как через БПФ фильтры делать ?
Почти все - следствия из одного базового принципа о котором неоднократно писал: свертка в одной области эквивалентна умножению в другой. Применение фильтра это что? Умножение спектров.