zoukankan      html  css  js  c++  java
  • 震荡信号Simulink仿真

     1. simulink仿真设计

        震荡信号本质是调制信号,可以表示为:

        u(t)=A*(1+m*cos(Ωt+θ))*cos(ωt+φ)=A*cos (ωt+φ)+ A*m*cos(Ωt+θ)*cos(ωt+φ)

        使用simulink仿真如下:

     

    2. 时域信号

    时域信号输入设计为信号调制模型。

    u(t)=A*(1+m*cos(Ωt+θ))*cos(ωt+φ)=A*cos (ωt+φ)+ A*m*cos(Ωt+θ)*cos(ωt+φ)

    输入信号1: m*cos(Ωt+θ) = 0.5*cos(2*pi*5*t), 调制深度m=0.5, 频率f=5Hz。

     

    输入信号2: A*cos(Ωt+θ) = 100*cos(2*pi*100*t), 幅值A=100, 频率f=100Hz。

     

    时域信号:

     

    图中,蓝色为相乘后的信号,最大幅度为mA=50, 粉色为叠加后的信号,可见100Hz的信号被5Hz信号调制,信号包络为5Hz。

    3. 频域信号

    对叠加后的信号进行fft变换。

    FFT输出为:

     

    中心平率100Hz,幅值100, 左右各有一个侧带波,信号频率为100±5Hz,幅值为25.

    为什么会出现这个情况?

    u(t)=A*(1+m*cos(Ωt+θ))*cos(ωt+φ)=A*cos (ωt+φ)+ A*m*cos(Ωt+θ)*cos(ωt+φ)

    积化和差公式化简后:

    u(t)=A*cos(ωt+φ)+0.5*A*m*cos((ω+Ω)t+φ+θ)+0.5*A*m*cos((ω-Ω)t+φ-θ).

    如上图,幅值为25的侧带波来源于0.5mA=0.5*0.5*100 = 25,频率是ω+Ω和ω-Ω。

    4 . 信号解调

    震荡信号会引起测量系统失效,为什么如此呢?

    简单的说,信号被调制之后,原基频信号就会以较低频率的震荡信号为包络发生震荡,而测量系统的记录时间长度有限,那么就会造成记录时间段内的波形重建之后,依然不够2倍包络波周期,从时域波形来看,就是测量系统每次计算的数据只是较长包络的一小段。

    所以需要对信号进行解调,平方解调是分析震荡信号的有效手段。对叠加后的信号进行低通滤波,排除谐波干扰,然后进行FFT计算。解析过程就是对信号u(t)进行平方,经过简单的积化和差计算,可得平方后调制波Ω出现在2倍频位置,即会出现mA2cos(Ωt+θ)因式。

     

    频域图如下:

     

    震荡信号在5Hz出,幅度为mA2=0.5*100*100 = 5000。

    而200Hz处应该为基波信号,但幅值变得很小是由于中间的滤波器缘故。

     

    滤波器设计为带通,1Hz-100Hz, 20阶IIR滤波器。

     

     完成仿真后,就可以从FDA Tool生成滤波器系数,然后用C在MCU上实现上述FFT计算和滤波过程,最终解析出震荡信号特征。

  • 相关阅读:
    用友U8远程接入客户端提示启动客户端错误
    oracle 10g 错误 ORA-01653 的解决过程
    用友 凭证引入 如何删除引入的外部凭证
    Delphi实现程序只运行一次并激活已打开的程序
    Delphi Raize的日期控件RzDateTimeEdit星期几不能正确显示的问题
    U8 提示“操作员没有查询权限或视图权限”
    数据库图片存储也读取
    Delph最简单i获取外网IP
    cxgrid 单元格合并
    cocos2d 中使用 pickerView 简单的老虎机应用
  • 原文地址:https://www.cnblogs.com/pingwen/p/6675472.html
Copyright © 2011-2022 走看看