FPGA FFT and filtering

Hi, I have an application in which I need to collect a lot of (50+) narrowband spectral components from an analog input datastream. I am using a PXIe-7965R FlexRIO FPGA board and an NI-5732 digitizer adapter module. There are a couple of ways I could implement this, but I'm not sure which would be more efficient or plausible. The input datastream would be a 1D array of either 16kS or 32kS from the digitizer, and I would need to filter very specific frequency components out and sum them. Here are the options I was considering:
1. Take a Fourier transform of the data set, then generate a binary mask to multiply with the Fourier transformed result, effectively giving only the desired frequency components. The product array could then be summed for the final result. The main problem with this method is that I have not been able to find an FFT IP for LV FPGA that supports 1D input arrays longer than 8 kS. Does one exist? Additionally, there is the question of whether a longer FFT could fit on the FPGA.
2. Create a lot of time domain narrowband filters (Butterworth?) and sum the results of all of the filters. I am not sure if this would be less resources than the FFT or not. It would certainly be more cumbersome, considering I would have to implement 50+ filters on the input sequence.
I'm very new to LV FPGA and FPGAs in general, so I'd appreciate any comments or suggestions anyone may have for my application.
Thanks,
Ryan

Ryan,
I do not have any experience with FPGA so I am not addressing those aspects of your questions.
Have you verified that your numbers make sense?  When I read your question my gut reaction was, "Can this even work?" "Is there enough data in 16 K or 32 K samples to extract that inforamtion?"  What is the range of frequencies in the datastream?  What is the sample rate?  What is the required resolution?  Can two or more components ever be closer together than the specified resolution? (Even if you do not care about resolving them in this case, which you cannot, overlapping signals might complicate the analysis). Are the frequencies of the components known? If so, are the frequencies rational fractions of the sample rate?  Do any of the components vary in amplitude or frequency during one sample set?
I think that an FFT-based system will be the way to go. Multiple filters with narrow enough bandwidths would be a real mess, hard to get working well, and not versatile.
Lynn

