0

我正在尝试生成500Hz前 5 秒的正弦波,然后1000Hz将其保存.mif在 MATLAB 中的文件中。这是我将用于将数据保存到.mif文件的通用代码,但我不确定如何正确生成正弦波样本,以便它们可以包含在此代码中。采样频率将为2000Hz

谢谢你。

fid = fopen('filename.mif','w');

fprintf(fid,'WIDTH=16;\n');

fprintf(fid,'DEPTH=256;\n');

fprintf(fid,'ADDRESS_RADIX=UNS;\n');

fprintf(fid,'DATA_RADIX=DEC;\n');

fprintf(fid,'CONTENT BEGIN\n');

for k = 1:256

  fprintf(fid,'%i : %i;\n',k-1,data(k));

end

fprintf(fid,'END;');

fclose(fid);
4

1 回答 1

1

这会做到这一点,但我不确定你会喜欢结果:

aa = 0:(1/2000):5;
aa = aa(1:end-1);
bb = (0:(1/2000):10) + 5;
t = [ aa bb];
y1 = sin(2*pi*500*aa);
plot( aa, y )
y2 = sin(2*pi*1000*bb);
y = [y1 y2]

您会发现,500 Hz 信号的采样速度几乎不足以获得高、低和零交叉。2000 Hz 是一团糟,因为需要采样大于两倍的信号带宽。这是作业吗?对我来说无所谓,只是好奇。

于 2012-09-14T15:56:49.627 回答