利用dds ip实现线性调频信号
1 dds技术简介
随着电子技术的不断发展,传统的频率合成技术逐渐不能满足人们对于频率转换速度、频率分辨率等方面的追求,直接数字频率合成技术应运而生。
直接数字频率合成技术(dds) 是把一系列数据量形式的信号通过d/a转换器转换成模拟量形式的信号合成技术。dds具有很多优点,比如:频率转换快、频率分辨率高、相位连续、低功耗、低成本与控制方便。
dds技术满足了人们对于速度稳定性的需求,但是在一些控制较为复杂的系统中,dds专用芯片不能很好的贴合要求。利用现场可编程门阵列(fpga)实现dds具有很大的灵活性,基本能满足现在通信系统的使用要求。
2 dds ip使用说明
基于fpga的dds设计方案
3 线性调频信号
3.1 理论介绍
3.1.1 基本概念
线性调频(lfm)信号是瞬时频率随时间成线性变化的信号。线性调频信号也称为鸟声(chirp)信号,因为其频谱带宽落于可听范围,听着像鸟声,所以又称chirp扩展频谱(css)技术。
3.1.2 表达公式
本文重点研究xlinx dds ip实现线性调频信号,主要关心线性调频信号的相位变化情况,如若想要了解线性调频信号其他方面信息,请参考其他相关文章。
线性调频信号表达式:
线性调频信号数学公式
其中,t是时间,单位为秒(s);t是脉冲持续时间(周期);k是线性调频斜率,单位是hz/s.
相位表达式:
φ(t)=πkt^2
相位变化率:
∆φ(t)=2πkt
3.1.3 应用范围
lfm技术在雷达、声纳技术中有广泛应用,例如,在雷达定位技术中,它可用来增大射频脉冲宽度、加大通信距离、提高平均发射功率,同时又保持足够的信号频谱宽度,不降低雷达的距离分辨率。
3.2 matlab仿真
3.2.1 matlab代码
fs = 100e6; %采样率t = 5e-6; %脉冲宽度b = 10e6; %信号带宽k = b/t;%调频斜率n = round(t*fs);%采样点数t = linspace(0,t,n);y = exp(1j*pi*k*t.^2);%lfm信号theta = pi*k*t.^2; %信号相位dtheta = pi*k*t; %相位变化量figure;plot(t,real(y));title('lfm信号时域-实部');xlabel('t/s');ylabel('幅度');figure;plot(t,imag(y));title('lfm信号时域-虚部');xlabel('t/s');ylabel('幅度');figure;plot(t,theta);title('lfm信号相位');xlabel('t/s');ylabel('相位');figure;plot(t,dtheta);title('lfm相位变化率');xlabel('t/s');ylabel('相位变化率');
3.2.2 仿真结果图像
3.3 fpga实现
3.3.1 参数计算
for example:
参数与上述matlab参数一致,采样率fs:100mhz,脉冲宽度t:5us,信号带宽b:10mhz,采样点数n:500。 xlinx dds ip设置如下,假定相位累加器设置为32位,输出信号宽度设置为12位,可以根据自己的需求进行设计: dds ip配置界面1 dds ip配置界面2 需要注意的是相位增量不是一个定值,而是随时间呈线性变化的量。根据公式相位表达式φ(t)=πkt^2与相位变化率∆φ(t)=2πkt,端口s_axis_phase的chan_0_poff 与chan_0_pinc设置如下: 当t = 0时 φ(t) = πkt^2 = 0;∆φ(t) = 2πkt = 0 相位变化率∆φ(t)每次增加的量为2πk∆t: 2πk∆t = 2πbt/tnfs = 2πb/n 由于dds ip相位累加器位数bθ(n)为32,且参数[0,2^32]对于相位弧度[0,1],那么相位增量∆θ公式如下: ∆θ = 2πb/n*1/2π*2^bθ(n)/fs = 858993.4592≈858993 综上,chan_0_poff设置为0,chan_0_pinc从0开始每次增加∆θ。
3.3.2 仿真结果
部分代码
//生成chirp信号dds_compiler_0 suband_reference_waveform_inst ( .aclk (samp_clk), .aclken (dds_aclken), .aresetn (dds_aresetn), .s_axis_phase_tvalid (s_axis_phase_tvalid), .s_axis_phase_tdata (s_axis_phase_tdata), .m_axis_data_tvalid (m_axis_data_tvalid), .m_axis_data_tdata (m_axis_data_tdata), .m_axis_phase_tvalid (m_axis_phase_tvalid), .m_axis_phase_tdata (m_axis_phase_tdata) ); wire signed [15:0] data_real = m_axis_data_tdata[15:0];wire signed [15:0] data_imag = m_axis_data_tdata[31:16];
仿真波形
线性调频信号fpga仿真波形
原文标题:利用dds ip实现线性调频信号
文章出处:【微信公众号:fpga之家】欢迎添加关注!文章转载请注明出处。
思科的竞争对手主要有哪些?微软IBM都有
丰田开发新款车用锂电池 性能提高10-15%
美国司法部调查比特币价格操纵将有助于加密货币市场的健康发展
米尔科技Zynq UltraScale+ MPSoC技术参考手册介绍
中亿睿55寸户外立式广告机打造珠海居家养老智慧社区
基于FPGA的DDS设计方案
精英STM32F103开发板试用体验:+OLED屏显示功能的实现
2017年全球十大独角兽公司盘点 中美平分天下
5G套餐普及用户渗透率有限,三大运营商降低5G套餐资费
TWS蓝牙耳机怎么选?史上最全10款高性价比国产蓝牙耳机排行!
怎样精准创建PCB封装
晶振是怎么制成的?--如何从石英毛坯变成晶振?
AI技术在算法、算力、数据上还有多大突破潜力?
超级电容出现这些问题不能使用
SiO2在氢氟酸中的刻蚀机理
无线防水智能话筒的结构设计是怎样的
导致汽车车门闭锁器无法正常工作存在哪些原因
岂止一箭多星 印度极轨卫星运载火箭要玩一箭103星
傅里叶变换(FFT)的主要思想与算法
vivoX23炫彩版发布 11月23日开卖售价2798元