Поиск по сетке для метода оптимизации в Matlab - PullRequest
0 голосов
/ 06 мая 2020

В настоящее время я работаю с бумагой Данные радара CW с пошаговым изменением частоты для оптимальной обработки сигнала Мне нужно найти лучшую комбинацию t, чтобы получить минимум J. Вот процедура, чтобы найти t:

  1. У меня есть 2 числа t: t=[t1 t2]. t будет начинаться с любого значения, но больше нуля.
  2. t будет вставлено в алгоритм, чтобы найти Jminimum
  3. t2 остается постоянным, в то время как минимум J находится по размеру t1.
  4. t1 остается неизменным на ранее найденном значении, в то время как минимум J находится по размеру t2.
  5. 3 и 4 повторяются до тех пор, пока значения временной задержки не перестанут обновляться.

Мой вопрос: как имплантировать эту процедуру в мой код?

Ниже мой код:

clear
clc
close all
load('C:\Users\User\Desktop\fyp\defect_free(H).mat');
load('C:\Users\User\Desktop\fyp\f_column.mat');
load('C:\Users\User\Desktop\fyp\fi_column.mat');
 load('C:\Users\User\Desktop\fyp\fr_column.mat');
fi=fi_column;
fr=fr_column;
f=f_column';
abs_H=abs(ifft(H));% getting magnitude of H from data in frequency domain
abs_H_temp=abs_H(1:2,:);% select from row 1 to row 2
 for z=1:100000; % number of iterations
t=[rand(1,1) rand(1,1)]; %generate set of t
%algorithm
for x=1:101;   % number of  frequency
    for y=1:n; %number of t
        Fr(x,y)=cos(2*pi*f(x)*t(y)); %real number of F
        Fi(x,y)=-i*sin(2*pi*f(x)*t(y)); % imaginary number of F
    end 
end
   Fr_T=Fr';
   Fi_T=Fi';
   A=(Fr_T*Fr)+(Fi_T*Fi);
   B=(Fr_T*fr)+(Fi_T*fi);
   a=lsqminnorm(A,B) ;    % solve tp get a set of a
J(z)=sum((a-abs_H_temp))^2; % to find the minimum of J from measured data
 end
J_min=min(J);
...