扫频原理
已知扫频表达式:
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_stop2^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核或自定义波形,设置相位累加及相位增量的累加即可。
代码以后补上,放假了。