信号可视化和测量在MATLAB

这个例子展示了如何可视化和使用时间范围和频谱分析仪在MATLAB中的时间和频率域测量信号。

信号可视化在时间和频域

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

SampPerFrame = 1000;FS = 1000;SW = dsp.SineWave(“频率”,100,...'采样率',FS,“SamplesPerFrame”,SampPerFrame);TS = dsp.TimeScope('采样率',FS,'时间跨度',0.1%,...“YLimits”(2,2),“ShowGrid”,真正的);SA = dsp.SpectrumAnalyzer ('采样率'Fs);抽搐;TOC <5 sigData = SW()+ 0.05 * randn(SampPerFrame,1);TS(sigData);SA(sigData);结束

时域测量

使用时间范围,您可以进行许多信号测量。

可采用以下测量方法:

  • 光标测量- 使屏幕上的所有范围显示光标。

  • 信号的统计数据-显示所选信号的最大值、最小值、峰峰差、平均值、中值、均方根值,以及最大值和最小值出现的时间。

  • 双层测量-显示有关所选信号的过渡、过冲或过冲和周期的信息。

  • 峰仪- 显示最大值和所述次在它们发生。

您可以启用,并从时间范围工具栏或禁用这些测量工具>测量菜单。

为了说明使用在时间范围测量,模拟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)));

显示信号在时间范围和使用峰值探测器,光标和信号统计测量。假设采样率为4khz。

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

峰值测量

启用峰值测量通过点击对应的图标的工具栏或通过点击工具>测量>峰值搜索菜单项。点击设置在峰值查找面板中展开“设置”窗格。输入10对于最大峰数然后按Enter键。的时间范围显示在峰窗格10个的峰值振幅值和它们出现在该时间的列表。

有的每次心跳之间0.675秒恒定时间差。因此,ECG信号的心脏速率由下式给出:

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

光标测量

启用光标测量通过点击对应的图标的工具栏或通过点击工具>测量>光标测量菜单项。游标测量面板将在时间范围内打开并显示两个游标。您可以拖动游标并使用它们来测量波形中事件之间的时间间隔。下图中,游标用来测量心电波形中各峰值之间的时间间隔。的$ \δT $在光标测量面板测量表明,两个峰之间的时间间隔是相应于1.482赫兹或88.9次/分的心脏速率0.675秒。

信号的统计数据双层测量

你也可以选择信号的统计数据双层测量工具>测量菜单。信号统计可以用来确定象峰 - 峰值,均值,中位数和有效值信号的最小值和最大值,以及其他指标。双层测量可以被用来确定关于转换的上升和下降,过渡像差,过冲和下冲的信息,脉冲宽度和占空比信息。要了解更多关于这些测量,看时间测量范围教程的例子。

频域测量

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

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

  • 光标测量- 频谱显示的地方光标。

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

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

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

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

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

变形测量

为了说明与频谱分析仪中使用的测量值,创建在48kHz与加性高斯白噪声采样的2.5 kHz正弦波。评价在各信号值进行建模的非线性失真的高次多项式(第九度)。显示在频谱分析仪的信号。

FS = 48e3;SW = dsp.SineWave(“频率”,2500,...'采样率',FS,“SamplesPerFrame”,SampPerFrame);SA_Distortion = dsp.SpectrumAnalyzer('采样率',FS,...“PlotAsTwoSidedSpectrum”、假);y = [1e-6 1e-9 1e-5 1e-9 1e-6 5e-8 5e-3 1e-6 1 3e-3];抽搐;TOC <5×= SW()+ 1E-8 * randn(SampPerFrame,1);sigData = polyval(Y,X);SA_Distortion(sigData);结束清晰的SA_Distortion;

通过单击工具栏中相应的图标或单击工具>测量>失真测量菜单项。在失真测量,更改值Num谐波。9,检查标签谐波复选框。在面板中,您可以看到接近2500hz和8次谐波的基频值,以及它们的信噪比、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.SpectrumAnalyzer ('采样率',FS,“PlotAsTwoSidedSpectrum”、假);抽搐;toc < 5 sigData = SW1() + SW2() + SW3() + 1e-4*randn(SampPerFrame,1);SA_Peak (sigData);结束清晰的SA_Peak;

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

要了解更多关于使用测量频谱分析仪,看频谱分析仪测量的例子。