欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

Python实现《合成孔径雷达成像——算法与实现》图3.13

发布时间:2023/12/20 python 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python实现《合成孔径雷达成像——算法与实现》图3.13 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Python实现《合成孔径雷达成像——算法与实现》图3.13。

import matplotlib.pyplot as plt import numpy as np import math plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 #信号持续时间T=7.24us,信号带宽B=5.8MHz,将过采样率设为5是为了更清晰地观测信号波形 T = 10e-6 # 脉冲持续时间 B = 15e6 # 脉冲带宽 K = B/T # 调频率 ratio = 5 # 过采样率 Fs = ratio*B # 采样频率 dt = 1/Fs # 采样间隔 N = math.ceil(T/dt) # 采样点数t = np.arange((0-N/2)/N*T,(N-N/2)/N*T,dt) # 时间轴 st0 = np.exp(1j*math.pi*K*np.multiply(t-T/5, t-T/5)) # 生成基本信号 space1 = np.zeros(round(N/5)) # 生成空信号 space2 = np.zeros(N) # 生成空信号 st = [space1,st0,space2,st0,space2,st0,space1] #实际信号 st = [y for x in st for y in x] N1 =len(st) f = np.linspace((0-N1/2)/N1*Fs,(N1-N1/2)/N1*Fs,N1) # 频率轴 space = np.zeros(N1-len(st0)) Sf = np.fft.fftshift(np.fft.fft(st)) # FFT a = np.conj(np.flip(st0)) b = space e = [a,b]#补0 e = [y for x in e for y in x] Hf1 = np.fft.fftshift(np.fft.fft(e)) # 方式1的匹配滤波器:时间反褶后取复共轭,计算N点补零DFTa = st0 b = space e = [a,b]#补0 e = [y for x in e for y in x] Hf2 = np.fft.fftshift(np.conj(np.fft.fft(e))) # 方式2的匹配滤波器:补零后计算DFT,对结果取复共轭 Hf3 = np.exp(1j*math.pi*np.multiply(f,f)/K) # 方式3频域匹配滤波器Out1 = np.fft.ifft(np.fft.ifftshift(Sf*Hf1)) Out2 = np.fft.ifft(np.fft.ifftshift(Sf*Hf2)) Out3 = np.fft.ifft(np.fft.ifftshift(Sf*Hf3))plt.figure(1) plt.subplot(4,1,1) plt.plot(np.real(st)) plt.axis('tight') plt.title('(a)输入阵列信号的实部') plt.ylabel('幅度') plt.subplot(4,1,2) plt.plot(np.abs(Out1)) plt.axis('tight') plt.title('(b)方式1的匹配滤波输出') plt.ylabel('幅度') plt.subplot(4,1,3) plt.plot(np.abs(Out2)) plt.axis('tight') plt.title('(c)方式2的匹配滤波输出') plt.ylabel('幅度') plt.subplot(4,1,4) plt.plot(np.abs(Out3)) plt.axis('tight') plt.title('(d)方式3的匹配滤波输出') plt.xlabel('时间(采样点)') plt.ylabel('幅度') plt.show()

总结

以上是生活随笔为你收集整理的Python实现《合成孔径雷达成像——算法与实现》图3.13的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。