Преобразования ФНЧ-ПФ
- DimKaKiber
- Сообщения: 29
- Зарегистрирован: 26 мар 2020, 15:00
- Откуда: Томск
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Спасибо большое! С билинейным преобразованием у мня беда Буду разбираться.
Библиотеку я на домашнем (временно еще и рабочем) компе собрал. Буду воевать дальше как доберусь)
А насколько важен диапазон для построения АЧХ? Ведь реальные частоты за Pi рад/с не выйдут?
Библиотеку я на домашнем (временно еще и рабочем) компе собрал. Буду воевать дальше как доберусь)
А насколько важен диапазон для построения АЧХ? Ведь реальные частоты за Pi рад/с не выйдут?
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Ачх цифрового фильтра периодическая с периодом 2pi поэтому можно строить в любом диапазоне частот только она будет повторяться
- DimKaKiber
- Сообщения: 29
- Зарегистрирован: 26 мар 2020, 15:00
- Откуда: Томск
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Благодарю Вас за помощь!!!
Преобразование починил, отрисовку откорректировал, часть кода опять переделал )
Дробно-рациональную подстановку сделал "в лоб" по Вашей статье. Остались Чебышевы и РФ, но это уже техника. Для других, более целевых для меня данных, такую цифровую АЧХ получаю:
По ходу дела возник еще один вопрос. При применении коэффициентов к сигналу получаю в его начале последовательность, жутко похожую на импульсную характеристику фильтра + сдвиг по сигналу, который никак не могу устранить. Для КИХ, например, просто делал сдвиг на grade/2 отсчетов внутри результирующего сигнала и последовательности сырой-фильтрованный совпадали.
Для БИХ так не получается. Реализую фильтр так (пока тоже в лоб, чтобы разобраться):
А начальная последовательность выглядит так:
Не подскажете, что это за зверь и как получить фильтрованные данные уже с самого начала выборки без их потери и как можно устранить сдвиг после обработки?
Преобразование починил, отрисовку откорректировал, часть кода опять переделал )
Дробно-рациональную подстановку сделал "в лоб" по Вашей статье. Остались Чебышевы и РФ, но это уже техника. Для других, более целевых для меня данных, такую цифровую АЧХ получаю:
По ходу дела возник еще один вопрос. При применении коэффициентов к сигналу получаю в его начале последовательность, жутко похожую на импульсную характеристику фильтра + сдвиг по сигналу, который никак не могу устранить. Для КИХ, например, просто делал сдвиг на grade/2 отсчетов внутри результирующего сигнала и последовательности сырой-фильтрованный совпадали.
Для БИХ так не получается. Реализую фильтр так (пока тоже в лоб, чтобы разобраться):
Код: Выделить всё
template<typename dataType>
int simple_iir(dataType *data,int dataSize,double *&out)
{
if (!data || dataSize <= 0) return IIRanswers::ERR_FILTER_IIR;
double ak = 0.0,
bk = 0.0;
int iir_size = Grade*P+1;
if (out) { free(out); out = nullptr; }
double *buff = (double*)calloc(dataSize+4*iir_size,sizeof(double));
dataType *data_buff = (dataType*)calloc(dataSize+iir_size,sizeof(dataType));
memcpy(data_buff,data,sizeof(dataType)*dataSize);
for (int i = iir_size; i < dataSize; ++i)
{
bk = 0.0;
ak = 0.0;
for (int h = 0; h < iir_size; ++h) bk += DigitalNum[h]*data_buff[i-h];
for (int y = 1; y < iir_size; y++) ak += DigitalDenum[y]*buff[i-y];
buff[i] = bk-ak;
}
out = (double*)calloc(dataSize,sizeof(double));
memcpy(out,buff+4*iir_size,sizeof(double)*dataSize);
free(buff); buff = nullptr;
free(data_buff); data_buff = nullptr;
return IIRanswers::IIR_OK;
}
Не подскажете, что это за зверь и как получить фильтрованные данные уже с самого начала выборки без их потери и как можно устранить сдвиг после обработки?
Последний раз редактировалось DimKaKiber 25 апр 2020, 19:00, всего редактировалось 1 раз.
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Это переходной процесс. Для того чтобы он не был таким большим, обычно делают ''power ramp" суть которого плавное включение сигнала при старте (линейное нарастание входного сигнала на длительности переходного процесса) . Если хочется без потери сигнала при старте, то можно попробовать добавить в сигнал перед началом его же кусок (желательно пристыковать в фазе). Тогда буферы фильтра будут заполонены к началу сигнала, и переходной процесс если и будет, то не такой явный.
Что касается задержки, то тут все сложнее, потому что групповая задержка БИХ-фильтра величина непостоянная, а значит разные частоты сигнала будут приобретать разную задержку и скомпенсировать ее, как в случае с КИХ-фильтром, не представляется возможным.
Что касается задержки, то тут все сложнее, потому что групповая задержка БИХ-фильтра величина непостоянная, а значит разные частоты сигнала будут приобретать разную задержку и скомпенсировать ее, как в случае с КИХ-фильтром, не представляется возможным.
- DimKaKiber
- Сообщения: 29
- Зарегистрирован: 26 мар 2020, 15:00
- Откуда: Томск
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Интересная особенность. Из-за нее значит не получится выделить нужные участки на фильтрованном сигнале и точно зайти на сырой сигнал. У меня просто сейчас FIR 500 порядка в потоке (overlap-add механизм) трудится Думал что более гибкие в настройке IIR лучше себя покажут.
Ну да фиг с ними. для потокового вывода сигнала на наушники или динамик IIR лучше подойдут. Единственная проблема в том что сигнала изначально нет никакого. С оффлайн проще бы было. Получается что я могу в самом начале просто накопить какое то количество отсчетов сигнала (фильтруя его), затем просто получать результат после завершения переходного процесса. А длительность переходного процесса как то рассчитывается? Или просто статичное значение по времени/отсчетам задают?
И еще вопрос один есть, не по теме правда - каким образом можно оценить качество обработки целевого сигнала разными цифровыми фильтрами? Как можно обосновать выбор конкретного метода из Фурье фильтра, IIR, FIR, скользящих средних, вейвлетов и т.д.? Работа просто очень тесно с научной частью связана и считаю что внутри докторской было бы уместным такое сравнение привести.
Ну да фиг с ними. для потокового вывода сигнала на наушники или динамик IIR лучше подойдут. Единственная проблема в том что сигнала изначально нет никакого. С оффлайн проще бы было. Получается что я могу в самом начале просто накопить какое то количество отсчетов сигнала (фильтруя его), затем просто получать результат после завершения переходного процесса. А длительность переходного процесса как то рассчитывается? Или просто статичное значение по времени/отсчетам задают?
И еще вопрос один есть, не по теме правда - каким образом можно оценить качество обработки целевого сигнала разными цифровыми фильтрами? Как можно обосновать выбор конкретного метода из Фурье фильтра, IIR, FIR, скользящих средних, вейвлетов и т.д.? Работа просто очень тесно с научной частью связана и считаю что внутри докторской было бы уместным такое сравнение привести.
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Длительность переходного процесса можно определить как эффективную длительность импульсной характеристики. Т. е. интервал времени в котором сосредоточена заданная доля энергии импульсной характеристики (90, 95, 99 процентов).
Качество обработки оценивают объективными характеристиками (неравномерность ачх, уровень подавления, задержка обработки и т.д.). Разумеется это надо соизмерять с экономической эффективностью и сложностью реализации. Для акустических сигналов существует ещё субъективные оценки качества на основе экспертных оценок. Это когда берётся выборка пользователей и каждый на слух проводит субъективную оценку качества. На метод экспертных оценок даже ГОСТ существует.
Так что обоснование выбора в идеале должно включать: экономический фактор, а также объективные характеристики, подкрепленные экспертными оценками.
Ps. Скользящее среднее и вейвлеты это разновидности FIR.
Качество обработки оценивают объективными характеристиками (неравномерность ачх, уровень подавления, задержка обработки и т.д.). Разумеется это надо соизмерять с экономической эффективностью и сложностью реализации. Для акустических сигналов существует ещё субъективные оценки качества на основе экспертных оценок. Это когда берётся выборка пользователей и каждый на слух проводит субъективную оценку качества. На метод экспертных оценок даже ГОСТ существует.
Так что обоснование выбора в идеале должно включать: экономический фактор, а также объективные характеристики, подкрепленные экспертными оценками.
Ps. Скользящее среднее и вейвлеты это разновидности FIR.
- DimKaKiber
- Сообщения: 29
- Зарегистрирован: 26 мар 2020, 15:00
- Откуда: Томск
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Спасибо) С субъективной оценкой проблем не будет, т. к. итак проверяют все. Остальное продумаю. При реализации обращал внимание только на мнение врачей, возможность реализации (с ее сложностью) в потоке и составе программно-аппаратного комплекса и качество устранения мешающих шумов. Шумы причем не модельные, а "на живую" полученные.
Сам для себя просто пытаюсь отделять методы, чтобы не путать. Простите неучаPs. Скользящее среднее и вейвлеты это разновидности FIR.
Правильно ли понял - можно подать на вход спроектированного фильтра любую последовательность и отследить момент уменьшения энергии на выходной последовательности (затухание ее)?Т. е. интервал времени в котором сосредоточена заданная доля энергии импульсной характеристики (90, 95, 99 процентов).
- DimKaKiber
- Сообщения: 29
- Зарегистрирован: 26 мар 2020, 15:00
- Откуда: Томск
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Добрый день! Подскажите, пожалуйста, как правильно организовывать SSB модуляцию для потоковых данных? Спектр переносится верно, однако каждый новый пакет сопровождается выбросами (1-5 отсчетов), которые при прослушивании результата щелкают... Попробовал сделать свозной индекс отсчета (t) для формулы переноса, пробовал сделать по аналогии с Фурье-фильтром (с перекрытием(50%). Применял Корректировочные окна, но они сильно искажают сигнал. Пытался сгладить скользящими (знаю что идея совсем плохая) -- щелки плавнее, но суть не меняется.Бахурин Сергей писал(а): ↑02 апр 2020, 21:10что значит много новых синусоид появляется при амплитудной модуляции?
Можно еще SSB перенос сделать. Останется верхняя боковая или нижняя боковая полоса.
Последний раз редактировалось DimKaKiber 11 май 2020, 20:06, всего редактировалось 1 раз.
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
надо правильно стыковать пакеты при преобразовании Гильберта и для переноса по частоте надо сквозной индекс для времени. Преобразователь Гильберта как реализуется у вас?
- DimKaKiber
- Сообщения: 29
- Зарегистрирован: 26 мар 2020, 15:00
- Откуда: Томск
- Контактная информация:
Re: Преобразования ФНЧ-ПФ
Сделал через БПФ. Пытался через квадратурный преобразователь - получил искажение сигнала неясное и решил сначала через привычный БПФ сделать чтобы проверить как работает метод.Бахурин Сергей писал(а): ↑11 май 2020, 20:05надо правильно стыковать пакеты при преобразовании Гильберта и для переноса по частоте надо сквозной индекс для времени. Преобразователь Гильберта как реализуется у вас?
Сквозной индекс есть. А как состыковать Аналитический сигнал?
Кажись дошло. Надо сшить комплексный сигнал по типу как в Фурье фильтре, чтобы он непрерывным был. И использовать его для расчета. А я только реальную часть брал и еще усугубляют, т.к. брал уже все после расчетов и суммировал. Завтра сделаю)
Последний раз редактировалось DimKaKiber 11 май 2020, 21:41, всего редактировалось 1 раз.