此示例显示如何实现具有多个输入数据流的离散FIR滤波器。
在许多DSP应用中,多个数据流被同一滤波器过滤。直接解决方案是为每个通道实现单独的滤波器。您可以通过在多个通道中共享一个过滤器实现来创建更近似的区域。与用于单通道滤波器的时钟速率相比,所得到的硬件需要更快的时钟速率。
modelname =.'dspmultichannelhdl';Open_System(ModelName);
该模型包含双通道FIR滤波器。输入数据矢量包括具有不同频率的两个正弦信号流。输入数据流由低通滤波器处理,低通滤波器由模型属性指定的系数initfcn.
回调函数。
选择离散FIR筛选器块的完全并行架构,并在多个通道中启用资源共享。
systemname = [modelname'/ MultiShannel FIR筛选器'];blockname = [systemname'/离散冷冻过滤器'];set_param(blockName,'filterstructure'那'直接表格对称');hdlset_param(blockName,'建筑学'那'完全平行');hdlset_param(blockName,'频道开始'那'在');
或者,您可以在这些设置上指定这些设置HDL块属性菜单,您通过右键单击块并选择HDL码>HDL块属性。
运行示例模型并打开范围以比较两个数据流。
sim(modelname);Open_System([ModelName'/范围']);
您必须拥有HDL Coder™许可证为此示例模型生成HDL代码。使用此命令为多声道FIR滤波器子系统生成HDL代码。启用资源使用报告。
makehdl(systemname,'资源'那'在');
使用此命令生成测试台,将HDL仿真结果与Simulink模型结果进行比较。金宝app
makehdltb(systemname);
要将资源使用和不共享进行比较,您可以禁用跨通道共享资源并再次生成HDL代码,然后比较资源使用报告。
hdlset_param(blockName,'频道开始'那'离开');makehdl(systemname,'资源'那'在');