Similar Messages

  • 50 Hz noise ECG filtering using FFT and its inverse in LabVIEW

    I have to write a LabVIEW Program to put the 50 HZ noise in the ECG spectrum using the FFT and then with the Inverse of the FFT I must take it out,but without using any filter.so if anybody can help me with that, I will be thankful.

    I have a normal EGG signal,and its Spectrum. Then I add the 50 Hz noise.In the Spectrum I will get this long peak at the x-axis at 50Hz.So,what I'm trying to do with LabVIEW, is to get out this noise without using a filter,but with the FFT and of course with its inverse to reconstruct the signal.
    (the EGG signal is created at first with a simulator and not with human body, the signal is going through the "line-in" of the soundcard in the computer)
    I hope you understand a little bit what I mean, I will attach what I did in the program till now,maybe you can understand it better.
    Thank youMessage Edited by b_rani on 05-18-2005 01:46 PM
    Attachments:
    Soundin1_030505.vi ‏80 KB

  • Using transforms and filters without device drivers

    Hello,
    I came across NIMS as a possible solution for some transforms and filtering, possibly even generating test signal data, for a seismic application. I'm in the process of evaluating NIMS for best possible fit for what we need/want to accomplish.
    Basically, we've got some seismic data, and we want to process that data through a series of transforms and filters to denoise and pick the data for seismic analysis. No sense reinventing the wheel if we can adopt and then adapt a third-party library like NIMS into our app.
    We do not necessarily need any device drivers, although I noticed installing NIMS requires them. Hopefully we can opt in or out depending on what's actually required. Can someone help clarify the nature of the driver dependency?
    Anyhow, like I said I am evaluating it for best possible fit in our application, but in the meantime if someone can shed some light on the above concerns, questions, etc, would begreat.
    Thank you...
    Best regards.
    Solved!
    Go to Solution.

    Glad to hear it!
    -Mike
    Applications Engineer
    National Instuments

  • Problem with sorting and filtering of table

    Hello,
    using VC 7.1 SP5 I have created [this|http://img232.imageshack.us/img232/2460/screenshotsr0.png] model. The webservice returns a collection of structured elements. The table is meant to display values of top-level attributes. This works as expected.
    However, the table cannot be sorted or filtered. What is the reason for this? How can I fix that?
    I tried to store the result of the web service in a data bridge. That did not succeed.
    Best regards
    Alexander

    Hi Natty,
    How are you trying to sort it?
    I want to be able to sort the table by clicking on the table column headers. Furthermore, I want be able to filter the table by using the built-in table feature. However, table sorting and filtering seem to be disabled for this particular table, whereas other tables in my model provide the desired features.
    Best regards
    Alexander

  • Clarification of Servlet Spec for forwarding and filters

    Hi everybody,
    I'm having a problem trying to use SiteMesh in WebLogic 9.1 vs Tomcat 5.5.17. The issue seems to come up because the two containers have different behavior when it comes to forwarding and filters.
    The scenario is this: A request comes in to a servlet, that servlet forwards to a JSP page using RequestDispatcher.forward(). The SiteMesh filter looks at request.getServletPath() after the chain has executed and determines whether or not to apply the decoration based on the path of the page. The filter's doFilter() method looks something like :
    chain.doFilter(request, response)
    if(request.getServletPath() = matchingPath)
        applyDecoration();
    }Now, in Tomcat, a call to request.getServletPath() before and after the call to chain.doFilter() returns the exact same thing, regardless of whether the target servlet executes a forward. But in WebLogic, the call to getServletPath() after chain.doFilter() returns the forwarded path, not the original path.
    Who is right? Or is this one of those gray areas?
    Thanks,
    Scott

    Thanks for the info. You are correct, I was using 'forward'. I changed it to use 'sendRedirect' and this time the request goes via the filter. However, the request parameters that were in the original request have disappeared after the 'sendRedirect'. I could just add all the request parameters to the string I pass to sendredirect but was wondering if there was a better/simpler way.
    Thanks,
    Paul

  • How to define the order of GROUPBYs, JOINs and FILTERS in an interface?

    Hello,
    I would like to define an interface which implements the following logic:
    Give me a list of all customers with less then 2 orders in status = 'A'.
    SELECT C.Name, o.cnt
    FROM CUSTOMER C
    LEFT OUTER JOIN (SELECT cust_id, count(*) cnt FROM ORDERS WHERE status = 'A' GROUP BY cust_id) O
    ON C.cust_id = O.cust_id
    WHERE O.cnt < 2 OR O.cust_id IS NULL
    In this case, the right order of operations is essential:
    First apply filter, then group, then join, then apply the second filter.
    How can I define this in an ODI interface?
    Thanks in advance for any hints...
    Best regards,
    Karol

    Defining JOINs order :
    1 - Go in topology manager and verify that your technologie support the ISO ordered join ( left inner join ...)
    NB : by default Oracle data sources are configured with the old syntax ( ie : columns(+)=expr )
    - Open technology Oracle: Check SQL ISO
    - Go to the SQL tab
    - select "FROM" in the filter place
    - verify the join syntax
    2 - Define the alias order in the source table
    3 - Check the ordered join (ISO) and a num-order on the join operator
    Defining GROUPBYs and FILTERS orders seems to be impossible
    but you can create a mapping as a view and use this mapping as a source in an other one !

  • Plug ins for burning, dodging, layers and filters

    I have Lightroom 4.4 and I would like to add plugins for burning, dodging, layers and filters.  Which plugins would I need to do this things and where would I get them?
    Thank you, kastenem

    Lightroom has dodge and burn built in through the adjustment brushes.  You can't have layers or PS-style filters in LR.

  • Re-linking Motion assets, templates and filters etc.

    Hi, can anyone help me with re-linking my Motion assets, templates and filters? They're currently stored on an external hard drive. I've now managed to upgrade my macbook pro HD and would like to have then on my internal HD. So which folders do I place them in and how do I link them to their new location so that Motion recognises them?
    Also I will have to do this for my whole Final Cut HD suite so will it be the same process for Soundtrack Pro, DVD studio pro and Livetype etc?
    Thank

    The locations are stored in the file /Library/Preferences/com.apple.proapps.plist. If you don't have the developer tools installed, try something like PlistEdit Pro to open the file.
    http://www.fatcatsoftware.com/plisteditpro/

  • Aggregation level and filters in bi 7.0 reporting

    hi friends,
    what the use of creating aggregation level and filters in reporting in bps.
    if u have any videos for bps, please send me links.
    thanking u
    suneel.

    Aggregation levels and filters are spefic objects used in Integrated Planning; they did ot exist in BPS. Aggregation level is similar to planning level and filter is similar to planning package. Agg levels and filters are the essential objects for planning with Integrated planning.
    Ravi Thothadri

  • EasyDMS: New handling of layouts and filters

    Hi,
    in the past we deployed standard layouts and filters in EasyDMS via registry keys. Now there's a new option to store it in the backend (several tables e.g. EDMS_LAYOUT, EDMS_FILTER, etc.).
    However we've some troubles with these settings - example:
    We've defined default settings in EDMS_PREFS table. As soon as a user creates his own layout or filter the new values override the default - even if he just wants to create a new layout also the filter is gone.
    Does any body have some more details on this stuff? There are (almost) no OSS notes, there is no documentation, there's nothing mentioned in the release notes ...
    Thx
    Alex

    Hi,
    Please refer SAP Note 1405541 and see if this is helpful. If will be helpful if all the issues faced are listed in detail.
    Jomerce
    Edited by: Jomerce PJ on Nov 18, 2009 1:06 PM
    Edited by: Jomerce PJ on Nov 18, 2009 1:06 PM

  • ACE WAF XML Gateway 6.1.1 - arbitrarily monitoring and filtering

    Can someone explain why the ACE XML Gateway is monitoring some events and filtering others, when they are the same events?
    I have all mParamAll System Command injection signtatures in monitor mode on the firewall profile that is applied to both of the web applications in the two incidents below, but the firewall sometimes monitors one and sometimes blocks the other. They are both the same and should both be monitored only.
    Please help.
    May 10 2011 08:09:25.603 PM W Matched signature SysCommandInj_m.rm via rule CommandInject.mParamAll in request from ##.###.53.80 for application 'XXX XXX'. Match was in REQUEST_POSTPARAM['__EVENTVALIDATION'], which had value /wEWlwEC6<stripped for size>1sQICoMD1. Request path was: /Kview/CustomCodeBehind/base/courseware/classroom/. Create Exemption (monitor mode) FD0A320100001868DB87435D3D7F9AB0 FBIVAWAP reactor /waf/incident
    May 10 2011 02:13:27.037 PM W Matched signature SysCommandInj_m.tclsh via rule CommandInject.mParamAll in request from ##.###.53.80 for application 'YYYYY YYY'. Match was in REQUEST_POSTPARAM['__VIEWSTATE'], which had value mQjXnQ<stripped for size>laPxd3C8+. Request path was: /XXXX/ApprovalConsole.aspx. Create Exemption FD0A320100001866DA415B3C3D7F9964 FBIVAWAP reactor /waf/incident

    Anyone?
    It looks like multiple ip addresses can be configured through the console, is this all that is required? Do I need to setup listening ports for these new ip addresses or how do I get the WAF to proxy for multiple "virtual ip addresses"?
    Thank you,
    Jim

  • Is apple working on a fix so it plays nice with internet security and filtering programs?

    Question is in the title.
    The conflict that causes us to disable internet security and filtering programs to get iTunes Store to open. Is that planning on being resolved?

    None of us know, and you won't get an answer from Apple on here. We are users just like you. Although not everyone has problems with that, I know I didn't when I used iTunes on my PC.

  • Why Adobe does not say that some plug-ins and filters on a 64-bit Apple computers do not work?

    I called assistance, and the only proposal that I have done was to make new installations, or create a new user.
    Then I found this article on the web!
    ..."Unfortunately, to accommodate the new programming code that allows for 64-bit processing, some plug-ins and filters—the built-in
    Variations and Lighting Effects, for example—only work in 32-bit mode, and that surely will disappoint some users. Moreover, most t
    hird-party plug-ins too will work only in 32-bit mode, until they are updated. Thankfully, it’s easy (though not especially convenie
    nt) to switch between the 32-bit and 64-bit versions of the program; just select the application icon, choose File->Get Info, turn o
    n the 32-bit option, and relaunch Photoshop."
    It is not a system so simple for a person working with photoshop files very large (Over 6/7 GB). You lose several minutes of time.
    The tests carried out then the difference in performance from 64 to 32 Bit is 40-50% faster in 64 bit mode. This is also why the 64-bit version you can assign more memory.
    Someone from Adobe can answer?
    Then, to conclude.
    But the icons of some new palette of photoshop could not make it more beautiful and not ugly and unpleasant?
    Mario

    You not hearing it doesn’t mean Adobe didn’t say it.
    http://kb2.adobe.com/cps/828/cpsid_82824.html

  • FFT and Overall Values Differ btwn VI and DIAdem

    Hi all,
    I have an application that displays live vibration readings including the spectrum and overall vibration level.  All my report generation is done in DIAdem scripts, so it's critical that any values calculated and displayed on the LabVIEW side match the values calculated and reported in DIAdem.  The attached VI and Script, when fed the input from the attached TDMS file, give me significantly different values for the magnitude of the FFT and overall RMS value.  Can anyone spot what I'm doing wrong?
    Thanks,
    Scott
    CLAD
    Solved!
    Go to Solution.
    Attachments:
    FFT and RMS Script.VBS ‏5 KB
    FFT and RMS VI.vi ‏39 KB
    VibrationSample.tdms ‏103 KB

    Hello,
    Here is a great reponse from R&D. I felt it would be better to place this on the web then keep it limited to your service request.
    The difference has to do with the Window-correction. The results are identical if you select rectangluar (or no) window.
    Usually a Window is taking a part of the singnal away, so in the first place, the result has a different shape and is smaller compared to result with rectangular window. This can be corrected with a specific factor for each window.
    There are two possible corrections. Random and periodic.
    - Periodic is used if you have pure sine-wave like signals and you want to measure the peak value. A typical use case is the flattop-window which is designed for this type of calculations.   The periodic correction is too large if you want to add the values to calculate the total RMS of the signal or of a the summation of a certain frequency band.
    - Random is correcting the signal back to the correct overall RMS value and should be used in all other cases.
    The periodic correction for the Hanning window is a factor of two. The random correction is about 1.633. DIAdem will give the same result as LabVIEW if you use the following correction type:
    FFTWndCorrectTyp = "periodic"
    In the world of FFT-analysis, the different corrections are very often not obvious and hidden to the user. Unfortunately this is also the case in LabVIEW. You can find a good example of an explanation here:
    http://blog.prosig.com/2009/09/01/amplitude-and-energy-correction-a-brief-summary/
    There are different factors for the different window functions. If you go deeper into the FFT-VI you will find the "Scaled Window VI". This has an output "window constants". With this, it is possible to get the correction values for the window functions.
    I also think, that periodic is wrong in most cases when Hanning is used, because Hanning is best for the summation of RMS values in frequency bands and the results are wrong without a random correction.
    Hope that helps.
    Jacob R. | Applications Engineer | National Instruments

  • Using Customize grouping and filtering for EPPM 8.2.1 family

    Are there any know issues or BUGS when using customize grouping and filtering returing more than the filtered projects?
    We are customizing grouping on Project Status and Region and filtering on Region and Let by Code
    Thanks

    Are there any know issues or BUGS when using customize grouping and filtering returing more than the filtered projects?
    We are customizing grouping on Project Status and Region and filtering on Region and Let by Code
    Thanks

Maybe you are looking for