使用KL26生成0709医疗器械中优先级报警声音波形

直入主题,学习记之~~~

1,需求分析

根据YY0709 国家医疗器械中优先级报警声音波形要求,如下

2.matlab生成波形

本次使用matlab生成波形,五个正弦波叠加,基频为780HZ,分别取一倍,二倍,三倍,四倍,五倍频叠加,由于使用的是KL26的DAC模块生成波形,则对波形赋值进行了量化,直接附上代码

Fs=200000; %采样率
fc=780; %载波频率
N=0.01;
t=0:1/Fs:1/780;
carrier=1*sin(2*pi*fc*t);
signal = 1*sin(4*pi*fc*t);
wo = 1*sin(6*pi*fc*t);
woo=1*sin(8*pi*fc*t);
ta=1*sin(10*pi*fc*t);
DSBmodout= 2^12*(signal+carrier+wo+woo+ta+4)/8; 

figure(3)
plot(t, DSBmodout);
fid=fopen(‘D:\2017a\abc.txt‘,‘W‘);%把数据写入sin_data.txt文件中,如果没有就创建该文件
fprintf(fid,‘%d,‘,DSBmodout);
fclose(fid);

波形为

直接对其采样结果为

2048,2.235912e+03,2.422133e+03,2.604995e+03,2.782865e+03,2.954173e+03,3.117424e+03,3.271218e+03,3.414264e+03,3.545400e+03,3.663598e+03,3.767984e+03,3.857838e+03,3.932611e+03,3.991923e+03,4.035568e+03,4.063514e+03,4.075906e+03,4.073054e+03,4.055435e+03,4.023681e+03,3.978569e+03,3.921012e+03,3.852043e+03,3.772802e+03,3.684519e+03,3.588500e+03,3.486106e+03,3.378735e+03,3.267808e+03,3.154746e+03,3.040953e+03,2.927800e+03,2.816606e+03,2.708624e+03,2.605026e+03,2.506886e+03,2.415173e+03,2.330738e+03,2.254306e+03,2.186468e+03,2.127680e+03,2.078254e+03,2.038364e+03,2.008042e+03,1.987186e+03,1.975559e+03,1.972800e+03,1.978432e+03,1.991871e+03,2.012437e+03,2.039367e+03,2.071827e+03,2.108930e+03,2.149744e+03,2.193314e+03,2.238672e+03,2.284854e+03,2.330914e+03,2.375940e+03,2.419061e+03,2.459470e+03,2.496423e+03,2.529257e+03,2.557399e+03,2.580366e+03,2.597778e+03,2.609357e+03,2.614932e+03,2.614437e+03,2.607912e+03,2.595499e+03,2.577439e+03,2.554064e+03,2.525790e+03,2.493110e+03,2.456585e+03,2.416832e+03,2.374513e+03,2.330323e+03,2.284979e+03,2.239209e+03,2.193735e+03,2.149267e+03,2.106486e+03,2.066037e+03,2.028516e+03,1.994464e+03,1.964354e+03,1.938588e+03,1.917488e+03,1.901295e+03,1.890163e+03,1.884158e+03,1.883258e+03,1.887356e+03,1.896259e+03,1.909695e+03,1.927317e+03,1.948712e+03,1.973403e+03,2.000863e+03,2.030524e+03,2.061782e+03,2.094013e+03,2.126581e+03,2.158850e+03,2.190191e+03,2.220000e+03,2.247700e+03,2.272757e+03,2.294686e+03,2.313056e+03,2.327505e+03,2.337736e+03,2.343531e+03,2.344748e+03,2.341325e+03,2.333281e+03,2.320716e+03,2.303808e+03,2.282809e+03,2.258045e+03,2.229902e+03,2.198827e+03,2.165318e+03,2.129912e+03,2.093182e+03,2.055720e+03,2.018133e+03,1.981030e+03,1.945010e+03,1.910655e+03,1.878519e+03,1.849117e+03,1.822916e+03,1.800329e+03,1.781708e+03,1.767336e+03,1.757420e+03,1.752094e+03,1.751410e+03,1.755340e+03,1.763773e+03,1.776523e+03,1.793325e+03,1.813842e+03,1.837671e+03,1.864350e+03,1.893361e+03,1.924145e+03,1.956108e+03,1.988630e+03,2.021076e+03,2.052810e+03,2.083201e+03,2.111635e+03,2.137529e+03,2.160336e+03,2.179560e+03,2.194759e+03,2.205559e+03,2.211656e+03,2.212825e+03,2.208922e+03,2.199890e+03,2.185760e+03,2.166649e+03,2.142762e+03,2.114390e+03,2.081902e+03,2.045742e+03,2.006426e+03,1.964526e+03,1.920669e+03,1.875524e+03,1.829788e+03,1.784181e+03,1.739431e+03,1.696258e+03,1.655370e+03,1.617443e+03,1.583115e+03,1.552970e+03,1.527529e+03,1.507243e+03,1.492480e+03,1.483517e+03,1.480537e+03,1.483624e+03,1.492754e+03,1.507800e+03,1.528529e+03,1.554600e+03,1.585574e+03,1.620913e+03,1.659989e+03,1.702092e+03,1.746438e+03,1.792182e+03,1.838427e+03,1.884239e+03,1.928660e+03,1.970721e+03,2.009461e+03,2.043936e+03,2.073239e+03,2.096512e+03,2.112962e+03,2.121873e+03,2.122621e+03,2.114683e+03,2.097649e+03,2.071230e+03,2.035270e+03,1.989743e+03,1.934766e+03,1.870594e+03,1.797624e+03,1.716392e+03,1.627569e+03,1.531955e+03,1.430471e+03,1.324152e+03,1.214128e+03,1.101623e+03,9.879290e+02,8.743984e+02,7.624240e+02,6.534223e+02,5.488155e+02,4.500137e+02,3.583957e+02,2.752918e+02,2.019650e+02,1.395945e+02,8.925940e+01,5.192321e+01,2.842034e+01,1.944376e+01,2.553438e+01,4.707240e+01,8.427057e+01,1.371696e+02,2.056356e+02,2.893600e+02,3.878615e+02,5.004902e+02,6.264340e+02,7.647273e+02,9.142610e+02,1.073795e+03,1.241974e+03,1.417338e+03,1.598346e+03,1.783390e+03,1.970812e+03,

