• 朝韩将军级会谈时隔11年后在板门店重启 2019-07-23
  • Conférence de presse du Premier ministre chinois 2019-07-09
  • 大观园举办“古琴雅集” 市民感受“古韵端午” 2019-06-30
  • 文脉颂中华——黄河新闻网 2019-06-30
  • 水费欠账竟“穿越”16年?用户质疑:为何没见催缴过? 2019-06-21
  • 买房怎么看风水这个真的实在是太重要了 ——凤凰网房产北京 2019-06-11
  • 6月14日凤凰直通车:茅台再开市场化招聘大门,32个部门要285人葡萄 种植 2019-06-07
  • 习近平为传统文化“代言” 2019-05-27
  • 中巴建交一周年 一系列庆祝活动在巴拿马举行 2019-05-24
  • 招聘启事丨西部网诚聘新媒体编辑记者、实习编辑等人员 2019-05-23
  • A title= href=httpwww.snrtv.comlivech=8 target= 2019-05-23
  • 不止消灭刘海屏 vivo NEX发布会看点汇总 2019-05-22
  • 世相【镜头中的陕西人】 2019-05-20
  • 邓紫棋首任明星制作人 吴亦凡身兼二职 2019-05-20
  • 陶昕然女儿正面照曝光 吃蛋糕萌到爆 2019-05-19
  • We left off with the disturbing realization that even though we are satisfied the requirements of the sampling theorem, we still have errors in our approximating formula. We can resolve this by examining the Whittaker interpolating functions which are used to reconstruct the signal from its samples.

    In [1]:
    %pylab inline
    
    Populating the interactive namespace from numpy and matplotlib
    
    In [2]:
    from __future__ import division
    
    t = linspace(-5,5,300) # redefine this here for convenience
    
    fig,ax = subplots()
    
    fs=5.0
    ax.plot(t,sinc(fs * t))
    ax.grid()
    ax.annotate('This keeps going...',
                xy=(-4,0),
                xytext=(-5+.1,0.5),
                arrowprops={'facecolor':'green','shrink':0.05},fontsize=14)
    ax.annotate('... and going...',
                xy=(4,0),
                xytext=(3+.1,0.5),
                arrowprops={'facecolor':'green','shrink':0.05},fontsize=14)
    
    # fig.savefig('[email protected]', bbox_inches='tight', dpi=300)
    
    Out[2]:
    <matplotlib.text.Annotation at 0xa371550>

    Notice in the above plot that the function extends to infinity in either direction. This basically means that the signals we can represent must also extend to infinity in either direction which then means that we have to sample forever to exactly reconstruct the signal! So, on the one hand the sampling theorem says we only need a sparse density of samples, this result says we need to sample forever. No free lunch here!

    This is a deep consequence of dealing with band-limited functions which, as we have just demonstrated, are not time-limited. Now, the new question is how to get these signals into a computer with finite memory. How can we use what we have learned about the sampling theorem with these finite-duration signals?

    Approximately Time-Limited Functions

    500元 倍投方案 稳赚 www.gvqn.net Let's back off a bit and settle for functions that are approximately time-limited in the sense that almost all of their energy is concentrated in a finite time-window:

    $$ \int_{-\tau}^\tau |f(t)|^2 dt = E-\epsilon$$

    where $E$ is the total energy of the signal:

    $$ \int_{-\infty}^\infty |f(t)|^2 dt = E$$

    Now, with this new definition, we can seek out functions that are band-limited but come very, very (i.e. within $\epsilon$) close to being time-limited as well. In other words, we want functions $\phi(t)$ so that they are band-limited:

    $$ \phi(t) = \int_{-W}^W \Phi(\nu) e^{2 \pi j \nu t} dt $$

    and coincidentally maximize the following:

    $$ \int_{-\tau}^\tau |\phi(t) |^2 dt$$

    After a complicated derivation, this boils down to solving the following eigenvalue equation:

    $$ \int_{-\tau}^\tau \phi(x)\frac{\sin(2\pi W(t-x))}{\pi(t-x)} dx = \lambda \phi(t)$$

    The set of $\phi_k(t)$ eigenfunctions form the basis for arbitrary approximately time-limited functions. In other words, we can express

    $$ f(t) = \sum_k a_k \phi_k(t) $$

    Note that the $\phi_k(t)$ functions are not time-limited, but only time-concentrated in the $[-\tau,\tau]$ interval. With a change of variables, we can write this in normalized form as

    $$ \int_{-1}^1 \psi(x)\frac{\sin(2\pi\sigma(t-x)/4)}{\pi(t-x)} dx = \lambda \psi(t)$$

    where we define$\sigma = (2\tau)(2W)$ as the time-bandwidth product.The advantage of this change of variables is that $\tau$ and $W$ are expressed as a single term. Furthermore, this is the form of a classic problem where the $\psi$ functions turn out to be the angular prolate spheroidal wave functions. Let's see what these $\psi$ functions look like but solving this form of the eigenvalue problem

    In [3]:
    def kernel(x,sigma=1):
        'convenient function to compute kernel of eigenvalue problem'
        x = np.asanyarray(x)
        y = pi*where(x == 0,1.0e-20, x)
        return sin(sigma/2*y)/y
    

    Now, we are ready to setup the eigenvalues and see how they change with the time-bandwidth product.

    In [4]:
    nstep=100                # quick and dirty integral quantization
    t = linspace(-1,1,nstep) # quantization of time
    dt = diff(t)[0]          # differential step size
    def eigv(sigma):
        return eigvalsh(kernel(t-t[:,None],sigma)).max() # compute max eigenvalue
    
    sigma = linspace(0.01,4,15) # range of time-bandwidth products to consider
    
    fig,ax = subplots()
    ax.plot(sigma, dt*array([eigv(i) for i in sigma]),'-o')
    ax.set_xlabel('time-bandwidth product $\sigma$',fontsize=14)
    ax.set_ylabel('max eigenvalue',fontsize=14)
    ax.axis(ymax=1.01)
    ax.grid()
    
    # fig.savefig('[email protected]', bbox_inches='tight', dpi=300)
    

    The largest eigenvalue is the fraction of the energy of the contained in the interval $[-1,1]$. Thus, this means that for $\sigma \gt 3$, $\psi_0(t)$ is the eigenfunction that is most concentrated in that interval. Now, let's look at the this eigenfunction under those conditions.

    In [5]:
    sigma=3
    w,v=eigh(kernel(t-t[:,None],sigma))
    maxv=v[:, w.argmax()]
    fig,ax=subplots()
    ax.plot(t,maxv)
    ax.set_xlabel('time',fontsize=18)
    ax.set_ylabel('$\psi_0(t)$',fontsize=22)
    ax.set_title('Eigenvector corresponding to e-value=%3.4f;$\sigma$=%3.2f'%(w.max()*dt,sigma))
    
    # fig.savefig('[email protected]', bbox_inches='tight', dpi=300)
    
    Out[5]:
    <matplotlib.text.Text at 0xb4e6860>

    Note that we'll see this shape again when we take up window functions.

    What does this all mean? By framing our problem this way, we made a connection between the quality of our reconstruction via the Whittaker interpolant and the time-bandwidth product. Up until now, we did not have a concrete way of relating limitations in time to limitations in frequency. Now that we know how to use the time-bandwidth product, let's go back to the original formulation with the separate $\tau$ and $W$ terms as in the following:

    $$ \int_{-\tau}^\tau \phi(x)\frac{\sin(2\pi W (t-x))}{\pi(t-x)} dx = \lambda \phi(t)$$

    and then re-solve the eigenvalue problem.

    In [6]:
    def kernel_tau(x,W=1):
        'convenient function to compute kernel of eigenvalue problem'
        x = np.asanyarray(x)
        y = pi*where(x == 0,1.0e-20, x)
        return sin(2*W*y)/y
    
    nstep=300                # quick and dirty integral quantization
    t = linspace(-1,1,nstep) # quantization of time
    tt = linspace(-2,2,nstep)# extend interval
    
    sigma = 5
    W = sigma/2./2./t.max()
    
    w,v=eig(kernel_tau(t-tt[:,None],W))
    ii = argsort(w.real) 
    maxv=v[:, w.real.argmax()].real
    fig,ax = subplots()
    ax.plot(tt,maxv/sign(maxv[nstep/2])) # normalize to keep orientation upwards
    ax.set_xlabel('time',fontsize=14)
    ax.set_ylabel(r'$\phi_{max}(t)$',fontsize=18)
    ax.set_title('$\sigma=%d$'%(2*W*2*t.max()),fontsize=16)
    
    # fig.savefig('[email protected]', bbox_inches='tight', dpi=300)
    
    D:\Miniconda64\lib\site-packages\ipykernel\__main__.py:18: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
    
    Out[6]:
    <matplotlib.text.Text at 0xbae1eb8>

    $\DeclareMathOperator{\sinc}{sinc}$

    This looks suspicously like the $\sinc$ function. In fact, in the limit as $\sigma \rightarrow \infty$, the eigenfunctions devolve into time-shifted versions of the $\sinc$ function. These are the same functions used in the Whittaker interpolant. Now we have a way to justify the interpolant by appealing to large $\sigma$ values.

    Summary

    In this section, at first blush, it may look like we accomplished nothing. We started out investigating why is it that we have some residual error in the reconstruction formula using the Whittaker approximation functions. Then, we recognized that we cannot have signals that are simultaneously time-limited and band-limited. This realization drove us to investigate "approximately" time-limited functions. Through carefully examining the resulting eigenvalue problem, we determined the time-bandwidth conditions under which the Whittaker interopolant is asymptotically valid. As you can imagine, there is much more to this story and many powerful theorems place bounds on the quality and dimensionality of this reconstruction, but for us, the qualifying concept of time-bandwidth product is enough for now.

    References

    In [7]:
    %qtconsole
    
    D:\Miniconda64\lib\site-packages\IPython\parallel.py:13: ShimWarning: The `IPython.parallel` package has been deprecated. You should import from ipyparallel instead.
      "You should import from ipyparallel instead.", ShimWarning)
    
    In [ ]:
     
    
  • 朝韩将军级会谈时隔11年后在板门店重启 2019-07-23
  • Conférence de presse du Premier ministre chinois 2019-07-09
  • 大观园举办“古琴雅集” 市民感受“古韵端午” 2019-06-30
  • 文脉颂中华——黄河新闻网 2019-06-30
  • 水费欠账竟“穿越”16年?用户质疑:为何没见催缴过? 2019-06-21
  • 买房怎么看风水这个真的实在是太重要了 ——凤凰网房产北京 2019-06-11
  • 6月14日凤凰直通车:茅台再开市场化招聘大门,32个部门要285人葡萄 种植 2019-06-07
  • 习近平为传统文化“代言” 2019-05-27
  • 中巴建交一周年 一系列庆祝活动在巴拿马举行 2019-05-24
  • 招聘启事丨西部网诚聘新媒体编辑记者、实习编辑等人员 2019-05-23
  • A title= href=httpwww.snrtv.comlivech=8 target= 2019-05-23
  • 不止消灭刘海屏 vivo NEX发布会看点汇总 2019-05-22
  • 世相【镜头中的陕西人】 2019-05-20
  • 邓紫棋首任明星制作人 吴亦凡身兼二职 2019-05-20
  • 陶昕然女儿正面照曝光 吃蛋糕萌到爆 2019-05-19
  • 12025期36选7开奖结果 六肖中特期期准王 狂人时时彩计划稳赚 扑克王是不是黑平台 最近40期排列五走势图 剑网3指尖江湖玄正 2018年白小姐欲钱料 雪诺和塞布尔APP 幸运双星在线游戏 英雄坛说锁子甲 正中红心客服 网上投注北京快乐赛车 pc蛋蛋江北神途 福建时时彩走势图 6场半全场胜负开奖结果 浙江11选5任选走势