已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
1等效时间采样原理简介

      等效时间采样适用于周期性的或者可以重复触发的信号,可以分为顺序等效采样和随机等效采样。
1.1顺序等效采样
      顺序等效采样是指:每个周期中,采样时刻相对触发时刻的时间间隔依次延长一个△t,经过足够多的采样次数,依次取得原始信号周期中各个相位的采样数据,即得到等效采样率为1/△t的采样序列。其等效采样率仅决定于延时步进△t的大小。原理如下图[1]
图1.png
1.2随机等效采样
       随机等效采样是指:在随机的时刻进行采样,测量采样时刻与触发时刻之间的时间差,进行大量采样之后,按时间差对数据点进行排序,就能够大概率地恢复波形。原理如下图:
图2.png
2压缩感知在随机等效采样中的应用

2.1压缩感知引入背景
       数字示波器采集的对象是一个在时间上连续的电压信号,采集的结果是一个离散时间序列。假设电压信号为xa(t),则理想等间隔采样后得到信号^xa(nT)=xa(t)·δT(t)。离散表示为时间序列xa[nT]。其采样率fs=1/T。等效采样的目标是:以更低的实时采样率fc (fc<fs,且不一定是均匀采样),并通过一定的构建手段,获得时间序列xa[nT]。其等效采样率feq=1/T=fs。
      在采样次数不受限制、采样时刻绝对随机的情况下,对于一个测时分辨率为Te的随机等效采样系统,当有效采样点[注1]数达到N=Tf/Te个时(Tf为被测信号周期),能够通过排序获得包含一个完整周期的时间序列x[nTe](n=1,2,3……N)。根据上面的定义,其等效采样率feq=1/Te。但实际情况下,由于采样时钟与触发脉冲直接存在一定相位相关性,或者一些突发重复信号持续时间较短,仅采集到M个有效数据点(M<N),则此时无法通过排序来获得xa[nTe]。例如一个频率为1GHz的信号,测时分辨率为1ps,而实际仅采集到100个有效采样点。商品示波器在处理这一问题时,常采用排序后插值的方法,但插值过程容易带来信号失真。
      只采集M个采样点,再恢复包含N个采样点的时间序列,可以用压缩感知理论解决。
2.2压缩感知理论简介
         使用MxN的观测矩阵A观测一个N维的信号x,得到M维的观测值y。由于M<N,故实现了在观测的同时进行降维,即实现了数据在采集之前的前端压缩。如果能从欠采样的观测值y中恢复出原始信号x,就从理论上提供了突破奈奎斯特定理限制的可能。恢复信号x的过程即是求解以下方程的过程。(已知y和A,求解x)
       y=A·x  (1)
      由于A的秩不足,求解这个线性方程组是一个欠定问题。但如果信号x是严格K稀疏的(仅在K个位置有非零值),即该信号只有K+1个自由度,则只要测度M>K,且A满足K阶RIP性质,仍然可能通过某种非线性过程高概率地求解。该过程可以描述为:在满足约束条件y=A·x的情况下,寻找一个最稀疏的解^x
      ^x=arg minx||x||0 s.t. y=A·x   (2)
      由于求解l0范数最优化问题只能通过穷举所有可能情况寻找非零元素最小的方式求解,(2)是一个NP-hard问题。故实际常用l1范数最优化取而代之:
       ^x=arg minx||x||1 s.t. y=A·x   (3)    
       此时目标和约束函数都是凸函数,(3)是一个凸优化问题。由此产生了一些基于凸优化的恢复算法,例如基追踪(BP)算法。
       另一大类重要的恢复算法是贪婪算法,例如匹配追踪(MP),正交匹配追踪(OMP)。给一种不严格的理解:首先将恢复值^x设置为零向量,每次寻找A中与y相关度最高的一个列向量At,选中At并求得用其表示y的一个系数xt更新到^x的对应行上,直到残差小于预设值。由于每次选取的At与y最“相关”,故最终使用最少数量的xt即可较准确地表示出y。此时矩阵^x只在xt处为非零值,故包含了最少的非零值。相比于凸优化算法,贪婪算法更容易因陷入局部最优化而造成较大的恢复残差,但其运算速度更快。
2.3观测矩阵的构建
       采样过程即是计算x在A上投影的过程。对于电压信号x,无法直接用计算机计算A·x来获得观测值y。因此,在等效采样中用到的观测矩阵,必须使得A·x具有一定的物理意义。根据现有的观测行为:1、使用ADC采集某个时刻的电压值。2、测量这个时刻。可以确定A·x必须为原始信号在某个时刻的电压值。上述观测行为得到了M个二元组(时间△tm,电压y(m)),从中恢复出连续的电压信号xa(t)可以使用香农内插公式:
      \(x_a(t)=\sum_{n=-∞}^{∞}y_a(nT)sinc\frac{(t-nT)}{T}\)[注2]  (4)
      在构建观测矩阵时,把公式倒过来用。即将连续信号xa(t)通过观测矩阵,变换为二元组(时间△tm,电压y(m))。据此构建观测矩阵A:(m指第M次采样,M指采样次数)
      \(A(m,n)=sinc\frac{△t_m-nTe}{Te}\)   (5)
      由矩阵乘法运算可知,此时y的计算过程为:
      \(y(m)=\sum_{n=1}^{N}A(m,n)x(n)\)
                \(=\sum_{n=1}^{N}sinc\frac{△t_m-nTe}{Te}x(n)\)  (6)
      根据式(4):
      \(y(m)=x(△t_m)\)   (7)
      上式可见,第m次的观测值y(m),即为在第m次观测时电压信号x的取值。显然,现在y就对应了ADC采样的结果。观测时刻相对触发时刻的时间差△tm可以由TDC器件测量。这里的x并非真正意义上的连续信号,而是上文提到的x[nTe]。根据y(m)恢复出的x实际是x[nTe],而y(m)是ADC对连续信号x采样的结果,因此这里存在测量时间过程中的量化误差。
     根据式(5)构建观测矩阵后,只要选择一种2.2中提到的恢复算法,即可恢复出x[nTe],完成一次基于压缩感知的等效采样。
-------------------
[注1]:有效采样点定义为:该点采样时刻相对触发时刻的时间差,经量化得到的kTe(k∈N)与之前各点都不重复的采样点。
[注2]:这里的sinc指归一化后的sinc(x)=sin(π*x)/π*x。

--------------------
参考文献
[1].赵伟. 基于等效采样的数字存储示波器的设计与实现[D]. 西安:西安电子科技大学, 2011.

----原理部分结束。算法换楼再写。(づ。◕‿‿◕。)づ----
文号 / 828606

百炼成钢
名片发私信
学术分 1
总主题 51 帖总回复 362 楼拥有证书:学者 机友 笔友
注册于 2012-01-16 13:57最后登录 2024-09-13 00:09
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步

个人简介

暂未填写
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}