东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1471|回复: 1
打印 上一主题 下一主题

[通信原理] LFM信号经过中放的匹配滤波(频域相乘、脉冲压缩)的仿真

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
跳转到指定楼层
楼主
发表于 2021-3-12 16:55:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


# LFM信号经过中放的匹配滤波(频域相乘、脉冲压缩)的仿真

# 脉冲压缩指雷达在发射时采用宽脉冲信号,接收和处理回波后输出窄脉冲。
# 脉冲压缩技术是匹配滤波理论和相关接收理论的一个很好的实际应用。
# 很好地解决了这样的一个问题:在发射端发射大时宽、带宽信号,以提高信号的发射能量,
# 而在接收端,将宽脉冲信号压缩为窄脉冲,以提高雷达对目标的距离分辨精度和距离分辨力。
# 该技术解决了雷达远距离探测与高精度测距性能不可兼顾的问题,是现代雷达中不可缺少的关键技术

# DSP对采样后的数据进行FFT变换,变换至频域后,与其匹配滤波器频率数据进行复数相乘,
# 相乘后,再与复数补偿因子进行相乘解决脉冲间距离走动问题,最后将结果做IFFT,重新变换回时域。
# 其中,FFT点数、复数相乘点数、IFFT点数均为1024点

# 脉冲压缩的DSP处理方法有时域卷积或频域相乘。
# 对于点数较多的回波信号,采用频域相乘方法可以获得较快的运算速度

# 脉冲压缩:线性调频信号 + 匹配滤波
# 匹配滤波的计算:时域卷积 频域相乘(回波点数较多时,考虑计算速度)


  1. import numpy as np
  2. from scipy.fftpack import fft, ifft, fftshift
  3. import scipy.signal
  4. from matplotlib.pylab import mpl
  5. import matplotlib.pyplot as plt

  6. mpl.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文
  7. mpl.rcParams['axes.unicode_minus'] = False  # 显示负号

  8. # LFM信号经过中放的匹配滤波(频域相乘、脉冲压缩)的仿真

  9. # 脉冲压缩指雷达在发射时采用宽脉冲信号,接收和处理回波后输出窄脉冲。
  10. # 脉冲压缩技术是匹配滤波理论和相关接收理论的一个很好的实际应用。
  11. # 很好地解决了这样的一个问题:在发射端发射大时宽、带宽信号,以提高信号的发射能量,
  12. # 而在接收端,将宽脉冲信号压缩为窄脉冲,以提高雷达对目标的距离分辨精度和距离分辨力。
  13. # 该技术解决了雷达远距离探测与高精度测距性能不可兼顾的问题,是现代雷达中不可缺少的关键技术

  14. # DSP对采样后的数据进行FFT变换,变换至频域后,与其匹配滤波器频率数据进行复数相乘,
  15. # 相乘后,再与复数补偿因子进行相乘解决脉冲间距离走动问题,最后将结果做IFFT,重新变换回时域。
  16. # 其中,FFT点数、复数相乘点数、IFFT点数均为1024点

  17. # 脉冲压缩的DSP处理方法有时域卷积或频域相乘。
  18. # 对于点数较多的回波信号,采用频域相乘方法可以获得较快的运算速度

  19. # 脉冲压缩:线性调频信号 + 匹配滤波
  20. # 匹配滤波的计算:时域卷积  频域相乘(回波点数较多时,考虑计算速度)

  21. T = 10e-6    # 脉宽
  22. B = 25e6     # 带宽
  23. K = B/T      # 调频斜率
  24. Fs = 200e6   # 采样频率
  25. Ts = 1/Fs
  26. N = int(T/Ts)
  27. print("脉宽内采样的周期数=", N)
  28. FFT_POINT = 2048
  29. # 对于点数较多的回波信号,采用频域相乘方法可以获得较快的运算速度
  30. print("FFT点数、复数相乘点数、IFFT点数均为%d点(与压缩程度有关吗?)" % FFT_POINT)


  31. t = np.linspace(-T/2, T/2, N)
  32. # St = np.exp(j*np.pi*K*t**2)  用欧拉公式展开

  33. # 发射信号 线性调频信号 回波的射频信号
  34. St = np.exp(1j * np.pi * K * t**2)

  35. # Ht = np.exp(-j*np.pi*K*t**2)  匹配滤波器  to=0 后 复数共轭 冲激响应函数
  36. Ht = np.exp(-1j * np.pi * K * t**2)

  37. # 变换至频域 n是什么东东?

  38. Sf = fft(St, n=FFT_POINT)
  39. Hf = fft(Ht, n=FFT_POINT)
  40. # 频域相乘后 做逆fft 后fftshift
  41. # 对于点数较多的回波信号,采用频域相乘方法可以获得较快的运算速度
  42. # 与复数补偿因子进行相乘解决脉冲间距离走动问题?
  43. Sot = fftshift(ifft(Sf*Hf))
  44. # Sot = ifft(Sf*Hf)
  45. # LFM信号的压缩前脉冲宽度T和压缩后的脉冲宽度之比通常称为压缩比D
  46. # 卷积定理:时域卷积 相当于 频域相乘
  47. Sot2 = scipy.signal.convolve(St, Ht)
  48. # print("是否相等:", Sot == Sot2)
  49. # assert 0 == 1, "停"

  50. # 画图
  51. plt.figure(figsize=(16, 12))

  52. plt.subplot(211)
  53. # St与St.real一样的
  54. # 为何乘以1e6  时间的单位变了(由秒 变 U秒)
  55. plt.plot(t*1e6, St, linestyle='-', color='blue', label='线性调频', linewidth=1)
  56. plt.xlabel('Time [u sec]', fontsize=16)
  57. plt.ylabel('信号幅度', fontsize=16)
  58. plt.title("LFM线性调频的输入信号", fontsize=16)
  59. # plt.show()

  60. plt.subplot(212)
  61. t1 = np.linspace(-T/2, T/2, FFT_POINT)
  62. # 2048个点 对应Sot
  63. db_value = 20 * np.log10(np.abs(Sot))
  64. plt.plot(t1, db_value, linestyle='-', color='blue', label='线性调频', linewidth=1)
  65. plt.xlabel('Time [sec]', fontsize=16)
  66. plt.ylabel('信号幅度[db]', fontsize=16)
  67. plt.title("LFM脉冲压缩后的输出信号", fontsize=16)
  68. plt.show()



复制代码


脉冲压缩.png (179.97 KB, 下载次数: 125)

脉冲压缩.png
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

98

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
沙发
发表于 2021-11-23 19:51:19 | 只看该作者
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-19 18:17 , Processed in 0.193235 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表