MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件

MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件

% 对波形进行等间隔采样,以采样次数作为 ROM 存储
% 地址,将采集的波形幅值数据做为存储数据写入存储地址对应的存储空间
% 采样次数为 212 = 4096 次,采集的波形幅值数据位宽
% 为 8bit,将采集数据保存为 MIF 文件
clc;                       %清除命令行命令
clear all;                 %清除工作区变量,释放内存空间
F1 = 1;                    %信号频率
Fs = 2^12;                 %采样频率
P1 = 0;                    %信号初始相位
N  = 2^12;                 %采样点数
t  = [0:1/Fs:(N - 1)/Fs];  %采样时刻
ADC = 2^7 -1;              %直流分量
A = 2^7;                   %信号幅度
%生成正弦信号
s = A*sin(2*pi*F1*t + pi*P1/180)+ADC;
plot(s);                   %绘制图形
%创建MIF文件
fild = fopen('sin_wave_4096x8.mif','wt');
%写入MIF文件头
fprintf(fild,'%s\n','WIDTH = 8;');          %位宽
fprintf(fild,'%s\n\n','DEPTH = 4096;');     %深度
fprintf(fild,'%s\n','ADDRESS_RADIX = UNS;');%地址格式
fprintf(fild,'%s\n\n','DATA_RADIX = UNS;'); %数据格式
fprintf(fild,'%s\t','CONTENT');             %地址
fprintf(fild,'%s\n','BEGIN');               %开始
for i = 1:N
    s0(i) = round(s(i));                    %对小数四舍五入取整
    if s0(i) < 0                            %负1强制置零
        s0(i) = 0
    end
    fprintf(fild,'\t%g\t',i-1);              %地址编码
    fprintf(fild,'%s\t',':');                %冒号
    fprintf(fild,'%d',s0(i));                %数据写入
    fprintf(fild,'%s\n',';'
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻童:CPU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值