一共257个值

二 单片机调试

我用的是codewarrior10.6.4,直接附上部分主要代码

DA1_Enable();//180725

  unsigned short DacData[]={0x8000, 0xa1d0, 0xc110, 0xdb80, 0xef40, 0xfb20, 0xfec0,0xfff0, 0xfa70, 0xef40, 0xde90, 0xcb40, 0xb690,
          0xa300, 0x9240, 0x85b0, 0x7df0, 0x7b40, 0x7d20, 0x8270, 0x8a10, 0x9270, 0x9a20, 0xa000, 0xa310, 0xa300, 0x9fd0, 0x9a10,
          0x9280, 0x8a40, 0x8250, 0x7bd0, 0x7770, 0x75b0, 0x76a0, 0x79e0, 0x7ee0, 0x84b0, 0x8a60, 0x8f10, 0x91e0, 0x9270, 0x9090,
          0x8c70, 0x86b0, 0x7ff0, 0x7940, 0x7380, 0x6f60, 0x6d80, 0x6e10, 0x70f0, 0x7590, 0x7b40, 0x8120, 0x8610, 0x8960, 0x8a40,
          0x8880, 0x8420, 0x7d90, 0x75b0, 0x6d60, 0x65e0, 0x6010, 0x5cf0, 0x5ce0, 0x6000, 0x65d0, 0x6d80, 0x75e0, 0x7d80, 0x82e0,
          0x84b0, 0x81f0, 0x7a40, 0x6da0, 0x5ce0, 0x4950, 0x34a0, 0x20c0, 0x1090, 0x580, 0x130,0, 0x4d0, 0x10c0, 0x2480, 0x3ef0,0x5e30};
  unsigned short DacData2[]={0x8000, 0x8bb0, 0x9760, 0xa2c0, 0xade0, 0xb8a0, 0xc2d0, 0xcc70, 0xd560, 0xdd90, 0xe4f0, 0xeb70, 0xf110,
          0xf5c0, 0xf970, 0xfc30, 0xfdf0, 0xfeb0, 0xfff0, 0xfe90, 0xfd70, 0xfb70, 0xf8a0, 0xf510, 0xf0c0, 0xebc0, 0xe640, 0xe040, 0xd9e0,
          0xd320, 0xcc30, 0xc520, 0xbe00, 0xb6f0, 0xb000, 0xa940, 0xa2d0, 0x9ca0, 0x96f0, 0x91a0, 0x8ce0, 0x88a0, 0x84f0, 0x81e0, 0x7f60,
          0x7d80, 0x7c30, 0x7b70, 0x7b40, 0x7ba0, 0x7c70, 0x7dc0, 0x7f70, 0x81a0, 0x83c0, 0x8650, 0x8910, 0x8be0, 0x8ec0, 0x91a0, 0x9470,
          0x9730, 0x99b0, 0x9c00, 0x9e10, 0x9fd0, 0xa140, 0xa250, 0xa310, 0xa360, 0xa360, 0xa2f0, 0xa230, 0xa110, 0x9fa0, 0x9dd0, 0x9bd0,
          0x9980, 0x9700, 0x9460, 0x91a0, 0x8ec0, 0x8bf0, 0x8910, 0x8650, 0x83a0, 0x8120, 0x7ec0, 0x7ca0, 0x7ac0, 0x7920, 0x77d0, 0x76d0,
          0x7620, 0x75c0, 0x75b0, 0x75f0, 0x7680, 0x7750, 0x7870, 0x79c0, 0x7b50, 0x7d00, 0x7ee0, 0x80d0, 0x82e0, 0x84e0, 0x86e0, 0x88e0,
          0x8ac0, 0x8c70, 0x8e00, 0x8f60, 0x9090, 0x9170, 0x9210, 0x9270, 0x9280, 0x9250, 0x91d0, 0x9100, 0x8ff0, 0x8ea0, 0x8d20, 0x8b50,
          0x8960, 0x8750, 0x8510, 0x82d0, 0x8070, 0x7e20, 0x7bd0, 0x7990, 0x7760, 0x7560, 0x7390, 0x71e0, 0x7080, 0x6f50, 0x6e70, 0x6dd0,
          0x6d80, 0x6d70, 0x6db0, 0x6e30, 0x6f00, 0x7010, 0x7150, 0x72d0, 0x7480, 0x7650, 0x7840, 0x7a40, 0x7c40, 0x7e50, 0x8040, 0x8230,
          0x83f0, 0x8590, 0x8700, 0x8830, 0x8920, 0x89d0, 0x8a30, 0x8a40, 0x8a00, 0x8970, 0x8890, 0x8760, 0x85e0, 0x8420, 0x8210, 0x7fd0,
          0x7d60, 0x7ac0, 0x7800, 0x7530, 0x7250, 0x6f80, 0x6cb0, 0x6a00, 0x6770, 0x6510, 0x62f0, 0x6100, 0x5f70, 0x5e30, 0x5d40, 0x5cb0,
          0x5c80, 0x5cb0, 0x5d40, 0x5e30, 0x5f80, 0x6120, 0x6310, 0x6540, 0x67b0, 0x6a60, 0x6d20, 0x7000, 0x72e0, 0x75c0, 0x7880, 0x7b20,
          0x7d90, 0x7fb0, 0x8190, 0x8300, 0x8400, 0x8490, 0x84a0, 0x8420, 0x8310, 0x8170, 0x7f30, 0x7c50, 0x78e0, 0x74e0, 0x7050, 0x6b40,
          0x65b0, 0x5fb0, 0x5960, 0x52c0, 0x4be0, 0x44d0, 0x3db0, 0x36a0, 0x2fd0, 0x28d0, 0x2240, 0x1c20, 0x1660, 0x1130, 0xc90, 0x8b0,
          0x590, 0x330, 0x1c0, 0x130, 0, 0x190, 0x2f0, 0x540, 0x890, 0xcd0, 0x1210, 0x1830, 0x1f40, 0x2720, 0x2fc0, 0x3920, 0x4310, 0x7c0,
          0x5890, 0x63e0, 0x6f70, 0x7b20};

 int i;
            int j;

            int k=0;

           for(j=0;j<23;j++)
            {
               k=k+1;

                unsigned short DacData_up[90]={0};//上升沿数组
                for(i=0;i<90  ;i++)
                      {
                    DacData_up[i]=(unsigned short)(k*DacData[i]/23);
                          DA1_SetValue16(&DacData_up[i]);//180726
                                                                        //    user_delay_1ms(1);

                     }

          }

            for(j=0;j<152;j++)
            {
           // Work_Choice();
           //TestApp_Task();
            for(i=0;i<259;i++)
            {
                DA1_SetValue16(&DacData2[i]);//180726

                                                                  //user_delay_1ms(1);

           }

            }

          for(j=46;j>0;j--)
                      {

                          unsigned short DacData_up[90]={0};//上升沿数组
                          for(i=0;i<90;i++)
                                {

                              DacData_up[i]=(unsigned short)(j*DacData[i]/46);
                                    DA1_SetValue16(&DacData_up[i]);//180726

                               }

                    }
            user_delay_1ms(200);
          

