使用matlab產生不同頻率波形並保存為txt格式,coe格式


1. matlab 保存波形數據到文件

  • matlab操作方法大致與c語言相似,可以比較着學。
    代碼如下:
x=0:1:1024;
y=sin(x);
z=[x;y]
fp=fopen('wave.TXT','w');
fprintf(fp,'x=%6.2f sin(x)=%8.4f\n',z);
fclose(fp);

2. 產生波形文件轉換為short類型保存到dat文件中

Fs=1024;
dt=1.0/Fs;
T=1;N=T/dt;t=[0:N-1]/N
x1=sin(2*pi*300*t)+sin(2*pi*500*t)+sin(2*pi*1000*t)+sin(2*pi*1500*t)+sin(2*pi*3000*t);     %產生一個不同頻率的信號
b=round(x1*2^11);       %將float類型數轉換為short類型,進行量化,轉換為定點,方便FPGA使用
fp=fopen('wave.dat','w');
fprintf(fp,'%d7\n',b);
fclose(fp);

3. 生成波形保存為coe文件

  • 轉換為coe文件主要是為了FPGA中調用,測試仿真的時候可以使用
Fs=1024;
dt=1.0/Fs;
T=1;N=T/dt;t=[0:N-1]/N
x1=sin(2*pi*500*t)+sin(2*pi*800*t)+sin(2*pi*5000*t)+sin(2*pi*8000*t);     %產生一個不同頻率的信號
b=round(x1*2^11);
fid=fopen('wave.coe','w');
fprintf(fid,'MEMORY_INITIALIZATION_RADIX=10;\n');
fprintf(fid,'MEMORY_INITIALIZATION_VECTOR=\n');
for i=1:1:1024
    fprintf(fid,'%d',b(i));
    if i==1024
        fprintf(fid,';');
    else
        fprintf(fid,',');
    end
    if mod(i,15)==0
        fprintf(fid,'\n');
    end
end
fclose(fid)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM