% function wave_rom
%% 产生函数信号发生器的数据
clear all
clc
close all
N=512;
a(1:1:N)=0; %%存储8位的波形数据(0~~255)
%% 正弦波
for b=1:128
a(b)=round(127*sin(2*pi*(b-1)/127))+127;
end
figure(1)
stem(1:128,a(1:128));
%% 锯齿波
for b=1:128
a(b+128)=b;
nd
figure(2)
stem(129:256,a(129:256));
%% 方波
for b=1:64
a(b+256)=255;
a(b+64+258)=0;
nd
figure(3)
stem(257:384,a(257:384));
%% 三角波
for b=1:64
a(b+384)=2*(b-1);
a(b+64+384)=2*(64-b);
end
figure(4)
stem(385:512,a(385:512));
%% 画图
figure(5)
stem(1:512,a);
axis([0 512 0 256]);
实际中 还要做存储波形数据为rxt文件,可以使用以下代码:
fid=fopen('sin_data.txt','W');//把数据写入sin_data.txt文件中,如果没有就创建该文件
fprintf(fid,'%d,',a); //那数组A的数据按指定格式写入其中
fclose(fid); //关闭
下面是我用过的代码,用来产生正弦波表,得到的txt文件,对里面的格式按照需要的格式修改以后就可以加载到fpga的ram里面
n=1024;
m=16;
a(1:1:n)=0;
for b=1:n;
a(b)=round(2048*sin(0.5*pi*(b-1)/(n-1)));
end
figure(1);
stem(1:n,a(1:1024));
fid=fopen('sin_data.txt','W');
fprintf(fid,'%d,',a);
fclose(fid);
我以ISE软件对RAM 的数据初始化来说,iseRAM数据初始化的文件后缀是.COE,格式的要求如下:
memory_initialization_radix=10;
memory_initialization_vector=
2047,2049,2050,2052,2053,2055,2056,2058,
2060,2061,2063,2064,2066,2067,2069,2071,2072,
2074,2075,2077,2078,2080,2082,2083,2085,2086,2088,
2089,2091,2093,2094,2096,2097,2099,2100,2102,2104,2105,
2107,2108,2110,2111,2113,2115,2116,2118,2119,2121,2122 ;
很简单!
文章评论(0条评论)
登录后参与讨论