精华内容
下载资源
问答
  • 面对数字经济新机遇,如何用新思路开新局?进入2020年,在线办公、在线会议、在线教育……已经让我们的工作和生活方式发生了翻天覆地的变化。而在这些变化的背后,是新一代数字技术与行业应用的融...

    面对数字经济新机遇,如何用新思路开新局?

    进入2020年,在线办公、在线会议、在线教育……已经让我们的工作和生活方式发生了翻天覆地的变化。而在这些变化的背后,是新一代数字技术与行业应用的融合——不仅为我们解决了诸多工作和生活的难题,更颠覆了传统行业的商业模式,成为了数字经济发展的新动能。

    日前,在华为和《财经》杂志联合打造的《对话》节目中,德勤中国理事会成员、德勤中国管理咨询分析与认知业务主管合伙人张庆杰与华为中国政企业务副总裁杨文池围绕“把握数字经济新机遇,以新思路开新局”这一核心话题展开了深度对话。

    变革加速 数字化转型进入新阶段

    2020年的疫情给整个经济社会带来很大的不确定性,但由此也带来了数字经济的逆势增长。国家统计局发布的数据显示,今年1月份至5月份,与互联网相关的新业态、新模式继续保持逆势增长;全国实物商品网上零售额同比增长11.5%,占社会消费品零售总额的比重为24.3%。

    与此同时,B2B行业和传统依赖线下互动的行业的数字化转型进程也在加快。安永于2020年5月18日发布的《全球资本信心晴雨表》中的调查数据显示,50%的受访中国高管表示,已经开始利用新技术来减轻疫情危机对其业务的影响。其中,47%的企业表示已经利用新技术使员工能够远程开展工作,32%的企业提到他们利用了自动化,21%的企业表示已在其业务中应用了大数据和人工智能技术。

    华为中国政企业务副总裁杨文池

    对此,杨文池也表示,目前,很多中国企业已经从传统的扩张型增长进入到价值型增长的新阶段,不论在产业上,还是在客户、生态上,都呈现出新的变化和特点。以华为自身为例,在过去30年,华为的商业模式主要以“卖盒子”为主;但随着行业数字化转型的提速,华为也在积极拥抱5G、云、鲲鹏计算、AI等新数字技术,携手合作伙伴打造更多的场景化解决方案,激发业务和应用创新,以加速行业客户的数字化转型进程。

    而对于行业客户而言,经过过去很长一段时间的信息化建设,每家企业都构建了大大小小的应用系统,但这些应用系统就像是一个又一个“烟囱”,各自的数据并不能共享,无法进一步支撑企业的数字化转型。于是,如何通过数字技术的应用,加速其核心业务转型,打通数据孤岛、提升运营效率,就成为了当下企业转型升级的核心。

    不仅如此,在行业数字化转型进入深水区的今天,生态也发生了翻天覆地的变化。过去,像华为这样的生产“盒子”,然后交由合作伙伴去销售,进而应用到各行各业;现在,转型和升级对行业合作伙伴的能力要求也在同步提高。在这种情况下,借助“平台+生态”的模式,将服务、解决方案、投融资等不同类型的伙伴聚合在一起,通过生态的力量才能更好地实现各行业的数字化转型。

    面对新机遇 如何以新思路打开新局面?

    数字经济的发展正在给各行各业带来全新的历史机遇,但也提出了更高的要求,不论是产业数字化升级,还是行业数字化转型,都需要以全新的思路不断向前,才能抓住新机遇、打开新局面。

    在数字经济发展的新阶段,各行各业该如何推进数字化转型呢?张庆杰表示,就数字化建设的整体思路而言,“大处着想,小处入手,快速迭代”同样适用;而面对不同行业在数字化转型过程中的差异性,德勤中国通过对数字化建设的体系化思考提出了“数字化建设五支柱”,包括数字化战略、数字化业务、数字化管理、数字支撑以及资源支撑。

    其中,数字化战略主要包括数字化领导力、数字化创新、数字化方向和愿景等;数字化业务则强调数字技术与业务的统合;数字化管理则包括数字化财务、数字化人力资源、数字化流程等。除此之外,数据支撑在数字化转型中至关重要,这里主要包括大数据的规划、数据资产、数据标准和数据治理等;资源支持则包括数字化的组织、企业文化等等。

    德勤中国管理咨询分析与认知业务主管合伙人张庆杰

    张庆杰强调,在企业数字化转型过程中,有三点需要着重注意:1、要从被动变革的思维转变为积极主动的创造思维,2、数字化技术的应用应该与企业自身特点相结合,3、数字化转型需要全局性、体系化的业务逻辑重塑。

    正因为行业数字化转型所呈现出的新特征,对于华为来说,要成为驱动各行业数字化转型的新引擎,同样需要转变自己在数字化生态中所扮演的角色。在杨文池看来,华为正在携手合作伙伴,着重加强三个能力的建设,以帮助客户实现数字化转型:懂行业趋势和需求、懂技术与业务融合、懂生态发展和价值提升等。

    在行业层面,近年来服务行业数字化转型过程中,华为不断增强对客户的了解和认知,深挖行业数字化转型需求;在技术层面,华为也在不断根据行业发展需求,将创新的产品和技术与行业业务融合,为数字化转型提供新的支撑;在生态层面,华为始终坚持打造良性的、可持续发展的、有竞争力的生态系统,通过“平台+生态”的策略,不断深化与合作伙伴的合作,联合打造有针对性的行业场景化解决方案,实现共赢。

    构建数字化转型生态 共创数字经济未来

    在整个数字化转型进程中,华为深知只有客户、伙伴和华为三方共同努力,才能构建良好的生态系统,为行业数字化转型提速,进而打开生态新空间,收获新价值。

    以深圳机场为例,从2018年起,深圳机场就携手华为及其合作伙伴,开启了未来机场建设之路。在多方共同协作下,深圳机场的数字化转型从顶层设计、创新实践和统筹建设三方面齐头并进,围绕“运控、安全、服务”三大业务领域,构建了“运行一张图”“安全一张网”和“出行一张脸”的场景化解决方案,使深圳机场真正成为智慧机场、未来机场的代名词。

    杨文池也表示在多年服务行业数字化转型过程中,华为在行业、技术、生态三个方向持续发力的同时,也逐渐意识到只有华为与客户、伙伴共同做到有共识、有架构、有生态、有运营,数字化转型才能真正取得成效。

    有共识,就是客户要真正把数字化转型看作是一把手工程,并在数字化转型的方向、目标达成共识;有架构,就是携手合作伙伴对客户业务的深入理解,共同搭建数字化转型的架构,而不是头痛医头脚痛医脚;有生态,就是要构建足够健壮的生态系统,让参与各方各有分工,互相协作,各自发挥各自优势,共同满足企业数字化转型的需求;有运营,则是考虑到数字化转型发展到今天,并不是随着项目建设结束而结束,而是要延伸到项目的持续运营上,并在运营过程中继续发现客户的新需求和痛点,反过来推动系统的持续改进和优化。

    作为华为在中国的重要合作伙伴之一,张庆杰表示,我们与华为合作,运用构建生态系统的思维,培育和建设生态体系。在培育和建设生态体系的过程中,有两点尤其重要:第一,ICT厂商与生态伙伴一定要有大格局的思维,摒弃小我,通过融合构建更加多元化的能力,打造更多的创新场景化解决方案;第二,ICT企业需要从整个产业链的角度出发,努力与上下游构建一个“趋同、共赢、合作”的生态链条。

    事实上,华为在助力政企行业数字化转型过程中,一直努力培养和建设一个多元化的繁荣生态。杨文池表示,在平台创新上,华为在现有的数字平台基础上,继续融合新技术,打造更加肥沃的“黑土地”,以支撑更多的上层应用创新,更好地服务于政企客户的数字化转型;在人才培养上,华为也在积极通过与清华大学、北京大学等高校合作,开展管理类、技术类课程的定制,并通过华为生态大学等,培养更多的同路人;在联合创新解决方案打造上,华为还将继续加大与行业生态伙伴的合作,面向更多的行业业务场景打造专属的场景化解决方案;除此之外,在投融资、激励政策等方面,华为也将不断加大投入力度,推动整个生态持续繁荣发展。

    如今,面对数字经济发展的汹涌大潮,行业数字化转型的拐点已经到来,传统的思路和模式已经无法满足时代发展的需要,只有群策群力、开拓创新,才能挖掘出更多的数字经济价值。为此,华为也将会在技术平台、交易平台、政策支撑等方面做出最大的努力,以“平台+生态”的方式更好地帮助政企行业客户加速冲出数字化转型深水区,成为数字经济时代的“弄潮儿”。

    END



    长按指纹  识别二维码   关注我


    个人手机号:13810967685(同微信),欢迎私信爆料或交流。

    “常言道”已入住今日头条、一点资讯、搜狐新闻、网易新闻、凤凰新闻、腾讯新闻、新浪新闻、知乎、UC、博客中国、趣头条、天极网、商业新知等多个媒体平台。

    展开全文
  • 数字频率计的功能及工作原理

    千次阅读 2020-10-21 16:58:56
    2.1数字频率计功能概述 数字频率计数器的基本功能是测量一个频率稳定度高的频率源的频率。通常情况下计算每秒内待测信号的脉冲...2.2 基本工作原理及设计思路 根据频率计设计的设计要求,我们可将整个电路系统划分.

    2.1数字频率计功能概述  

    数字频率计数器的基本功能是测量一个频率稳定度高的频率源的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则没测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。本数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。

    2.2 基本工作原理及设计思路

    根据频率计设计的设计要求,我们可将整个电路系统划分为几个基本模块,各模块均有几种不同的设计方案。

    频率测量模块

    直接测频法:把被测频率信号经脉冲整形电路处理后加到闸门的一个出入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲送到十进制计数器进行计数;设计数器的值为N,则可得到被测信号频率为f=N/T,经分析,本测量在低频率的相对测量误差较大,即在低频段不能满足本设计的要求。

    组合测频法:是指在高频是采用直接测频法,低频是采用直接测量周期法测信号的周期,然后换算成频率;这种方法可以在一定程度上弥补方法(1)中的不足,但是难以确定最佳分测点,且电路实现较复杂。

    倍频法:是指把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数,将经整形的低频信号进行倍频后在进行测量,对高频段则直接进行测量。倍频法较难实现。

    等精度测频法:其实现方式可用图来说明。图中,预置门控信号是宽度为TPR的一个脉冲,CNT1和CNT2是两个可控计数器。标准频率信号从CNT1的时钟输出端CLK输入,其频率为fs,经整形后的被测信号从CNT2的时钟输入端CLK输入,设其实际频率为fx;当预置门控信号为高时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动计数器CNT1和CNT2。CNT1和CNT2分别对被测信号(频率为fs)和标准频率信号(频率为fx)同时计数。当预置门信号为低时,随后而至的被测信号的上升沿将两个计数器同时关闭。设在一次预置门时间Tpr内对被测信号的计数值为Nx,对标准信号的计数值为Ns。则下式成立:

    fx/Nx=fs/Ns               (2-1)

    由此推得

    fx=fs*Nx/Ns             (2-2)

    等精度原理框架图如下:

        若所测频率值为fx,其真实值为fxe,标准频率为fs,一次测量中,由于fx计数的起停时间都是该信号的上跳沿触发的,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计数Ns最多相差一个脉冲,则下式成立:

    fx/Nx=fs/Ns             (2-3)

    fex/Nx=fs/Ns+△et        (2-4)

    可分别推得  

    fx=fs*Nx/Ns             (2-5)

    fex=fs*Nx/Ns+△et        (2-6)

        根据相对误差的公式有:

    △fxe/fxe=fxe-fx/fxe       (2-7)

     经整理可得到:

    △fxe/fxe=△et/Ns         (2-8)

    因△et≤1,故△fxe/fxe≤1/Ns   

        Ns=Tpr*fs            (2-9)

    根据以上分析,我们可知等精度测频法具有三个特点:1,相对测量误差与被测频率的高低无关;2,增大Tpr或fs可以增大Ns,减少测量误差,提高测量精度;3,测量精度与预置门宽度和标准频率有关,与被测信号的频率无关,在预置门和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变。

    3.1总FPGA仿真图

     

    图3.1 软件仿真总GDF图

    3.2 模块分图

    3.2.1 数据产生模块

    Nb,Nx.为16bit。

                              图3.2 数据产生模块

    上图数据产生的工作原理:fb频率是由24M400分频提供,由2个D触发器构成控制电路,在fx输入的时候,对第一个D触发器开始时Q=1,此时计数器处于计数状态,当控制循环信号来一个时钟上升沿第二个D触发器Q=D=0,由于那个1经非门得0,此时由门控制电路得到第一个触发器Q=D=0,当第一个D触发器由1变为0时,两计数器停止计数,此信号经后一个非门得到一个上升沿,在上升沿时两个数所存到buffer中,在接下来的高电平时,两计数器清零。由D触发器的性质得:第二个触发器瞬间被置位为1,从而反馈到上一个触发器使其Q=D=1,从而让两计数器又开始计数,当控制信号再来下一个时钟上升沿的时候,又对上第一个D触发器置位是0,而两个计数器还在计数,当fx得时钟上升沿刚好来的时候与fb刚好,此时计数完成,而对计数器清零则延时一段时间再清,从而避免数据丢失,这样在门控信号的作用下,计数器循环计数。

    3.2.2 数据处理模块

     

    图3.3  数据处理模块1

    分析:对于两个buffer输出的数据接由FPGA生成的LPM除法和乘法模块进行计算,最后得到的数据是16进制,为了能在数码管上显示我们将其转化为10进制,用BCD码显示。而在转换模块里我们用的是除法取商舍余,最后输出显示。原理图如下:

    图3.3  数据处理模块2

     

     

    4.1 计数器设计

        计数模块在闸门时间内对被测信号进行计数, 并根据被测输入信号的频率范围自动切换量程, 控制小数点显示位置。

    LIBRARY IEEE;

    USE IEEE.STD_LOGIC_1164.ALL;

    USE IEEE.STD_LOGIC_UNSIGNED.ALL;

    USE IEEE.STD_LOGIC_ARITH.ALL;

    ENTITY CNT10 IS

    PORT(

          C       : IN  STD_LOGIC;      CLK       : IN  STD_LOGIC;   --计数时钟信号--

          C_EN    : IN  STD_LOGIC;   --计数使能--

          CARRY_OUT : OUT STD_LOGIC;   --进位输出--

          Q_OUT      : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

         );

    END CNT10;

    ARCHITECTURE BEHAVIOR OF CNT10 IS

    SIGNAL CNT_SL:STD_LOGIC_VECTOR(3 DOWNTO 0);

    BEGIN

    PROCESS(C,CLK,C_EN)

    BEGIN

    IF C='0'                  THEN   --计数器异步清零--

       CNT_SL<=(OTHERS=>'0');

    ELSIF(CLK'EVENT AND CLK='1')THEN 

    IF C_EN='1'               THEN

    IF CNT_SL < 9               THEN

       CNT_SL<=CNT_SL+1;

    ELSE CNT_SL <= (OTHERS=>'0');

    END IF;

    END IF;

    END IF;

    IF(CNT_SL= 9 AND C_EN='1')THEN

    CARRY_OUT<='1';

    ELSE CARRY_OUT<='0';

    END IF;

    END PROCESS;

    Q_OUT<=CNT_SL;

    END BEHAVIOR;

     

    4.2 测频控制信号发生器设计

    图2给出了系统的工作时序。CLK是由脉冲发生器产生的频率为1Hz的标准时钟信号,当测频控制信号发生器TESTCTL的TSTEN端为高电平时允许计数、低电平时停止计数,在停止计数期间,测频控制信号发生器TESTCTL的Load端产生一个上升沿,将计数器在前1s的计数值锁存进32b锁存器REG32B中,并由8个7段译码器将计数结果译出稳定显示。锁存信号之后经过半个CLK周期,测频控制信号发生器TESTCTL的CLR_CNT端产生一个上升沿,对计数器进行清零。为下1s的计数操作做准备。

    为了产生这个时序图,首先有一个D触发器构成二分频器,在每次时钟CLK的上升沿到来使其值翻转。D触发器的输出高电平正好是1s,因此可以作为测频控制信号发生器TESTCTL的TSTEN端,用来控制计数。而Load信号正好是TSTEN端信号的翻转。在计数结束后半个CLK周期,CLK与TSTEN都为低电平,这时CLR_CNT产生一个上升沿作为清零信号。

    4.1  测频控制信号发生器TESTCTL的工作时序

    程序如下:

    LIBRARY IEEE;

    USE IEEE.STD_LOGIC_1164.ALL;

    USE IEEE.STD_LOGIC_UNSIGNED.ALL;

    USE IEEE.STD_LOGIC_ARITH.ALL;

    ENTITY TESTCTL IS

    PORT(

          C     :IN  STD_LOGIC;

          CLK     :IN  STD_LOGIC;

          C_EN  :OUT STD_LOGIC;

          RST_EN  :OUT STD_LOGIC;

          LOAD    :OUT STD_LOGIC

         );

    END TESTCTL;

    ARCHITECTURE BEHAVIOR OF TESTCTL IS

    SIGNAL DIV2CLK:STD_LOGIC;

    SIGNAL TEST_EN:STD_LOGIC;

    BEGIN

    PROCESS(CLK,C)

    VARIABLE CNT:INTEGER RANGE 0 TO 20000000;

    BEGIN

    IF C='0'               THEN

    CNT:=0;

    ELSIF(CLK'EVENT AND CLK='1')THEN

    CNT:=CNT+1;

    IF CNT<10000000             THEN

    TEST_EN<='1';

    ELSIF CNT<20000000          THEN

    TEST_EN<='0';

    ELSE CNT:=0;TEST_EN<='0';

    END IF;

    END IF;

    END PROCESS;

    PROCESS(TEST_EN)

    BEGIN

    IF(TEST_EN'EVENT AND TEST_EN='1')THEN  

    DIV2CLK<=NOT DIV2CLK;

    END IF;

    END PROCESS;

    PROCESS(TEST_EN,DIV2CLK,C)            --产生清0信号---

    BEGIN

    IF((TEST_EN='0' AND DIV2CLK='0') OR C='0' ) THEN

    RST_EN<='0';

    ELSE RST_EN<='1';

    END IF;

    END PROCESS;

    LOAD<=NOT DIV2CLK;C_EN<=DIV2CLK;

    END BEHAVIOR;

     

    4.3 锁存器设计

        当系统正常工作时,脉冲发生器提供的1 Hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据。

    LIBRARY IEEE;

     USE IEEE.STD_LOGIC_1164.ALL;

     USE IEEE.STD_LOGIC_UNSIGNED.ALL;

     USE IEEE.STD_LOGIC_ARITH.ALL;

     ENTITY REG32B IS

     PORT(

           LOAD :IN STD_LOGIC;

           DIN  :IN STD_LOGIC_VECTOR(31 DOWNTO 0);

           DOUT :OUT STD_LOGIC_VECTOR(31 DOWNTO 0)

          );

     END REG32B;

     ARCHITECTURE BEHAVIOR OF REG32B IS

     BEGIN

     PROCESS(LOAD,DIN)

     BEGIN

     IF(LOAD'EVENT AND LOAD='1') THEN

        DOUT<=DIN;

     END IF;

     END PROCESS;

     END BEHAVIOR;

    4.4 除法器模块程序

    LIBRARY ieee;

    USE ieee.std_logic_1164.all;

    LIBRARY lpm;

    USE lpm.all;

    ENTITY div32b IS

       PORT

       (

           denom      : IN STD_LOGIC_VECTOR (31 DOWNTO 0);

           numer      : IN STD_LOGIC_VECTOR (31 DOWNTO 0);

           quotient      : OUT STD_LOGIC_VECTOR (31 DOWNTO 0);

           remain     : OUT STD_LOGIC_VECTOR (31 DOWNTO 0)

       );

    END div32b;

    ARCHITECTURE SYN OF div32b IS

       SIGNAL sub_wire0  : STD_LOGIC_VECTOR (31 DOWNTO 0);

       SIGNAL sub_wire1  : STD_LOGIC_VECTOR (31 DOWNTO 0);

       COMPONENT lpm_divide

       GENERIC (

           lpm_drepresentation      : STRING;

           lpm_hint      : STRING;

           lpm_nrepresentation      : STRING;

           lpm_type      : STRING;

           lpm_widthd    : NATURAL;

           lpm_widthn    : NATURAL

       );

       PORT (

              denom  : IN STD_LOGIC_VECTOR (31 DOWNTO 0);

              quotient   : OUT STD_LOGIC_VECTOR (31 DOWNTO 0);

              remain : OUT STD_LOGIC_VECTOR (31 DOWNTO 0);

              numer  : IN STD_LOGIC_VECTOR (31 DOWNTO 0)

       );

       END COMPONENT;

    BEGIN

       quotient    <= sub_wire0(31 DOWNTO 0);

       remain    <= sub_wire1(31 DOWNTO 0);

       lpm_divide_component : lpm_divide

       GENERIC MAP (

           lpm_drepresentation => "UNSIGNED",

           lpm_hint => "LPM_REMAINDERPOSITIVE=TRUE",

           lpm_nrepresentation => "UNSIGNED",

           lpm_type => "LPM_DIVIDE",

           lpm_widthd => 32,

           lpm_widthn => 32

       )

       PORT MAP (

           denom => denom,

           numer => numer,

           quotient => sub_wire0,

           remain => sub_wire1

       );

    END SYN;

    4.5 动态扫描信号输出

        显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。

    LIBRARY IEEE;

    USE IEEE.STD_LOGIC_1164.ALL;

    USE IEEE.STD_LOGIC_UNSIGNED.ALL;

    USE IEEE.STD_LOGIC_ARITH.ALL;

    ENTITY SCAN8 IS

    PORT(

          CLK      :IN STD_LOGIC;

          NO1_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO2_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO3_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO4_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO5_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO6_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO7_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO8_BCD  :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          IED_CS   :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

          IED_DATA :OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

         );

    END SCAN8;

    ARCHITECTURE BEHAVIOR OF SCAN8 IS

    SIGNAL S1 :STD_LOGIC_VECTOR(2 DOWNTO 0);

    SIGNAL BCD_OUT:STD_LOGIC_VECTOR(3 DOWNTO 0);

    SIGNAL TEST_EN:STD_LOGIC;

    BEGIN

    PROCESS(CLK)

    VARIABLE CNT: INTEGER RANGE 0 TO 2000;

    BEGIN

    IF(CLK'EVENT AND CLK='1') THEN

    CNT:=CNT+1;

    IF CNT<1000               THEN

    TEST_EN<='1';

    ELSIF CNT<2000            THEN

    TEST_EN<='0';

    ELSE CNT:=0;TEST_EN<='0';

    END IF;

    END IF;

    END PROCESS;

    PROCESS(TEST_EN)

    BEGIN

    IF (TEST_EN'EVENT AND TEST_EN='0')THEN

    IF S1="111"  THEN S1<="000";

    ELSE S1<=S1+1;

    END IF;

    END IF;

    END PROCESS;

    PROCESS(S1)

    BEGIN

     CASE S1 IS

       WHEN"000"=>BCD_OUT<=NO1_BCD; IED_CS<="00000001";

       WHEN"001"=>BCD_OUT<=NO2_BCD; IED_CS<="00000010";

       WHEN"010"=>BCD_OUT<=NO3_BCD; IED_CS<="00000100";

       WHEN"011"=>BCD_OUT<=NO4_BCD; IED_CS<="00001000";

       WHEN"100"=>BCD_OUT<=NO5_BCD; IED_CS<="00010000";

       WHEN"101"=>BCD_OUT<=NO6_BCD; IED_CS<="00100000";

       WHEN"110"=>BCD_OUT<=NO7_BCD; IED_CS<="01000000";

       WHEN"111"=>BCD_OUT<=NO8_BCD; IED_CS<="10000000";

    END CASE;

    END PROCESS;

    PROCESS(BCD_OUT)

    BEGIN

     CASE BCD_OUT IS

       WHEN"0000"=>IED_DATA<="11000000";--0

       WHEN"0001"=>IED_DATA<="11111001";--1

       WHEN"0010"=>IED_DATA<="10100100";--2

       WHEN"0011"=>IED_DATA<="10110000";--3   

       WHEN"0100"=>IED_DATA<="10011001";--4

       WHEN"0101"=>IED_DATA<="10010010";--5

       WHEN"0110"=>IED_DATA<="10000010";--6

       WHEN"0111"=>IED_DATA<="11111000";--7

       WHEN"1000"=>IED_DATA<="10000000";--8

       WHEN"1001"=>IED_DATA<="10010000";--9

       WHEN OTHERS=>NULL;

     END CASE;

    END PROCESS;

    END BEHAVIOR;

     

    4.6 频率计

    LIBRARY IEEE;

    USE IEEE.STD_LOGIC_1164.ALL;

    USE IEEE.STD_LOGIC_UNSIGNED.ALL;

    USE IEEE.STD_LOGIC_ARITH.ALL;

    ENTITY freq IS

    PORT(

          C     :IN  STD_LOGIC;

          CLK     :IN  STD_LOGIC;

          TEST_CLK:IN  STD_LOGIC;

          IED_CS  :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

          IED_DATA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

         );

    END freq;

    ARCHITECTURE BEHAVIOR OF freq IS

    COMPONENT CNT10 IS             --计数器的例化--  

    PORT(

          C       : IN  STD_LOGIC;  

          CLK       : IN  STD_LOGIC;  

          C_EN    : IN  STD_LOGIC;  

          CARRY_OUT : OUT STD_LOGIC;           

          Q_OUT      : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

         );

    END COMPONENT CNT10;

    COMPONENT TESTCTL IS           --测频部分例化--

    PORT(

          C   :IN  STD_LOGIC;

          CLK   :IN  STD_LOGIC;

          C_EN:OUT STD_LOGIC;

          RST_EN:OUT STD_LOGIC;

          LOAD  :OUT STD_LOGIC

         );

    END COMPONENT TESTCTL;

    COMPONENT REG32B IS            --锁存器例化---

    PORT(

          LOAD :IN STD_LOGIC;

          DIN  :IN STD_LOGIC_VECTOR(31 DOWNTO 0);

          DOUT :OUT STD_LOGIC_VECTOR(31 DOWNTO 0)

         );

    END COMPONENT REG32B;

    COMPONENT SCAN8 IS             --扫描部分例化---

    PORT(

          CLK     :IN STD_LOGIC;

          NO1_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO2_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO3_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO4_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO5_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO6_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO7_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          NO8_BCD :IN STD_LOGIC_VECTOR(3 DOWNTO 0);

          IED_CS  :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

          IED_DATA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

         );

    END COMPONENT SCAN8;

    SIGNAL SE,SC,SL:STD_LOGIC;

    SIGNAL S1,S2,S3,S4,S5,S6,S7,S8:STD_LOGIC;

    SIGNAL SD:STD_LOGIC_VECTOR(31 DOWNTO 0);

    SIGNAL ST:STD_LOGIC_VECTOR(31 DOWNTO 0);

    BEGIN

    U0 : TESTCTL PORT MAP(CLK=>CLK,C=>C,C_EN=>SE,RST_EN=>SC,LOAD=>SL);

    U1 : CNT10   PORT MAP(CLK=>TEST_CLK,C=>SC,C_EN=>SE,Q_OUT=>SD(3 DOWNTO 0),CARRY_OUT=>S1);

    U2 : CNT10   PORT MAP(CLK=>S1,C=>SC,C_EN=>SE,Q_OUT=>SD(7 DOWNTO 4),CARRY_OUT=>S2);

    U3 : CNT10   PORT MAP(CLK=>S2,C=>SC,C_EN=>SE,Q_OUT=>SD(11 DOWNTO 8 ),CARRY_OUT=>S3);

    U4 : CNT10   PORT MAP(CLK=>S3,C=>SC,C_EN=>SE,Q_OUT=>SD(15 DOWNTO 12),CARRY_OUT=>S4);

    U5 : CNT10   PORT MAP(CLK=>S4,C=>SC,C_EN=>SE,Q_OUT=>SD(19 DOWNTO 16),CARRY_OUT=>S5);

    U6 : CNT10   PORT MAP(CLK=>S5,C=>SC,C_EN=>SE,Q_OUT=>SD(23 DOWNTO 20),CARRY_OUT=>S6);

    U7 : CNT10   PORT MAP(CLK=>S6,C=>SC,C_EN=>SE,Q_OUT=>SD(27 DOWNTO 24),CARRY_OUT=>S7);

    U8 : CNT10   PORT MAP(CLK=>S7,C=>SC,C_EN=>SE,Q_OUT=>SD(31 DOWNTO 28),CARRY_OUT=>S8);

    U9 : REG32B  PORT MAP(LOAD=>SL,DIN=>SD(31 DOWNTO 0), DOUT=>ST(31 DOWNTO 0));

    U10: SCAN8   PORT MAP(CLK=>CLK,

                          NO1_BCD=>ST(3 DOWNTO 0),

                          NO2_BCD=>ST(7 DOWNTO 4),

                          NO3_BCD=>ST(11 DOWNTO 8),

                          NO4_BCD=>ST(15 DOWNTO 12),

                          NO5_BCD=>ST(19 DOWNTO 16),

                          NO6_BCD=>ST(23 DOWNTO 20),

                          NO7_BCD=>ST(27 DOWNTO 24),

                          NO8_BCD=>ST(31 DOWNTO 28),

                          IED_CS=>IED_CS,

                          IED_DATA=>IED_DATA);

    END BEHAVIOR;

    4.7 系统的功能仿真

    在对源程序仿真过程中,时序问题的解决是本论文的一个重要之处,为此,假如信号CLK00 和FS,在输入CLK_IN不变的情况下,在信号CLK00 代入时附加延时,由信号CLK00 和FS 来控制本数字频率计。

    图4.2  仿真波形

    我们利用EDA 工具MAX+PLUS II对VHDL 的源程序进行编译,适配,优化,逻辑总和,自动地把VHDL 描述转变成门级电路,进而完成电路分析,纠错和验证,自动布局布线,仿真等各项测试工作,仿真后得到波形图如图4.2 所示。

    展开全文
  • 本篇就分享一下数字转化为汉字的思路吧。   数字转汉字的原理: 拆分:由于整数部分要加权值,而小数部分直接转换即可,所以首先要将数字拆分成整数+小数; 整数处理:按照我们的中国人的习惯,把数...

    本人是从事互联网金融行业的,所以会接触到一些金融类的问题,常见的一种就是数字转汉字大小写的问题。所以抽空就写了一个小小的工具类,实现了数字转汉字、大数相加、相减、相乘的工具类,希望能帮助有需求的同行们。本篇就分享一下数字转化为汉字的思路吧。

     

    数字转汉字的原理:

    1. 拆分:由于整数部分要加权值,而小数部分直接转换即可,所以首先要将数字拆分成整数+小数;
    2. 整数处理:按照我们的中国人的习惯,把数字格式化成4位一组,不足4位前面补0。每次处理4位,按位匹配数组中的汉字+权值。即按照数值找数字数组(num_lower 、num_upper )中对应位置的汉字,按照在4位中的偏移量在单位权值数组(unit_lower 、unit_upper )中找。比如21,转化4位为0021,前面的0不用管,2对应数字“二”,权值是“十”,1对应数字“一”,权值是“(个)”用空字符串代替。即得到“二十一”。每4位处理完后,还要整体对应一个权值,比如“万、亿、兆”等;
    3. 小数处理:小数部分直接按位对应汉字数组和权值即可。

    废话了这么多,可能云里雾里的,看看具体代码吧:

        //num 表示数字,lower表示小写,upper表示大写
        private static final String[] num_lower = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
        private static final String[] num_upper = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
    
        //unit 表示单位权值,lower表示小写,upper表示大写
        private static final String[] unit_lower = { "", "十", "百", "千" };
        private static final String[] unit_upper = { "", "拾", "佰", "仟"};
        private static final String[] unit_common = {"","万", "亿","兆","京","垓","秭","穰","沟","涧","正","载"};
    
        //允许的格式
        private static final List<String> promissTypes = Arrays.asList("INTEGER","INT","LONG","DECIMAL","FLOAT","DOUBLE","STRING","BYTE","TYPE","SHORT");
    
        /**
         * 数字转化为小写的汉字
         * 
         * @param num 将要转化的数字
         * @return
         */
        public static String toChineseLower(Object num){
            return format(num, num_lower, unit_lower);
        }
    
        /**
         *  数字转化为大写的汉字
         *  
         * @param num 将要转化的数字
         * @return
         */
        public static String toChineseUpper(Object num){
            return format(num, num_upper, unit_upper);
        }
    
        /**
         * 格式化数字
         * 
         * @param num            原数字
         * @param numArray     数字大小写数组
         * @param unit            单位权值
         * @return
         */
        private static String format(Object num,String[] numArray,String[] unit){
            if(!promissTypes.contains(num.getClass().getSimpleName().toUpperCase())){
                throw new RuntimeException("不支持的格式类型");
            }
            //获取整数部分
            String intnum = getInt(String.valueOf(num));
            //获取小数部分
            String decimal = getFraction(String.valueOf(num));
            //格式化整数部分
            String result = formatIntPart(intnum,numArray,unit);
            if(!"".equals(decimal)){//小数部分不为空
                //格式化小数
                result += "点"+formatFractionalPart(decimal, numArray);
            }
            return result;
        }
    
        /**
         * 格式化整数部分
         * 
         * @param num    整数部分
         * @param numArray 数字大小写数组
         * @return
         */
        private static String formatIntPart(String num,String[] numArray,String[] unit){
    
            //按4位分割成不同的组(不足四位的前面补0)
            Integer[] intnums = split2IntArray(num);
    
            boolean zero = false;
            StringBuffer sb = new StringBuffer();
            for(int i=0;i<intnums.length;i++){
                //格式化当前4位
                String r = formatInt(intnums[i], numArray,unit);
                if("".equals(r)){//
                    if((i+1)==intnums.length){
                        sb.append(numArray[0]);//结果中追加“零”
                    }else{
                        zero=true;
                    }
                }else{//当前4位格式化结果不为空(即不为0)
                    if(zero || (i>0 && intnums[i]<1000)){//如果前4位为0,当前4位不为0
                        sb.append(numArray[0]);//结果中追加“零”
                    }
                    sb.append(r);
                    sb.append(unit_common[intnums.length-1-i]);//在结果中添加权值
                    zero=false;
                }
            }
            return sb.toString();
        }
    
        /**
         * 格式化小数部分
         * 
         * @param decimal 小数部分
         * @param numArray 数字大小写数组
         * @return
         */
        private static String formatFractionalPart(String decimal,String[] numArray) {
            char[] val = String.valueOf(decimal).toCharArray();
            int len = val.length;
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < len; i++) {
                int n = Integer.valueOf(val[i] + "");
                sb.append(numArray[n]);
            }
            return sb.toString();
        }
    

    拆分整数和小数的方法在这里:

        /**
         * 获取整数部分
         * 
         * @param num
         * @return
         */
        private static String getInt(String num){
            //检查格式
            checkNum(num);
    
            char[] val = String.valueOf(num).toCharArray();
            StringBuffer sb = new StringBuffer();
            int t , s = 0;
            for (int i = 0; i < val.length; i++) {
                if(val[i]=='.') {
                    break;
                }
                t = Integer.parseInt(val[i]+"",16);
                if(s+t==0){
                    continue;
                }
                sb.append(t);
                s+=t;
            }
            return (sb.length()==0? "0":sb.toString());
        }
    
        /**
         * 获取小数部分
         * 
         * @param num
         * @return
         */
        private static String getFraction(String num){
            int i = num.lastIndexOf(".");
            if(num.indexOf(".") != i){
                throw new RuntimeException("数字格式不正确,最多只能有一位小数点!");
            }
            String fraction =""; 
            if(i>=0){
                fraction = getInt(new StringBuffer(num).reverse().toString());
                if(fraction.equals("0")){
                    return "";
                }
            }
            return new StringBuffer(fraction).reverse().toString();
        }
    
        /**
         * 检查数字格式
         * 
         * @param num
         */
        private static void checkNum(String num) {
            if(num.indexOf(".") != num.lastIndexOf(".")){
                throw new RuntimeException("数字["+num+"]格式不正确!");
            }
            if(num.indexOf("-") != num.lastIndexOf("-") || num.lastIndexOf("-")>0){
                throw new RuntimeException("数字["+num+"]格式不正确!");
            }
            if(num.indexOf("+") != num.lastIndexOf("+")){
                throw new RuntimeException("数字["+num+"]格式不正确!");
            }
            if(num.indexOf("+") != num.lastIndexOf("+")){
                throw new RuntimeException("数字["+num+"]格式不正确!");
            }
            if(num.replaceAll("[\\d|\\.|\\-|\\+]", "").length()>0){
                throw new RuntimeException("数字["+num+"]格式不正确!");
            }
        }
    

    通过这种分而治之的思路,处理起来就简单多了。写个main函数调用一下:

        public static void main(String[] args) {
            short s = 10;
            byte b=10;
            char c='A';
            Object[] nums = {s, b, c, 0, 1001, 100100001L, 21., 205.23F, 205.23D, "01000010", "1000000100105.0123", ".142", "20.00", "1..2", true};
            System.out.println("将任意数字转化为汉字(包括整数、小数以及各种类型的数字)");
            System.out.println("--------------------------------------------");
            for(Object num :nums){
                try{
                    System.out.print("["+num.getClass().getSimpleName()+"]"+num);
                    for(int i=0;i<25-String.valueOf(num+num.getClass().getSimpleName()).length();i+=4){
                        System.out.print("\t");
                    }
                    //调用转化为小写和大写
                    System.out.print(" format:"+toChineseLower(num));
                    System.out.println("【"+toChineseUpper(num)+"】");
                }catch(Exception e){
                    System.out.println(" 错误信息:"+e.getMessage());
                }
            }
        }
    


    看看结果吧:

     

    从上述代码和运行结果中,我们可以看到该功能支持多种数据类型的转换、支持转化为一般汉字和财务专用大写汉字。还可以智能处理非正常逻辑的数字。比如“20”会转化为“二十”而非“二十零”;“1 0000 0001” 转换成“一亿零一”而非“一亿零万零一”。

    工具类包代码已分享到github上:https://github.com/Arronlong/commonutils

    当前工具类代码(可能博文中的代码略有出入):https://github.com/Arronlong/commonutils/blob/master/src/main/java/com/arronlong/common/util/num/NumUtils.java

    这里只分享了一个转换汉字的功能,下篇将分享一下大数相乘、相加、相减的方法。支持小数和负数的运算,敬请期待。

     

     

     

    展开全文
  • 数字图像处理--显著目标检测思路

    千次阅读 2016-06-16 21:56:19
    1、显著目标检测介绍显著性检测最近几年成了研究热点,计算机视觉三大会议(ICCV, CVPR, ECCV)上的文章数量就可以看出,大概每届会议都有10来篇的样子,一个这么小的topic,10来篇数量已经很多了。如果你...

    http://blog.csdn.net/jxlijunhao/article/details/12912895
    1、显著目标检测介绍

    显著性检测最近几年成了研究热点,从计算机视觉三大会议(ICCV, CVPR, ECCV)上的文章数量就可以看出,大概每届会议都有10来篇的样子,一个这么小的topic,10来篇数量已经很多了。如果你看一看这些文章就会发现,显著目标检测的占了大部分,眼动点预测的很少,大概就一两篇。看到这,有些人也许还不明白显著目标检测和眼动点预测区别。其实,显著目标检测就类似于一个二值分割问题,只不过加了显著这个条件约束;而眼动点预测则是提取出人眼感兴趣的一些点,而不是提取出显著的整个目标区域,也就是说有些像素哪怕是在显著目标上,它也可能不吸引人的眼球。那么为什么显著目标检测文章最近几年这么多呢?究其原因,我个人认为首要就是这个topic简单,不需要太深的数学理论,而且不需要生理方面的研究基础(眼动点预测更侧重人脑的生理方面),容易出文章,谁都可以搞一搞;然后,显著目标检测的应用在计算机视觉上更直接一些,包括图像分割,也就是saliency作为prior,来指导segmentation,来实现unsupervised segmentation。然后,就是图像分类了,可以利用saliency来提高feature的discrimination,如利用saliency来指导sparse code等等吧;最后,就是大牛们itti和borji等的持续push,写了很多的benchmark文章,当然更多是在眼动点预测方面,也有ECCV12关于salient object detection的benchmark。现在的要发个top,最好要和ECCV12 benchmark上的top ranked算法在提到的几个database上比较一下。不过,一个topic持续的发热一段时间以后,很多人发现,显著目标检测也越来越难做了,没有idea了,能想到的,都被用了。那么,我接下来就来讲一讲怎样继续做显著目标检测的研究。

    2、显著目标检测的研究思路

    第一,借鉴其他相关问题的解决思路来做saliency

    我先来介绍一下和salient object detection最相关的两个问题:

    1、Segmentation
    – Figure/ground segmentation or matting
    – Image segmentation or clustering
    – Semantic segmentation or image parsing

    2、Object detection and recognition
    – Class-independent object detection and recognition
    – Class-specific object detection and recognition

    接下来,我就举一些例子,来说明怎样从这些相关领域来得到启发

    第一个例子就是MSRA的yichen wei等ECCV12 Geodesic saliency,这篇文章的主要是利用boundary prior和测地距离来进行显著性检测。而相似的思路也应用于segmentation中,如Geodesic Graph Cut for Interactive Image Segmentation, CVPR 10,就是利用和人为标记的一些先验区域的测地距离,来衡量像素属于目标或者背景可能性,当我们把人为标定的先验区域,用boundary prior替代,就可以实现bottom-up的saliency detection了。而boundary prior在Constrained Parametric Min-Cuts for Automatic Object Segmentation, CVPR 10,也已用到,就是利用boundary prior来指导分割的。

    第二个例子就是CVPR13的Salient Object Detection: A Discriminative Regional Feature Integration Approach。相似的思路,也在Constrained Parametric Min-Cuts for Automatic Object Segmentation, CVPR 10中,用来进行segmentation。不同的是一个处理的是region,一个是binary segment。处理region的好处,就是可以加上center-surround等各种saliency的机制。

    第三个例子CVPR13的 Saliency aggregation。文章主要是利用local learning的思想,就是说类内差异性,导致一个针对整幅图像库的model不可能对每个图像都好,所以他就对每个图像训练了一个local model。相似的思路,在Object recognition有很多,如Extracting Foreground Masks towards Object Recognition, ICCV 11. 另外, CVPR13 Looking beyond image saliency, 也采用了类似的idea。

    第二,利用一些新的技术来进行显著性检测

    我们可以借用machine learning方面一些技术,比如说,sparse code,pca,manifold learning,ranking,graph model等来做saliency。这些idea容易搞,就是把一些技术应用到saliency上来。举几个例子,CVPR13的 manifold ranking saliency, pca saliency等,ICCV13 的 Contextual Hypergraph Modelling for Salient Object Detection 等。

    3、以后研究思路

    我觉得以后的salient object detection可以沿着几个思路做一些。
    第一,可以在速度方面做一些工作,毕竟salient object detection 自己几乎没啥用,就是做一些高级应用的pre-processing。

    第二,可以做一些sparse code的saliency研究,貌似sparse code在很多方面都要火一阵,比如classification,tracking,super-resolution, denoise等等,是不是在saliency也要火一阵,貌似sparse code的效果还不太好。ICCV13 huchuan lu有一篇 sparse code,效果还不错。

    第三,多用一些prior来做saliency。比如可以利用inter-image or out-image等的prior来把saliency这个ill-posed问题转化为well-posed。这是个很好的方向,比如我们可以学习统计的prior或者发现新的prior,相关的思路在segmentation也有了,比如CVPR 13Robust Region Grouping via Internal Patch Statistics 和 ACM MM10 的 Image segmentation with patch-pair density priors。

    展开全文
  • 在第一份工作结束的时候,还是个java小白,找工作的时候去面试,碰到一个算法题:十个数字中选取八个数字排列,重复算一个,一共有多少种可能?当时想了半天也没想出来,虽然是数学上的排列组合算法,但是还是想...
  • 1. 为什么说企业数字化转型需要进行微服务架构升级 主要描述传统企业IT应用受互联网冲击的大背景,引出传统企业转系需要在架构上向互联网企业学习。 2. 传统企业实施微服务架构的难点是什么:历史包袱太重 传统...
  • 上篇分享了一下数字转汉字的小功能,这里再分享一下大数相乘、相加、相减的功能。其他的不做过多的铺垫了,我先讲一下各个功能的计算原理。   Ⅰ. 乘法运算 为什么先说乘法运算——因为我先做了乘法运算。其实...
  • android数字签证及发布版本准备工作

    千次阅读 2013-04-16 17:12:26
    怎么说好呢,开发时候没在意这些,现在需要发布版本了,开始满哪找如何做数字签证及使用android zipalign工具优化apk文件。 首先发布版本第一点要做的就是要生成带数字签证的apk文件。用eclipse很快很简单,但是要...
  • HBase数据模型和表设计思路

    万次阅读 2018-12-05 07:48:13
    最近在网上找到一篇描述HBase的设计思路和使用要点的文章,觉得还不错,主要是基于HBase官网推荐的一篇博客,仔细阅读了这一片博客之后,总结一下关于HBase的数据模型和表设计思路。 官方推荐的博客原文地址:...
  • “编程之美”的电话号码对应的英文单词那章时,想起了大学的时候有时候会收到数字短信如“43 43”,其实翻译成汉字就是“呵呵”的意思,但你得凭借着你的大脑去分析,所以我花了点时间写了个小程序,完成了“43 43”...
  • 广义地讲,数字相关器件就是完成两路信号之间的相关运算。该技术应用于帧同步字检测、扩频接收机、误码矫正、模式匹配等领域。但就数字相关器本身实现的功能而言,具有更为广泛、通用的应用,如在“基于可编程逻辑...
  • 摘要:数字化转型的本质是:在 “数据+算法” 定义的世界中,以智能数据服务的流动,化解复杂系统的不确定性,优化资源配置效率,构建企业新型竞争优势。我们要换一个视角,我们一种静态思维、机...
  • 数字水印简介

    千次阅读 2011-06-09 10:57:00
    数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改。...
  • 初学机器学习,第一步是做一个简单的手写数字识别,我选用的是MNIST数据集(用其他数据集也可以,原理都差不多),算法是KNN(下载库直接调用函数,算法的具体实现没有过多关心)。在网上也看到过MNIST数据集的...
  • X509V3数字证书介绍

    千次阅读 2019-08-25 22:42:32
    目录参考目的约定文章思路脑图数字证书基础定义用途工作原理数字签名摘要算法基础非对称密钥基础组成数字签名示例数字签名部分数字证书部分文件编码格式如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片...
  • [总结]PPT高手的思路

    千次阅读 2007-11-14 21:58:00
    思路!做PPT最需要的就是思路。自认做PPT我已经是很高很高的高手了(自恋中...),做了8、9年,技术上没有任何问题,可是每次在做新PPT之前,还是很头痛!头痛的东西很多:思路,架构,版面,色调,详略,图片等等.但感觉最有用也...
  • 前言首先要明确我们的任务。要想解数独,需要进行计算,图片格式的数字肯定是不行的,所以必须把图片上的数字转换为实实在在的数字才能进行计算。要得到实实在在的数字,...现在稍微简化一下工作,不再倾斜的数独图
  • 实战四:手把手教你实现数字识别

    千次阅读 2019-04-10 14:37:36
    实战四:手把手教你实现数字识别 一、KNN实现数字识别 1.原理 最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全分配时,便可以对其进行分类。但是怎么...
  • Excel输入数据过程中,经常出现在单元格中输入这样的字符串:GH0012JI、ACVB908、...如何通过使用Excel的工作表函数,提取出字符串中的数字? 一、问题分析 对于已经输入单元格中的字符串,每一个字符在字符串
  • 我们先带着大家过一遍传统机器学习算法,基本思想和用途。把问题解决思路和方法应用建议提前到这里的想法也很简单,希望能提前给大家一些小建议,对于某些容易...我们先机器学习问题本身分类的角度来,我们可以分
  • 数字水印

    千次阅读 2018-07-16 17:55:37
    数字水印(Digital Watermarking) [1] 技术是将一些标识信息(即数字水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和...
  • 2019年美赛F题翻译与思路详解

    万次阅读 多人点赞 2019-01-27 01:00:30
    2019年美赛F题翻译与思路详解 一 .翻译 题F:通用,分散,数字货币:有可能吗? ​ 数字货币可以像传统货币一样用于买卖商品,除了它是数字货币并且没有物理代表。数 字货币使其用户能够即时进行交易,而无需担心...
  • 从数字孪生的定义可以看出,数字孪生具有以下几个典型特点: 1、互操作性 :数字孪生中的物理对象和数字空间能够双向映射、动态交互和实时连接,因此数字孪生具备以多样的数字模型映射物理实体的能力,具有能够在...
  • 数据分析思路

    万次阅读 多人点赞 2018-09-14 16:08:06
    而大部分我们所购买的书基本都是某一类工具如何使用去进行数据分析,但是完过后还是不太懂什么是数据分析,应用到实际工作场景中照样很迷茫不知道该如何下手,这是什么原因呢?有的小伙伴会说:我想分析的根本没有...
  • 基于DLNA实现投屏的思路梳理

    千次阅读 2019-08-29 14:30:26
    基于DLNA实现投屏的思路梳理(依赖开源库cling) 简介 DLAN(Digital Living Network Alliance),数字生活网络联盟。DLNA并不是创造技术,而 是形成一种解决方案,一种大家可以遵守的规范。其中选择的技术和协议...
  • 守护进程的角度Docker Compose Docker的解决方案 思路 代码 结果 起源 Docker Compose提供了一个depends_on参数。 https://docs.docker.com/compose/compose-file/#depends_on ...
  • 全渠道零售中台与数字化转型(1)-中台的前世今身

    千次阅读 多人点赞 2019-06-25 15:37:59
    国内唯一一部业务场景到技术设计,企业战略考虑到技术细节落地的大全; 全文贯穿了企业架构、SOA、微服务,纵横业务与技术之间説透“全渠道”中台; 全渠道零售中台与数字化转型(1)-中台的前世今身 全渠道...
  • 数字电子时钟

    千次阅读 多人点赞 2020-05-07 19:05:07
    数字时钟是一种用数字电路技术实现时、分...数字原理上讲的是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字时钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。本课程设计通过...
  • “2018得见的未来”系列报道现在继续。本期重磅推出由云报和行业知名专家张礼立博士共同推出的“2018数字化医疗发展三⼤看点”。本系列报道将邀请内业的重量级厂商、专家、大咖,一起畅想2018年IT领域的大事小情、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,554
精华内容 50,221
关键字:

从数字看工作思路