主要内容

MATLAB中的信号可视化和测量

此示例显示了如何使用时间范围和频谱分析仪在Matlab中的时间和频域中可视化和测量信号。

信号可视化在时间和频域中

创建一个正弦波,其频率为100 Hz,以1000 Hz采样。生成五秒钟的100 Hz正弦波,添加添加剂美元$ N (0, - 0.0025)白噪声以一秒间隔。将信号发送到时间范围和频谱分析仪以显示和测量。

Sampperframe = 1000;FS = 1000;sw = dsp.sinewave(“频率”, 100,......'采样率',fs,“SamplesPerFrame”, SampPerFrame);ts = timescope('采样率',fs,“TimeSpanSource”'财产'......'时间跨度',0.1,“YLimits”(2, 2),“ShowGrid”,真正的);SA = dsp。简介('采样率'Fs);抽搐;toc <5 sigdata = sw()+ 0.05 * randn(Sampperframe,1);sa(sigdata);Ts(sigdata);结尾发布(TS)发布(SA)

时域测量

使用时间范围,你可以做一些信号测量。

可用的测量方法如下:

  • 光标测量- 将屏幕光标放在所有范围显示器上。

  • 信号的统计数据-显示最大,最小,峰值到峰值的差异,平均值,中值,均方根值的选择信号,以及在时间的最大值和最小值发生。

  • Bilevel测量-显示有关选定信号的转换、畸变和周期的信息。

  • 峰仪- 显示最大值和它们发生的时间。

中启用和禁用这些度量测量选项卡。

为了说明在时间范围内使用测量值,模拟ECG信号。使用心电图函数生成2700个样本信号。使用Savitzky-Golay滤波器平滑信号,并定期延长数据,获得大约11个周期。

x = 3.5 *心电图(2700)。';Y = repmat(sgolayfilt(x,0,21),[1 13]);sigData = y((1:30000) + round(2700*rand(1))).';

在时间范围内显示信号,并使用峰值查找器和数据光标测量。假设采样率为4 kHz。

ts_ecg = timescope('采样率',4000,......“TimeSpanSource”'汽车'“ShowGrid”,真正的);TS_ECG (sigData);TS_ECG。ylimit = [- 4,4];

峰值测量

使能够峰值测量测量选项卡,单击相应的工具条按钮。峰值窗格出现在时间范围窗口的底部。为Num山峰属性,输入8.然后按Enter键。在峰窗格中,时间范围显示8个峰值幅度值的列表以及它们发生的时间。

每个心跳之间存在0.675秒的恒定时间差。因此,ECG信号的心率由以下等式给出:

$ $ \压裂{60 \ {\ rm秒/分钟}}{0.675 \ {\ rm秒/击败}}= & # xA; 88.89 \ {\ rm胜/分钟\,(bpm)} $ $

光标测量

使能够光标测量测量选项卡,单击相应的工具条按钮。光标出现在时间范围内,带有一个框,显示两个光标之间的时间变化和值。您可以拖动光标并使用它们来测量波形中的事件之间的时间。拖动光标时,将出现光标处的值的时间。该图显示了如何使用光标测量ECG波形中峰之间的时间间隔。这$ \δT $光标盒中的测量表明,两个峰之间的时间间隔为0.675秒,对应于1.482 Hz或88.9的心率/分钟。

信号的统计数据Bilevel测量

你也可以选择信号的统计数据以及各种两层测量测量选项卡。信号统计可用于确定信号的最小值和最大值,以及其他指标,如峰到峰、平均值、中值和均方根值。双电平测量可用于确定有关上升和下降跃迁、跃迁像差、超调和欠调信息、沉降时间、脉冲宽度和占空比的信息。要阅读有关这些测量的更多信息,请参见配置时间范围matlab对象

频域测量

本节解释如何用频谱分析仪进行频域测量。

频谱分析仪提供以下测量:

  • 光标测量- 将光标放在频谱显示屏上。

  • 峰仪-显示最大值和它们发生的频率。

  • 信道测量- 显示占用带宽和ACPR通道测量。

  • 变形测量-显示谐波和互调失真测量。

  • CCDF测量-显示互补的累积分布函数测量。

您可以从频谱分析仪工具栏启用和禁用这些测量值工具>测量菜单。

变形测量

为了说明使用频谱分析仪测量的使用,使用添加白色高斯噪声,在48 kHz上采样2.5kHz的正弦波。在每个信号值下评估高阶多项式(第9度)以模拟非线性失真。在频谱分析仪中显示信号。

FS = 48E3;sw = dsp.sinewave(“频率”, 2500,......'采样率',fs,“SamplesPerFrame”, SampPerFrame);sa_distorrage = dsp.spectrumanalyzer('采样率',fs,......“PlotAsTwoSidedSpectrum”、假);Y = [1e-6 1e-9 1e-5 1e-9 1e-6 5e-8 0.5e-3 1e-6 1 3e-3];抽搐;TOC <5 x = SW()+ 1E-8 * RANDN(SAMPPerframe,1);sigdata = polyval(y,x);sa_distorstors(sigdata);结尾清晰的sa_distorart.;

单击工具栏中相应的图标或单击工具> Measurements > Distortion Measurements菜单项。在失真测量中,更改值Num谐波。到9并检查标签谐波复选框。在面板中,你可以看到基频接近2500hz和8次谐波的值以及它们的SNR, SINAD, THD和SFDR值,这是关于基频输出功率的参考。

峰仪

您可以使用峰值查找器测量对话框跟踪时变频谱分量。您可以显示和可选地标记高达100个峰值。您可以从中调用峰值查找器对话框工具>测量>峰探测器菜单项,或单击工具栏中的相应图标。

为了说明使用峰仪,产生一个频率为5,15,25 kHz,振幅分别为1,0.1,和0.01的三个正弦波之和的信号。数据以100千赫的频率采样。添加$ n(0,10 ^ { -  8})$高斯白噪声以正弦波的和和在频谱分析仪中显示单侧功率谱。

fs = 100e3;sw1 = dsp.sinewave(1e0,5e3,0,'采样率',fs,“SamplesPerFrame”, SampPerFrame);SW2 = dsp.sinewave(1e-1,15e3,0,'采样率',fs,“SamplesPerFrame”, SampPerFrame);SW3 = dsp.sinewave(1e-2,25e3,0,'采样率',fs,“SamplesPerFrame”, SampPerFrame);SA_Peak = dsp。简介('采样率',fs,“PlotAsTwoSidedSpectrum”、假);抽搐;toc < 5 sigData = SW1() + SW2() + SW3() + 1e-4*randn(SampPerFrame,1);SA_Peak (sigData);结尾清晰的sa_peak.;

启用峰仪标记三个正弦波频率。DBM中的频率值和功率显示在峰仪面板。可以增加或减少峰值的最大数量,指定最小峰值距离,并从设置窗格中的峰值查找器测量面板。

要了解更多有关使用频谱分析仪进行测量的更多信息,请参阅频谱分析仪测量的例子。