扫频的matlab及FPGA实现

扫频原理

已知扫频表达式:
s ( t ) = e x p ( 1 i ∗ π k t 2 ) ; s(t)=exp(1i*\pi kt^2); s(t)=exp(1iπkt2);

其瞬时相位
d θ d t = 2 π k t ; \frac{d\theta}{dt}=2\pi kt; dtdθ=2πkt;

瞬时频率
f ( t ) = k t ; f(t)=kt; f(t)=kt;

对瞬时相位的变化率
d f ( t ) d t = 2 π k ; \frac{df(t)}{dt}=2\pi k; dtdf(t)=2πk;

FPGA实现

设起始频率f_start,结束频率f_end,扫频周期T,采样率fs,DDS相位位宽32。

f_start_phase = f_start2^32/fs;
f_stop_phase = f_stop
2^32/fs;

k = (f_stop_phase -f_start_phase)/(T*fs);

while(1)
if t==0
phase_step = f_start_phase;
else
phase_step+= k;

phase += phase_step;
dds_phase = phase+f_start_phase;

t+=1;
t=mod(t,T);

end

由此,可以得到FPGA实现代码。
方法一,用DDS IP核,设置相位增量模式。
方法二,用DDS IP核或自定义波形,设置相位累加及相位增量的累加即可。

代码以后补上,放假了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值