基于RAM的雷达线性调频信号产生
什么是DDS
DDS(Direct Digital Synthesis)是一种把一系列数字信号通过D/A转换成模拟信号的数字合成技术。它有查表法和计算法两种基本合成方法。由于ROM查询法结构简单,只需要在ROM中存放不同相位对应的幅度序列,然后通过相位累加器的输出对其寻址,经过数/模转换和低通滤波(LPF)输出便可以得到所需要的模拟信号。这里,选用ROM查表法。DDS技术实质上是实现了一个数字分频器的功能。对于一个周期的正弦波连续信号,可以沿其相位轴方向,以等量的相位间隔对其进行相位/幅度采样,得到一个周期性的正弦信号的离散相位的幅度序列,对模拟幅度进行量化后的幅值采用二进制量化保存,这样就把一个周期的正弦波连续信号转换成一系列离散的二进制数字量,然后存到ROM中,每个存储器单元的地址即是相位取样地址,存储单元的内容是已经量化了的正弦波幅值。一个这样的Rom存储器构成了一个与2π周期相位取样对应的正弦波函数表。
换句话说,预先把波形数据存储到ROM中,然后根据想要的输出频率进行输出,即可产生阶梯波形,再通过低通滤波器进行平滑处理即可得到任意波形
matlab产生ROM所需coe文件
clc,clear;
%%参数设置
c=3e8;
T=10e-6;%10e-6时间发送完毕10ns
B=20e6;%%带宽
K=B/T;
Fs=200e6;%采样率
Ts=1/Fs;
f0=0;%频点设置 可以修改
R=1000;%目标距离
t=0:Ts:T;
N=T/Ts+1;%采样点数 对应ROM深度
x0_cos=cos(2*pi*(f0+K/2.*t).*t);%得到的cos值在-1到1之前,需要量化,量化参数根据ROM位宽设置
%此处ROM位宽为16,由于MSB是符号位,所以cos数据*2^15
x0_cos=x0_cos*2^15;
x0_sin=sin(2*pi*(f0+K/2.*t).*t);
x0_sin=x0_sin*2^15;
x0=x0_cos+1j*x0_sin;%发射 RCS可以设置,此处默认为1fid=fopen('E:\work\matlab\coe\x0_cos.coe','wt');
fprintf(fid,'MEMORY_INITIALIZATION_RADIX = 10;\n');
fprintf(fid,'MEMORY_INITIALIZATION_VECTOR = \n');
for i=1:1:length(x0_cos)-1fprintf(fid,'%.0f,\n',x0_cos(1,i));
end
fprintf(fid,'%.0f;\n',1e5*x0_cos(1,length(x0_cos)));
fclose(fid);
vivado rom IP核使用
新建一个工程双击IP Catalog 搜索ROM,选择如图所示ip
rom的设置
点击ok,即可生成rom IP核
Verilog 代码
先写design source
module dds(input clk,res,output[15:0] data );reg[10:0] addr;always@(posedge clk or negedge res)beginif(~res)begin;addr<=0;endelse if(addr==11'd2000)addr<=0;else addr<=addr+1;endtest_rom u1 (.clka(clk), // input wire clka.addra(addr), // input wire [10 : 0] addra.douta(data) // output wire [15 : 0] douta
); endmodule
测试文件代码如下
module test_dds_tb();
reg clk,res;
wire[15:0] data;
dds dds(.clk(clk),.res(res),.data(data)
);
initial beginclk<=0;res<=0;#20 res<=1;#5000 $stop;
end
always #5 clk<=~clk;endmodule
设为顶层文件之后运行仿真,结果如下
总结
数据会出现1000_0000_0000_0000,原本是32768,显示-32768,因为显示的是有符号数,具体的实现和设计根据项目要求设计,或者自己设计一个rom,addr取址是有影响的,addr为0和1的时候取得值错误,addr=2时取得值对应线性调频第一个数据
基于RAM的雷达线性调频信号产生相关推荐
- 泛读:基于机器学习的雷达辐射源识别方法综述
基本思路 雷达辐射源识别是通过分析处理截获的敌方雷达信号,获取敌方雷达的工作参数和信号特征参数,通过与已知雷达数据库进行对比,判断雷达的型号.工作模式.位置.以前多用参数匹配法直接利用测量获得的信号特 ...
- 常用雷达信号的matlab仿真_常用的雷达信号:基于DDS的线性调频信号的产生
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...
- matlab中的方波信号图片_基于Matlab的雷达信号处理仿真
这是一个较为基础的图文教程(含仿真代码):利用MATLAB设计经典的雷达数字信号处理.该系统具备对雷达目标回波的处理能力,能够从噪声中将目标检测出来,并提取目标的距离.速度.角度信息.教程分五节完成, ...
- 雷达线性调频matlab,线性调频脉冲雷达信号matlab仿真.pdf
课题小论文 LFM 题 目:线性调频 ( )脉冲压缩雷达仿真 学 院 : 专 业 : 学生姓名 :刘 斌 学 号 : 年 级 : 指导教师 : 二 〇 一 年 十 月 LFM 线性调频 ( )脉冲压缩 ...
- 雷达原理---线性调频信号(LFM)的引出
线性调频信号的引出 随着现代武器和现代飞行技术的发展,对雷达的作用距离.分辨力和测量精度等性能提出了越来越高的要求. 要求: 雷达信号分析表明,在实现最佳处理并保证一定信噪比的条件下,测距精度和分辨力 ...
- 基于机器学习的雷达信号分选和目标识别(论文阅读学习记录—持续记录)
机器学习在雷达信号分选技术上的应用包括信号分离.确定脉冲参数.形成单部雷达脉冲序列,然后针对雷达目标识别进行分类并划分威胁程度等.在一维距离像识别过程中包括去噪和雷达目标型号识别.该论文(学习内容)重 ...
- 【毕业设计系列】035:基于matlab的线性调频信号的仿真
Date: 2022.5.15 文章目录 前言 1.仿真效果图 2.Matlab代码实现 前言 在大学毕业设计的时候,要求实现线性调频信号的仿真,采用Matlab语言实现,效果图如下. 注:需要相关代 ...
- 【信号处理】基于Matlab实现POSP驻定相位原理推导线性调频信号的频谱
1 简介 2 完整代码 %% Principle of Srationary Phaseclose all, clear all, clc%% the parameters of radarT = ...
- 基于matlab的雷达,基于Matlab的雷达系统仿真
Vol.11No.9Sep.2009 第11卷第9期 2009年9月 http://www.doczj.com/doc/eae9543010661ed9ad51f3cb.html 2009.9 0引言 ...
- 第一周-基于循环谱的水声通信信号特征分析和提取
基于循环谱的水声通信信号特征分析和提取 对于非合作水声通信信号的检测.调制识别和参数估计,上学期对于每一个步骤都学到了多种方法.首先在信号的检测中,首先通过合适的阵列发布,并且选取最优的权值获得最接近 ...
最新文章
- 洛谷 P4284 [SHOI2014]概率充电器 解题报告
- c语言用数组发送大写字母怎么读,c语言字符数组大小写转换
- 联动下拉框显示省市县
- 看〈走出软件作坊〉浅谈扁平化管理
- 组合选择符 深入了解
- caffe--交通标志识别
- SAP中文件的上传和下载
- 使用selenium + pytest + allure做WBE UI自动化
- 计算机主机清洁维护,电脑主机日常维护保养
- 【翻译】ASML Automatic Streaming Machine Learning
- js+Canvas 利用js 实现浏览器保存图片到本地
- 给计算机专业的同学一些建议
- 18 获取给定的序列的所有排列, 组合
- 今天聊:程序媛是否需要职业规划?
- 2022 CCF中国软件大会(CCF ChinaSoft)“AI软件系统工程化技术与规范”论坛成功召开...
- 阿里云云服务器固定带宽和带宽按量付费的区别
- Go语言自学系列 | golang中的if语句
- Task02:baseline学习及改进
- C++坑人游戏[1.0版本](完)
- uniapp网上商城排坑专业户
热门文章
- 3┃音视频直播系统之浏览器中通过 WebRTC 直播视频实时录制回放下载
- edius隐藏快捷键_超级实用的edius常用快捷键
- Mac版本QQ消息防撤回
- 点云sift matlab,点云配准SIFT算法
- 网络编程_8(项目附件)
- 英文java简历模板下载_java软件工程师英文简历模板下载
- 渠道生意宝android版,生意宝app安卓版
- 2022年贵州大学计算机考研(初试+复试+实验室经验贴)
- Scala对象 转Json字符串
- linux cuda 编程指南,CUDA编程指南阅读笔记