DDS不再孤单与Matlab“手拉手”一起创建仿真事业
clear all;clc %清除所有变量,清屏
M=2^11; %采样的点数
a(1:1:M)=0; %频率累加器的数值
b(1:1:M)=0; %相位累加器的数值
y(1:1:M)=0; %输出的波形数据
K=400; %调频斜率
Kc=10; %初始频率控制字
N=10; %幅度量化位数
L=24; %相位累加器位数
%下面一段实现频率累加器
a(1)=0.5*K; %初始频率步进量
for i=2:1:M
a(i)=a(i-1)+K;
end
%下面一段实现相位累加器
b(1)=Kc+a(1); %相位初始值
for i=2:1:M
b(i)=b(i-1)+(Kc+a(i));
end
%下面一段实现了查找表ROM以及进行幅度量化
for i=1:1:M
y(i)=floor(2^N*cos(2*pi/(2^L)*b(i)));
end
%下面一段画出相应的图形
figure(1);plot(y);axis([0 M,-2^N-100 2^N+100]);
figure(2);freqz(y)
上面这段程序中,有很多的变量,包括调频斜率K、频率控制字Kc、幅度量化位数N以及相位累加器位数L等等,修改不同变量值可以得到各,不同的线性调频信号。具体的实现要根据实际的需要来设置。4 实验结果
根据上面的程序,取调频斜率为400,频率控制字为10,幅度量化为10位(和所使用的D/A配合),相位累加器为24位,用Matlab仿真得到的线性调频信号的波形和相应的幅频响应如图3和图4所示。
图4 针对图3的幅频特性曲线
结束语
本文所讲的线性调频信号的产生原理和方法有很好的可扩展性,修改频率累加器的内容即可以实现其他的各种调频信号。作为线性调频信号,由于广泛应用于高分辨率的雷达系统中,因此正确理解线性调频信号的产生原理和掌握其产生的方法是很有现实意义的。在实际应用中主要采用专用DDS芯片或者FPGA来实现线性调频信号(各有优缺点),而本文则基于Matlab软件的良好编程性来验证这一方案,
评论