示波器显示波形

单个周期波形

组合后波形

上升沿大约30ms,高电平持续时间200ms,下降沿60ms,波形间隔200ms,频谱也符合要求,暂未上图,符合YY0709要求,大功告成,

注,不过在调试过程中通过采集蜂鸣器发出的声音波形,通过示波器观察蜂鸣器发出的波形,频谱的一倍频消失,暂未想到什么原因,后续更新~

原文地址:https://www.cnblogs.com/cat-final/p/9512710.html

时间: 2024-10-11 07:35:30

使用KL26生成0709医疗器械中优先级报警声音波形的相关文章

创业赛事活动分享-首届全球医疗器械创业创新大赛

文章来源:创成汇首届全球医疗器械创业创新大赛,特举办本次创业赛事为全力推动台州(仙居)医疗器械产业园转型升级,为医疗器械产业引进创新创业新鲜血液,形成良好创业氛围,持续加大人才.项目.技术及资本的引进力度,不断优化行业资源,实现行业协同发展.该创业赛事时间是在2018年9月至2019年1月凡年龄在60周岁以下,在海内外取得硕士及以上学位,拥有市场前景广阔,并符合仙居医疗器械.新材料等产业发展导向的创新性技术或科研成果,具备海内外创新创业工作经验,有意向来仙居创新创业的海外高层次人才或团队均可报名

