[已答复] 雷达信号扫描 显示目标

[复制链接]
bryali 发表于 2021-4-7 17:16:28
大佬们就是有一组方位角和距离确定的目标点,怎么在极坐标上,通过雷达扫描给显示出来?
我是用for循环先把动态扫描线画出来,然后用hold on在这个坐标上添加目标点的方位和距离,但是出现了扫描线消不掉的问题。就类似图上这种。



扫描线.png

15 条回复


gywxd 发表于 2021-4-7 17:44:48
本帖最后由 gywxd 于 2021-4-7 18:36 编辑

扫描线的问题 这样处理, 每次全图重画,例如每次画50 条, 每次重绘不断的改变第一条起始线角度  这样就可以了,
位角和距离  画点就行了,用极坐标

https://ww2.mathworks.cn/help/ma ... ar-coordinates.html  有详细说明  画点 和画 极坐标直方图

bryali 发表于 2021-4-7 18:59:48
gywxd 发表于 2021-4-7 17:44
扫描线的问题 这样处理, 每次全图重画,例如每次画50 条, 每次重绘不断的改变第一条起始线角度  这样就可 ...

但是在一个坐标图中即显示动态扫描线,又要显示目标点,就要用到hold on让两个图在一个坐标中显示,但是用到hold on那个扫描线就会把之前扫描过的保留下来

gywxd 发表于 2021-4-7 19:08:19
本帖最后由 gywxd 于 2021-4-7 19:10 编辑
bryali 发表于 2021-4-7 18:59
但是在一个坐标图中即显示动态扫描线,又要显示目标点,就要用到hold on让两个图在一个坐标中显示,但是 ...

for  i=1:1000
cla
      画多条扫描线1      hold on
      画多条扫描线2
      hold on


      画多条扫描线n
      hold on
      画目标点,
      hold on
pause(1)

end



bryali 发表于 2021-4-7 20:10:13
gywxd 发表于 2021-4-7 19:08
for  i=1:1000
cla
      画多条扫描线1      hold on

问题是如果加上cla,因为这个扫描要扫好多圈,每一圈都会多出来一些目标点,这些目标点都要保存下来,同时在坐标区显示出来,如果用上cla就会连带着之前的目标点一起清掉。

gywxd 发表于 2021-4-7 20:21:18
bryali 发表于 2021-4-7 20:10
问题是如果加上cla,因为这个扫描要扫好多圈,每一圈都会多出来一些目标点,这些目标点都要保存下来,同 ...

目标点保存到变量中,每次都重绘所有目标和新增加的目标,并把新目标追加到结构,下次一起画

bryali 发表于 2021-4-7 22:30:29
gywxd 发表于 2021-4-7 19:08
for  i=1:1000
cla
      画多条扫描线1      hold on

您这个每次画扫描线hold on都加上去,那之前的线不还是会保存下来吗?

gywxd 发表于 2021-4-8 07:14:58
bryali 发表于 2021-4-7 22:30
您这个每次画扫描线hold on都加上去,那之前的线不还是会保存下来吗?

for 是 全图重画,重画前 cla

bryali 发表于 2021-4-8 09:11:52
gywxd 发表于 2021-4-7 19:08
for  i=1:1000
cla
      画多条扫描线1      hold on

噢噢,您这个代码的意思是不是:for循环  当i=1时整个坐标图执行画多条线1,然后cla,再到i=2时坐标图执行画多条线2....

gywxd 发表于 2021-4-8 09:29:24
bryali 发表于 2021-4-8 09:11
噢噢,您这个代码的意思是不是:for循环  当i=1时整个坐标图执行画多条线1,然后cla,再到i=2时坐标图执 ...

for 循环
       把所有图像重画  雷达扫描线根据 循环变量i 进行移动

     把所有信息点重画
end
每个循环里面都画多条扫描线, 而且扫描线根据i 进行移动, 这样就实现雷达扫描线的移动

bryali 发表于 2021-4-8 09:59:54
gywxd 发表于 2021-4-8 09:29
for 循环
       把所有图像重画  雷达扫描线根据 循环变量i 进行移动

clc
clear all
close all
degree = 180/pi;
a=2000*30;
maxd=2000*30;
w=a*(0:1:1);
b = xlsread('RS_5500_110_MTI_MTD_CPI.xls');
[m,~] = size(b);%
dataFlag = 0;%数据标识符,读完数据后置1
dataCount = 1;%读取数据计数
while(dataFlag==0)
    for i=0:1:360
        cla;
        u=(w*cosd(i))+(w*(sind(i)*j));%是个复数
        p=polarplot(u, 'g-*' );
        %hold on
        ax=gca;
        ax.RColor='g';
        ax.GridColor='g';
        ax.FontSmoothing='on';
        set(gca,'color', 'k');
        set(gca,'LineWidth', 2);
        rlim([0 maxd]);%rlim设置或查询极坐标区的 r 坐标轴范围
        drawnow limitrate;
        if round(b(dataCount,3)*degree) == i
            targetCount = 1;%同一波位中的目标个数计数值
            while(dataCount+targetCount<=m && b(dataCount,7)==b(dataCount+targetCount,7))
                targetCount = targetCount+1;
            end
            hold on%这不是只在if成立的时候才执行吗
            polarscatter(b(1:dataCount+targetCount-1,3),b(1:dataCount+targetCount-1,2),'*','red');
            %hold on
            %cla;
            dataCount = dataCount+targetCount;
            if dataCount>m
                dataFlag = 1;
                break;
            end
        end
    end
end
您好 我按照您说的那样写,发现还是不对,目标信息在附件里 能恳求您帮我看看吗


RS_5500_110_MTI_MTD_CPI.xls

31 KB, 下载次数: 1


bryali 发表于 2021-4-8 10:02:41
gywxd 发表于 2021-4-8 09:29
for 循环
       把所有图像重画  雷达扫描线根据 循环变量i 进行移动

我那段代码是转完之后才一起显示出目标点

gywxd 发表于 2021-4-8 11:25:40
本帖最后由 gywxd 于 2021-4-8 11:29 编辑

w=a*(0:1:1);
b = xlsread('RS_5500_110_MTI_MTD_CPI.xls');
[m,~] = size(b);%
dataFlag = 0;%数据标识符,读完数据后置1
dataCount = 1;%读取数据计数

while flag==1
for n=1:2:360
        cla
        count=0;
        for i=n:2:150+n   %绿色界面范围   
             count=count+2;
            
             u=(w*cosd(i))+(w*(sind(i)*j));%是个复数
             if count>148
                 p=polarplot(u, 'g-*' );
             else
                 p=polarplot(u, 'g- ' );
             end
              
          hold on
        end
        
        
        (这个位置加些画 探测物 数据的代码即可)
        
        
        
        set(gca,'color', 'k');
        pause(0.02);
end
end

bryali 发表于 2021-4-8 22:07:26
gywxd 发表于 2021-4-8 11:25
w=a*(0:1:1);
b = xlsread('RS_5500_110_MTI_MTD_CPI.xls');
[m,~] = size(b);%

您好,您这个应该是while flag==1,还是while dataFlag = 0?您这里面没有flag这个标识符

gywxd 发表于 2021-4-9 07:08:26
bryali 发表于 2021-4-8 22:07
您好,您这个应该是while flag==1,还是while dataFlag = 0?您这里面没有flag这个标识符 ...

雷达工作标志,如果 变为0 雷达就停,

bryali 发表于 2021-4-9 17:09:54
gywxd 发表于 2021-4-9 07:08
雷达工作标志,如果 变为0 雷达就停,

谢谢您,搞出来了,万分感谢:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表