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

 (

) сигналов 

, 

, 

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

 раз. 

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

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

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

:

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

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

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

 до 

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

 чисел (

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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