2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 19:05 


20/01/12
210
B@R5uk в сообщении #1682771 писал(а):
... сигнал нельзя скорректировать просто сдвигом назад во времени на заданное число дискретов.

Я не про это. Я про то, что абсолютное значение времени никого не интересует.
Если важна задержка отфильтрованного сигнала относительно какого-то другого сигнала, то всегда можно пропустить этот другой сигнал через линию задержки на K/2 тактов.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 21:11 


23/02/23
183
Хорошо, про БИХ и КИХ фильтры - понятно, это умножение слева на ленточную или даже не ленточную бесконечную Теплицеву всего сигнала так, что надо вначале угадать спектр этой Теплицевой. Теперь смогу со своей колокольни все сам освоить, но, помня эту теорию бесконечных Теплицевых имею возразить, что мой сигнал при не большой ширине ленты хорошо не сожмется...

Тут возникла другая идея.

Итак есть у меня окно, скажем 64 отсчета. Я считаю среднее и вычитаю из сигнала. У меня обычно после этого евклидова норма сигнала падает разов в 5, и это довольно очевидно.

Вот если смотреть на сигнал в этих 64 отсчетах, то его можно аппроксимировать одной, двумя или тремя функциями, из которых

1. синус-косинус, обычно с 0.7 до 10 периодов на эти 64 точки, очень часто совсем не ровное число периодов,
2. линейно убывающая или возрастающая функция,
3. что-то похожее на Гауссово распределение,
4. что-то в виде произведения функции из первого пункта на функцию из второго или третьего пункта.

Очевидно у каждого из этих вариантов один, или максимум два параметра и такую функцию можно закодировать с ее номером примерно 16 битами.

Фактически это - компрессед-сенсинг. Но процессор его не потянет в общем виде.

А можно ли быстро зафитить в 64 отсчета пару синус-косинус с произвольной частотой? То есть чтобы не Фурье, а чтобы можно было бы аппроксимировать так, что на выходе было бы сказано - де период 33 точки, амплитуда - такая-то.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 21:40 
Аватара пользователя


26/05/12
1857
приходит весна?
В теории ЦОС есть прекрасно разработанные и вполне себе регулярные методы построения любых фильтров, какие только могут захотеться. Вон в MATLAB'е есть куча готовых функций, которые как проектируют всевозможные фильтры любых типов, так и применяют получившийся результат к любому сигналу, загруженному из файла функцией wavread или рассчитанному по формуле. Загуглите digital filtering matlab и первым же вам выйдет что-нибудь типа Practical Introduction to Digital Filtering. Быстрее и качественнее цифровой фильтрации для вашей задачи вы ничего не найдёте. БФП — это убогий костыль, когда надо один раз сделать с сигналом что-то нелинейное, а других инструментов нет под рукой, либо нет времени освоить/приобрести.

От себя рекомендую найти и скачать серию из четырёх статей Аллы Солониной "Моделирование цифровой обработки сигналов в MATLAB". Там кратко, понятно, с картинками и примерами объяснено что, как и почему. И литература в конце для дальнейшего ознакомления имеется.

Если же вы считаете, что сигнал у вас существенно нестационарный, по причине чего простые цифровые фильтры не применимы, то приведите убедительные аргументы в пользу этого (читай: ссылку на образец сигнала, который удалось ещё впихнуть в память МК, пока начало образца передавалось по ограниченному каналу связи) За одно, было бы неплохо и характеристики МК узнать, типа модель и объём памяти. Как по мне, так ваша задача уже решена на прошлой странице.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 22:09 


23/02/23
183
B@R5uk в сообщении #1682793 писал(а):
Если же вы считаете, что сигнал у вас существенно нестационарный, по причине чего простые цифровые фильтры не применимы, то приведите убедительные аргументы в пользу этого (читай: ссылку на образец сигнала, который удалось ещё впихнуть в память МК, пока начало образца передавалось по ограниченному каналу связи) За одно, было бы неплохо и характеристики МК узнать, типа модель и объём памяти. Как по мне, так ваша задача уже решена на прошлой странице.


Я же говорил, что очень не стационарный сигнал, фактически приходящий сигнал - это чирп плюс что-то очень медленно меняющееся. Несущая частота такого чирпа находится в диапазоне от 50 до 150 кГц, обычно заранее известна, но может плыть вверх-вниз внутри диапазона на десятки процентов. Фактически лучше просто сказать - неизвестна, но находится в этом диапазоне. Число периодов в чирпе - от одного до ста. Оцифровка на 1МS/s по 12 бит. Можно делать примерно 10-15 флопов на семпл и наружу вытаскивать 3мбит/с. На борту контроллера есть примерно 3-4кБайта памяти на обработку данных. Контроллер озвучить не могу.

То, что медленно меняется в сигнале - имеет спектр ниже 20кГц, то есть можно сказать, что примерно от 20кГц до 50кГц есть дырка. Но не все так хорошо. Так как сигнал нестационарен, то полное Фурье большого куска сигнала очевидно заполняет весь спектр.

Норма сигналов с чирпами примерно в 4-5 раз меньше, чем норма медленно меняющегося сигнала. Норма шума - хз, и как он распределен. Предполагаю, что шум может быть до десятка процентов, но вот стационарен ли он или нет - хз.

Низкочастотный сигнал мне тоже нужен, но он легко фильтруется и я его из исходного сигнала отнимаю и он составляет разумный не большой трафик, примерно в 1мбит/с, который тоже надо через дырку в 3мбит/с протаскивать.

Я же говорю, бодаться с фильтрами при большой нестационарности - это очень глупая идея, единственно чего мне не хватает - так это компрессед сенсинга, но он не вписывается по скорости.

PS: я же не от балды оконные функции стал тут применять, а именно из-за свойств сигнала - чирп с большей вероятностью вписывается в такое окно, а вне окна о нем никому ничего не известно. Просто реально резанула Ваша B@R5uk фраза, что супербыстрые фильтры могут с легкостью все это скомпремировать. С моей формой сигнала и коэффициентом компрессии в 4 раза - нет, не могут. Просто исходный вопрос наверное надо было формулировать сразу с учетом того, что сигнал содержит чирпы, но я хотел не заострять на этом внимания, а вдруг есть что-то интересное в этой области.

Если бы я знал размеры чирпов, я бы под них подстраивал бы мои окна, но чирпы меняются во времени и у меня даже нет их характерных размеров.

Но меня бы устроил алгоритм быстрого фитинга сигнала в $a \sin(bx+c)$ для случая, когда период не кратен размеру окна. Может кто-то знает как это сделать устойчиво и с минимальными арифметическими затратами?

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 22:26 
Аватара пользователя


26/05/12
1857
приходит весна?
ОК, вот что я вижу: сигнал с дискретизацией 1 МГц, два целевых куска спектра от 0 до 20 кГц и от 50 до 150 кГц из всего спектра от 0 до 500 кГц. Режем-фильтруем, получаем два сигнала с суммарной частотной шириной 120 кГц, что требует 240 кГц для посылки всех информативных сэмплов. Оставляем 12 бит разрядность (можно и зарубить 1-2 бита в зависимости от амплитуды), получаем поток 2.88 Мбит/сек. Вауля! Лезет же в 3 Мбита!

Ну я серьёзно. У вас проект: сроки, требования на надёжность. Зачем тратить время, придумывать велосипед, который может ещё даже и не поедет, когда можно потратить одну-две недели на освоение нового материала (который гарантированно будет работать), а потом успешно его применять по мере необходимости?

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение17.04.2025, 22:43 


23/02/23
183
B@R5uk в сообщении #1682798 писал(а):
ОК, вот что я вижу: сигнал с дискретизацией 1 МГц, два целевых куска спектра от 0 до 20 кГц и от 50 до 150 кГц из всего спектра от 0 до 500 кГц. Режем-фильтруем, получаем два сигнала с суммарной частотной шириной 120 кГц, что требует 240 кГц для посылки всех информативных сэмплов. Оставляем 12 бит разрядность (можно и зарубить 1-2 бита), получаем поток 2.88 Мбит/сек. Вауля! Лезет же в 3 Мбита!

думаете я так не пробовал? Из-за нестационарности сигнала, только оконным и получается так сделать.

 Профиль  
                  
 
 Re: Свойства оконного Фурье
Сообщение18.04.2025, 08:53 
Заслуженный участник
Аватара пользователя


11/03/08
10217
Москва
0. Мне представляется, что именно нестационарность - основной аргумент для цифровой фильтрации обычными БИХ- или КИХ-фильтрами.
1. БИХ - минимальный сдвиг выходного сигнала, малое число коэффициентов, но может быть сдвиг фазы (обязан, но на некоторых частотах удаётся достичь нулевого). КИХ - для хорошей крутизны надо много коэффициентов, что и задержка, и больше вычислений, но можно построить КИХ-фильтр, вообще не сдвигающий фазу. Для выбора надо знать, насколько сдвиг фазы существенен.
2. Мне представляется использование двух фильтров, один 0-20, другой 50-150 кГц, первый оцифровывается с частотой 40 кГц, второй 200 кГц. Вроде влазит (только второй надо "умно восстанавливать", у нас частота Найквиста 100, и надо понимать, что придёт алиас, а не прямой выход фильтра).
3. Задача подгонки $y(t)=a\sin(bt+\varphi)$, как мне кажется, тут не совсем к месту. Но попробую предложить.
Для начала - убираем фазу, она очень уж нелинейно входит. $a\sin(bt+\varphi)=a_1\sin(bt)+a_2\cos(bt)$ Для известного b коэффициенты при синусах и косинусах обычной регрессией, возможность получить хорошую оценку для b зависит от того, насколько сигнал отягощён шумом и другими компонентами. Если выражение точное - считаем вторую производную.
$y (если вторая производная оценивается через вторую разность, тут чуть сложнее оценка для b, но только чуть). Но, скорее всего, удастся получить грубое приближение и затем уточнять, скажем, Левенбергом-Марквардтом.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Утундрий


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group