脉冲信号
采集一脉冲信号得到如图所示,只有脉冲信号的零线一下部分,如何恢复为正常的脉冲信号
回复 楼主 Pole 的帖子
采样的负(或正)数据溢出了,这个数据无法恢复,只有在正确编码情况下重新采集了。回复 沙发 hcharlie 的帖子
我发现应该就是大于 128的数据全部被置为 2^32,所谓的采样的溢出可能是那些引起的呢 ??如何避免?
因为使用的VC采集+处理,所以比不上matlab对于信号处理方面的功能强大。。。
不管对于脉冲 正弦 白噪 重新采集 都是这个结果
回复 板凳 Pole 的帖子
我不知道你怎样用VC采集的,无法具体回答。如果你定义的数据类型(如byte,integer,unsigned integer。。。)与你的实际数据类型不一致就可能溢出。也许还有别的原因。 在C语言中:
char -128~+127
unsigned char 0~255
可能你的原来的数据是unsigned char 格式,放到 char 里,大于等于128的都要溢出了。
回复 地板 hcharlie 的帖子
谢谢指点我研究了一下,
我将缓冲区中的数据无符号化传给数组就会出现2^32,
但是我直接将缓冲区数据传给数组就不会出现,但是得到的图形却不再是一个脉冲了。。。。
回复 5楼 hcharlie 的帖子
对,我才想起来!没有把之前看的书融会贯通。。。。。。非常谢谢
我再研究一下。
回复 5楼 hcharlie 的帖子
将 unsigned 改为 unsigned int 即可谢谢指点。。。 恭喜你。
如果128是另点,你还需要变换成有符号型:
unsigned int aaa;
int bbb;
for(int i=0;i<1000;i++) bbb=aaa-128;
[ 本帖最后由 hcharlie 于 2008-12-15 17:17 编辑 ]
回复 9楼 hcharlie 的帖子
对,我已经变零线了这样看上去就舒服多了。。。
页:
[1]