I'm currently trying to implement a simple low-pass filter using the FIR Compiler available in the IP catalog. My design is very basic, I've generated a sine wave using the DDS IP :
* Configuration Options : Phase generator and SIN COS LUT
* System clock : 100 MHz
* Mode of operation : Standard
* Output frequency : 1.2 MHz
* Output width : 8 Bits
I want now to apply a low-pass filter and to see how is it going in simulation, using Analog waveform style. To generate the coefficients, I am using Matlab and the filterDesigner. Here are the specifications :
* Lowpass, FIR (Equiripple)
* Fs : 2.7 MHz
* Fpass : 1.3 MHz
* Fstop : 1.35 MHz
* Apass : 1 dB
* Astop :40 dB
Then, I generate a .COE file which I use in the FIR compiler. I specify these options :
* Filter type : Single rate
* Input sampling frequency : 2.7 MHz
* Clock frequency : 100 MHz
* Coefficient type : signed, on 16 bits
* Coefficient structure : Inferred
* Input data type : Signed, on 8 bits
* Output rounding mode : Full precision
The screenshot shows what I obtain and it seems that it is not working very well. Does anybody can explain me what is going on ? Do I make some mistakes when I am setting up the filter ?
Question
Yannick
Hello,
I'm currently trying to implement a simple low-pass filter using the FIR Compiler available in the IP catalog. My design is very basic, I've generated a sine wave using the DDS IP :
* Configuration Options : Phase generator and SIN COS LUT
* System clock : 100 MHz
* Mode of operation : Standard
* Output frequency : 1.2 MHz
* Output width : 8 Bits
I want now to apply a low-pass filter and to see how is it going in simulation, using Analog waveform style. To generate the coefficients, I am using Matlab and the filterDesigner. Here are the specifications :
* Lowpass, FIR (Equiripple)
* Fs : 2.7 MHz
* Fpass : 1.3 MHz
* Fstop : 1.35 MHz
* Apass : 1 dB
* Astop :40 dB
Then, I generate a .COE file which I use in the FIR compiler. I specify these options :
* Filter type : Single rate
* Input sampling frequency : 2.7 MHz
* Clock frequency : 100 MHz
* Coefficient type : signed, on 16 bits
* Coefficient structure : Inferred
* Input data type : Signed, on 8 bits
* Output rounding mode : Full precision
The screenshot shows what I obtain and it seems that it is not working very well. Does anybody can explain me what is going on ? Do I make some mistakes when I am setting up the filter ?
Thank you very much for your help !
Link to comment
Share on other sites
14 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.