雪球平台——5家医疗器械公司v.1.0

雪球平台--5家医疗器械公司v.1.0   负责人:李悦 合伙人:乔天娇.王丹 签约员工:乌力吉.许俊平     摘要: 本小组针对雪球平台5家关于医疗器械的公司分析报告,并对产业进行分析研究,我们要判断医疗器械行业的前景和公司实力是否匹配,来决定我们投资就业的研究价值.   进度看板 ü 李悦    ---   收集整理5家以上关于医疗器械的上市公司 ü 乔天娇 ---   整理资料,列出医疗器械公司的清单 ü 王丹   ---   5家公司的行业前景 ü 乌力吉  ---   5家公司的实力

用Aspose.Words for .NET动态生成word文档中的数据表格

1.概述 最近项目中有一个这样的需求:导出word 文档,要求这个文档的格式不是固定的,用户可以随便的调整,导出内容中的数据表格列是动态的,例如要求导出姓名和性别,你就要导出这两列的数据,而且这个文档不是导出来之后再调整而是导出来后已经是调整过了的.看到这里,您也许马上想到用模板导出!而且.NET中自带有这个组件:Microsoft.Office.Interop.Word,暂且可以满足需求吧.但这个组件也是有局限性的,例如客户端必须装 office组件,而且编码复杂度高.最麻烦的需求是后面那个-

