精华内容
下载资源
问答
  • 志伟 祖籍江苏,1991年毕业于中央工艺美术学院(现为清华大学美术学院),少年时期拜江苏画家顾连村先生为师学习国画,中学时期国画作品《荷趣园》在日本:日本青少年书画大赛“获一等奖。1987年考入中央工艺美术...

     

     

    傅志伟 祖籍江苏,1991年毕业于中央工艺美术学院(现为清华大学美术学院),少年时期拜江苏画家顾连村先生为师学习国画,中学时期国画作品《荷趣园》在日本:日本青少年书画大赛“获一等奖。1987年考入中央工艺美术学院,师承吴冠中先生。
      大学时期作品《原古火与梦》入选”1987年香港中国艺术大展“,1990年作品《门口》在”日本现代美术兴构成大奖赛“获得金奖。2000年赴新加坡学习,主攻西画。2007年赴云南少数民族地区写生会在丽江设立工作室进行油画创作。
     
      现为南京市国际文化艺术交流中心特邀画家;南京徐悲鸿艺术研究中心理事。作品被文化部主管的《艺术市场》杂志等多家媒体刊登、报道,并被《艺术市场》杂志及读者评选为”2008年度当代极具市场潜力的画家“之一。

     

    展开全文
  • 快速立叶变换算法

    2014-03-17 15:29:00
    快速立叶变换算法
  • GSL 学习笔记(快速立叶变换)

    千次阅读 2014-11-08 21:14:58
    GSL 学习笔记(快速立叶变换) GNU Scientific Library (GSL)是一个开源的科学计算的函数库,里面实现了大量的数学函数,还提供了方程求解、立叶变换等多种功能。 GSL 中FFT 的定义如下, 正变换(forward...

    GSL 学习笔记(快速傅立叶变换)

    GNU Scientific Library (GSL)是一个开源的科学计算的函数库,里面实现了大量的数学函数,还提供了方程求解、傅立叶变换等多种功能。

    GSL FFT 的定义如下,

    正变换(forward):

    逆变换(inverse):

    还有一个叫做反向变换:

    反变换(backward):

    复数FFT,长度为2^N

    这是最简单的一种。C89标准中没有定义复数类型,不过gsl 倒是给了个gsl_complex 类型。我们可以使用这个类型,或者直接实部虚部交替着放置。

    下面是三个计算函数,都是在原位进行FFT计算,也就是计算结果仍然在 data 所指向的数据区。

    int gsl_fft_complex_radix2_forward (gsl complex packed array data, size t stride, size t n)
    int gsl_fft_complex_radix2_backward (gsl complex packed array data, size t stride, size t n)
    int gsl_fft_complex_radix2_inverse (gsl complex packed array data, size t stride, size t n)

    还有一个既可以算正变换,也可以算逆变换。用法也很简单。

    int gsl_fft_complex_radix2_transform (gsl complex packed array data, size t stride, size t n, gsl fft direction sign)

    因为用法非常简单,就不多说了,下面是个简单的算例。

    #include <stdio.h>
    #include <math.h>
    #include <gsl/gsl_errno.h>
    #include <gsl/gsl_fft_complex.h>
    
    #define REAL(z,i) ((z)[2*(i)])
    #define IMAG(z,i) ((z)[2*(i)+1])
    
    int
    main (void)
    {
        int i;
        double data[2*128];
    
        for (i = 0; i < 128; i++)
        {
            REAL(data,i) = 0.0;
            IMAG(data,i) = 0.0;
        }
    
        REAL(data,0) = 1.0;
    
        for (i = 1; i <= 10; i++)
        {
            REAL(data,i) = REAL(data,128-i) = 1.0;
        }
    
        for (i = 0; i < 128; i++)
        {
            printf ("%d %e %e\n", i,
                    REAL(data,i), IMAG(data,i));
        }
        printf ("\n");
    
        gsl_fft_complex_radix2_forward (data, 1, 128);
    
        for (i = 0; i < 128; i++)
        {
            printf ("%d %e %e\n", i,
                    REAL(data,i)/sqrt(128),
                    IMAG(data,i)/sqrt(128));
        }
    
        return 0;
    }
    

    复数FFT,任意长度

    用法也很简单。比如我们要计算N点的FFT。首先要先生成一个 wavetable

    gsl_fft_complex_wavetable *wavetable = gsl_fft_complex_wavetable_alloc (N);

    然后还要分配workspace

    gsl_fft_complex_workspace * workspace = gsl_fft_complex_workspace_alloc (N);

    之后就可以具体的计算工作了。计算的结果还是原位存放。

    gsl_fft_complex_forward (data, stride, N, wavetable, workspace );
    gsl_fft_complex_transform (data, stride, N, wavetable, workspace, sign);
    gsl_fft_complex_backward  (data, stride, N, wavetable, workspace );
    gsl_fft_complex_inverse  (data, stride, N, wavetable, workspace );

    算完之后记得释放分配的空间。

    gsl_fft_complex_workspace_free (workspace);
    gsl_fft_complex_wavetable_free (wavetable);
     

    下面还是一个简单的例子:

    #include <stdio.h>
    #include <math.h>
    #include <gsl/gsl_errno.h>
    #include <gsl/gsl_fft_complex.h>
    
    #define REAL(z,i) ((z)[2*(i)])
    #define IMAG(z,i) ((z)[2*(i)+1])
    
    int main (void)
    {
        int i;
        const int n = 630;
        double data[2*n];
        gsl_fft_complex_wavetable * wavetable;
        gsl_fft_complex_workspace * workspace;
    
        for (i = 0; i < n; i++)
        {
            REAL(data,i) = 0.0;
            IMAG(data,i) = 0.0;
        }
        data[0] = 1.0;
    
        for (i = 1; i <= 10; i++)
        {
            REAL(data,i) = REAL(data,n-i) = 1.0;
        }
    
        for (i = 0; i < n; i++)
        {
            printf ("%d: %e %e\n", i, REAL(data,i), IMAG(data,i));
        }
        printf ("\n");
    
        wavetable = gsl_fft_complex_wavetable_alloc (n);
        workspace = gsl_fft_complex_workspace_alloc (n);
    
        for (i = 0; i < wavetable->nf; i++)
        {
            printf ("# factor %d: %d\n", i,
                    wavetable->factor[i]);
        }
        gsl_fft_complex_forward (data, 1, n, wavetable, workspace);
        for (i = 0; i < n; i++)
        {
            printf ("%d: %e %e\n", i, REAL(data,i), IMAG(data,i));
        }
    
        gsl_fft_complex_wavetable_free (wavetable);
        gsl_fft_complex_workspace_free (workspace);
        return 0;
    
    }
    

    实数FFT,长度为2^M

    长度为2^M的实数向量的FFT得到是长度为2^M的共轭对称复数向量。由于是共轭对称的,因此理论上只需要2^M 个存储空间就可以存下。 所谓共轭对称指的是:

    所以变换后,N元素只要知道前 N/2个元素的值就可以得到后面N/2个元素的值。

     

    GSL 中采用的存储方式如下:

    设数组长度为N,变换后,数据按照如下方式存放。

     

    位置

    输出数据

    0

    complex[0].real

    1

    complex[1].real

    2

    complex[2].real

    ...

    ...

    N/2

    complex[N/2].real

    N/2+1

    -complex[N/2+1].imag

    ...

    ...

    N-2

    -complex[N-2].imag

    N-1

    -complex[N-1].imag

     

    反变换时数据必须也按照这种方式存放。

    int gsl_fft_real_radix2_transform (double data[], size_t stride, size_t n)
    int gsl_fft_halfcomplex_radix2_inverse (double data[], size_t stride, size_t n)
    int gsl_fft_halfcomplex_radix2_backward (double data[], size_t stride, size_t n)

    实数FFT,任意长度

    当数据长度为任意长度时,GSL 库采用另外一种方式存储变换后的结果。这种存储方式与Paul Swarztrauber编写的fftpack 相同。

    N为偶数时,

    complex[0].img = 0

    complex[N/2].img = 0

     

    还是用个表格来说明:

    位置

    输出数据

    0

    complex[0].real

    1

    complex[1].real

    2

    complex[1].imag

    3

    complex[2].real

    4

    complex[2].imag

    ...

    ...

    N-2

    complex[N/2-1].real

    N-1

    complex[N/2-1].imag

     

    N为奇数时,complex[0].img = 0

    位置

    输出数据

    0

    complex[0].real

    1

    complex[1].real

    2

    complex[1].imag

    3

    complex[2].real

    4

    complex[2].imag

    ...

    ...

    N-3

    complex[(N-1)/2].real

    N-2

    complex[(N-1)/2].imag

    N-1

    complex[(N+1)/2].real

     

    上面的表格还是挺复杂的,GSL 还提供了两个辅助函数,帮我们转换数据格式。

    int gsl_fft_real_unpack (const double real_coefficient[], gsl_complex_packed_array complex_coefficient[], size_t stride, size_t n)

    这个函数可以把实数数组转换为复数数组。之后就可以用复数fft 函数来计算了。

    int gsl_fft_halfcomplex_unpack (const double halfcomplex_coefficient[], gsl_complex_packed_array complex_coefficient, size_t stride, size_t n)

    这个函数可以把 gsl_fft_real_transform 函数计算出的 half-complex 数组扩充为正常的复数数组。

    不过GSL 没有提供将 gsl_fft_real_radix2_transform 计算结果展开的函数。如果需要,只能自己实现。

     

    具体计算时与复数的fft 类似,正变换时按如下的顺序调用。

    gsl_fft_real_wavetable * gsl_fft_real_wavetable_alloc (size_t n);
    gsl_fft_real_workspace * gsl_fft_real_workspace_alloc (size_t n);
    
    int gsl_fft_real_transform (double data[], size_t stride, size_t n, const gsl_fft_real_wavetable * wavetable, gsl_fft_real_workspace * work);
    
    void gsl_fft_real_workspace_free (gsl_fft_real_workspace * workspace);
    gsl_fft_real_wavetable_free (gsl_fft_real_wavetable * wavetable);

    逆变换时按如下的顺序调用。

    gsl_fft_halfcomplex_wavetable * gsl_fft_halfcomplex_wavetable_alloc (size_t n);
    gsl_fft_real_workspace * gsl_fft_real_workspace_alloc (size_t n);
    
    int gsl_fft_halfcomplex_transform (double data[], size_t stride, size_t n, const gsl_fft_halfcomplex_wavetable * wavetable, gsl_fft_real_workspace * work);
    
    void gsl_fft_real_workspace_free (gsl_fft_real_workspace * workspace);
    gsl_fft_halfcomplex_wavetable_free (gsl_fft_halfcomplex_wavetable * wavetable);


    展开全文
  • 立叶变换 学习笔记

    2018-08-02 12:14:57
    立叶变换的重要性不用我说,想必大家也很清楚,有了立叶变换,我们就可以从信号的频域特征去分析信号。尤其在无线通信系统中,傅里叶变换的重要性就更加明显了,无论是设计者还是测试工程师,在工作中都会和立...

     

    转自:http://www.beamsky.com/fft-c-language/

    傅立叶变换的重要性不用我说,想必大家也很清楚,有了傅立叶变换,我们就可以从信号的频域特征去分析信号。尤其在无线通信系统中,傅里叶变换的重要性就更加明显了,无论是设计者还是测试工程师,在工作中都会和傅立叶变换打交道。在以下的文章中,我给出一种傅里叶变换的C语言实现方法(参考了C常用算法集),可以用于在嵌入式系统中实现傅立叶变换。

    傅里叶变换

    常规的傅立叶变换算法并不适用于嵌入式控制系统,原因是运算量太大(涉及到复数运算),比如离散的傅立叶变换等同于用序列Y(n×1列矢量)乘以n×n 矩阵Fn,需要n×n次乘法。若n=1024,则是104,8576次乘法运算。哇,这么多呀!什么概念呢?如果你选用的CPU单周期指令为25ns, 单周期也可以完成一次乘法运算,那么要计算1024点的傅立叶变换则需要26.2144ms,这还不包括加法或其它运算,对于大多数实时系统,这个处理时间实在太长。于是寻找一个快速的傅立叶变换算法是人们所期望的。

    本来我想把FFT的整个数学推导过程列完出来,但当自己硬着头皮看完后,发现对我没有任何用处,我又不是专门研究数学算法的,哪有那么多时间跟着书本的公式去慢慢推导。我想,这些推导问题还是让数学家想去吧。我需要的不过是理解它,然后学会应用它就行。有兴趣的读者可以参考相关的资料,这方面的资料实在太多了。

    虽然FFT大幅度地降低了常规傅立叶变换的运算量,但对于一般的单片机而言,处理FFT运算还是力不从心。主要原因是FFT计算过程中的蝶形运算是复数运算,要分开实部和虚部分别计算,想想这是多么繁琐的事情。可能会有些初学者认为,有这么复杂吗?我在PC上使用C++一样可以对复数直接进行加、减、乘、除运算。你说得不错,可以这么做,但那是C++封装了对复数处理的类,直接调用就行。在PC上运算这种类型的算法一般不考虑时间和空间,多一两秒的运行时间不会有什么灾难性的结果。

    所以我们要衡量一个处理器有没有足够的能力来运行FFT算法,根据以上的简单介绍可以得出以下两点:

    1. 处理器要在一个指令周期能完成乘和累加的工作,因为复数运算要多次查表相乘才能实现。
    2. 间接寻址,可以实现增/减1个变址量,方便各种查表方法。FFT要对原始序列进行反序排列,处理器要有反序间接寻址的能力。

    所以,在数字信号的分析处理应用中,DSP比其它的处理器有绝对的优势,因为DSP完全具备以上条件。这就是单片机(51系列,AVR,PIC等等)或ARM处理器很少用来进行数字信号分析的原因。

    重点来了,下面的这段程序就是用C语言实现傅里叶变换

     //**********************************************************
                              // 函数名: 快速傅立叶变换(来源《C常用算法集》)
                              // 本函数测试OK,可以在TC2.0,VC++6.0,Keil C51测试通过。
                              // 如果你的MCS51系统有足够的RAM时,可以验证一下用单片机处理FFT有多么的慢。
                              //
                              // 入口参数:
                              // l: l = 0, 傅立叶变换; l = 1, 逆傅立叶变换
                              // il: il = 0,不计算傅立叶变换或逆变换模和幅角;il = 1,计算模和幅角
                              // n: 输入的点数,为偶数,一般为32,64,128,…,1024等
                              // k: 满足n=2^k(k>0),实质上k是n个采样数据可以分解为偶次幂和奇次幂的次数
                              // pr[]: l=0时,存放N点采样数据的实部
                              // l=1时, 存放傅立叶变换的N个实部
                              // pi[]: l=0时,存放N点采样数据的虚部
                              // l=1时, 存放傅立叶变换的N个虚部
    
                              // 出口参数:
                              // fr[]: l=0, 返回傅立叶变换的实部
                              // l=1, 返回逆傅立叶变换的实部
                              // fi[]: l=0, 返回傅立叶变换的虚部
                              // l=1, 返回逆傅立叶变换的虚部
                              // pr[]: il = 1,i = 0 时,返回傅立叶变换的模
                              // il = 1,i = 1 时,返回逆傅立叶变换的模
                              // pi[]: il = 1,i = 0 时,返回傅立叶变换的辐角
                              // il = 1,i = 1 时,返回逆傅立叶变换的辐角
    
                              void kkfft(double pr[], double pi[], int n, int k,
                            double fr[], double fi[], int l, int il)
                              {
                               int it,m,is,i,j,nv,l0;
                               double p,q,s,vr,vi,poddr,poddi;
                              
                               for (it=0; it<=n-1; it++)
                               {
                               m = it;
                               is = 0;
                               for(i=0; i<=k-1; i++)
                               {
                               j = m/2;
                               is = 2*is+(m-2*j);
                               m = j;
                               }
                               fr[it] = pr[is];
                               fi[it] = pi[is];
                               }
                              //—————————-
                               pr[0] = 1.0;
                               pi[0] = 0.0;
                               p = 6.283185306/(1.0*n);
                               pr[1] = cos(p);
                               pi[1] = -sin(p);
                              
                               if (l!=0)
                               pi[1]=-pi[1];
                              
                               for (i=2; i<=n-1; i++)
                               {
                               p = pr[i-1]*pr[1];
                               q = pi[i-1]*pi[1];
                               s = (pr[i-1]+pi[i-1])*(pr[1]+pi[1]);
                               pr[i] = p-q;
                               pi[i] = s-p-q;
                               }
                              
                               for (it=0; it<=n-2; it=it+2)
                               {
                               vr = fr[it];
                               vi = fi[it];
                               fr[it] = vr+fr[it+1];
                               fi[it] = vi+fi[it+1];
                               fr[it+1] = vr-fr[it+1];
                               fi[it+1] = vi-fi[it+1];
                               }
                               m = n/2;
                               nv = 2;
                              
                               for (l0=k-2; l0>=0; l0–)
                               {
                               m = m/2;
                               nv = 2*nv;
                               for(it=0; it<=(m-1)*nv; it=it+nv)
                               for (j=0; j<=(nv/2)-1; j++)
                               {
                               p = pr[m*j]*fr[it+j+nv/2];
                               q = pi[m*j]*fi[it+j+nv/2];
                               s = pr[m*j]+pi[m*j];
                               s = s*(fr[it+j+nv/2]+fi[it+j+nv/2]);
                               poddr = p-q;
                               poddi = s-p-q;
                               fr[it+j+nv/2] = fr[it+j]-poddr;
                               fi[it+j+nv/2] = fi[it+j]-poddi;
                               fr[it+j] = fr[it+j]+poddr;
                               fi[it+j] = fi[it+j]+poddi;
                               }
                               }
                              
                               if(l!=0)
                               for(i=0; i<=n-1; i++)
                               {
                               fr[i] = fr[i]/(1.0*n);
                               fi[i] = fi[i]/(1.0*n);
                               }
                              
                               if(il!=0)
                               for(i=0; i<=n-1; i++)
                               {
                               pr[i] = sqrt(fr[i]*fr[i]+fi[i]*fi[i]);
                               if(fabs(fr[i])<0.000001*fabs(fi[i]))
                               {
                               if ((fi[i]*fr[i])>0)
                               pi[i] = 90.0;
                               else
                               pi[i] = -90.0;
                               }
                               else
                               pi[i] = atan(fi[i]/fr[i])*360.0/6.283185306;
                               }
                              return;
                              }

     

    展开全文
  • 3月29日,由东湖大数据发起、数据观作为合作媒体参与的大数据百人...运营商拥有庞大且具有绝对话语权的数据资源、数据储备,关于对数据利用的心得与经验,一平先生围绕浙江移动的平台能力、数据管理、数据能力、标...

    3月29日,由东湖大数据发起、数据观作为合作媒体参与的大数据百人会·线上沙龙第9期活动圆满结束,浙江移动大数据中心傅一平博士就《运营商大数据变现实践》主题与大家分享了数据利用的心得与经验,带来了两个多小时的精彩直播演讲。运营商拥有庞大且具有绝对话语权的数据资源、数据储备,关于对数据利用的心得与经验,傅一平先生围绕浙江移动的平台能力、数据管理、数据能力、标签能力、产品服务这5大内容深入浅出地做出描述。十足的干货、通俗易懂的表达方式,专业的视角和独到的解读吸引了3326人次在线观摩学习。以下附文字干货及完整版PPT,本次沙龙录音内容以第一人称整理。

    以下为文字干货

    1、运营商的平台能力

    2004年我进入浙江移动,3年前开始从事大数据相关的工作,推动了浙江移动大数据变现工作的开展,浙江移动在大数据变现过程中碰到了很多问题,我们在实践和探索中也总结出了一些经验,今天与大家分享一下。

    数据变现我不能直接去谈商务模式,因为商务模式依赖于我们平台、数据和标签能力。运营商的平台能力分为五横一纵,从数据采集、数据处理、数据分析、数据访问到数据应用,还有管理平台,这是一个标准架构。互联网公司的大数据平台架构可以与其作一定的映射,当前,浙江移动从这五个方面也初具雏形。

    3417eb9bbd591a4ff20735.jpeg

    浙江移动经过两期系统的建设,采用了非常多样的技术组件,底层用的是华为的BDI,中间的处理层用的是hadoop,有商用的,也有开源的版本,大家可以看到里面有3个应用集群,中间我们使用的是MPP,MPP用来做我们的报表,主要是融合、复杂以及交叉的分析,当然我们也采用了ASTER的数据挖掘库,它提供了一些现成挖掘的API,计算速度比较快,流处理的话我们使用的是IBM STREAM,海量数据处理方面很不错。往上一层我们主要是做读写分离的,有Oracle、HBASE、KV数据库,为应用层提供支撑。

    运营商如果想对外变现,它必须具备像阿里云一样方便驻户进驻的能力,它的平台能力应该是所见即可得的,浙江移动大数据平台可以在一周内实现合作伙伴的入驻并实现全方位的开放,当前外部合作伙伴已经超过30个,当然这仅仅是起步的阶段,“我方搭台、对方唱戏”的这种模式对平台来讲是必不可少的,很多公司如果没有多驻户的开通能力,变现是不大可行的。

    2、运营商的数据管理

    数据管理每个公司需要,浙江移动这些年做起来艰巨,我这里提炼了对数据管理非常核心的几点,也是在实际中碰到的:①二级互动,你的数据必须与源系统打通,源系统变动时,大数据平台所有相关的数据字典都应该变动,这能解决两张皮的问题。②因为大数据平台组件很多,你的数据管理平台必须让所有的技术组件对你开放,就比如说我们采用的华为BDI的产品,我就必须让他开放所有BDI的元数据接口,这样整个公司的数据管理体系才是一体的,否则你就断了条胳膊,你做的数据分析都无法贯通,这是大家在引入技术组件特别要注意的。③数据建模,强调数据标准化和可视化,你所有的建模都应该是基于规范的,你所有表的命名都应该有自己的规则,这样整个公司所有大家看到的数据是一致的,所有的合作伙伴都能共享标准化的数据。当然数据管理也是一种追求,你一个小公司搞一个元数据产品其实没有必要,假如公司做大了,你做数据管理成本会非常高,因此必须要通过系统化、透明化的方式来管理,不做的代价是数据知识没有积累和传承。

    3417eb9bbd591a4ff20736.jpeg

    数据管理虽然做了很多规范,但所有的规范都应该纳入系统中,这样才能保证你所有的系统数据管理规范都能在系统中落地,不然靠人去推动,基本上你的数据管理系统是会失败的。数据管理用后向模式去做不是性价比高的方式,你必须做成前向,在开发的过程中就应该把数据管理工作嵌入进去,数据管理跟每个开发、需求、测试人员息息相关,这是我们多年数据管理中深刻的体会。

    数据管理平台很难通用化,无论是通讯行业、金融行业,由于本身的垂直行业特点,你的数据管理平台必须符合你垂直行业特点,想单靠一套数据管理平台来做成每个行业是很难成功的,这是我观点。而且数据管理平台非常强调运营,它需要这个平台不停地迭代,相对而言它对定制化的要求很高,同时,我们的数据管理平台在大数据时代要适配所有的技术组件,要能屏蔽技术细节,对上提供透明化,可视化的访问和开发能力。

    浙江移动的数据是非常丰富的,它提供1600种数据类型、300个融合模型.10万个客户标签以及上百个API,运营商只有把基础设施建好了才能为我们的客户提供更快更好的数据服务。

    3、运营商的数据能力

    运营商做数据变现,它的核心差异化的竞争优势就是数据的差异化能力,离开了差异化的能力,你说运营商去做变现和互联网公司竞争也不大现实,因为我们在人才、薪酬、机制、流程各个方面处于全面的落后,还是需要利用我们差异化的能力去在市场上进行探索和竞争,这也是迫不得已。

    浙江移动拥有6000万的客户,每个月手机上网的数据是1.5万亿条,通话记录每个月是100亿次,位置轨迹每个月是1500亿条,宽带记录每个月是10万亿条,现在的集群规模是1400+,集群规模与互联网公司比有一定差距,我们也在努力。

    3417eb9bbd591a4ff20737.jpeg

    运营商最核心的数据有八个方面通信、支出、社交、上网、身份、位置、时序、终端,当然还有外部数据,以前运营商是不太重视的,比如大众点评网数据、天猫品牌、京东商城、淘宝数据等,在对外变现的时候,你会发现爬取这类数据实际上对运营商非常重要。

    我们现在通过通话数据可以把所有的社交关系认出来,父母、亲人、朋友所有的社交人脉路径都能找出来而且非常准;另外运营商的通讯机制保障了你每次通话、上网所有的终端行为都会上传运营商网络,数据质量也很好,终端市场报告由运营商来出示非常有说服力,因为所有的数据都是活的也是及时的;还有黄页数据,任何用户比如打一个电话是黄页数据的话,你就可以知道这个用户的需求,对于精准营销非常重要;当然我们运营商还有和教育的数据,比如我们想知道成绩好孩子的家长有什么样的特性,运营商可以做这样的分析报告,我们通过校园通这类行业应用产品大概能知道所有的学校、家长、教师、学生的信息,基于这些信息可以给出分析结果,未来前景巨大。

    3417eb9bbd591a4ff20738.jpeg

    运营商的数据有四个特点:完整性、连续性、多维性、整合性。完整性是指比如京东的数据、淘宝的数据实际上运营商都有,也许没有那么详细,但可以拥有任何一家的互联网公司的数据;连续性是指我们每天生活在时空中,要么在线下要么在线上,运营商所有的数据都有,比如线下你所有的位置数据运营商有,线上你所有上网数据也有,基于线上线上再加用户属性,运营商可以完整连续的刻画;多维性是指运营商拥有时间、空间和用户多种属性数据,相对可以实施降维打击,通过时空交叉验证可以把模型做的非常准;整合性的意思是运营商拥有号码、IMEI、IDFA、COOKIE几乎所有的用户ID,所有ID信息整合在一起可以实现全数据的关联,这也是运营商的巨大优势。

    至于大家非常关心的HTTPS,我不太在意,HTTPS现在呈扩大的趋势跟流量劫持有一定关系,主要还是因为互联网为了保证它自身利益,从数据的角度来讲,即使HTTP最后仅有20%可开采,对运营商也足够了来构建自己的用户画像了,况且现在很多数据还没有开采,应对HTTPS的重要程度远远低于运营商对自身数据采集解析的要求,没必要杞人忧天;另外APP协议成千上万,HTTP整个流量占比也不超过30%吧,再者运营商有巨大的资源,完全可以利用资源去换取内容知情权,比如腾讯大小王卡,给你免费定向流量,用资源换取内容知情权,再通过全内容为你提供增值服务,这个套路很多公司都在做,我们运营商要做在当下。

    3417eb9bbd591a4ff20739.jpeg

    如果搞过搜索、爬虫、自然语言看来这个天眼用户偏好检索系统就知道它想干什么,实际上百度做的就是通过输入关键词它能找到所有的信息,运营商能做的是我输入一个关键词它能找到所有相关的用户,因为百度是没有用户的,而运营商拥有所有的用户,比如我输入足球关键词,我可以把五千万用户对足球的偏好进行排序,大家可以想象未来运营商变现的空间有多大。

    运营商虽然拥有数据,但我不能说就等于抱着金矿或原油,运营商的数据开采的代价非常大,运营商现在的数据以通讯数据为主,必须要“去电信化”才能在生态中生存,否则你数据直接去卖也卖不了几个钱,还有运营商卖原始数据实际上等同“杀鸡取卵”,安全上不可取也不可持续,运营商要变现必须从建模中发现数据的价值,这也是当下变现的软肋,因为我们基础建模能力还很弱。

    4、运营商的标签

    3417eb9bbd591a4ff2073a.jpeg

    运营商正在从传统通信画像向真正的客户画像转变,在事件标签中,我们可以把家人、亲戚、工作伙伴及行业通话信息串起来,我们有所有的线下事件、线上事件、专题事件,比如前段时间的云栖大会把所有事件记录下来以便对专门的用户进行专项分析,别看云栖大会这两年很热闹,我们分析过两年的会议数据,用户连续参加两年云栖大会的比例极低。

    用户社会画像看起来与运营商的数据没多大关系,但恰恰是基于运营商的数据可以做出来,包括职业、人生阶段甚至家庭等等,都能判断出来。而位置标签无论是常驻位置、工作位置、事件出行、移动轨迹,不管是连续还是静态的都是可以抓取以作用户分析,当然有人会提这涉及到用户的隐私,我们所有的信息处理时是去隐私化的,主要是用来做特征分析,大家不用担心信息安全的问题,互联网公司其实一样,他拿着用户所有的交易信息来做特征分析,但绝不会把清单型数据透露给外面,这是我们秉承的原则。上网行为中,无论是APP的使用、网页访问、使用时间序列很有价值,以此可以判断用户的偏好,为用户更好的服务,这个互联网公司做的比较多,运营商正处在起步阶段。

    5、运营商的产品体系

    现在我们的产品体系很丰富,有客流、选址、引客、APP、反欺诈和验真,我们也有广告平台“喜从天降”、终端产品“有机密”等,同时提供大量标准化的产品,这类产品要创造效益,还有很长的路要走。

    3417eb9bbd591a4ff2073b.jpeg

    比如选址雷达,你可以根据标签选择偏好用户所在的位置,以方便商户选址;另一款叫引客雷达是你可以上传一批目标客户的号码,我通过Lookalike的方式帮你找到潜在用户在哪里;至于金融验真产品,大家不用担心用户隐私的问题,因为都是通过用户授权的,身份验证主要是通过手机、身份证和姓名进行三证合一,当然还可以做刷单行为的判断,比如滴滴刷单,你可以把司机手机号码和客户的号码交给运营商,运营商通过两个号码之间位置切换的关系来判断是不是异常。

    3417eb9bbd591a4ff2073c.jpeg

    运营商合作的几种形式:① 数据服务:比如验证,运营商提供标签,你输入用户号码,我们提供标签;这是第一种服务模式我们叫做数据云化,当然无论是模型还是标签都是一样的。这个更多的运营在验证场景,主要通过用户授权。②模型锤炼:由于现在大数据处于起步阶段,许多企业处于观望心态。浙江移动提供了模型锤炼的服务,我开放你数据服务,当然这些是去隐私的,你可以在我们平台上进行模型淬炼,如果你觉得达到要求了,我们再正式商用、收费;③产品孵化:运营商(包括浙江移动)我们的产品研发能力是有限的,不可能在各个方面都做端对端的产品,我们希望有更多的伙伴和我们合作,分成都是可以的,这一块我们也在做许多尝试。④渠道广告:比如我刚才提到的“喜从天降”,运营商有许多渠道,比如微信公众号等等,可以将运营商在数据方面的能力与各产业合作伙伴的需求结合在一起,短信等传统渠道由于政策方面的原因,还有待观望。

    3417eb9bbd591a4ff2073d.jpeg

    信息服务费指的是按次查询信息需要收取的费用,比如验证,一个号码与身份证的匹配关系,比方说每次收取一次一块钱或者两块钱,这都是通过用户授权以后,我们可以和银行合作收取的信息服务费。信息使用费是指你租用我们的数据之后,我们按照数据里面用户的量,比如每一千用户收取多少费用。设备租赁费和阿里云类似的方式。

    我们客流产品是如何收费的?它要收取功能费和增值功能费,这个产品涉及到位置,我们可以按照位置的扇区可以单独收费。这是对于相对成熟产品的收费方式。

    3417eb9bbd591a4ff2073e.jpeg

    运营商是非常负责任的国企,有自己的数据安全原则:“凡是能够直接或者间接地识别自然人的任何信息,包括身份证、手机号码、IMEI、COOKIE等,都不能对外提供”,这一点许多互联网公司是没有遵循的,他们的串号、COOKIE都是可以互相交换的,但是对运营商来讲这一点很难,因为COOKIE也是代表了用户的属性,这也是存在隐私风险的,运营商做大数据难也是难在这里,国企对于稍有模糊的地带都是不敢踩的,因此我们是非常艰难的。“不涉及个人清单信息的数据分析服务和产品服务,比如行业分析报告”,这些是可以做的,因为这些是统计类的信息。“基于用户授权的各类数据服务”这些我们也是都可以做的,不论是查询标签,还是个人身份信息。

    只有确保这些前提下,运营商才能做各类变现服务,挑战难度是相当大的,这也是在考验运营商的创新能力。

    我们对外合作的形式包括① 标准化产品模式:这一类产品业务比较诚实,产品标准化程度高,我们向第三方购买也有可能。②合作运营模式:运营商只有数据,没有任何产品、建模能力。这时我们希望与合作伙伴合作然后大家分成。③外包解决模式:这是一种比较传统的方式,通过招标给运营商提供定制服务,然后运营商自己面对最终客户。④ 应用孵化模式:运营商开放部分脱敏数据,帮助合作伙伴进行数据产品孵化。

    浙江移动为了做大数据运营变现专门成立了大数据中心、云计算中心。由这两个中心保障大数据专业化的进行服务。没有专业的人做专业的事,做大数据变现是不可能的。

    3417eb9bbd591a4ff2073f.jpeg

    那么运营商缺什么呢?①数据建模能力:运营商经营分析起家,以前的数据挖掘基本是数据外包的形式做的,但是进入大数据时代以后,对建模的能力要求越来越高,运营商非常稀缺这一类资源。②平台技术:运营商现在也在建立大数据平台,现在平台已经建立起来,但是售后服务支撑能力是非常薄弱的,因为技术组件太多了,我们在变现中发现了大量的问题,需要我们在技术方面进一步突破。③连接能力:运营商对各个行业是不熟悉的,希望有能撮合最终客户和运营商的企业,这对我们很重要。④运营能力:这里有一部分文化因素,因为许多从业人员是从运营商的体系中转过来的,在策划、运营方面缺乏经验,我们需要擅长做运营的企业与我们合作,其实我们什么都缺。

    以下为个人观点

    大数据变现对运营商的挑战巨大,首先是速度。大家都知道做大数据十有八九是会失败的,你做了这么多产品、采集了这么多数据,有多少能用,有多少能真正成功,有多少客户愿意来买单很难说。十个里面能成功一两个已经很好了,这个时候你的速度是很重要的,如果你开发一个应用要两个月甚至半年,那基本上没法跟上节奏。

    另一个是渠道,运营商如果只有数据没有渠道也很难成功,不能脱离业务去做大数据。比如说我们现在有大数据交易平台,但是现在在大数据交易平台在个人隐私没有定论的前提下是很难做的。我们在做大数据变现的时候传统渠道不能用,必须要创造新的渠道,这样才能让大数据承载在上面,大数据才能成为渠道的放大器。

    第三点是数据为王,运营商做任何产品是离不开数据的,如果做的产品与差异化的数据没有结合起来,十之八九就会失败。相对于互联网公司,你没有任何竞争力,唯一的核心竞争力就是数据。

    最后是运营,运营只有持续的迭代才有可能成功,KPI也是一种信仰,运营商原来的机制、流程比较冗长,它的迭代速度还是比较慢的。

    另外,运营商对外也是反辅主业的需要,因为运营商进入流量经营时代后,内容运营越加迫切,传统的标签体系根本无法支撑,我们在对外变现中,发现外部客户对于标签的要求是非常高的,这驱动了我们去完善自己的内容标签体系,同时,运营商通过大数据,也可以培养和挽留住一批人才,你必须给一些人一些出口,可能运营商对外短期内无法规模变现,但它也承担着更多的使命,你不去实践,永远不懂大数据到底是什么。

    大家都在找大数据的商业模式,我觉得现在商业模式已经很多了,实际上真正赚钱的大数据变现模式只有两种,一种是金融风控,一种是广告。再找到第三种已经很难了。我们现在已经尝试了一些,无论是做报告还是洞察,实际上最大规模的变现就是金融和广告。

    运营商更需要的是工匠精神,需要精益求精,在某一点上进行单点突破,而不要求泛,每一方面都做一点但每一点都没办法做透。因为无论你的数据模型能力,还是运营能力、产品能力,都存在非常大的欠缺,你不可能有精力做那么多,我们希望能创造一个生态,与各界合作共创大数据的未来,服务好我们的客户,这也是我的期望。

    Q&A

    Q:请问客流分析产品的市场需求有多大?

    A:客流分析的产品市场相当大,但它受限于定位的精度。但是如果我们能基于精准位置定位,比如说如果我们取MR的数据来做,能够做到50米到100米的精准定位,这个是非常广阔的市场,通过1-2年的时间,这个产品肯定能做出来,这个是非常有前景的,因为他可以定位到某幢楼,我对此也是非常有信心。

    Q:MR和DPS是如何连接起来?

    A:这个和运营商的数据有关系,MR相当于测量报告,我们运营商上网数据需要SE—MME有一个信令数据,这个信令数据里面就有我们的经纬度数据,它里面的ID里面有一个标识,这个标识可以和MR里的标识结合起来,这个时候你就可以得到一个关联。

    Q:目前浙江移动在大数据广告方面有开展业务吗?

    A:广告这一块,我们之前有做过,但是由于安全的原因这一块儿暂停了,运营商的数据有它的特殊性,比如手机阅读这一块儿,我们移动有个咪咕阅读,我们每个月可以帮他新增5万的手机阅读用户。通过DPI数据是很方便找到他的竞争对手用户。



    本文出处:畅享网
    本文来自云栖社区合作伙伴畅享网,了解相关信息可以关注vsharing.com网站。

    展开全文
  • 据了解,早在2008年任方太柏厨总经理时占杰先生就倡导集成体验式营销模式。在他看来,真正意义上的体验营销就是通过看(See)、听(Hear)、用(Use)、参与(Participate)的元素,充分刺激和调动消费者的感官(Sen
  • 原文地址:为什么要进行立叶变换,究竟有何意义?如何用MATLAB实现快速立叶变换?作者:0方天华戟0   纪念让·巴普蒂斯·约瑟夫·立叶!!!公元1768年的今天,法国著名数学家、物理学家让·巴普蒂斯·约瑟夫...
  • 文|永康 编辑|陈紫菲 ...创业之初,永康先生将这一承载他职业理想和使命的专业项目管理培训机构命名为“清晖”,取义“山水之灵气,日月之光辉”。十多年来,清晖正如其名,虽几经起伏,但一直坚持致力...
  • 陪同前往的还有香港特区政府投资推广署助理署长邓智良先生、投资推广总监杨翠萍女士、投资推广主任麦施丹女士及投资推广高级经理沈思峰先生等人。 仲森一行在小i机器人创始人、CEO朱频频博士等人的陪同下参观了小...
  • 立叶变换,时域,频域一

    万次阅读 2013-08-31 22:04:56
    "立叶变换的数学再认识"及若干网上博客。   目录 信号分析方法概述  时域  频域  时域与频域的互相转换  立叶变换 原理   立叶变换 分类   立叶级数的五个公式(周期性函数)   立叶积分(非周期...
  • 儿时唐院记忆点滴文/小美 最近在与校子弟的接触中大家不约而同地谈到了唐院校园环境对我们人生的深远影响,勾起了我对童年唐院时光的回忆。  1、启智开蒙 我们这群人大多数都是从位于南操场边的幼儿园走出来的...
  • 这是一平的第333篇原创【与数据同行】已开通综合、数据仓库、数据分析、产品经理、数据治理及机器学习六大专业群,加微信号frank61822702为好友后入群。新开招聘交流群,请关注【...
  • 中国国家图书馆所藏宋刊《集注东坡先生诗前集》前三卷包括十位注者,是苏诗十注本的残余。十注本后来发展为《王状元集百家注分类东坡先生诗》(类注本)。通过两个注本的对照,赵次公、程编、李厚、宋援、林子仁、赵夔、...
  • 照片上最左边是潘蔋先生,也是我的博士生导师,第二位很高大的是Simon,第三位是杭州大学的陈立先生,第四位是荆其诚先生,也是我的博士生导师,最右边的是心理所后来做了所长的徐联仓先生。这是非常珍贵的照片,...
  • 这是一平的第342篇原创【与数据同行】已开通综合、数据仓库、数据分析、产品经理、数据治理及机器学习六大专业群,加微信号frank61822702为好友后入群。新开招聘交流群,请关注【...
  • torchkbnufft在PyTorch中使用Kaiser-Bessel网格实现了非均匀的快速立叶变换[ ]。 该实现完全是在Python中进行的,从而便于在无需编译的情况下以可读代码的灵活部署。 NUFFT函数每个都包装为torch.autograd....
  • 本文转载自“热心肠先生”,已获授权2018年5月,Protein & Cell杂志特别为中国肠道大会推出了主题为“Microbiota and Human Health”的专刊...
  • 这九年中,丁小平先生一直通过发表论文和讲学等方式揭示现行微积分原理的错误,同时,讲授他的新微积分原理,到目前为止,不了解他的学术结论的数学家已经寥寥无几,但公开支持他学术结论的不多,试图驳倒他的一个都...
  • 朋友圈被携程在手说走走不了的帖子刷了屏该作者在携程预订了北京到札幌的机票在显示已出票的情况下到机场后竟查无此票无独有偶携程用户傅先生发微博称订了两张往返日本的机票1月7日在东京羽田机场值机时两次被质疑...
  • 那么我们如何去解决这个问题,有人肯定想到了先生成一定格式的XML文件,然后转成Excel,因为XML文件是纯文本文件,相对于直接生成Excel文件,文件大小上肯定是小了一点,但是这个也不是最终的解决办法,因为我们无法...
  • 编者按:叶企孙(1898~1977)先生,中科院院士、我国杰出的物理学家、教育家和我国近代物理学最主要奠基人之一。其诞辰120周年纪念日,我们节选叶企孙的侄子——中国工程...
  • 首先是让原声音信号通过一个乘法器,与Cos(wt)相乘,从电台发送出去,在接收端通过一个低通滤波器,将原信号过滤出来,如果你单纯就考虑频域图分析那更容易...举个简单的例子:一个简单的声音 A*cos(w0*t),它的立叶变
  • 粤港澳大湾区区块链联盟副理事长、广州市区块链创业协会副理事长、中国国际经济技术合作促进会区块链技术与应用工作委员会执行秘书长明在链塔大会上透露,粤港澳大湾区将打造区块链...
  • ocr图片识别怎么做

    2020-11-27 19:22:41
    需要实现功能: <p>1.拍照将单证信息(固定统一格式)导入手机作为核对数据库 <p>2....样式不固定)...提前标签上的信息与单证...<p><u>傅先生(电话18118110413)</strong></u></p>
  • Posted on 2010-09-03 11:28 傅先生 阅读(2112) 评论(1) 编辑 收藏 引用 所属分类: 数据-常用操作  BYTE to Unicode ////////////// BYTE dwByte[200]; wchar_t dwcharw[200]; for(int i=0;i
  • 鼠鼠百科--声卡

    2014-01-26 21:38:55
    一、什么是声卡 声卡 (Sound Card)也叫音频卡(港台称之为声效卡):声卡是多媒体技术中最基本的组成部分,是...新加坡创新公司董事长沈望傅先生发明的Sound Blaster“声霸卡”真正把声卡带入个人电脑领域。 就在人
  • 胡曾先生有诗云: 息亡身入楚王家,回看春风一面花。 感旧不言常掩泪,只应翻恨有容华。 楚王曰:“此皆蔡献舞之故,孤当为夫人报此仇也,夫人勿忧。”乃兴兵伐蔡,入其郛。蔡侯献舞肉袒伏罪,尽出其库藏宝玉以赂楚...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,943
精华内容 777
关键字:

傅先生