Добрый день,
Имеется несколько

(

) сигналов

,

,

, которые у меня повторяются несколько

раз.

- фиксировано,

- надо взять минимальным.
Когда сигнал во времени повторяется, я не могу очень точно гарантировать начальное время сдвига (

), хотя сигнал по идее во времени должен быть точно таким же, как и был с точностью до слабо меняющейся константы

:

Каждый сигнал

я могу передать в канал для оцифровки, или передать в канал для оцифровки дифференциальную разницу между двумя сигналами

.
Одновременно я могу оцифровывать мало каналов, обычно от

до

(всегда четное), это число зависит от скорости семплирования, так, что с каждого канала получается

чисел (

, не во всех задачах - степень двойки).

соотносится к скорости оцифровки так, что

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

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

, так, чтобы для них же их разница (

) тоже была максимально точная.
Также желательно получить коэффициенты

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

, и набор нормированных разниц (

).
Из неприятного, у меня очень мало памяти. Если один оцифрованный сигнал занимает примерно

ячеек памяти, то у меня имеется примерно

свободных ячеек памяти для промежуточных вычислений, и эти вычисления хочется реализовать на FPGA.
Меня также устроит, если я получу один сигнал

, "оптимальную" линейную комбинацию из

(пусть даже большего размера, чем

), получу линейную комбинацию из

, а уже "досжатие" проведу далее на обычном процессоре, но у меня не хватит пропускной способности процессора стащить все оцифрованные данные на процессор и сделать там аналог сингулярного разложения, да и надо "на лету" выбрать оптимальные комбинации тех сигналов, которые надо оцифровывать.
Мой вариант решения:
(не честный)
Если я бы мог оцифровывать все сигналы и все возможные их пары, я бы каждый раз делал такую оцифровку, потом бы считал бы QR, с оптимизацией по рангу, и оставлял бы только малый ранг.
Недостаток - без полного SVD оптимизация по рангу будет кривой, а SVD на FPGA не сделать, то есть надо пользовать какие-то методы адаптивной кросс-аппроксимации.
Между наборами сигналов - без пробного подбора

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

каналов, а у меня есть возможность оцифровать только

каналов и у меня стоит важный вопрос как оптимально выбрать эти каналы?
Пожалуйста, прокомментируйте-посоветуйте по
1. стратегии выбора какой канал или какую дифференциальную пару выбрать,
2. стратегии сжатия этих данных, для получения оптимальных данных.
Спасибо!