0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈实测测量电路和示波器获得波形的数学表达式

电子设计 来源:CSDN 博主 作者:卓晴 2020-12-28 15:26 次阅读

实验要求

在第一次作业中的第二小题,练习了根据信号的波形写出对应信号的表达式。但在实际中,我们观测到的信号往往是在示波器上的波形,此时该如何获得这些波形的数学表达式?

测量波形的示波器

本质上讲,实际信号中都会带有随机性,是没有确定的数学表达式的。但在某些情况下,我们是预先知道信号的类型的,比如正弦波,但不知道信号的一些参数。例如幅值、频率和相位。如果这些参数知道了,便可以写出对应的信号数学表达式了。在这种情况下,从观测到的带有噪声的信号波形中回复处信号,则属于信号参数估计的内容了。

部分电子元器件

在实际应用中,信号的参数往往非常重要。下面举一个例子:如果手边只有一个万用表,但没有能够测量电容、电感的RCL桥,为了想知道一个电容器件的准确容值,可以将待测的电容与一个电阻串联在一起。电阻的阻值可以使用万用表精确测量。使用一个信号源产生一个正弦波信号施加在RC串联电路上,使用示波器同时测量信号源的信号以及RC分压后的信号。

pIYBAF_phbmARmaXAABlJnGglyA548.png

利用RC测量电子器件参数电路

根据电路原理,可以知道上述电路稳态输入输出正弦信号之间的关系如下:

V ˙ = 1 j 2 π f C 1 R 1 + 1 j 2 π f C 1 U ˙ = 1 1 + j 2 π f R 1 C 1 U ˙ \dot V = {{{1 \over {j2\pi fC_1 }}} \over {R_1 + {1 \over {j2\pi fC_1 }}}}\dot U = {1 \over {1 + j2\pi fR_1 C_1 }}\dot UV˙=R1+j2πfC11j2πfC11U˙=1+j2πfR1C11U˙

实测测量电路和示波器

因此,输入输出正弦信号的幅度之比为:
α = ∣ V ˙ ∣ ∣ U ˙ ∣ = 1 1 + ( 2 π f R C ) 2 \alpha = {{\left| {\dot V} \right|} \over {\left| {\dot U} \right|}} = {1 \over {\sqrt {1 + \left( {2\pi fRC} \right)^2 } }}α=∣∣∣U˙∣∣∣∣∣∣V˙∣∣∣=1+(2πfRC)21

输入输出正弦信号的相位差为:θ \thetaθtan ⁡ ( θ ) = 2 π f ⋅ R C \tan \left( \theta \right) = 2\pi f \cdot RCtan(θ)=2πf⋅RC

所以,只要能够测量出U,V两个正弦信号的幅度或者相位,频率,再加上已知电阻阻值R\1.,便可以计算出来待测电容的容值。
C = tan ⁡ θ 2 π f ⋅ R = 1 − α 2 α ⋅ 1 2 π f ⋅ R C = {{\tan \theta } \over {2\pi f \cdot R}} = {{\sqrt {1 - \alpha ^2 } } \over \alpha } \cdot {1 \over {2\pi f \cdot R}}C=2πf⋅Rtanθ=α1−α2⋅2πf⋅R1

已知上面的串联电路中的电阻\nR\1.=1009欧姆。示波器显示波形的数值可以通过已经存储在CH12.MAT中,数值的采样时间间隔fs=10微妙。

示波器采集的数值波形

请根据以上分析,求出待测电容\nC\1.的容值是多少。

提示:

MATLAB中通过load()命令读取CH12.MAT中的数据;

ch12(:,1) 是V的数据, ch12(:,2)是U的数据。

使用MATLAB中fit命令来估计数据中的参数。
f = fit(x,y,‘fourier1’)

上面fit命令输出 f(x)=a0+a1cos(xw)+b1sin(xw)
中的a0,a1,b1,w等参数。

使用MATLAB计算出现的问题

使用MATLAB计算步骤

调入数据并绘制波形图

load ch12' t = linspace(0, 1400*10e-6,1400)' plot(t,ch12(:,1), t, ch12(:, 2))'

两个测量数据通道的波形图

(2)使用MATLAB 计算正弦波形参数

f1 = fit(t, ch12(:,1), 'fourier1')' f2 = fit(t, ch12(:,2), 'fourier1') f1: a0:119.1442, a1:-1.6132, b1:27.3382, omiga:2481 f2: a0:150.0722, a1:64.1255, b1:43.5524, omiga:2481

2. 使用MATLAB计算出现的问题

使用上述参数利用两个公式计算,会出现1.5倍的差异。tan ⁡ ( θ ) = 1.677 ,      1 − α 2 α = 2.6480 \tan \left( \theta \right) = 1.677,\,\,\,\,{{\sqrt {1 - \alpha ^2 } } \over \alpha } = 2.6480tan(θ)=1.677,α1−α2=2.6480

相关的矢量方差如下图所示:

MATLAB计算出的参数的问题

从MATLAB通过剪切板得到数据

首先在MATLAB命令窗口使用如下命令将CH12数据拷贝到WINDOWS剪切板。

cc(ch12)

然后通过下面的PYTHON程序将剪切板上的数据转换成两个数组,分别对应的输出和输入信号的采集的数据。

