Search the Community

Showing results for tags 'fir'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • Add-on Boards
    • Scopes & Instruments and the WaveForms software
    • LabVIEW
    • FRC
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 9 results

  1. Hi , Previously, I succeeded to generate a sinewave and visualize it on oscilloscope as shown in this post. Then I learnt how to use FIR filter compiler as shown in this post. Now, I am trying to visualize the FIR output on oscilloscope. I generated the bit stream file for the intended design (screenshot attached) then I viewed the output using Pmod DA3 , then the surprise it was only 1s and 0s ! as shown in the second attached picture. Note : I tried to pass 16 kHz by the FIR. I need your help about this issue. Any ideas about the reasons that make the output digital even when I am using DAC (Pmod DA3) ? Thanks.
  2. Hi , According to the Tfilter tool parameters (first attached picture) and the frequency response of FIR IP core (second attached picture) the passband is : 16 kHz to 17 kHz, and stopband1 is: 0 to 15.5 kHz and stopband2 is: 17.5 kHz to 24 kHz . I tested (simulated) the filter with 16 kHz , 24 kHz , 64 kHz, 500 kHz, and 1000 kHz. The simulation results are shown below respectively. 16 kHz 24 kHz 64 kHz 500 kHz 1000 kHz I noticed there is no attenuation in each of 24 kHz, 64 kHz !!! While 500 kHz, 1000 kHz appeared attenuated. The question is: why the FIR filter doesn't attenuate the frequencies that are located in the stopband? Note :in each attached picture the first sinewave is the input to the FIR Filter, while the second one is the output (filtered). Thanks.
  3. Hi , I am using a signal of a frequency of 16 kHz sinewave, and the sampling frequency (Fs) is 48 kHz in my design, and I want to test it with FIR filter compiler 7.2. I built simple design (first attached picture), consists form a DDS compiler and FIR compiler. Then I imported the FIR coeffiecents from Tfilter tool. However, the FIR filter was passing even the frequncies in the stopband, as illustrated in this discussion thread. I looked through UG073, and I found figure 5.1 (second attached picture) shows the sampling frequcies lower than 0.5 MHz is processed by Sequnctial FIR filter architechure. While the FIR compiler options are only providing Parallel FIR filter architecure (Systolic Multiply Accumulate) as shown in the third attached picture. Is there any way to change the filter architecture in FIR compiler 7.2 ? If only this architechture (Systolic) is available, what I can do to stop the frequencies in the stopband from passing the FIR filter? Thanks.
  4. Hi , I am trying to impelement FIR compilers in my system design. I depended on TFilter ( in my design for the FIR filter. The filter parameters (frequency response) are shown in the first attached picture. The interface connections between the DDS compiler (16 kHz oscillator) the FIR compiler are shown the second attached picture. After I imported the coefficients file in FIR IP core, then I run the a simulation to check the output of the FIR filter. The third attached picture shows a noisy output for this filter ! The FIR filter type is "Single Rate", the fourth attached picture shows the frequency response for the imported coefficients inside the FIR compiler. Plz, how to fix the output signal to become smooth like the input? Thanks.
  5. I have build filter using FIR compiler. It is filtering the input quite well. I used COE generated from Matlab. I have two problems. 1- filter latency is 39 cycles. I am getting my RDY signal high after around 39 cycles. But RFD gets high after 251 cycles? I don't understand , if filter is giving me RDY signal high then according to FIR compiler datasheet figure of MAC multiplier timings, i should get RFD as soon as RDY gets high. I have tried both systolic and transpose MAC. I am attaching the figures from chip-scope. ZOOM-IN of ND-RFD ZOOM-IN of RDY ZOOM-OUT including two RFDs I want to get RFD as soon as my filter output is ready. Any clue ! 2.All is fine. filtering is good. I am using filter range from 900hz-3300hz. I am getting TICK like sound after some 500msec. I saw it on oscilloscope it is some type of clipped signal containing 5-6 cycles of not any specific frequency. the signal is looking more like square wave due to clipping. I am getting that TICK sound even if I did not attach LINE IN cable (from which data is fed to filter input through CODEC). But if I programmed the input of filter to '0' in verilog, I get nothing. Tick sound is also removed now . Filter is generating tick sound in any other condition, What is this? am I getting overflow some where? Thanks
  6. I am trying to implement Decimation on FPGA and Matlab For this task i chose following design parameters Filter type=window hamming hamming method filter order=30 decimation factor=10 input sample rate=2Ms/s output sample rate=200ks/s Normalized cuttof =1/decimation factor First i implement it on MATLAB and use this sequence Filter handle filter delay downsample Using above sequence i successfuly implement it on MATLAB For FPGA i use fir compiler core in which i paste the same coefficients that is generated through matlab But the problem i face is fir compiler core directly gives you the decimated output without handling fitler delay so what should i do if want to handle this filter delay in xilinx Fir compiler core sequence Filter-downsample
  7. 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 !
  8. Question from the customer: Can you add a math channel which depends on more than one sample of the input channel. For example, applying a window function to calculate the average of the last 10 samples, FIR filtering, etc. Would also be nice to see some basic support for FIR and IIR filters in the oscilloscope math channels; Answers: For such purpose the Scope Logging tool can be used. The following script applies a filter to one channel data and saves it as reference channel. function doRef(ch, ref, fir){ var cfir = fir.length; {// normalize window area var vol = 0; fir.forEach(function(v){vol+=v;}); for(var i = 0; i < cfir; i++){ fir[i] = fir[i]/vol; } } ref.enable = true; // clone to have proper information (sample rate...) // save and restore offset value var voff = ref.Offset.value; ref.Clone(ch); ref.Offset.value = voff; // workaround to get all data not only visible one var sb = Scope.Time.Base.value; Scope.Time.Base.value = 1; var rg =; Scope.Time.Base.value = sb; var rgf = []; var crg = rg.length; var crg1 = crg-1; var cfir2 = round(cfir/2); for(var i = 0; i < crg; i++){ var v = 0; for(var j = 0; j < cfir; j++){ var ij = i+j-cfir2; if(ij<0) ij = 0; if(ij>=crg1) ij = crg1; v += rg[ij]*fir[j]; } rgf[i] = v; } = rgf; } // source store fir window doRef(Scope.Channel1, Scope.Ref1, [1,2,1]); doRef(Scope.Channel1, Scope.Ref2, [1,2,4,8,4,2,1]);