MATLAB / Simulink 中的交流耦合
AC coupling in MATLAB / Simulink
我一直在尝试使用 Simulink 对示波器(包括 DSP)进行建模。我还是新手,所以如果以下问题太简单,请原谅我:如何在使用模拟信号时在 Simulink 中实现交流耦合(去除直流分量)?我知道有一个直流阻断器,但它只接受离散信号,我想稍后用不完美的 ADC 离散化我的信号。
我正在尝试使用 MATLAB 函数进行交流耦合,但我找不到使用从函数声明中获得的现有模拟信号的方法。相反,所有 MATLAB 纪录片似乎都希望我在计算机上使用模拟设备 (https://mathworks.com/help/daq/analog-data-acquisition.html)。
感谢您的任何努力and/or建议! :)
如果您想使用 matlab AC Coupling 函数,请尝试使用 Matlab 功能块:https://fr.mathworks.com/help/simulink/ug/creating-an-example-model-that-uses-a-matlab-function-block.html。您可以像使用任何 matlab 函数一样使用它,即 function [out1, out2] = my_function(in1)
但它将在 simulink 块中定义。
我认为使用 Matlab Function Block 行不通,因为您需要保持状态。要模拟交流耦合,我相信您需要创建一个高通滤波器。这会从信号中去除直流电,使波形以零为中心。拐角频率通常需要非常低,这样被测波形才不会失真。您可以在没有任何特殊工具箱的情况下构建它。您只需要一个积分器块、增益块和一些求和块。
示例如下:
此示例在 1 秒处对波形应用直流阶跃。下图提供输出
在上图(输入)中,偏移量保留,但在下图(输出)中,偏移量被移除。
我一直在尝试使用 Simulink 对示波器(包括 DSP)进行建模。我还是新手,所以如果以下问题太简单,请原谅我:如何在使用模拟信号时在 Simulink 中实现交流耦合(去除直流分量)?我知道有一个直流阻断器,但它只接受离散信号,我想稍后用不完美的 ADC 离散化我的信号。
我正在尝试使用 MATLAB 函数进行交流耦合,但我找不到使用从函数声明中获得的现有模拟信号的方法。相反,所有 MATLAB 纪录片似乎都希望我在计算机上使用模拟设备 (https://mathworks.com/help/daq/analog-data-acquisition.html)。
感谢您的任何努力and/or建议! :)
如果您想使用 matlab AC Coupling 函数,请尝试使用 Matlab 功能块:https://fr.mathworks.com/help/simulink/ug/creating-an-example-model-that-uses-a-matlab-function-block.html。您可以像使用任何 matlab 函数一样使用它,即 function [out1, out2] = my_function(in1)
但它将在 simulink 块中定义。
我认为使用 Matlab Function Block 行不通,因为您需要保持状态。要模拟交流耦合,我相信您需要创建一个高通滤波器。这会从信号中去除直流电,使波形以零为中心。拐角频率通常需要非常低,这样被测波形才不会失真。您可以在没有任何特殊工具箱的情况下构建它。您只需要一个积分器块、增益块和一些求和块。
示例如下:
此示例在 1 秒处对波形应用直流阶跃。下图提供输出
在上图(输入)中,偏移量保留,但在下图(输出)中,偏移量被移除。