matlab生成DDS 所需sin函数coe文件

DDS原理:
在这里插入图片描述
(1)将连续的正弦波信号离散化
(2)将离散化后的正弦波一个周期存储到ram中
(3)将离散化后的数进行定点化,rom是1024x10,1bit符号位,9bit小数位。
clc
clear all;
n = 0:1023;
N = 2^10;
%%%%%%%%%%%正弦波%%%%%%%%%%%%%%%%
sin_data = sin(2pin/N);
%定点化
fix_sin_data = fix(sin_data*511);%取整

for i=1:N%将负数变为正数
if fix_sin_data(i)<0
fix_sin_data(i) = N+fix_sin_data(i);
else
fix_sin_data(i) = fix_sin_data(i);
end
end
%coe文件格式
fid=fopen(“fix_sin_data.coe”,‘w+’);
fprintf(fid,“memory_initialization_radix = 10; \n”);
fprintf(fid,“memory_initialization_vector= \n”);
fprintf(fid,"%d, \n",fix_sin_data);
fclose(fid);
plot(fix_sin_data)
%%%%%%%%%%%%%%%%DDS%%%%%%%%%%%%%%
module DDS(
input wire clk,//时钟100M
input wire rst_n,//复位信号,低有效
input wire [25:0] freq,//输入所需频率
input wire [9:0] phase_adj,//输入相位差
output wire [9:0] wave, //输出波形
output wire [9:0] wave_adj//输出调相后的波形

);
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值