人工智能在医疗行业中的应用

如火如荼的人工智能行业正在世界范围内蓬勃发展,特别是谷歌公司的Alpha Go程序战胜了围棋界的顶尖高手,令世人看到了计算机在人类擅长的领域也有一定的思维演绎能力.伴随计算机运算能力的飞速提升和人工智能领域的算法的不断改进,之前处在实验室阶段的Demo,正逐步变得实用,有些工作岗位甚至被淘汰,但同时也衍生出了人工智能在各行业交叉学科的工作岗位.本文从几个方面浅谈人工智能在医疗行业的应用.  人工智能在医疗电子病历系统中的应用    对于国内的医疗机构来说,医生在患者就诊过程中必须填写检查诊断信息

COMMENT方法 用于在生成的SQL语句中添加注释内容,

COMMENT方法 用于在生成的SQL语句中添加注释内容,例如: $this->comment('查询考试前十名分数') ->field('username,score') ->limit(10) ->order('score desc') ->select(); 复制代码 大理石平台知识 最终生成的SQL语句是: SELECT username,score FROM think_score ORDER BY score desc LIMIT 10 /* 查询考试前十名分数

编程语言中优先级与结合性

编程语言中优先级与结合性     优先级与结合性是指运算符与操作数的“紧密程度”:       结合性表明了同一优先级的运算符对同一操作数的紧密程度: 如: a=b=c: 赋值运算符的结合性为从右至左: 所以a=b=c:相当于a=(b=c): C语言同大多数语言一样没有指定同一运算符对多个操作数的计算顺序(&&.||.?:和,操作符除外) 以下内容出处:K&R 原文地址:https://www.cnblogs.com/tsingke/p/12024353.html

2020上海国际医疗器械展览会

上海国际医疗器械展览会将于2020年7月1日—3日在上海世博展览馆隆重举行,内容全面涵盖了包括医用电子.医学影像设备.光学.急救.康复护理.医疗用品及卫生材料.检验设备及诊断试剂.医院建设.智慧医疗.可穿戴以及医疗信息技术等产品,直接并全面服务于医疗器械行业从源头到终端整条医疗产业链,每一届来自20多个国家的1000+医疗器械生产企业和超过30000人次的政府机构采购, 医院买家和经销商, 代理商汇聚展会现场交易.交流. 展会至创办以来,坚持走国际化,专业化的特色发展道路,以推动产业升级.行业创

c#生成一个某文本中不包含的随机字符串

//生成一个某文本中不包含的随机字符串 private static string GetRandomStr(string allStr) { int number; string resStr; do { resStr = string.Empty; Random random = new Random(); for (int i = 0; i < 9; i++) { number = random.Next(); number %= 36; if (number < 10) { numbe

Linux中邮件报警配置

linux中邮件报警机制 在linux中报警机制是运维管理关键部分.我们一般是通过监控来发现问题,常见的监控软件如:zabbix是现在大家都在使用和准备使用的.如果不通过第三方软件做监控报警,我们就需要linux中自带的邮件发送功能. 以下报警配置为工作中,小心得体会.向大家分享下: 1.检查mailx 的版本信息大于12.*即可,否则需要另外更新安装 2.# vim /etc/mail.rc  中添加修改内容如下: set [email protected]             指定外部代