【快速傅里叶变换(fft)和逆快速傅里叶变换】生成雷达接收到的经过多普勒频移的脉冲雷达信号(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

****🏆博主优势:**🌞🌞🌞**博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️**座右铭:**行百里者,半于九十。

📋📋📋++本文目录如下:++🎁🎁🎁

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码实现](#🌈4 Matlab代码实现)


💥1 概述

本文的目标是为那些学习雷达和多普勒频移的人创建一个实用工具,以便开始理解输入参数如何影响波形。该项目的重点是生成雷达接收到的经过多普勒频移的脉冲雷达信号的原始数据,同时还开发了处理接收信号的技术演示。

该项目中实现的主要数字信号处理概念是采样。雷达信号的生成、修改和解释都是通过对整个信号进行采样来确定的。此外,为了保持适当的缩放而不超过MatLab的最大数组大小,还实现了下采样。

在接收信号的分析中,实现了Matlab的快速傅里叶变换(fft)和逆快速傅里叶变换。为了最小化信噪比,开发了匹配滤波器。匹配滤波器还使用了快速傅里叶变换和逆快速傅里叶变换。

雷达使用无线电波来探测物体或目标的距离和速度。本项目研究的雷达由两个组件组成,发射器和接收器。发射器发射无线电波或雷达信号,接收器捕获从目标反射回来的雷达信号。通过反射,雷达可以通过接收到的信号的时间延迟和频率变化来确定目标的距离。时间延迟可以通过公式 tD = 2c/R 来确定,其中c是自由空间中的光速。

详细讲解见第4部分。

📚 2 运行结果

部分代码:

end

%PRF= 8e3%test value

%CARRIER SIGNAL

t = 0:1/(20*f):2e-9;

fc = sin(wc*t);

a = min(length(fc) length(t));

% figure(1)

% plot(t(1:a),fc(1:a));

% title('Carrier Signal');

% xlabel('time');

% ylabel('amplitude');

%PULSES

ts = 0:1/f:(1/f)*(5e6);

A = 1/PRF;

on = (pulse_width)/A;

off = 1 - on;

Tr = on\*A,off\*A;

pulse = double(mod(ts,sum(Tr))<Tr(1));

% figure(2);

% plot(ts,pulse);

% title('Pulses');

% xlabel('time');

% ylabel('amplitude');

%re-time scale carrier signal and pulses

fc = interp(fc,64);

fc = fc fc fc fc fc fc fc;

t = 0:1/(10*f):7e-5;

pulse = downsample(pulse,5);

% figure(3)

% a = min(length(t) length(pulse));

% plot(t(1:a),pulse(1:a))

% hold on;

% a = min(length(t) length(fc));

% plot(t(1:a),fc(1:a));

% title('Scaled and Truncated');

% xlabel('time');

% ylabel('amplitude');

%GENERATE TRANSMITTED SIGNAL

a = min(length(t) length(pulse) length(fc));

fo = fc(1:a).*pulse(1:a);

% figure(4);

a = min(length(t) length(fo));

% plot(t(1:a),fo(1:a))

% title('Transmitted signal');

% xlabel('time');

% ylabel('amplitude');

% Doppler shift

lamda = c/f;

fd = (-2*V)/lamda;

wd = 2*pi*fd;

tp = 0:abs(1/(3*(f+fd))):(on)*A;

shift = sin((wc+wd)*tp);

% figure(5);

% plot(tp,shift);

% title('Doppler Shifted Pulse');

% xlabel('time');

% ylabel('amplitude');

%Add non-pulsed portion (basically a bunch of zeros)

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码实现

相关推荐
懂点Tech1 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
徐小夕2 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github
Robert--cao2 小时前
移动底盘与机械臂联合规划:开源算法与工程实现
算法
catchadmin2 小时前
PHP 8.7 协程新提案 让跨协程代码共享请求身份
开发语言·php
念何架构之路3 小时前
go-grpc设计思想
开发语言·后端·golang
小豆庄3 小时前
Mac 上给视频人脸打码:本地工具的依赖、追踪与推理管线
算法·视觉检测·视频·敏捷流程·纹理贴图
星夜离尘563 小时前
MATLAB 工程实验:从相邻块均值手写重叠 Allan 偏差,数清有效项
算法·matlab·均值算法
酷炫码神3 小时前
Day 10|Pinia 状态管理:把散落在各组件的数据,收进一个全局仓库
android·开发语言·javascript
Elastic 中国社区官方博客4 小时前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
tyn1884 小时前
记录本地安装nacos服务的方法及异常
java·开发语言