pastestr = clipboard.paste().strip('[').strip(']').split(';') data1=[] data2=[] for s in pastestr: ss = s.split(' ') data1.append(int(ss[0])) data2.append(int(ss[1])) plt.plot(data1) plt.plot(data2) tspsave('CH12', ch1=data1, ch2=data2) printf('\a') plt.show()

进行函数拟合和参数计算

两个通道正弦波及其FIT曲线

根据的PYTHON程序重新计算输入和输出相应的数据对应的正弦参数,数据如下,所得到的估计参数与MATLAB相同。


编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子元器件
    +关注

    关注

    131

    文章

    3039

    浏览量

    103137
  • matlab
    +关注

    关注

    175

    文章

    2908

    浏览量

    228325
  • 示波器
    +关注

    关注

    110

    文章

    5563

    浏览量

    181468
  • 波形
    +关注

    关注

    3

    文章

    338

    浏览量

    31233
收藏 人收藏

    评论

    相关推荐

    如何从一个简单的数学表达式创建一个Saber模型?

    如何从一个简单的数学表达式创建一个Saber模型,将你的输出描述为输入的函数?例如 out=a*in*in+b (其中 a 和 b 是常数)。
    的头像 发表于 12-05 13:42 306次阅读
    如何从一个简单的<b class='flag-5'>数学</b><b class='flag-5'>表达式</b>创建一个Saber模型?

    不知道这些函数对应的数学表达式

    不理解这些是什么函数,能给出数学表达式
    发表于 11-29 15:24

    Python谈yield表达式及其批量获得minibatches的应用

    Python 小谈 yield 表达式及其批量获得 minibatches 的应用
    发表于 05-21 08:20

    【LabVIEW懒人系列教程-小白入门】1.7LabVIEW数据操作之表达式

    今日目标:掌握labview中如何写数学表达式,完成以下内容:方法①:利用数学里面的函数实现以上是cos以上是e的指数以上是x的幂验证结果正确方法②利用表达式节点实现编写如下
    发表于 07-29 00:48

    如何创建正则的表达式

    正则表达式:用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用,经常用于表单校验,高级搜索等。
    发表于 10-27 15:49

    防范表达式的失控

    在C 语言中,表达式是最重要的组成部分之一,几乎所有的代码都由表达式构成。表达式的使用如此广泛,读者也许会产生这样的疑问,像+ 、- 、3 、/ 、& & 这样简单的运算也会出现
    发表于 04-22 16:57 13次下载

    一种面向数学检索的LaTeX数学表达式解析与索引方法

    针对数学表达式复杂二维结构特性所导致的普通文本检索技术难以对其进行检索的问题,提出了一种面向数学检索的LaTeX数学表达式解析与索引方法。在
    发表于 12-22 15:21 0次下载

    Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则
    发表于 03-26 09:13 10次下载
    Python正则<b class='flag-5'>表达式</b>指南

    基于运算符信息的数学表达式检索技术

    传统的文本检索技术主要面向一维文本,难以用于对二维结构数学表达式的检索。针对该问题,通过引入公式描述结构,实现基于运算符信息的数学表达式检索。利用公式描述结构提取算法获取 Latex
    发表于 04-29 15:58 2次下载
    基于运算符信息的<b class='flag-5'>数学</b><b class='flag-5'>表达式</b>检索技术

    Lambda表达式详解

    C++11中的Lambda表达式用于 **定义并创建匿名的函数对象** ,以简化编程工作。下面看一下Lambda表达式的基本构成。
    的头像 发表于 02-09 11:28 819次阅读

    表达式与逻辑门之间的关系

    逻辑表达式是指表示一个表示逻辑运算关系的式子,是一个抽象的类似数学表达式,下面我们重点说明下其表达式与逻辑门之间的关系。
    的头像 发表于 02-15 14:54 1069次阅读
    <b class='flag-5'>表达式</b>与逻辑门之间的关系

    C语言的表达式

    在C语言中,表达式是由操作符和操作数组成。表达式可以由一个或者多个操作数组成,不同的操作符与操作数组成不同的表达式,因此,表达式才是C语言的基本。
    的头像 发表于 02-21 15:09 913次阅读
    C语言的<b class='flag-5'>表达式</b>

    逻辑运算符与表达式

    在C语言中,我们通常会进行真值与假值的判断,这时我们就需要用到逻辑运算符与逻辑表达式。如果表达式的值不为0,则通通返回为真值。只有当表达式的值为0时,才会返回假值。
    的头像 发表于 02-21 15:16 1352次阅读
    逻辑运算符与<b class='flag-5'>表达式</b>

    zabbix触发器表达式 基本RS触发器表达式 rs触发器的逻辑表达式

    zabbix触发器表达式 基本RS触发器表达式 rs触发器的逻辑表达式  Zabbix是一款开源的监控软件,它能通过监控指标来实时监测服务器和网络的运行状态,同时还能提供警报和报告等功能来帮助管理员
    的头像 发表于 08-24 15:50 1087次阅读

    怎么去选择使用gm的三种表达式呢?

    我们在写跨导gm的表达式时,知道gm有三种表达式表达式含有的变量其实只有三个,一个W/L,一个Vgs-Vth,还有一个Id。
    的头像 发表于 09-17 15:31 2328次阅读
    怎么去选择使用gm的三种<b class='flag-5'>表达式</b>呢?