wshy2010 发表于 2011-11-9 15:11:24

示波器显示波形计算周期的问题

1、用一台tek示波器显示波形,刚开始用AUTOSET键可到波形,中间下方显示M 50.0uS,也就是说每格代表时间为50.0uS,图上显示两格为1个周期,计算的频率为10khz,这个是正确的。
2、当逆时针转动SEC/DIV钮一下,显示M 100uS,也就是说现在每格代表时间为100uS了,图中显示一格为一个周期,计算的频率为10khz,这个也是正确的。
3、当逆时针转动SEC/DIV很多下,直到转动到中间下方显示M 1.00S时,应该是每格代表时间1S,这时的波形是缓慢往前走的。图中显示一个周期大概占了5格,那么计算出来就是0.2hz了,这个肯定是错的,但不知问题出在了哪里?在这种情况下该如何计算周期呢?还是这种情况进入了示波器的错误显示范围?
等待高手指点!

wshy2010 发表于 2011-11-9 15:21:55

在线等,知道怎么回事的麻烦说下

lisn3188 发表于 2011-11-9 15:39:13

这是因为示波器的采样速率太慢,产生了混叠现象。
根据奈奎斯特定理,采样速率至少高于信号高频成分的2倍才不会发生混叠,如一个10khz的信号,至少需要20KS/s的采样速率。

dreamyou 发表于 2011-11-9 15:40:05

低端示波器吧?
时基大了以后,受限于固定的较短的存储深度,采样率也急剧下降了。

记得有个专门名词来描述这种失真的。我找找,哈哈。

dreamyou 发表于 2011-11-9 15:41:33

找到了。

根据Nyquist采样定理,当对一个最高频率为f的带限信号进行采样时,采样频率SF必须大于f的两倍以上才能确保从采样值完全重构原来的信号。这里,fmax称为Nyquist频率,2 f为Nyquist采样率。对于正弦波,每个周期至少需要两次以上的采样才能保证数字化后的脉冲序列能较为准确的还原原始波形。如果采样率低于Nyquist采样率则会导致混叠(Aliasing)现象。

原来2楼已经答复了,哈哈

yu_wen 发表于 2011-11-9 15:41:33

当你转到1.00s时采样率非常低,这时候看到的波形其实不是真实的波形,而是从好几个波形中每个取几个点,组合在一起,在外部看来,又是一个完整的波形

dreamyou 发表于 2011-11-9 16:01:29

再多啰嗦几句。

存储深度 = 采样率 X 采样时间。 采样时间,即示波器显示屏所包括的时间,通常是10个时基,也就是屏幕横向是10个大格;

特定型号的示波器,存储深度是固定的,所以,采样时间长了以后,采样率必然就下去了,那么频率高到一定程度的信号,周期性的会出现混叠,而非周期性、偶发性的就有非常大的可能观察不到。

嘿嘿,偶手头有一台TEK2465B模拟示波器,现在想再买一台数字示波器,存储深度小于1M/CH的,再便宜偶也不考虑。

仔细看看,TEK的低端示波器就是坑爹啊,TDS1系跟2系好像都是2.5k的,而3系的也才10k。

wshy2010 发表于 2011-11-9 17:46:35

明白了些了,谢谢各位的热情回答!又遇到个问题,用的ICCAVR编译器,mega8,简化后的程序如下:
#include <iom8v.h>
char data;
void main(void)
{data=OxD3;
if(data|0x01==0)
语句1;
}
data是全局变量,0xD3化为二进制是0b11010011,0x01的二进制是0b00000001,二者按位或的结果应该是0b11010011,因此(data|0x01==0)为假,语句1不应当被执行;但实际结果却是语句1被执行,为什么会这样,百撕布的骑姐啊!同样在线等,望回答!先谢了!

albert_w 发表于 2011-11-9 18:16:23

括号 , 位运算优先级很低的,低于==

wshy2010 发表于 2011-11-9 21:54:54

回复【8楼】albert_w
括号 , 位运算优先级很低的,低于==
-----------------------------------------------------------------------

