《合成孔径雷达成像算法与实现》Figure3.2

news/2024/10/23 5:43:50/

代码参数说明:Sf1为书中公式3.19,Sf2为时域信号快速傅里叶表达式,两种频谱表达式所做出的图可看出其区别

代码如下:

clc
clear all
close all%参数设置
TBP = 720;          %时间带宽积
T = 10e-6;          %脉冲持续时间%参数计算
B = TBP/T;          %信号带宽
K = B/T;            %线性调频频率
alpha = 1.25;       %过采样率
F = alpha*B;        %采样率
N = 2*ceil(F*T/2);  %采样点数
dt = T/N;           %采样时间间隔
df = F/N;           %采样频率间隔%变量设置
t = -T/2:dt:T/2-dt;         %时间变量
f = -F/2:df:F/2-df;         %频率变量%信号表达
st = exp(1j*pi*K*t.^2);                 %chirp信号复数表达式
Sf1 = exp(-1j*pi*f.^2/K);               %chirp信号频谱表达式
Sf2 = fftshift(fft(fftshift(st)));      %chirp信号快速傅里叶变换%绘图
%Sf1
figure
subplot(221),plot(f*1e-6,real(Sf1),'r')
axis([-10 10,-1.2 1.2])
subplot(222),plot(f*1e-6,abs(Sf1))
axis([-10 10,-1.2 1.2])
subplot(223),plot(f*1e-6,imag(Sf1),'r')
axis([-10 10,-1.2 1.2])
subplot(224),plot(f*1e-6,unwrap(angle(Sf1)))
axis([-28 28,0 400])%Sf2
figure
subplot(221),plot(f*1e-6,real(Sf2),'r')
axis([-10 10,-40 40])
subplot(222),plot(f*1e-6,abs(Sf2))
axis([-50 50,-0 40])
subplot(223),plot(f*1e-6,imag(Sf2),'r')
axis([-10 10,-40 40])
subplot(224),plot(f*1e-6,unwrap(angle(Sf2)))
axis([-50 50,0 900])

 1. N = 2*ceil(F*T/2);

        ceil: 向正无穷舍入,保证N是偶数

2. plot(f*1e-6,unwrap(angle(Sf1)))

        Q = unwrap(P) 展开向量 P 中的弧度相位角。每当连续相位角之间的跳跃大于或等于 π 弧度时,unwrap 就会通过增加 ±2π 的整数倍来平移相位角,直到跳跃小于 π。如果 P 是矩阵,unwrap 将按列运算。如果 P 是多维数组,unwrap 将对大小大于 1 的第一个维度进行运算。

        举个例子:一般在我们计算一个系统相频特性时,就要用到反正切函数提取相位,计算机中反正切函数规定,在一、二象限中的角度为0~pi,三四象限的角度为0~-pi。但实际得到的结果会发生相位跳变,跳变幅度为2pi,这就叫相位的卷绕。unwrap函数的作用就是解卷绕,使相位在pi处不发生跳变,从而反应出真实的相位变化。

 


http://www.ppmy.cn/news/1015515.html

相关文章

【MongoDB】数据库、集合、文档常用CRUD命令

目录 一、数据库操作 1、创建数据库操作 2、查看当前有哪些数据库 3、查看当前在使用哪个数据库 4、删除数据库 二、集合操作 1、查看有哪些集合 2、删除集合 3、创建集合 三、文档基本操作 1、插入数据 2、查询数据 3、删除数据 4、修改数据 四、文档分页查询 …

2023-08-08 LeetCode每日一题(任意子数组和的绝对值的最大值)

2023-08-08每日一题 一、题目编号 1749. 任意子数组和的绝对值的最大值二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数数组 nums 。一个子数组 [numsl, numsl1, …, numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 … numsr-1 numsr) 。 请你找出 …

【数据结构与算法】十大经典排序算法-快速排序

🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…

Maven 打包生成Windows和Liunx启动文件

新建一个springboot项目。 1、项目结构 2、pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocati…

小程序如何使用防抖和节流?

防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;都是用来优化函数执行频率的技术&#xff0c;特别在处理用户输入、滚动等频繁触发的情况下&#xff0c;它们可以有效减少函数的执行次数&#xff0c;从而提升性能和用户体验。但它们的工作方式和应…

【产品设计】消息通知系统设计

消息通知可以将内容实时送达用户手机页面&#xff0c;但是泛滥的消息通知会引起用户的反感&#xff0c;也违背了这个设计的初衷。 消息通知可以及时地将状态、内容的更新触达到用户&#xff0c;用户则可以根据收到的消息做后续判断。但是如果没有及时将重要消息触达到用户或者滥…

Unity 中检测射线穿过的所有的物体

在开发中 有个需求&#xff0c;射线要检测所有穿过的物体。 代码如下&#xff1a; using UnityEngine;public class HitCollider : MonoBehaviour {public float raycastDistance Mathf.Infinity;// Update is called once per framevoid Update(){Ray ray Camera.main.Scre…

WordPress获取文章所属分类名称或别名方法

最近在开发WordPress主题的时候&#xff0c;想要获取到文章所属分类名称或别名&#xff0c;想了半天没想到&#xff0c;于是去百度了下&#xff0c;马上就得到答案了。 非常简单&#xff0c;WordPress本身自带一个函数可以调出分类别名和链接&#xff1a; <?php the_cate…