DDS原理以及MATLAB实现

DDS:Direct Digital Synthesis,是指信号发生器。

DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采用这种方法设计的信号源可工作于调制状态,可对输出电平进行调节,也可输出各种波形。

DDS原理:

我这里介绍的是相位截断DDS。

我们从图中可以看出其原理主要由4部分构成,相位增量,相位累加器,相位量化器,查找表构成。

相位增量,每一个系统时钟,相位增加多少,就是图中的Δθ.

相位累加器:相位增量按照系统时钟,每一个时钟增加一次,这样依次累积起起来,从图中看出就是每一个CLK,就增加一个Δθ,然后每一个时钟就累加到一起。就构成了相位累加器。我们知道相位的范围是0~2π,就相当于是一个圆,而我们计算机处理都是用的数字信号,所以要进行量化,比如我们用N位数去存0~2π,意思就是将0~2π平分为2^N份,则其中的一份就是相位增量

sin,cos查找表:就是一个周期内的正弦波我们取多少位去存储数据,比如我们取10位,就是一个周期取2^10,1024个点去存储器幅值,

相位量化器:就是我们的我们用相位累加器得到的相位怎么去寻址我们的sin,cos的波形的查找表,常常我们的相位累加器的位数会大于我们的正余弦的查找表的位数,因为如果两个的位数相等,存储容量和资源的要求就比较高了。所以这里就需要量化,一般我们是用相位累加器的最高位来寻址,这样就是多个系统时钟寻一个址,这样能保证相位累加器溢出时,从正弦ROM表中取出正好一个正弦周期的样点。

下面我们介绍一些基本的原理公式:

注意:上述的是数学原理,记住w = 2π*f,就可以自己推公式了。记住我们是在数字域,所以都要将数据量化,上述的2π,就会量化我我们的2^N,N代表的你用多少位去存储0~2π,就是相位增量那里的量化值,Δθ表示的是量化后的相位的K倍。

下面实现用MATLAB 代码实现DDS:

MATLAB实现1MHz的正弦波,

首先,我们知道我们在matlab中信号能表示的都是数字信号,就是模拟信号采样,得到数字信号我们就要先进行采样,采样必须满足奈奎斯特采样定理,fs>= 2f ,就是采样频率必须是被采样信号的频率的2倍及以上,然后得到数字波形,下面是我们生成一个1M正弦波的代码,首先生成代码之前前,必须知道怎么计算频率控制字:

 这里与前面讲的原理一致,只需要相互对应就可以了,下面是其代码:

clc;
clear all;
f_out  = 1e6; %输出频率
fs =  16e6 ;%采样率 
n = 0:1/1024:1023/1024  %1024个点,10位
sin_rom = sin(2*pi*n);
figure(1);
plot(sin_rom), x_lable('点数'),title('一个周期的正弦波');%给出一个周期的正弦波
%用10位去存储一个周期的征正弦波
w=f_out*2^16/fs; %1Mhz 载波的频率控制字
len = length(sin_rom)*fs/f_out; %数据长度
w_r = 0;  %
rom_addr = 0;
sin_1m = zeros(1,len);
for i = 1:len
    w_r = w_r + w;
    if(w_r > 2^16)
        w_r =  w_r - 2^16;
    end
    rom_addr = round(w_r /2^6);%10位来存储其rom的地址,相当于一个正弦波的周期被分成了2^10次方份
    if rom_addr == 0
        rom_addr = 1;
    end
	sin_1m(i) =  sin_rom(rom_addr);
end
figure(2);
plot(sin_1m(1:300)), x_lable('点数'),title('一个周期的正弦波');

结果图:

 

 

说明:此博客这是记录自己学习信号处理的过程,如果有错误,希望指出,并且这里参考了尤老师的一些资料

  • 7
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值