东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Python] ti的sfcw信号1T1R加窗后解算距离维_matlab与python实现

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14437
QQ
跳转到指定楼层
楼主
发表于 2022-5-9 16:04:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式




ti的sfcw信号1T1R加窗后解算距离维_matlab与python实现

# 加窗的作用:主峰周围的旁瓣变平缓 更好地提取出目标
# 加窗的坏处:幅值有所降低,SNR降低 主瓣展宽(距离分辨率下降)


  1. clear all;close all;clc;

  2. din_re=load("/media/jiang/AI_Data/DataSets/ZTR/ti_one_chirp_data/one_chirp_data_real.dat");
  3. din_im=load("/media/jiang/AI_Data/DataSets/ZTR/ti_one_chirp_data/one_chirp_data_imag.dat");

  4. % figure;subplot(2,1,1);plot(din_re);
  5. % subplot(2,1,2);plot(din_im);

  6. % 一共256个采样点,采样率为10MHz

  7. N=256; %采样点数
  8. Fs=10e6; %采样率
  9. B=768e6; %调频带宽
  10. k=30e12; %调频斜率
  11. c=3e8; %光速

  12. din=din_re+j*din_im;
  13. % figure;plot(abs(din));


  14. range_win = hamming(N); %加海明窗
  15. % range_win = 其他窗
  16. figure;plot(range_win);

  17. data=din.*range_win;
  18. figure;plot(abs(data));



  19. yy=fft(din);
  20. AY=abs(yy/N);
  21. f=Fs/(N-1)*(0:N-1);
  22. figure;plot(f,AY);
  23. title('FFTshift模值 未加窗');xlabel('频率/Hz');ylabel('幅值');

  24. yy=fft(data);
  25. AY=abs(yy/N);
  26. % f=Fs/(N-1)*(0:N-1);
  27. figure;plot(f,AY);
  28. title('FFTshift模值 加窗');xlabel('频率/Hz');ylabel('幅值');



  29. r=f*c/(2*k);
  30. % figure;plot(r,AY);
  31. % title('1D-FFT');xlabel('R/m');ylabel('幅值');



复制代码

  1. # -*- coding: utf-8 -*-
  2. __author__ = u'东方耀 微信:dfy_88888'
  3. __date__ = '2022/5/9 下午3:07'
  4. __product__ = 'PyCharm'
  5. __filename__ = '22_ti_sfcw_加窗处理'

  6. from scipy.fftpack import fft, ifft, fftshift
  7. from scipy.signal import findfreqs, find_peaks
  8. import numpy as np
  9. import scipy
  10. from scipy.signal import get_window
  11. import matplotlib.pyplot as plt
  12. import matplotlib.ticker as mticker
  13. from matplotlib.font_manager import FontProperties

  14. font_fname = "/usr/share/fonts/wps-office/simfang.ttf"
  15. font = FontProperties(fname=font_fname)

  16. # N=256; %采样点数
  17. N = 256
  18. # Fs=10e6; %采样率
  19. Fs = 10e6
  20. # B=768e6; %调频带宽
  21. B = 768e6
  22. # k=30e12; %调频斜率
  23. k = 30e12
  24. # c=3e8; %光速
  25. c = 3e8

  26. # ti的sfcw信号1T1R加窗后解算距离维_matlab与python实现

  27. din_re = np.loadtxt("/media/jiang/AI_Data/DataSets/ZTR/ti_one_chirp_data/one_chirp_data_real.dat")
  28. din_im = np.loadtxt("/media/jiang/AI_Data/DataSets/ZTR/ti_one_chirp_data/one_chirp_data_imag.dat")

  29. din = din_re + 1j * din_im

  30. # 矩形窗boxcar  hamming hann blackmanharris  blackman gaussian
  31. window_name = "blackmanharris"
  32. window = get_window(window_name, N)
  33. print("生成窗%s函数的序列:" % window_name, len(window), window[:3], window[-3:])

  34. # 进行加窗操作
  35. data = din * window

  36. # 线程调频的脉冲压缩 是进行 fft
  37. # f=Fs/(N-1)*(0:N-1);
  38. x_freq = np.arange(-N / 2, N / 2) * Fs / N
  39. print("频谱的x轴(这才是正确的):", len(x_freq))

  40. y_no_win_freq = fftshift(fft(din, N))
  41. y_add_win_freq = fftshift(fft(data, N))

  42. # 线性调频 f转距离range
  43. r = x_freq * c / (2 * k)

  44. plt.figure(figsize=(14, 12))
  45. plt.figure(1)
  46. plt.subplots_adjust(wspace=0, hspace=0.5)
  47. plt.subplot(3, 1, 1)
  48. plt.plot(np.abs(din))
  49. plt.title('时域(复信号abs)', fontproperties=font, fontsize=16)
  50. plt.xlabel('time/sample_num')

  51. plt.subplot(3, 1, 2)
  52. plt.plot(window)
  53. plt.title('窗函数=%s' % window_name, fontproperties=font, fontsize=16)
  54. plt.xlabel('time/sample_num')

  55. plt.subplot(3, 1, 3)
  56. plt.plot(np.abs(data))
  57. plt.title('时域(复信号abs)_加窗的', fontproperties=font, fontsize=16)
  58. plt.xlabel('time/sample_num')

  59. plt.figure(figsize=(14, 12))
  60. plt.figure(2)
  61. plt.subplots_adjust(wspace=0, hspace=0.5)
  62. plt.subplot(3, 1, 1)
  63. plt.plot(x_freq, np.abs(y_no_win_freq) / N)
  64. plt.title('未加窗%s信号的幅度谱(归一化)' % window_name, fontproperties=font, fontsize=16)
  65. plt.xlabel('freq')

  66. plt.subplot(3, 1, 2)
  67. plt.plot(x_freq, np.abs(y_add_win_freq) / N)
  68. plt.title('加窗%s信号的幅度谱(归一化)' % window_name, fontproperties=font, fontsize=16)
  69. plt.xlabel('freq')

  70. plt.subplot(3, 1, 3)
  71. plt.plot(r, np.abs(y_add_win_freq) / N)
  72. plt.title('加窗%s信号的1D-FFT(归一化)' % window_name, fontproperties=font, fontsize=16)
  73. plt.xlabel('distance(m)')

  74. plt.show()
复制代码






加窗后解算距离维01.png (104.3 KB, 下载次数: 149)

加窗后解算距离维01.png

加窗后解算距离维02.png (92.78 KB, 下载次数: 147)

加窗后解算距离维02.png

加窗操作.png (61.77 KB, 下载次数: 146)

加窗操作.png

one_chirp_data_real.dat

4.5 KB, 阅读权限: 188, 下载次数: 0

one_chirp_data_imag.dat

4.5 KB, 阅读权限: 188, 下载次数: 0

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

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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