是优先级的问题,先前一直不认为问题会出在优先级上面!多谢!你QQ多少啊,方便说下吗?或加我也可:390960120,qq交流可能更实时些
写了个程序发现遇到问题还挺多的,又遇到个问题,如下所述:
基本参数为mega8,ICCAVR,8M晶振,实现125khz ASK键控调幅通信(输出125khz时代表二进制1,输出0hz即0V时代表二进制0),打算使用10kbps的通信速率。用定时器1的CTC模式弄出了125khz方波,用定时器2的CTC模式弄出了10khz的方波(100uS的周期),示波器观察这两个方波的频率是很准的。
为了测试通信频率的稳定性,采取了以下方法:为了简便和直观,不让125khz参与测试。让PB1口循环输出10101010进行测试。具体方法为:开放定时器2的比较匹配中断,第一个中断到来后,PB1口输出1(作为I/O口输出4.5V,代表二进制1);第二个中断到来后,PB1口输出0(作为I/O口输出0V,代表二进制0),第三个中断到来后,PB1口输出1(作为I/O口输出4.5V,代表二进制1),第四个中断到来后,PB1口输出0(作为I/O口输出0V,代表二进制0),依此循环往复进行。
如上所述,理论上在PB1口会复现定时器2的10khz方波,但是通过示波器发现PB1口的方波只有6khz多,不知何故,猜测可能是100uS的周期不能满足中断函数运行需要的时间,但8M晶振应该运行起来挺快的。想通过PB1稳定输出10khz频率有什么好方法吗?有知道的能说下吗?多谢

wshy2010 发表于 2011-11-10 11:18:24

在弄125khz通信的时候又遇到个有关示波器的问题,如下所述:   
   基本参数为mega8,ICCAVR,8M晶振,实现125khz ASK键控调幅通信(输出125khz时代表二进制1,输出0hz即0V时代表二进制0),总体方案为定时器2提供通信速率,定时器1提供输出1还是0两个状态。使用2kbps的通信速率,测试通信频率的方法为:让PB1作为IO口在高电平和低电平之间切换,每次定时器2的中断改变PB1的电平。示波器显示PB1的频率在1.994khz到2.002khz变动,实际上二者的频率应该完全一致,之所以PB1有波动应该是波形不稳给示波器带来的检测误差造成的吧(因为PB1两次电平变化之间需要运行的程序所需要的时间多多少少会有差距),不知这样理解对否?   
   这样说明2khz的通信频率还是可以保障的。现在让PB1口的125khz参与进来:让PB1口循环输出10101010进行测试(实际上就是让PB1口的两个状态来回切换,两个状态分别代表1和0)。具体方法为:开放定时器2的比较匹配中断,定时器2的第一个中断到来后,PB1口输出125khz(CTC模式输出125khz,代表二进制1);定时器2的第二个中断到来后,PB1口输出0V(作为I/O口输出0V,代表二进制0),定时器2的第三个中断到来后,PB1口输出125khz(CTC模式输出125khz,代表二进制1),定时器2的第四个中断到来后,PB1口输出0V(作为I/O口输出0V,代表二进制0),依此循环往复进行。   
   这样一来如果用示波器的AUTOSET方式观察的话,因为有两个频率在里面,虽然也是周期性出现的,但是示波器显示的波形不能稳定下来,示波器屏幕下方显示的频率为125khz,但是经常会短时间的往上浮动一下,可以浮动到240khz,这应该是两个频率同时存在给示波器造成了检测混乱吧,这样一来在示波器屏幕上根本看不出啥有用的信息。这只是用的AUTOSET方式,不知在这种情况下如何操作示波器可以清晰准确的同时检测到两个频率同时存在的实际情况。欢迎各位提点建议或经验

chou_f 发表于 2011-11-26 17:02:48

1回复【楼主位】wshy2010
-----------------------------------------------------------------------

M 1.00S时,是SCAN扫描模式显示,此时示波器的采样速率太慢,产生了混叠现象,是假波,
采样速率至少高于信号高频成分的2倍才不会发生混叠.
页: [1]
查看完整版本: 示波器显示波形计算周期的问题