精华内容
下载资源
问答
  • 行业资料-电子功用-半正弦波谐振激励电路.zip
  • 行业资料-电子功用-半正弦波谐振激励电路的介绍分析.rar
  • 以 100Hz 采样的 10Hz 正弦波被整流。 HW 和 FW 的频谱如图所示。 用户可以在 m 文件中更改正弦波频率和采样频率。
  • 博客链接:https://blog.csdn.net/muxi_huang/article/details/106019015
  • 通过改变常量中的值,也可以改变移位的值。
  • 半波正弦信号的FFT变换

    千次阅读 2020-02-12 05:03:52
    Hello, 大家好,这一期我们谈谈半波正弦信号的FFT变化长什么样子。 本文硬件使用GFARM02硬件模块[1],文章最后有其淘宝链接。核心器件为STM32F103RCT6,为Cortex-M3核,采用的CMSIS版本为CMSIS_5-5.6.0。

    目录

    Hello, 大家好,这一期我们谈谈半波正弦信号的FFT变化长什么样子。本文硬件使用GFARM02硬件模块[1],文章最后有其淘宝链接。核心器件为STM32F103RCT6,为Cortex-M3核,采用的CMSIS版本为CMSIS_5-5.6.0。

    如图1所示,这是一个周期的无直流的正弦波全波: sin ⁡ ( ω t ) \sin(\omega t) sin(ωt),其FFT结果如图2所示,注意图2中的纵轴是电压值的有效值如果换算成幅值应该乘以 2 \sqrt{2} 2 。可见频谱十分干净。
    在这里插入图片描述
    图1
    在这里插入图片描述
    图2

    图3展示了半波的时域波形,对其做FFT,得图4的频谱,与图2对比,发现半波的FFT出现了直流分量、2次谐波和4次谐波,对于频率 f 0 f_0 f0而言,其频率值没有变化,和全波的分析一样,而幅值减为原幅值的一半(注意图2和图4的纵轴数值为有效值)。
    在这里插入图片描述
    图3
    在这里插入图片描述
    图4

    这就是全波和半波的FFT变换的结果,大家有什么新的发现欢迎交流哦。

    笔者使用硬件淘宝店链接:
    [1] https://item.taobao.com/item.htm?spm=a2126o.11854294.0.0.67154831RZohYn&id=611784950993

    作者:伏熊(专业:射频芯片设计、雷达系统、嵌入式。欢迎大家项目合作交流。)
    微信:GuoFengDianZi

    展开全文
  • m 文件用于计算半波和全整流正弦信号的频谱。
  • 摘要:提出了一种新的基于滑模控制的正弦波逆变器。该逆变器采用了两组对称的Buck电路,并利用滑模控制对系统参变量变化和外部扰动的不敏感性及鲁棒性。该逆变器能获得一个较为理想的正弦输出电压。给出了电路的工作...
  • STM32H750运用TIME和DMA传输,DAC输出双路可调相位差的正弦波发生器STM32CUBEMX生成MDK5编译
  • 怎样很好的恢复一个正弦波信号很多时候需要去产生一个正弦波信号,比如步进电机的多细分控制。一般的,会用到DAC。这里有一个问题,用DAC去输出一个个离散数值来拟合正弦波的时候,DAC的有效位数对拟合出的正弦波...

    怎样很好的恢复一个正弦波信号

    很多时候需要去产生一个正弦波信号,比如步进电机的多细分控制。一般的,会用到DAC。这里有一个问题,用DAC去输出一个个离散数值来拟合正弦波的时候,DAC的有效位数对拟合出的正弦波精度有多大影响呢?或者说,要用多少位的DAC才能很好的拟合出所要的正弦波?(这里说的是有效位数,也就忽略了DAC器件本身的特性,认为DAC是理想元件)

    很多年以前王小Q在做步进细分的时候就有这样一个疑问,当时年纪小,做事情不求甚解,最近又要搞一次,决定把这个问题彻底搞清楚。

    使用DAC输出离散数值拟合正弦波,是一种等时间间隔的波形恢复方式。被恢复正弦波的幅度可以依靠DAC的参考REF以及后级信号放大电路来调节,被恢复正弦波的频率可以通过改变DAC的频率来调节,为方便分析,对正弦波的幅度归一化用“1”,而对频率不予考虑。同样为简单起见,规定正弦波半波幅度被分成2N份。

    举个实际的栗子,细分芯片A3967可以按照如下图1所示对一个完整正弦波等时间均匀的分成4个2N等份,N=2,(这个叫做步进驱动的2N=4细分),其中,半波幅度被分成38.3%、70.7%、100%几个值,很显然,用一个N=2位的DAC不能很好的拟合出这样一个16等分的正弦波,因为即使不必考虑正负,2位DAC的最小分辨幅度只有1/2^2=25%,用几个整数倍的25%能拟合出38.3%和70.7%呢?很显然不行。

    22b92fb1df5ed7a6b6ecc63a59b091fc.png

    图1 A3967对步进驱动的一种细分方式

    通过简单的实例的分析,可以对问题进一步提炼一下:假设对一个正弦波进行等时间间隔的分割,分为4*2N份,其中半波幅度被分为2N份,那么,要求正弦波的幅度方向上应该有至少多少位的分辨率,才能使正弦波具有很好的还原度?

    要使被恢复正弦波不失真,那么需要在每一个采样时刻的幅度都能被DAC的输出序列所覆盖。被恢复正弦波的1/4周期被分成了2N份,那么这1/4周期的幅度就是

    e9525178228355e6483b104e2387f391.png

    而对于一个具有M位有效位的DAC来说,其能输出的幅度序列为

    ea8080634b82cb312817d113c2ec8d65.png

    于是问题可以进一步转变为:M的值最小取多少,才能使得数组①:

    9d60543b5d5c493d22e31685a35a8384.png

    中的每一个值都能在数组②:

    24919e058ff6f17bf9cf4d7f03e982e9.png

    中被找到呢?

    这似乎是一个比较容易理清思路的计算查找问题,考虑到工程应用中N的值取8以下比较常见,而实际DAC器件的有效位数也不会超过20,也就是说M<=20,于是,可以带入N=8,先求出第一个数组,然后枚举M= 9~20时的第二个数组,查找第一个数组中每一个元素是否在第二个数组中。考虑到工程应用上也不会对数值有100%相等的要求,所以比较时可以增加一个误差系数……

    于是王小Q兴奋的下载了C语言编译器,在试过3个不同版本后才终于能让编译器稳定运行,然后又是一通的百度语句语法+敲代码+调试,发现,不出结果,闪退,真是一顿操作猛如虎,回头一看原地杵。经过对语句的调试分析,发现似乎是编译器处理超长双精度浮点数组的时候出问题了。呃,王小Q生无可恋的拿过草纸,呆呆地看着上面写的两个数组,想了想,这似乎还是一个最大公约数的问题,也就是数组①的最大公约数是多少,这个最大公约数应该是数组②中最小的数。用计算机求解两个数的最大公约数是一个在学习编程阶段很初级的问题,但是求解这么多数的最大公约数,不管用哪种算法,都会使程序占用大量的计算和存储资源,王小Q想了想恐怖的n!问题,觉得还是算了吧……

    隔了很多天以后(国庆),王小Q再次回到这个问题上,过了个假期脑袋迟钝了,还是先画画图,于是打开visio,用小方格来还原正弦波,没成想,灵感又有了。

    51abf94ea4f9e024009d882f6925dbe0.png

    图2 用小长方形去还原正弦波

    从图上可以把这个问题简化成,用一系列小长方形去还原正弦波,长方形的高H设置为是长度L的多少,能使得还原出的正弦波与理想正弦波非常接近。

    仔细观察小方格还原出正弦波的波峰/波谷和过零点位置,可以得出一个结论:波峰/波谷处,也就是幅度变化率(导数)最小的位置,应该是进行波形恢复时最应该关注的地方,如果能把峰/谷处的最小变化幅度区分开,由于正弦波波形变化率在半波范围内的单调性,那么其他位置处的幅度都将被很好的表示出来。也就是要用

    y=1/2^M

    能把

    b88c7057b15d50127c34541318ee0db8.png

    比较准确的表示出来。什么叫做“比较准确的表示出来”呢?不难发现应该需要满足y,上限应该是y = x/2,那么下限呢?应该是没有的,越小越好嘛,但是不能这么办,工程师是要抓狂的。设定一个系数δ来表示y/x,理想的δ取值在0~50%之间。于是王小Q把N=8带入,在δ不同条件下求得M的值,得到表1中的数据。

    表1

    N=8,

    δ=

    M=

    50%

    17

    40%、30%

    18

    20%、10%

    19

    万万没想到竟然要这么高的位数,这要是对应DAC位数的话,还要再加一位,还是有效值,王小Q看着结果有点惊讶了。于是把正弦波分割数减小一点,改为N=7和N=6分别计算结果如下表2表3所示。

    表2

    N=7,

    δ=

    M=

    60%、50%

    15

    40%、30%

    16

    20%

    17

    10%

    18

    表3

    N=6,

    δ=

    M=

    90%~60%

    12

    50%

    13

    40%、30%

    14

    20%

    15

    10%

    16

    看来即使细分数少很多,仍然需要很多位数的啊,并且还是有效位数,而且这还只是一种近似的粗略算法,看到这样的结果,突然就觉得搞的细分他就不香了。想想之前用12位DAC做的256细分控制,虽然宏观上看着波形挺好的,但从上面的分析可以看出,那时的峰谷一定是梯形的。

    虽然这样,考虑到使用要求,考虑到红红绿绿的毛爷爷,还是继续用12位的去细分吧,这也叫做,看清了XX的真相,依然热爱XX吧。

    能仔细探究一个问题,搞明白了,还是很开心的。最后违心的说一句,我爱工作,工作使我快乐。

    展开全文
  • 波整流器 Matlab 代码,用于 5 个周期的正弦波,可以稍微修改代码以获得或多或少的周期数。
  • matlab正弦波削顶波整流

    千次阅读 2018-11-11 09:46:22
    削顶发生在每个周期的[60度,120度]之间。 t=linspace(0,3*pi,500);y=sin(t); z1=((t&lt;pi)|(t&gt;2*pi)).*y; w=(t&gt;pi/3&amp;t&lt;2*pi/3)+(t&...subplot(4,1,1),plot...

    削顶发生在每个周期的[60度,120度]之间。

    t=linspace(0,3*pi,500);y=sin(t);
    z1=((t<pi)|(t>2*pi)).*y;
    w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);
    wn=~w;
    z2=w*sin(pi/3)+wn.*z1;
    subplot(4,1,1),plot(t,y,':r'),axis([0,10,-1.5,1.5])
    ylabel('y'),grid on;
    subplot(4,1,2),plot(t,z1,':r'),axis([0,10,-0.2,1.5]),ylabel('z1')
    subplot(4,1,3),plot(t,wn,':r'),axis([0,10,-0.2,1.5]),ylabel('wn')
    subplot(4,1,4),plot(t,z2,'-b'),axis([0,10,-0.2,1.5]),ylabel('z2')

     

    展开全文
  • 将方波变为正弦波,脉宽调制,低通滤波器,PWA,单频率低通滤波器。
  • 电压检测:对50Hz的正弦电压的正半波进行AD转换,要求个周期内转换 50 个点的值,并求出50 个点的平均值和有效值,并通过LCD显示和通过串口传到PC机的串口助手上。 50HZ 20ms 10ms半波 半波一次性采集50个点 间隔...

    *4.电压检测:对50Hz的正弦电压的正半波进行AD转换,要求半个周期内转换 50 个点的值,并求出50 个点的平均值和有效值,并通过LCD显示和通过串口传到PC机的串口助手上。

    50HZ 20ms 10ms半波 半波一次性采集50个点 间隔0.2ms
    但是ADC采集速度最快也要0.5ms。

    第一次解决方案:每20.2ms采集一次。会遇到单片机中断时间不是那么契合。采集50个点。观察下图,发现40个点才是一个周期。
    在这里插入图片描述
    第二次解决方案:改成采集40个点就计算一次就好了。从原始数据看来,也的确是40个点一个周期。
    在这里插入图片描述
    第三次解决方案:契合题目的50个点,契合办法就是一点一点改变定时器中断时间点,使得采集50个点是能行成一个周期。

    matlab

    hello_yuan=[  2 6 2 4 6 2 2 4 5 6 8 10 11 13 15 17 19 21 24 24 28 31 33 33 37 37 39 39 45 42 47 47 49 46 48 48 50 51 51 51 51 50 50 49 49 17 13 14 7 3 9 6 4 3 1 3 4 6 6 10 9 13 14 17 22 21 24 28 28 29 34 34 38 38 41 41 42 42 45 45 49 49 50 51 51 52 51 52 51 52 52 51 50 50 48 14 6 8 2 6 5 1 3 3 5 6 10 12 14 15 19 22 24 23 27 31 30 34 37 38 41 39 43 43 45 46 48 50 50 52 53 53 53 54 54 55 54 54 54 52 52 51 50 48 48 6 5 2 4 6 8 10 12 13 15 20 22 22 24 28 30 33 36 36 39 40 43 44 47 47 48 50 51 53 53 54 55 56 56 58 57 56 57 56 55 54 53 53 53 55 49 51 47 47 42 2 3 5 8 7 10 15 16 15 18 20 22 24 29 31 34 34 36 38 42 44 45 46 49 50 53 53 56 55 57 58 58 59 60 60 59 60 59 59 59 59 55 54 56 55 50 48 43 47 43 4 6 7 10 12 12 14 15 17 17 25 27 29 31 34 36 38 40 43 45 46 49 50 52 54 56 57 58 59 59 61 60 63 60 62 62 61 61 59 60 57 55 57 56 49 49 49 43 42 44 4 2 2 5 4 5 12 15 18 12 19 21 23 26 28 31 33 35 38 40 43 45 47 49 52 53 53 57 58 59 60 60 63 62 63 63 63 63 63 63 63 59 56 56 61 51 57 54 53 52 1 1 1 4 8 7 8 9 13 14 16 19 22 24 26 30 31 33 36 39 42 44 47 49 51 53 54 56 57 58 63 63 62 63 63 63 63 63 62 62 63 63 63 61 63 55 53 54 51 48 1 10 1 3 4 6 10 13 12 15 19 19 21 25 27 29 32 34 37 40 42 44 46 49 52 54 54 58 60 61 61 63 57 61 60 63 63 63 63 62 63 63 63 60 60 57 56 55 52 50 0 62 18 17 16 14 10 8 6 4 1 1 5 3 7 9 9 13 15 15 17 21 20 26 26 29 33 34 36 38 40 45 44 46 48 49 50 52 53 55 56 56 57 58 59 60 58 60 59 57 56 57 16 12 11 5 6 3 2 1 3 7 8 9 9 12 17 19 20 23 24 27 30 28 31 36 37 41 40 43 44 46 48 49 51 52 53 55 56 56 57 56 57 56 56 56 55 55 54 53 52 50 4 2 4 1 6 8 9 14 12 17 16 18 21 23 24 30 32 30 34 36 40 39 41 45 45 47 47 49 51 51 52 54 54 55 54 55 54 54 54 54 51 53 50 50 48 46 45 44 43 43 1 3 4 7 8 10 12 16 17 20 22 25 23 29 31 31 33 34 39 41 44 43 45 44 48 49 50 50 51 52 52 52 53 51 52 52 52 51 51 49 49 48 47 46 43 41 39 37 37 36 1 4 4 6 8 9 11 14 17 19 22 22 24 29 31 31 32 34 38 39 38 44 41 47 48 49 47 49 50 51 50 51 51 51 51 51 49 50 48 48 47 46 44 43 41 40 39 36 34 32 1 3 5 6 8 8 11 12 15 18 20 21 24 28 29 30 34 36 34 39 38 40 44 45 46 48 45 49 50 47 48 49 51 51 50 49 49 49 48 49 46 45 43 43 41 40 37 35 35 31 1 1 1 4 5 7 9 10 11 14 16 18 19 22 24 27 28 30 33 35 35 37 37 40 40 46 46 44 49 49 49 49 49 49 51 48 48 48 48 47 46 45 45 43 42 40 38 37 36 35 1 3 1 2 6 7 7 8 10 11 14 15 17 19 21 23 26 26 30 32 34 36 45 44 43 43 42 46 48 48 48 50 48 50 51 47 50 48 48 49 47 47 45 44 44 41 41 38 37 36 2 4 2 1 3 4 5 7 8 9 11 14 15 16 18 21 22 23 26 27 29 32 33 35 38 39 43 41 45 46 44 48 49 49 50 50 49 50 46 49 47 47 47 46 45 43 43 41 38 38 1 2 1 2 4 9 9 6 8 12 13 16 16 19 20 21 23 25 27 28 33 34 35 35 38 39 43 41 42 45 45 48 49 49 53 53 52 51 51 47 49 47 47 46 47 46 43 40 39 38 3 3 2 2 2 5 2 4 3 6 9 9 11 13 13 16 18 20 23 23 25 27 29 30 33 36 39 37 40 44 42 44 46 48 49 47 48 47 50 48 49 46 46 48 47 46 44 44 42 42 5 1 1 1 1 1 1 3 3 6 7 9 10 12 15 16 17 18 24 23 25 27 29 31 33 37 38 41 41 42 43 46 47 47 49 47 48 48 46 50 47 50 48 46 46 46 45 44 42 42 2 2 1 1 1 2 2 4 6 8 9 10 13 14 16 18 20 22 24 26 27 30 31 34 36 38 37 43 45 44 44 43 47 47 50 53 48 50 52 49 48 48 48 46 46 48 46 45 44 42 7 4 1 9 5 6 1 2 2 4 6 6 8 9 11 13 13 13 17 20 18 21 22 24 26 29 29 34 38 39 40 39 39 44 45 47 48 44 50 52 52 53 50 48 50 50 49 49 47 46 15 12 43 62 63 63 63 60 60 57 56 55 52 50
    
    ];
    hello=hello_yuan(4:53)
    mean(hello)*5/64
    rms(hello)*5/64
    plot(hello_yuan)
    
    
    展开全文
  • O-QPSK(差分四相移键控) 正玄脉冲成型 half-sine pulse shape 蒙特卡洛仿真
  • 鉴于上次传的只有Verilog代码,怕对于像半年前的我一样的初学者仍然会遇到很大困难,现特把本人课程设计的整个Quartus工程文件一并上传,希望有用。用时只需用Quartus打开工程文件即可编译运行,频率可达16M没问题。
  • 而由于模拟信号连续而数字信号是离散的,所以使用 DAC 产生正弦波时,只能按一定时间间隔输出正弦曲线上的点,在该时间段内输出相同的电压值,若缩短时间间隔,提高单个周期内的输出点数,可以得到逼近连续正弦波的...
  • 正弦波脉冲宽度调制

    2014-12-03 10:54:06
    随着SPWM技术发展,已研制出多种特性各异的SPWM控制方案,但大多数SPWM控制方案仍采用基于通讯调制技术的PWM基本调制规则。
  • 低通滤波与RC振荡产生正弦波

    千次阅读 2021-02-24 23:40:59
    对于方波、三角波都可以通过滤波的方式滤正弦波,本文将讲述如何使用有源低通滤波让方波和三角波变成正弦波,除此之外还会在后部分分析RC振荡电路。 RC正弦波振荡电路有四个基本组成部分:放大电路、正反馈网络、...
  • 正弦波的负周,参考矩形面积为负,解释与正周类似。 目前为止,我们知道:通过控制逆变器开关的开通与关断,可以输出窄矩形脉冲;再利用面积等效原理,当 较小时,窄矩形脉冲可以逼近正弦波。 现在我们面临...
  • 用的是持续电平驱动,这种驱动方式电机的噪音大,震动明显,下面介绍正弦波驱动方式,这种方式能很好的解决噪音和震动问题。 首先需要准备下stm32的正弦波PWM表,可以用EXCEL生成。 配置单片机定时器的PWM输出。...
  • STM32 正弦波输出

    千次阅读 2020-09-10 11:23:31
    要输出正弦波,需要好几个外设配合:Timer、DAC、DMA。TImer用来设置正弦波的频率的;DAC顾名思义将数字量转换成模拟量,在这里就是转化成电压信号;DMA直接控制DAC输出,而不用麻烦芯片内核。 下面讲讲它们之间...
  • “在之前的文章中曾经介绍过用TIM产生PWM做DAC用,STM32定时器输出PWM做DAC。部分型号的STM32单片机内部有专用的DAC,本篇文章将介绍如何用内部DAC+DMA产生正弦波...
  • FPGA 实现 DDS 正弦波、方波、三角波发生器 Verilog 程序(已验证)Quartus工程文件。 鉴于上次传的只有Verilog代码,怕对于像半年前的我一样的初学者仍然会遇到很大困难,现特把本人课程设计的整个Quartus工程文件...
  • 关于一个正弦波程序表格生成器 首先附上代码----先声明,我是个抓不到钱的菜鸟,开始再这里分享我的成长。 import math import time fp = "正弦波表格.txt" def sintab_create(tableIndex,tablelength,highVol,...
  • 测量所产生正弦信号的失真度,正弦波失真度可以定义为全部谐波电压的有效值与基波电压的有效值之比并以百分数表示: 测量系统框架如下所示: 利用STM32的DSP库中的FFT算法,获得基波和各谐波分量的电压,从而计算...
  • SPWM正弦波计算函数

    2011-08-26 14:34:13
    spwm正弦波代码生成程序,用于Spwm计算,只需输入采样点数就可以还得各点的值
  • STM32——DAC生成正弦波

    千次阅读 2020-05-04 11:16:59
    DAC生成正弦波原理分析
  • 改变单片机的DAC输出电压,可以得到需要的电压波形输出,下面介绍正弦波所需的DAC数据是如何计算的。  首先既然是正弦波,那么就要确定输出一个周期正弦波的采样点数point,即由多少点组成了一周期的正弦波,还要知道...
  • 一、题目要求: 1、使用555做出脉冲方波 2、使用TL084运放做出方波和锯齿波 3、使用TLM314稳压做直流偏置 4、方波要求峰峰值为1V,正弦波要求峰值为0~2V,锯齿波要求峰峰值为1V。 二、解题流程 1、使用555做出脉冲方...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,726
精华内容 1,890
关键字:

半正弦波