东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[通信原理] lfm:线性调频信号的生成与幅频特性

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

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




  1. import numpy as np
  2. import math
  3. import matplotlib.pyplot as plt
  4. from matplotlib.pylab import mpl
  5. from scipy.fftpack import fft, ifft, fftshift
  6. import scipy
  7. import sympy
  8. # https://www.jianshu.com/p/339c91ae9f41

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

  11. # lfm:线性调频信号的生成与幅频特性
  12. # 线性调频(LFM)是一种不需要伪随机编码序列的扩展频谱调制技术。
  13. # 由于线性调频信号占用的频带宽度远大于信息带宽,所以也可以获得很大的系统处理增益。
  14. # 线性调频信号又称鸟声(Chirp)信号,因为其频谱带宽落于可听范围,则听若鸟声,所以又称Chirp扩展频谱(CSS)技术。
  15. # LFM技术在雷达、声纳技术中有广泛应用,如在雷达定位技术中,
  16. # 它可在增大射频脉冲宽度、提高平均发射功率、加大通信距离同时又保持足够的信号频谱宽度,不降低雷达的距离分辨率

  17. # 脉冲压缩雷达最常见的调制信号是线性调频(Linear Frequency Modulation)信号

  18. # 脉冲信号:脉宽 峰值功率  平均功率

  19. T = 10e-6   # 脉宽
  20. # 把一个信号所包含谐波的最高频率与最低频率之差,即该信号所拥有的频率范围,定义为该信号的带宽。
  21. # 因此可以说,信号的频率变化范围越大,信号的带宽就越宽
  22. B = 23e6    # 信号带宽
  23. # 线性调频信号的调频斜率估计方法  y=kx+b里的k
  24. K = B/T     # 调频斜率
  25. Fs = 2*B    # 采样频率 数字信号处理
  26. Ts = 1 / Fs   # 采样周期

  27. N = int(T / Ts)    # 脉冲宽度里有多少个周期 一个周期一个采样点
  28. # 采样个数: 460.0
  29. print("脉冲宽度里有多少个周期(采样点个数):", N)

  30. t = np.linspace(-T/2, T/2, N)
  31. # 生成线性调频信号  这也是sin cos的波?
  32. # St = np.exp(j * np.pi * K * t**2)  j是虚数单位
  33. # 欧拉公式展开
  34. # # 可以将把 St 表示成一个实部cos(PI*K*t*t)和一个虚部sin(PI*K*t*t)
  35. # # St = np.cos(np.pi * K * t**2) + np.sin(np.pi * K * t**2)j  j是虚数单位 这样写也不行
  36. # St_temp = []
  37. # for t_i in t:
  38. #     St_temp.append(complex(np.cos(np.pi * K * t_i**2), np.sin(np.pi * K * t_i**2)))
  39. #
  40. # St = np.array(St_temp)
  41. St = np.exp(1j * np.pi * K * t**2)
  42. print("成功构建了射频信号:", type(St), St.shape, St.dtype, St[:5])
  43. #  复数信号都可以这样分解,如果 不懂的话, 可以 找找信号 与系统方面的书看一看
  44. # 虚数部分必须有后缀j或J  i被电流占用

  45. # sympy.exp()
  46. # print(type(St))
  47. # 复数由实数部分和虚数部分构成   x+yj   real+imagej
  48. # aa = 123 - 12j
  49. # yreal = aa.real               # 获取实数部分
  50. # yimag = aa.imag               # 获取虚数部分
  51. # 实数部分和虚数部分都是浮点数 虚数部分必须有后缀j或J


  52. # 画图
  53. plt.figure(figsize=(16, 12))

  54. plt.subplot(211)
  55. # 为何乘以1e6  时间的单位变了(由秒 变 U秒)
  56. plt.plot(t*1e6, St, linestyle='-', color='blue')
  57. plt.xlabel('Time [u sec]', fontsize=16)
  58. plt.xticks()
  59. # Amplitude 振幅
  60. plt.ylabel('Amplitude', fontsize=16)
  61. plt.title("线性调频信号(LFM Chirp)", fontsize=16)
  62. # plt.show()

  63. plt.subplot(212)
  64. freq = np.linspace(-Fs/2, Fs/2, N)
  65. fft_values_ = fft(St)
  66. # 振幅
  67. fft_values = np.abs(fft_values_)
  68. fft_values = fftshift(fft_values)
  69. # fftshift(abs(fft(St)))
  70. # 频率单位是hz 变换单位 MHZ
  71. plt.plot(freq*1e-6, fft_values, linestyle='-', color='blue')
  72. plt.xlabel('Frequency in MHz', fontsize=16)
  73. plt.ylabel('Amplitude', fontsize=16)
  74. plt.title("线性调频信号的幅频特性", fontsize=16)
  75. plt.show()
复制代码


LFM.png (140.33 KB, 下载次数: 133)

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

使用道具 举报

0

主题

98

帖子

200

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 19:04 , Processed in 0.186242 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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