Is it possible for Filter Design HDL coder to generate a FIR filter whose sampling rate is higher than clock rate?

Hi everyone,
I'm using the Filter Design HDL coder in Matalb 2018b. Since our ADC has a much higher sampling rate than the FPGA clock rate, I want to generate a FIR filter which supports parallel processing. This kind of FIR filter is named super sampling rate FIR filter. I checked the User Guide of Filter Design HDL Coder but I can't find a solution. The fully parallel architecture described in the User Guide only supports one sample per clock period. Is it possible generate super sampling rate FIR filter using Filter Design HDL Coder? Is there any examples?
I want to generate DA-based FIR filter, I'm wondering if it supports super sampling rate FIR filter.
Thank you.
Regards, Tong

 Accepted Answer

This is available with HDL Coder and the FIR block in DSP System Toolbox. Please take a look at this example to see how it works.
This page describes the various blocks that support super sampling/high throughput algorithms.

5 Comments

Thank you very much. I tried this example in Matlab 2018b but errors occurred during simulation. Could you tell me which version of Matlab shall I use? Also is it possible to generate FIR filter based on Distributed Arithmetic with HDL Coder?
What is the error? We do not have Distributed Arithmetic as an option, but have CSD and Factored-CSD options for the multipliers.
Thank you. There are two types of errors. 1. Errors occurred while I open the example. After I run "modelname = 'PolyphaseFilterBankHDLExample_4tap'; open_system(modelname);", the model is opened with error messages shown as follows.
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "simulink" or class "simulink.diagram.internal.isNameHiddenAutomatically".
Error in slSingleSelectionActionConfig
Undefined variable "simulink" or class "simulink.diagram.internal.isNameHiddenAutomatically".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "Simulink" or class "Simulink.sdi.SignalObserverMenu.hasVisuOnPort".
Error in slSingleSelectionActionConfig
Error in slSingleSelectionActionConfig
Undefined variable "Simulink" or class "Simulink.sdi.SignalObserverMenu.hasVisuOnPort".
Error in slSingleSelectionActionConfig
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
Undefined variable "BindMode" or class "BindMode.BindMode.isEnabled".
Error in slSingleSelectionActionConfig
2. Errors occurred during simulation. In the opened model, after I clicked run simulation, errors occurred as follows.
It appears that your product installation may be corrupted. Would you be able to install the product again and see if this issue still occurs?
Thank you. We have problems with Matlab 2018b. After we installed Matlab 2016b, the problems disappeared.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!