主要内容

验证冷杉过滤胳膊在MATLAB Cortex-A处理器

这个例子展示了如何使用代码替换库(CRL)手臂Cortex-A™处理器和DSP系统对象。这个例子使用一个dsp。FIRFilter系统对象来过滤两个不同频率的正弦波。

任务1:设置和模拟

1。打开ex_fir_ne10_tut_ml例子函数,实现了一个低通滤波器对象。

2。创建两个正弦波信号1 khz和3千赫频率,分别。

sin1 = dsp.SineWave (“振幅”,1“频率”,1000,“SampleRate”,8000,“SamplesPerFrame”,76,“OutputDataType”,“单一”);sin2 = dsp.SineWave (“振幅”4“频率”,3000,“SampleRate”,8000,“SamplesPerFrame”,76,“OutputDataType”,“单一”);

3所示。创建一个频谱分析仪来查看输入和过滤输出的频谱。

范围= dsp.SpectrumAnalyzer (“SampleRate”,8 e3,“ShowLegend”,真的,“PlotAsTwoSidedSpectrum”假的,“RBWSource”,“属性”,“RBW”,8000/260,“窗口”,“皇帝”,“OverlapPercent”,80,“YLimits”,56 [-76],“SpectralAverages”10);

4所示。模拟的例子

NN = 2000;k = 1: NN x1k = sin1 ();%生成1 k赫兹正弦波x3k = sin2 ();%生成3 k赫兹正弦波n1 = randn(大小(x1k),“单一”)* sqrt (. 05);%产生噪声信号u1 = x1k + x3k + n1;日元= ex_fir_ne10_tut_ml (u1);范围([u1, y1]);结束

任务2:配置代码替换

1。创建一个代码生成配置对象使用codegen当生成C / c++静态库。

cfgEx = coder.config (“自由”);cfgEx。CodeReplacementLibrary =“胳膊Cortex-A”;cfgEx.HardwareImplementation。ProdHWDeviceType =“胳膊兼容- >手臂皮层”;cfgEx。GenCodeOnly = true;

2。打开自定义代码面板的配置对话框和验证设置。

cfgEx.dialog

任务3:生成代码

1。改变你的当前文件夹在MATLAB临时写的文件夹。将MATLAB文件复制到临时文件夹。

tempdirObj = armcortexadstexample.dstTempdir (“ex_fir_ne10_tut_ml_workflow”);dstarmsrc = (“ex_fir_ne10_tut_ml”);dstarmtmpdir = tempdirObj.tempDir;类型(fullfile (dstarmsrc))复制文件(dstarmsrc dstarmtmpdir,“f”);
函数日元= ex_fir_ne10_tut_ml (u1) % 2014 - 2016版权MathWorks, Inc . % # codegen持久冷杉;如果isempty(杉木)冷杉= dsp。FIRFilter(“分子”,fir1 (63, 0.33));结束日元=冷杉(u1);结束

2。为MATLAB函数生成C代码ex_fir_ne10_tut_ml.m

codegenex_fir_ne10_tut_mlarg游戏单(u1)配置cfgEx报告

3所示。当代码生成成功完成,点击查看报告显示代码生成报告。

4所示。单击ex_fir_ne10_tut_ml。c文件。注意到NE10功能,ne10_fir_init_floatne10_fir_float_neon在ex_fir_ne10_tut_ml函数。

任务4:验证生成的C代码

生成的代码可以编译和执行在手臂Cortex-A目标通过使用用户选择的工具链。

运行下面的代码来删除临时目录。

状态= tempdirObj.cleanUp;
armcortexadstexample.displayDSPARMEndOfDemoMessage (mfilename)