这个例子展示了如何使用代码替换库(CRL)手臂Cortex-A™处理器和DSP系统对象。这个例子使用一个dsp。FIRFilter系统对象来过滤两个不同频率的正弦波。
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]);结束
1。创建一个代码生成配置对象使用codegen当生成C / c++静态库。
cfgEx = coder.config (“自由”);cfgEx。CodeReplacementLibrary =“胳膊Cortex-A”;cfgEx.HardwareImplementation。ProdHWDeviceType =“胳膊兼容- >手臂皮层”;cfgEx。GenCodeOnly = true;
2。打开自定义代码面板的配置对话框和验证设置。
cfgEx.dialog
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_float和ne10_fir_float_neon在ex_fir_ne10_tut_ml函数。
生成的代码可以编译和执行在手臂Cortex-A目标通过使用用户选择的工具链。
运行下面的代码来删除临时目录。
状态= tempdirObj.cleanUp;
armcortexadstexample.displayDSPARMEndOfDemoMessage (mfilename)