试了下压缩感知在取样示波器中的简单应用
ddomax2016/12/04仪器仪表 IP:江苏
2016.12.18 新补充了原理简介。
-------------
基本信息:
0、观测行为:使用ADC在信号长度内随机采样,并记录采样时刻。(随机等效采样)
1、信号长度为512。
2、随机等效采样点数为128。
3、恢复长度为512。
4、测量矩阵使用内插公式构建。
5、信号重建算法为SAMP。
6、冗余字典为DFT基+单位矩阵,分解算法为OMP。
说明:
1、受到MATLAB工作精度限制,解算接近奇异的矩阵的逆时误差较大,算法重构精度受到较大影响。
table1.png

[修改于 8年1个月前 - 2016/12/18 14:00:21]

来自:仪器与装备 / 仪器仪表动手实践:实验报导严肃内容:专业科普
11
 
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
ddomax 作者
8年1个月前 IP:江苏
828097
这是采样点在信号长度内均匀随机分布的情况,如果出现集中分布,恐怕直接排序的恢复方法性能下降较快,改天再试了。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
8年1个月前 修改于 8年1个月前 IP:四川
828103
看了楼主的帖子,我在想,有没有可能用字典恢复来降低时钟抖动对采样的影响。
(建议楼主补充理论介绍以符合加学术分的条件)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ddomax作者
8年1个月前 修改于 8年1个月前 IP:江苏
828277
试了下新算法,似乎还不错。
table2.png
下面是运行截图:
image.png
image.png
image.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
8年1个月前 IP:广东
828333
引用 虎哥:
看了楼主的帖子,我在想,有没有可能用字典恢复来降低时钟抖动对采样的影响。
(建议楼主补充理论介绍以符合加学术分的条件)
必须知道每次时钟抖动的幅度才可以。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
8年1个月前 修改于 8年1个月前 IP:广东
828334

理论我帮楼主补充吧。

如果是常见的等间隔采样,根据nyquist定理,只有频率小于f/2的信号可以被完整还原。比如等间隔采样频率是1000Hz,我们就无法区分400Hz和600Hz信号,因为采样这两个信号时得到的结果是一样的。

不过,如果我们可以判断每次采样到的信号是处在上升还是下降段,就可以将400Hz和600Hz区分开了。要想知道某次采样到底是上升沿还是下降沿,只需在下一次采样时加一点offset。

blob.png

如上图所示,只需在绿线处采样一次,就可以将两种频率区分开。如果可以在等间隔采样点周围大量采样,我们最终可以把400/600/1400/1600...等频率全部区分开。

经过研究,数学家们指出:把采样过程换成随机等效采样(即人为加入高斯jitter)之后,我们是可以正确区分比采样频率更高的信号的,代价是损失时域分辨率。可以认为:采样频率不变的情况下,时域分辨率越低,频域的分辨率就越高,反之亦然。整个过程仍然符合shannon,但突破了nyquist。

换言之,有了压缩感知理论以后,我们可以用时域分辨率换取超过nyquist频率的频域分辨率,比如用1G采样率的示波器,正确还原5G连续信号的幅度和相位。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
飞鸿浩劫
8年1个月前 IP:天津
828469
本科毕业果然看不懂最后两条,现在低端示波器应该不用这么复杂,中高端的才用等效采样吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ddomax作者
8年1个月前 IP:江苏
828470
引用 飞鸿浩劫:
本科毕业果然看不懂最后两条,现在低端示波器应该不用这么复杂,中高端的才用等效采样吧
即使是国产的千元入门级示波器也普遍有等效采样模式。毕竟实现成本很低,效果却很好。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
飞鸿浩劫
8年1个月前 IP:天津
828511
还以为都是插值插出来的,一直用低端机,不知道怎么区分用没用等效采样
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ddomax作者
8年1个月前 修改于 8年1个月前 IP:江苏
828606
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.

----原理部分结束。算法换楼再写。(づ。◕‿‿◕。)づ----
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ddomax作者
8年1个月前 IP:江苏
828623
引用 虎哥:
看了楼主的帖子,我在想,有没有可能用字典恢复来降低时钟抖动对采样的影响。
(建议楼主补充理论介绍以符合加学术分的条件)
没找到这方面的文章,如果不是加TDC强行测出抖动的话,我觉得本贴提到的原理完全用不上。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
8年1个月前 IP:四川
828626
引用 ddomax:
没找到这方面的文章,如果不是加TDC强行测出抖动的话,我觉得本贴提到的原理完全用不上。
晚上好,我也发现上次发言比较随便,没有想清楚。对于抖动来说,由于已知量不足,恢复不出被采样的信号,也就消除不了抖动。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
ddomax
学者 机友 笔友
文章
51
回复
362
学术分
1
2012/01/16注册,3个月9天前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}