USRP Frequency Translating FIR Filter

Hi,
I would like to use the USRP as a Software Defined Radio where I can sample a wide spectrum (like 20MHz) and then chose to demodulate a small part of the received spectrum. An example is to sample the whole FM radio band from 88MHz to 108MHz and then from these data FM demodulate 200kHz from a station on 103.9MHz or any other selected signal.
With GNU radio I believe this can be performed by a function called Frequency Xlating FIR Filter which can transform the zero frequency of the IQ data, add a FIR filter and then decimate the data. With LabView I have tried several filters, decimations and transformations but I never end up getting a good output.
Can anyone guide me in the right way on how I can do this?
With regards,
-Sigurd A.

Hi,
I forgot to update this post. I did not find any VI which did this but after some studying and trials I found something that seems to work OK for me. See attached picture.
The clue was to multiply the IQ data with a sinus signal with frequency equal to the frequency shift, and with same sample rate and number of samples as the IQ signal.
Then the signals can be decimated to the wanted bandwidth.
With regards,
Sigurd A.
Attachments:
image.jpg ‏176 KB

Similar Messages

  • Help with "DAC Configure for Quadrature Mode.vi" in "ni5640R Frequency Translation" Example

    Hi there:
    I am also using the the NI PCI-5640R and I've been "studying" the
    program: "Frequency Translation", my intention is to modify it and
    produce a  closed-loop between I and O. 
    I am also interested in transferring what i am reading through the
    input port, directly to the output port but filtered AND with a
    phase-shift (final Objective: Q-Control). 
    I need to visualize the signal in the HOST, so I need both FIFOS (DMA
    FIFO and  Local FIFO), and the "Quadrature Mode DAC Configure"
    I would like to know:
    1. How can I directly transfer the data acquired through the ADC port
    into the DAC?  (it is unclear due to the Event structure in the
    "Frequency Translation" example)
    2.
    How can I configure the "Quadrature Mode DAC Configure.vi" for it to
    bandpass-filter the signal comming from the ADC at a given frequency
    and BW, specified by the user in the HOST? I have read that it is possible to filter a signal comming to the DAC using DUCs (Digital Upconverters) Does anyone has more info about this topic?
    3. Is it possible to
    configure the "Quadrature Mode DAC Configure.vi" to produce a
    phase-shifted signal (phase shift also specified by user in the host)
    I've
    been working for almost 2 months trying to program the 5640R, doing
    examples, and modifying them.  After playing with different examples
    I've come up to the conclusion that the "Frequency Translation" example
    is the one that best-suites my application.  My problem now is that I
    AM LOST because i need more information regarding the configuration
    parameters of ALL the different VI's inside the NI-5640R VI Tree  to
    exploit them correctly, specially the "Quadrature Mode DAC
    Configure.vi".
    Can anyone please help me?
    Cheers...Antonio

    Hello again:
    Jerry:
    1. I referred to the Event structure, but in the HOST, but now, with your commentary and Philippe's explanation i've undestood better the concept.
    2. Regarding the filtering, I read the datasheet of the AD6654 (DAC from "Analog Devices" which is part of the n5640r) and in pages 36 and 37, it explains with an example, the possibility of designing a Bandpass CIC Filter by changing the interpolation (or decimation) factor of the DUC (or DDC).  The filter can't be fully customized (the rejection and passband are limited to an "Alias rejection Table" in page 36), but it could fit the application to filter certain frequencies.
    I also tryed what you guys suggested, meaning: I designed a simple digital bandpass butterworth IIR filter in the FPGA target inside a 3rd SCTL with a faster clock (i.e. "Top level timing source") and using a 2nd Local FIFO.  The filter was done with FPGA discrete delays (z^-n) departing from a "differences equation" [y(n) = x(n-1)+x(n)+0.9996858*y(n-1)].  But I have problems with the 0.99... constant which is always rounded to 1 (check the pic).  I changed the variable's type and digits of precision, but it still rounds up to 1 Any suggestions?
    3. I was thinking as well of shifting the phase (as Jerry said) by configurating the NCO in the DAC.  Again, more information is given in AD6654's datasheet  (page 35).  I will quote the info:
    "The phase offset register can be written with a value that is added as an offset to the phase accumulator of the NCO.  This 16 bit register is interpreted as 16-bit unregistered integer.  A 0x0000 in this register corresponds to a 0 radian offset and a 0xFFF corresponds to an offset of 2pi*(1 -  1/2^16) radians.  This register allows multiple NCOs (multiple channels) to be sinchronized to produce complex sinusoids with a known steady phase difference:"
    Any ideas of how to program this register inside the "ni5640r ADC Configure NCO" to have a fixed phase offset of 90º?
    Thanx in advance for your replies
    'till the next post...Antonio
    Attachments:
    Digital IIR.JPG ‏122 KB

  • Design a Filter using the Digital FIR Filter.vi

    Hello,
    I was working with Digital FIR Filter.vi to create a bandstand filter.
    The problem I faced is regarding the FIR Filter Specification, the Frequencies given for the Upper and Lower Pass and Stop band.
    For a low pass Filter, the upper Stop Band frequency is set at 0. While the Lower Stop band frequency is set at 200.
    And the Lower pass band is set at 100 while the upper pass band is set at 0.
    What the lower and upper frequencies actually means? As for a low pass filter, the upper cutoff frequency must be greater than lower. 
    So plus tell me how does it works and what frequencies should I specify for a Bandstand Filter.
    Thanks v.much

    Hi,
    Have a look at the following example: [LabVIEW Folder]\examples\Digital Filter Design\Floating-Point Filters\Conventional\Classical Filter Design.vi .This example demonstrates how to use the DFD Classical Design VI to design a lowpass, highpass, bandpass, or bandstop filter with classical design methods.
    Complete the following steps to use this VI.
    1) Run the VI.
    2) Change the specifications.
    3) Observe the magnitude response and phase response. Notice that the magnitude response approximates the frequency specification and the phase response is nonlinear for IIR filters (Butterworth, Chebyshev, Inverse Chebyshev, and Elliptic).
    4) Change the Design Method to view the ripples in the passband and stopband.
    5) Observe the filter order that the VI returns automatically.
    6) Click the STOP button to stop this VI.
    Sev K.
    Applications Engineering Specialist | CLA
    National Instruments

  • ADjusting the sampling rate on a FIR filter?

    How do I adjust the sampling rate on a digital FIR filter? Thanks in advance.
    -David

    You should really start a new thread instead of posting to one that is 5 years old.
    To answer your question, it depends on your data. I don't use the DFD but with the filter functions in LabVIEW, if you pass a waveform data type to the function, then the waveform data type contains a dt value. So, set the DAQmx Read to return waveform data. If you are using low level filter functions where the input is a 1D DBL array, then the filter has to be configured. With the low level functions in LabVIEW, you use the various coefficients functions that have a sampling frequency input.

  • What kind of FIR filter in Labview SignalExpress Tektronix Edition?

    I am using FIR filter in Labview SignalExpress Tektronix Edition to process signal acquired from the TDS3032B.But i dont know what kind of this filter(Window,least-squares,or equiripple...).Does any one know about this?

    Check out some of NIs links:
    Virtual Instrumentation Empowers Digital Signal Processing Design
    http://zone.ni.com/devzone/cda/tut/p/id/4759
    Designing Filters Using the NI LabVIEW Digital Filter Design Toolkit
    http://zone.ni.com/devzone/cda/tut/p/id/3237
    lots of information about different FIR can be found by searching on google as well.
    National Instruments

  • Taps in digital FIR filter.vi

    I'm trying to use the digital fir filter.vi and while most things seem to behave in a reasonable fashion, the number of taps does not. Using the FIR filter help  I implemented the vis shown in the help section  with the digital FIR filter.vi and the results (magntidue) agree very well with what is asked for in terms of cut-offs and drop off rate. However, given that I'm using a unit impulse function as the input waveform, the output of the filter vi should be the coefficients of the filter. When I graph those, it is immediately apparent that it is using way more coefficients than I asked for. It quickly became apparent that it is completely ignnoring whatever number you put in for # of taps. Now to a certain extent I understand that. In order to get ever sharper cut-offs you should need more and more points. The question is, why is the number of taps an input if it is ignored or am I missing something?
    The other somewhat worrying question has to do with the convolution process. If the filter is using a very large number of taps, there should be a massive delay at the start. I don't think I'm seeing that.

    Hello Russo,
    Your code looks like it is set up effectively. I spoke with our development team about your question regarding the Digital Filter VI.  They confirmed that when Topology is FIR by Specification, the VI reads the filter specification and estimates an order. Then, it calls Parks-McClellan VI to design the filter. That is to say, #Taps is actually not used in this case. When Topology is Equi-ripple FIR or Windowed FIR, the #Taps is used for filter design. You can verify it by checking the order which is equal to #Taps - 1 in filter information output.
    If you are interested in a more advanced filter design application, I would suggest you consider checking out the LabVIEW Digital Filter Design Toolkit.
    Here is a link to an informative article comparing the LabVIEW Development VIs and the Toolkit VIs:
    http://www.ni.com/white-paper/4851/en/#toc2
    Warm Regards,
    Josh

  • FIR filter delay for multistage multirate filter

    I know that a FIR filter with N taps has a delay of (N -1 ) / 2 samples.
    If this filter decimates of a M factor, the decimated signal has a delay of (N - 1) / (2 * M) samples.
    I used this approach several times to calculate the exact delay of a FIR filter, when I know the number of taps.
    How can I calculate this delay if I design my filter using the vi "DFD NStage MRate Filter Design"?
    Vix
    In claris non fit interpretatio
    Using LV 2013 SP1 on Win 7 64bit
    Using LV 8.2.1 on WinXP SP3
    Using CVI 2012 SP1 on Win 7 64bit, WinXP and WinXP Embedded
    Using CVI 6.0 on Win2k, WinXP and WinXP Embedded

    if I'm right, this is what is called "group delay" or "phase delay" of the filter.
    Is there a LV function to get this info?
    Vix
    In claris non fit interpretatio
    Using LV 2013 SP1 on Win 7 64bit
    Using LV 8.2.1 on WinXP SP3
    Using CVI 2012 SP1 on Win 7 64bit, WinXP and WinXP Embedded
    Using CVI 6.0 on Win2k, WinXP and WinXP Embedded

  • FIR filter core within SCTL

    Hi,
    I have generated a xilinx FIR filter core to be able to give one ouput sample per clock cycle.
    I am trying to filter incoming I and Q samples in SCTL linked to ADC_0_Port_A_Clk.
    Within SCTL, I am using HDL node interface routine to import filter core.
    So far I have not seen any success.
    There are few issues I still cannot figure out about SCTL.
    1. Which clock would the FIR would be using within SCTL? ADC_0_Port_A_Clk or Configuration_Clk?
    2. Is there anyway to access ADC_0_Port_A_Clk within SCTL?
    3. In this SCTL, what is the relationship between enable_in and ADC_0_Port_A_Clk signals?
    Thank you,
    PHPATEL.

    Hi
    I think you posted this to the wrong NI Message board.  This is meant for help with the NI PCI-5640R IF Tranceiver.
    If you wish help in another area, I would suggest posting to the Spanish language board:
    Discusiones sobre Productos NI
    http://forums.ni.com/ni/board?board.id=6170
    Have a great day.
    Jerry
    PS: Mauricio says Hi.

  • Fire Filter doesn't appear usable, photoshop CC, windows 7, 32 bit

    When i go to filter/render/fire, fire isn't one of the available options. It shows up on the menu, but not in boldface.

    Just fixed that on my Windows 7 machine yesterday. Here's what to do.
    From the 3D menu, choose New Mesh from Layer, and choose the first option.
    You will be placed in the 3D workspace.
    Then Filter > Render > Fire
    The Fire render will then be active from now on instead of greyed out, but you must draw a path to use it.
    Gene

  • Least square linear-phase FIR filter

    I need to geta second order derivative of an array based on 2 stage filtering with a least square linear phase FIR "differentiator " filter. Previously this was done using the matlab routine firls using the "differentiator" tag. Any ideas how this can be done in LabView?
    Thanks in advance.

    I don't believe that LabVIEW has any differentiation functions that use this algorithm. The only derivative function is located in the analyze, signal processing, time domain. You would probably have to build your own.

  • Xilinx FIR Filter output number of samples half of expected

    Trying to get a basic FIR decimation (by 2) filter implementation to work using the Xilinx FIR Compiler (V5) IP. The problem I'm having is the number of output samples is half of what I'm expecting to get. If I feed in 500 samples I'm only getting 125 samples. I tried changing the filter to a single rate type and got 250 samples instead of 500. Seems like every other sample is getting discarded for some reason even though I'm using handshaking.
    I've been trying to get this to work for the past 3 days and haven't made any progress at all.. Please help!
    Attachments:
    Receiver Converter Software.zip ‏938 KB

    Consider setting the APPEND TO FILE option in the WRITE LABVIEW MEASUREMENT FILE vi.
    Without it, the VI will write a new file every loop, overwriting the previous one.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • FIR Maximum Frequency

    Hi,
    I try to design FIR filters with 501 coefficients (single symmetric coefficient set) an with max frequency > 650 MHz.
    Guess it should work because DSP48E1 max frequency is 740 MHz for 7-series -3 devices.
    Actually, it works fine if the number of DSP48E1 is very low, but max frequency decreases drastically as the number of DSP48E1 increases.
    Timing analysis gives the following results Constraint period is set to 1.425ns (700 MHz) :
    For a 13 coefficients FIR filter, timings are correct :
    Setup slack : 0.088 ns (748 MHz)
    Min Pulse width : 0.075 (741 MHz)
    For a 61 coefficients FIR filter, timings are :
    Setup slack : -0.142 ns (638 MHz)
    Min Pulse width : 0.075 (741 MHz)
    Worst setup timing is between DSP48_X0Y19 PCOUT and DSP48_X0Y20 PCIN, that is at a clock region boundary.
    Setup slack increases to 0.022ns, which is fine, if the FIR DSP slice column option is set to 20, 11 instead of the default value 31. Doing that, all DSP48 are in the clock region X0Y0.
    Unfortunately, that strategy doesn't work for 501 coefficients!
    Is there a way to improve the timing between PCOUT and PCIN at clock region boundaries?

    You can try to use Xilinx FIR compiler IP

  • Fir notch filter design.(us​ing DFD tool kit)

    Hi
    We used standard narrow band lowpass FIR filter design vis to desin a filter which can filter out any signal between 0.1 hz to 5hz. This does generate a filter design but is of a very high order, hence takes a very long time to process the raw data. Our raw data is of about 5000 samples and probably need to have higher samples when acqiring in the lower band frequencies,(say 0.1 hz or 0.5 hz). 
    Presently the need is to design a filter with folllowing characteristics:
    1. Phase linearity to be maintained in the pass band.
    2. sharp cut off freq band (can be the best possible to optimize speed of computation).
    3. speed should be optimized.(require fast)
    4. signal is mostly sign waves with noise riding on it.
    5. High sampling rate is necessary to maintain the shape of the sign wave since we are more concerned with the phase of the input signal.
    I have attached the snap of our design, (we used "DFD Narrowband Filter Design.vi"), which already uses the cascading technique.
    thanks and regards,
    sunil
    Apna Technologies and Solutions
    Bangalore,
    Karnataka,
    India
    Attachments:
    snap of FIR narrow LPF.JPG ‏63 KB

    Hi,
    Thanks for the reply.
    The vi is designed but we are having an issue of speed of processing.
    This filter takes a long time to process.
    We are looking for the following:
    Since our signal can range from 0.1Hz to 5Hz our sampling freq needs to be higher, about 8000 samples/s, this is necessary since the shape needs to be maintained for accurate phase measurements (the signal is always sinewave and with noise on it).However you may suggest this sampling rate based on your experience.
    Since the phase in the pass band needs to be linear we have to select FIR and since the filter roll off needed is very sharp as provided in the attachment, the resulting design has a large number of taps(coefficients), this makes the processing slow.
    --What would be the appropriate sampling frequency for such a filter design.
    --Is it that such filters are slow, if so how can they be put in the front end filtering of signals acquired from a daq (PCI-6229)analog channel in a continuous acquisition mode.
    we would be thankful for a quick response.
    PLS refer to the attachment for filter characteristics.
    thanks & regards,
    sunil
    Apna Technologies and Solutions
    Bangalore,
    Karnataka,
    India

  • What is the difference between resample.vi, decimate.vi and the filter(FIR.VI)

    Hello, who will gfive me some advice about the difference between 
    decimate, resample and the filter VI
    For example, I have a signal and the sampling frequency is 2000Hz
    If I want low pass the band from 0-1000Hz
    I can decimate the signal with the coefficient 2, or I can also use the
    FIR filter with the low pass function.
    What is the differnet between the result? And what about the resample.VI

    Hello,
    With the low pass filter, you'll keep the same number of points, but variation greater than the cut frequency will be remove.
    With the resample vi, you'll change the sampling... The number of point will change (more or less) but the band with of your signal will be the same. The time step is changed. The value of each point is recalculate using interoplation.
    The decimate vi will transform your array in n subarray. If the decimate vi size is 2, you'll obtain 2 subarray. In the first one you'll find all the points with an odd index and in the other all the points with an even index. Each subarray is equivalent to a particular resampling. The signal is the same, with a time step multiplied by the decimate vi size.
    by!
    Yann Falevoz
    R&D Engineer, Instrumentation & Software

  • Frequency response of a filter

    I have the filter coefficients of the filter I require in my program. I need to find the frequency response of this filter. Is there any function in LabVIEW that helps me to do this?
    I guess I need a function which is similar to the freqz function in matlab for this.
    Solved!
    Go to Solution.

    Thank you guys!  I found out what I wanted. But thanks for guiding me.
    I'll post the answer so that others can use it 
    First I found out the transfer function ( from the filter coefficients) of the filter by using:
    Digital Filter Design toolkit => Utilities => From TF ( DFD Build Filter from Transfer Function.vi)
    The output filter got from this was wired as the input filter to:
    Digital Filter Design toolkit => Filter Analysis => Freq resp ( DFD Plot Freq Response.vi)
    I got the required frequency response .
    @Sd.Kfz.10 I coudn't use the FIR filter and IIR filter where coefficients are given as inputs (in signal processing toolkit)  because I wanted the response of the filter alone. These FIR and IIR filter requires the input signal array. 
    I was using this for the linear predictive coding for speech recognition. I modelled the vocal tract as a autoregressive model (all pole filter) using a the AR modelling.vi in the ADSP toolkit. I wanted to see the frequency response of the modelled filter but I only had the filter coefficients. 

Maybe you are looking for

  • Is it possible to make all automation data quieter in one go?

    I have a song with about 50 tracks on it and it have mixed it too loud. I'm happy with the the levels and the mix but just need to mix it at a quieter level. However there is a substantial amount of volume automation many of the tracks. Is there anyw

  • HT3964 hello on my MBP telling my its not charging but it this taking charger slow

    hello on my MBP telling my its not charging but it this taking charger slow

  • No columns in Easy Report to Add/Modify Condition

    I have created an Easy Report, selecting columns for the report. When I try to modify the report Conditions by selecting RPT, Query definition tab and clicking on the Column drop down, no columns appear. How can I add a Condition to an Easy Report? T

  • QM - Table Relationship

    Hi!!! Currently I am developing a Z-Programme for QM module using the transactions QE11 & QA11. QE11 is for Results Recording & QA11 is for Usage Decision. QA11 is done after the QE11 is completed. Now my question is, *I want to find out inspection p

  • MJPG streaming

    I'm a student. I'm working on a project about how to play MJPG streamings on a Java-enabled mobile phone. I'm looking for infos about it... somebody help? I'd be pleased to share knowledge about stuff concerning MIDP with anyone that would try to hel