С Новым годом! Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.05.2022
Сообщений: 22
Matlab 2022

Моделирование радарных снимков на основе модельного поля волнений

03.03.2025, 20:43. Показов 1357. Ответов 0

Студворк — интернет-сервис помощи студентам
Я моделирую радиолокационное изображение на основе уже смоделированного поля волн на поверхности моря. Столкнулся с проблемой, что конечное изображение получается неправильным. Получается какая-то ерунда. Вы можете увидеть на (см.изображения) полученный радарный снимок и то, как выглядит поле волн на поверхности.

Скрипт в MATLAB выглядит примерно так (без учета main_prog, из которого вызываются все эти функции):
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
function [g, speed, dx, dy, x, y, df, f_start, f_end, dtt, theta] = common_data()   
    g = 9.81; % acceleration of gravity
    speed = 13; % wind speed
 
    dx = 1; % step along the x-axis
    dy = 1; % step along the y-axis
    x = 0:dx:1000; 
    y = 0:dy:1000; 
 
    df = 0.1; % frequency range step
    f_start = 0.016; % frequency range start
    f_end = 1.25; % frequency range end
 
    dtt = pi / 18; % angle step 
    theta = -pi/2:dtt:pi/2; % angle range
end
 
function [xd, alpha, wmaxd, wmax, gm] = JONSWAP_param(g, speed)
    xd = 2 * 10^(4); % acceleration parameter
    alpha = 0.076 * xd^(-0.22); % Phillips constant
    wmaxd = 3.5 * xd^(-0.33); % dimensionless frequency
    wmax = wmaxd * (g / speed); % max frequency of spectrum
    gm = 3.3; % gamma-factor
end
 
function [JSP] = JONSWAP_Spec(g, alpha, wmax, gm, f)
    sgm = zeros(size(f)); 
    EXP = zeros(size(f));  
    JSP = zeros(size(f)); 
    
    for i = 1:length(f)
        if wmax >= f(i) 
            sgm(i) = 0.07; 
        else
            sgm(i) = 0.09; 
        end
        
    EXP(i) = exp(- ( (f(i) - wmax)^2 ) / ( 2 * sgm(i)^2 * wmax^2) );  
    JSP(i) = alpha * g^(2) * (2*pi)^(-4) * ( (f(i))^(-5) ) * ( exp( (-5/4) * (f(i)/wmax)^(-4) ) ) * ( gm^(EXP(i)) ); % JONSWAP spectrum
    end 
end
 
function [St, Swt, eta0] = Freq_Ang_Spec(dtt, theta, df, JSP)
    St = cos(theta).^(4); % angular spectrum
    Norm = trapz(dtt, St); 
 
    Swt = JSP .* St'; % freq-angular spectrum
    
    eta0 = sqrt((2 * Swt .* df * dtt) ./ Norm); % amplitude of surface waving 
end
 
function [phase, Kx, Ky, etaWA] = SurfaceWaving_simulator(g, x, y, theta, w, eta0)
    phase = 2*pi*rand(length(theta),length(w)); % initial phase
 
    t = 0; % time moment
 
    Kabs = (w.^2) / g; % wavenumber 
    Kx = Kabs .* cos(theta)'; % projection of the wavevector on the x-axis 
    Ky = Kabs .* sin(theta)'; % projection of the wavevector on the y-axis 
    
    etaWA = zeros(length(x),length(y)); 
    
    for i = 1:length(x)
        for j = 1:length(y)
            etaWA(i,j) = sum(eta0 .* cos(w * t - Kx * i - Ky * j + phase), 'all');
        end
    end
end
 
function [az_ang, inc_ang, slope_x, slope_y, Rfl_VV_s, Rfl_HH_s, K_rad, K_b, f_b] = Geom_Sig_Settings(g, x, y, etaWA)
    H_rad = 14; % radar height above sea level
 
    r = sqrt(x.^2 + y.^2); % horizontal distance 
    R = sqrt(r.^2 + H_rad^2); % the trajectory of the signal to each point of the surface
 
    az_ang = atan2(y, x); % azimuth angle of the radar
    inc_ang = acos(H_rad./R); % angle of incidence   
    graz_ang = pi/2 - inc_ang; % grazing angle  
 
    % Calculation of local surface slopes (geometric modulation of the returned signal)
    [sx, sy] = gradient(etaWA);
    slope_x = atan(sx); % slope on x
    slope_y = atan(sy); % slope on y
    % Converting slopes to the radar coordinate system
    slope_rad_x = slope_x .* cos(az_ang) + slope_y .* sin(az_ang); 
    slope_rad_y = -slope_x .* sin(az_ang) + slope_y .* cos(az_ang);
 
    % Calculation of geometric reflection coefficients 
    Rfl_VV = @(inc_ang) (cos(inc_ang)).^(4) .* (1 + (sin(inc_ang)).^(2)).^(2) / (cos(inc_ang) + 0.111).^(4); % the square of the reflection coefficient module (case VV)
    Rfl_HH = @(inc_ang) (cos(inc_ang)).^(4)  / (0.111 .* cos(inc_ang) + 1).^(4); % the square of the reflection coefficient module (case HH)
 
    Rfl_VV_s = sqrt(Rfl_VV(inc_ang + slope_rad_x)); % reflection coefficient module (case VV)
    Rfl_HH_s = sqrt(Rfl_HH(inc_ang + slope_rad_x)) + (slope_rad_y / sin(inc_ang)).^(2) .* sqrt(Rfl_VV(inc_ang)); % reflection coefficient module (case HH)
 
    %% Radar signal parameters
    c_light = 3 * 10^(8); % light speed
    f_rad = 10 * 10^(9); % the frequency of the radar signal emitted by the radar
    lambda_rad = c_light / f_rad; % the wavelength of the radar signal
    K_rad = (2*pi) / lambda_rad; % the wavenumber of the radar signal
 
    K_b = 2 * K_rad * sin(inc_ang); % the Bragg-Wolfe condition
    sigma = 0.073 / 997; 
    f_b = sqrt(g * K_b + sigma * (K_b).^(3)) / (2*pi); % frequency of Bragg waves
