文档

这是机器翻译

翻译的微软
鼠标悬停文本以查看原文。点击下面的按钮,返回该页面的英文版本。

注:本页已翻译由MathWorks请点击这里
若要查看包括本页在内的所有翻译资料,请从本页底部的国家导航器中选择日本。

用测试台发生器对有噪声正弦波信号的滤波帧

这个例子展示了如何使用流测试台生成器应用程序来生成DSP算法测试台。本例中生成的DSP算法与噪声正弦波信号的MATLAB滤波框架的例子。该示例使用FIR低通滤波器对有噪声的正弦波信号进行滤波,并使用频谱分析仪显示功率谱。

流测试工作台生成器示例应用程序

流测试台生成器应用程序通过使您能够快速生成测试台,帮助您开发和测试流信号处理算法。要启动Testbench Generator,输入testbenchGeneratorExampleApp在MATLAB命令提示符。该命令启动一个接口,通过该接口可以:

  1. 选择一组来源而且

  2. 输入自定义的函数名用户的算法

  3. 定制每个添加的源和汇的属性。

每个源都被视为算法的单独输入,但可以将多个接收器与算法的相同输出关联起来。

testbenchGeneratorExampleApp

输入-正弦波和白噪声

默认情况下,测试台发生器选择双通道正弦波源和高斯白噪声源。正弦波源的两个通道的频率分别为1khz和10khz。采样频率为44.1 kHz。高斯白噪声输入的均值为0,标准差为0.1。数据在1024个样本帧中处理。若要添加更多源代码,请使用下面的列表向上面的输入列表中添加一个新源选择一个受支持的源。金宝app或者,也可以通过选择添加自定义System对象源自定义系统对象从列表中单击添加.添加的源出现在输入列表中。

添加源后,可以选中源,单击配置更改所选源的属性。

用户算法-低通滤波器

默认用户算法dspStreamingPassthrough是一个泛型函数它只将输入传递给输出。本例中使用的用户算法是一个更有意义的函数hTestbenchLowpass.您可以通过输入查看此函数的代码

编辑hTestbenchLowpass

在MATLAB命令提示符。hTestbenchLowpass接受两个输入,低通滤波这两个输入的和,并返回滤波后的信号。它采用了截止频率为5khz的受限等纹波FIR滤波器设计。通带和阻带的波纹分别为0.05和0.001。使用以下方法执行过滤dsp。FIRFilter,它针对流媒体进行了优化。

类型hTestbenchLowpass在用户算法文本框中替换默认值dspStreamingPassthrough.或者,您可以通过输入打开一个新的测试工作台生成器会话testbenchGeneratorExampleApp(“hTestbenchLowpass”)在MATLAB命令提示符。

输出

输出功率谱显示在dBm的频谱分析仪上。您可以添加更多的接收器来可视化或后处理输出。与输入类似,您可以使用下面的列表在上面的输出列表中添加一个新的接收器要添加一个新的接收器,单击配置修改所选接收器的属性。

您可以将来自用户算法的单个输出与一个或多个接收器相关联。例如,您可以使用时间范围和频谱分析仪可视化相同的输出信号。要做到这一点,需要添加所需的接收器,并通过更改用户算法下的值,确保将所有接收器与所需的输出相关联将所选接收器与列表。

生成代码和模拟

中添加和配置源和汇并输入函数名之后用户的算法文本框中,测试台生成器已准备好生成测试台的MATLAB代码。要生成代码,请单击生成MATLAB代码按钮。MATLAB编辑器中会打开一个新的无标题文档,其中包含生成的测试台代码。

您可以在执行生成的代码之前编辑它以自定义它。对于默认示例,生成的代码如下所示。执行这个测试台代码,您可以在频谱分析仪中看到源信号中高于4khz的频率被衰减了。产生的信号保持在1khz的峰值,因为1khz落在低通滤波器的通带内。

流测试台脚本%由流测试台生成器生成%初始化numIterations = 10000;%构造源(用于所有输入)src1 = dsp。SineWave (“频率”(1000 10000),...“SampleRate”, 44100,...“SamplesPerFrame”, 1024);%构建接收器(用于所有输出)sink1 = dsp。简介(“SampleRate”, 44100,...“PlotAsTwoSidedSpectrum”假的,...“ShowLegend”,真正的);流处理循环清晰的hTestbenchLowpass我= 1:numIterations%的来源in1 = src1 ();in2 = 0.1 * randn (1024 2);%的用户算法着干活= hTestbenchLowpass (in1, in2);%下沉sink1(着干活);结束%清理释放(src1);释放(sink1);

在测试台生成器中有更多的自定义

测试工作台生成器提供了额外的顶级自定义,您可以使用Testbench发生器设置对话框。要打开此对话框,请选择>测试台生成器设置…

您还可以在测试台执行期间调优算法中使用的一些参数。使用参数调优UI,检查使参数调优下面的复选框用户的算法并点击编辑参数表在生成测试台代码之前添加可调参数的详细信息。另外,确保您的用户算法在执行期间处理参数调优。参见MATLAB代码hTestbenchVariableBandwithFIR下面是如何使用户算法与参数调优一起工作的示例。

这个话题有帮助吗?