- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Quatusii实用总结1.
Quatus ii 实用总结
下面以100号心电数据为例:
先调出心电数据:
fid=fopen(E:\VHDL\lunwentest\work\2048个点\100c.txt);
a=fscanf(fid,%g%g,[3 inf]);
a=a;
fclose(fid)
b= a(:,3);%调出心电数据
bquan=b*(2^8);%将b量化
brod=round(bquan);%四舍五入取整
for i=1:2048 %有符号数补码化
if brod(i)0
bcom(i)=2^12+ brod(i);%负数加2^12
else
bcom(i)=brod(i); %正数不变
end;
end;
plot(brod);
在matlab界面的右侧
选中bcom并双击,里面存的都是在放在硬件rom里的心电数据,共有2048个,选中这2048个数据并copy出来:
在Quartus ii中新建一个Memory Intialization File,并按下图进行设置:
然后把matlab中bcom出的2048个数据都拷在这里,设置如下:
为了标注起始点,把开头的几个数改为0(牺牲几个心电数据)来标注起始点。保存为100_2k(3ge0)即牺牲开头的3个数据,都设为0来标注起始点。
然后修改rom里面的心电数据:双击rom模块,进行如下设置:
这里调用100_2k(3ge0),并进行更新
选择是
然后再进行一次编译
每次对quartus ii有改动的时候,都得先进行一下编译才能用signal tap ii出图
因为此工程比较大,所以每次编译时间比较长,大约10分钟
编译成功
进行Signal Tap ii页面,进打开实验箱
然后再重新加载一下数据,点该图标才能把新加进来的数据加载在实验箱了
然后进行编译
因为进行了360分频,所以此过程需要大概5分钟的时间,如果把心电信号发生部分的360分频去掉,就会很快出数据
加了360分频之后,一出现数据就先生成一次文件,此时是rom时里的数据,即rom_q
的数据出来了,因为时延re|y即最终的输出y还没有完全出来,此时截一次数据,可以判断y延时q多少个采样点
此时命名为denoise_out_rom刚出来,然后在最后一列,即rom_q按之前标注的3个零把整个数据调整次序,如此时起始点在第215行,刚把215行和后面的数据都提前到最前,得到 denoise_out_rom刚出来_变序
然后调用下面的程序,显示q和y的数据和rom_q顺序正常后q和y的波形
fid=fopen(E:\VHDL\最终程序\100号最终数据\加上360分频后的\denoise_out_rom刚出来_变序.txt);
a=fscanf(fid,%g%g,[16 inf]);
a=a;
fclose(fid)
b= a(:,16);%rom里面的数据
y=a(:,15); %FPGA最后输出y
subplot(211);plot(b);
subplot(212);plot(y)
b
Y
波形如下图
并可以得到两组数据:q_正常(调节rom顺序正常后)和y_rom正常(调节rom顺序正常后)
由上图可以看出,y大约比q延时1500多个点,具体的还要看q_正常和y_rom正常_刚出来
从q_正常的数据可中可以看到,rom_q在第76个采样点处达到第一个R波峰(也可以从rom_q的输出波形上可以看到),对应的在y_rom正常_刚出来的输出数据中在1652个采样点处达到第一个R峰值,故可以得到最后的输出y比输入rom _q延时1576个点。此时可以把输出y第1577个点及以后的数据搬到最前面,得到y_1576_刚出来,此时的y_1576_刚出来是消除了延时后的输出
此时调用下面程序:
fid=fopen(E:\VHDL\最终程序\100号最终数据\加上360分频后的\denoise_out_rom刚出来_变序.txt);
a=fscanf(fid,%g%g,[16 inf]);
a=a;
fclose(fid)
b= a(:,16);%rom里面的数据
fid=fopen(E:\VHDL\最终程序\100号最终数据\加上360分频后的\y_1576.txt);
c=fscanf(fid,%g%g,[1 inf]);
c=c;
fclose(fid)
subplot(211);plot(b);
title(输入rom_q);
subplot(212);plot(c);
title(输出y);
可以得到下图
此时可以看到,输出y已经消除了和rom_q的延时,故可以得到硬件最后输出y和输入的心电数据rom_q的关系是延时了1576个点(对于其他号心电数据
文档评论(0)