end
 
function [JSP_b, RCS_VV] = RadBackscat_Simulator(g, alpha, wmax, gm, az_ang, Rfl_VV_s, Rfl_HH_s, K_rad, K_b, f_b)
    % Calculation of JONSWAP spectrum using f_B
    JSP_b = JONSWAP_Spec(g, alpha, wmax, gm, f_b);
 
    RCS_VV = 16 * pi * (K_rad)^4 .* (abs(Rfl_VV_s))^2 .* JSP_b; 
 
    %RCS_HH = 16 * pi * (K_rad)^4 .* (abs(Rfl_HH_s))^2 .* JSP_b;
 
    %% Radar image visualization
    figure(3)
    imagesc(log10(RCS_VV));
    colormap gray;
    colorbar;
    title('RADAR image');
    xlabel('x');
    ylabel('y');
end
На данный момент я не уверен, где может быть ошибка. Думаю, что вся проблема может заключается в том, что моя модель не учитывает положение радара, потому что в зависимости от азимутального угла az_ang и угла падения inc_ang, под которым радар "смотрит" на определенную точку поверхности океана, будут зависеть значения наклона slope_x и slope_y. То есть, по сути, если мы изменим положение радара, то изменятся и наклоны. В моем случае наклоны рассчитывались без учета этого факта.

Я попытался исправить это и учесть этот факт при расчете уклонов, но это не дало никаких результатов, результат остался прежним:
Matlab M
1
2
3
    % Converting slopes to the radar coordinate system
    slope_rad_x = slope_x .* cos(az_ang) + slope_y .* sin(az_ang); 
    slope_rad_y = -slope_x .* sin(az_ang) + slope_y .* cos(az_ang);
Что я делаю не так? В чем может быть проблема?

Я взял формулы для коэффициентов отражения здесь (страница 3 формулы (3),(4) & (6),(7)):
https://www.researchgate.net/p... ound_model
Миниатюры
Моделирование радарных снимков на основе модельного поля волнений   Моделирование радарных снимков на основе модельного поля волнений  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.03.2025, 20:43
Ответы с готовыми решениями:

Агент моментальных снимков не находит папку моментальных снимков
Здравствуйте, я пытаюсь сделать репликации, но у меня почему-то агент моментальных снимков не может найти папку куда их сохранять(я пока...

Ограничение вариантов заполнения поля в форме на основе уже заполненного поля
Здравствуйте. Сразу к делу- Имеется база, в ней,кроме прочих,существуют таблицы "Структура мест склада" имеющая поля...

Подстановка поля в форме на основе другого поля (ввод с клавиатуры)
Всем привет. Извините за вопрос, уже видела кучу тем с похожими просьбами, но по ним не смогла разобраться со своим случаем. Суть задачи...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2025, 20:43
Помогаю со студенческими работами здесь

Автозаполнение поля грида на основе значения другого lookUp поля
с помощью ADOQuery в грид отображаю данные из 4-х аксессовских таблиц: фио, группа, курс, специальность, отделение, т.е. все они из разных...

Подскажите информацию по теме "Выбор оптимального маршрута для путешествия по городу с оптимальным использованием поля снимков"
Вот имеется тема курсовой: "Выбор оптимального маршрута для путешествия по городу с оптимальным использованием поля снимков". В общем...

Моделирование на основе системы рекуррентных уравнений
Добрый день! На форуме уже была выполнена часть из задания https://www.cyberforum.ru/mathcad/thread186945.html Вторая часть:...

Моделирование работы радара на основе Доплеровского эффекта
Моделирование работы радара ГАИ на основе Доплеровского эффекта.

Моделирование полета кометы в MathCAD на основе диф. уравнения
Добрый день! Может кто может помочь реализовать данное уравнение в маткаде. Была бы очень благодарна. Входные параметры модели: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru