Добрый день,
Имеется несколько
(
) сигналов
,
,
, которые у меня повторяются несколько
раз.
- фиксировано,
- надо взять минимальным.
Когда сигнал во времени повторяется, я не могу очень точно гарантировать начальное время сдвига (
), хотя сигнал по идее во времени должен быть точно таким же, как и был с точностью до слабо меняющейся константы
:
Каждый сигнал
я могу передать в канал для оцифровки, или передать в канал для оцифровки дифференциальную разницу между двумя сигналами
.
Одновременно я могу оцифровывать мало каналов, обычно от
до
(всегда четное), это число зависит от скорости семплирования, так, что с каждого канала получается
чисел (
, не во всех задачах - степень двойки).
соотносится к скорости оцифровки так, что
может составлять до нескольких шагов оцифровки, и, к сожалению, не является точно целым числом.
Еще один очень важный момент.
Все сигналы очень похожи друг на друга с точностью до нормировки, собственно поэтому я заморачиваюсь с их разницей
.
Нормы сигналов отличаются на плюс-минус проценты, то есть иногда разница дает очень большое преимущество, а иногда почти нивелирована тем, что нормы сигналов уже были сильно отличными.
Мне нужно получить максимально точно оцифрованные
, так, чтобы для них же их разница (
) тоже была максимально точная.
Также желательно получить коэффициенты
.
Возможно правильнее даже сказать, что я хочу получить один нормированный сигнал
, и набор нормированных разниц (
).
Из неприятного, у меня очень мало памяти. Если один оцифрованный сигнал занимает примерно
ячеек памяти, то у меня имеется примерно
свободных ячеек памяти для промежуточных вычислений, и эти вычисления хочется реализовать на FPGA.
Меня также устроит, если я получу один сигнал
, "оптимальную" линейную комбинацию из
(пусть даже большего размера, чем
), получу линейную комбинацию из
, а уже "досжатие" проведу далее на обычном процессоре, но у меня не хватит пропускной способности процессора стащить все оцифрованные данные на процессор и сделать там аналог сингулярного разложения, да и надо "на лету" выбрать оптимальные комбинации тех сигналов, которые надо оцифровывать.
Мой вариант решения:
(не честный)
Если я бы мог оцифровывать все сигналы и все возможные их пары, я бы каждый раз делал такую оцифровку, потом бы считал бы QR, с оптимизацией по рангу, и оставлял бы только малый ранг.
Недостаток - без полного SVD оптимизация по рангу будет кривой, а SVD на FPGA не сделать, то есть надо пользовать какие-то методы адаптивной кросс-аппроксимации.
Между наборами сигналов - без пробного подбора
не обойтись, и это тоже съест уйму вычислительных ресурсов.
Совершенно не понимаю какую стратегию выбрать, для оптимального выбора пар дифференциальных сигналов и самих сигналов во время оцифровки - ведь если у меня 8 сигналов, то всего я могу иметь до
каналов, а у меня есть возможность оцифровать только
каналов и у меня стоит важный вопрос как оптимально выбрать эти каналы?
Пожалуйста, прокомментируйте-посоветуйте по
1. стратегии выбора какой канал или какую дифференциальную пару выбрать,
2. стратегии сжатия этих данных, для получения оптимальных данных.
Спасибо!