ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 апреля
711168 Топик полностью
Николай Коровин (06.11.2016 18:27, просмотров: 312) ответил Ксения на Если базисы ортогональны, да еще и масштабированные под единичную норму (а это делается всегда заранее), то никого МНК тут и в помине нет - попросту вектор данных перемножается с каждым из базисов, а полученные скалярные произведения как раз и
Ну МНК тоже довольно механическая операция…  #define NBASIS 8 //Число базисных функций static double GAUSS_A[NBASIS][NBASIS], GAUSS_C[NBASIS], GAUSS_X[NBASIS]; //Заполняем матрицы memset (GAUSS_C,0,sizeof(GAUSS_C)); for (i=0;i<NBASIS;i++) //Для всех уравнений в СЛАУ for (b=0;b<Всего_есть_отсчётов_АЦП;b++) GAUSS_C[i]+=Значения_аппроксимируемого_сигнала_по_y[b]*Basis(i,Загнанные_в_нужный_масштаб_значения_времени[b]); //Свободный член i-го уравнения memset (GAUSS_A,0,sizeof(GAUSS_A)); for (i=0;i<NBASIS;i++) //Для всех уравнений в СЛАУ for (j=0;j<NBASIS;j++) //Для всех неизвестных в каждом уравнении for (b=0;b<Всего_есть_отсчётов_АЦП;b++) GAUSS_A[i][j]+=Basis(i,Загнанные_в_нужный_масштаб_значения_времени[b])*Basis(j,Загнанные_в_нужный_масштаб_значения_времени[b]); //Коэффициент при каждой неизвестной for(i=0;i<NBASIS-1;i++) { for(j=i+1;j<NBASIS;j++) if(fabs(GAUSS_A[j][i])... //Считаем СЛАУ методом Гаусса ...} //GAUSS_X содержит коэффициенты для базисов 0 .. NBASIS-1