ECG filter probs..

Hi guys....
I am actually developing a Heart rate variability measuring meter. I need to accquire ECG in real time which i am able to do but with loot of added noise. I have attached the pics of the ECG ( doest not much look like it !!!) dat i am able to accquire. Can sme 1  tell me how can i filter it out.....Notch with 50 Hz is one solution i know can u suggest me any thing better .
The Band pass filter in my ckt has a BW of 0.01 to 106 Hz jus sufficient for the ECG signal of 0.05 -120 Hz. But i suppose my circuit is practically even very high freqs(shud i go for a Low Pass Filter)...can ny 1 plz  help me out. 
Attachments:
sabiq1.JPG ‏161 KB
FINAL.JPG ‏145 KB
sabiq3.JPG ‏170 KB

Joanna,
From the waveforms it looks as though you have some power line interference. This is quite common in ECG applications and is the major reason why differential input or instrumentation amplifiers are usually used. If you cannot eliminate the interference before capturing the data, a notch filter may be a good choice.
Other possibilities: (1) Try to set the threshold for identifying the peaks above the interference. In the images you posted the signal to noise ratio appears high enough that this might work fairly well. You could test for peaks that occur too close together to be valid RR intervals. This won't be perfect but should flag the most serious errors.
(2) Try a high pass filter with the cutoff above the power line frequency. Since you are interested in heart rate variability, you only need the locations of the QRS complexes to calculate RR intervals. If the QRS complexes are comparable in width to the power line frequency waveform, this will not work well.
(3) Use another channel and try to capture the power line interference only. Then scale that and subtract it from the data channels. This creates a pseudo-differential signal and may help. Phase shifts can be a problem for good cancellation.
Lynn

Similar Messages

  • Itunes filter prob

    is there any way that i can filter my Libary to display muisc archives instead of podcasting stuff so that i can view all my podcasting in the podciasting section and not the libary part
    thanx
    Althon 64 3800+ Windows XP Pro

    no not in the main library, there are no filters. You can have all the podcast show in one "Grouping" tho by hitting "Gener"

  • Hi i need to design a notch filter for eliminating ECG hum..i am working with NI ELVIS work station...and LABVIE 8.0

    hi i need to design a notch filter for eliminating ECG hum..i am working with NI ELVIS work station...and LABVIEW 8.0. Unfortunately it needs an addon software "Digital filter design toolkit", which i dont have. Its urgent..can some 1 plzz help me out.

    Hi and Happy Halloween,
    Depending on the license you have for LabVIEW and the toolsets you have installed, you may be able to have a "notch" filter. I would search your pallet for "Bandstop" because a notch is a type of Bandstop filter. Or, you can make a notch out of a high-pass and a low-pass or you can use the filter express VI. If these VIs are not on your pallet than you probably only have the LabVIEW Base and thus, cannot use these options.
    Charlie M. CLD

  • How do I use adaptive LMS filter with waveforms?

    In the attached image file and VI, I am reading a .lvm file which contains abdominal ECG (AECG). AECG contains both maternal and fetal ECGs i.e. MECG and FECG respectively. I'm trying to input AECG and MECG to the LMS FIR filter so that I can get FECG as the error signal, e(n). In my VI, e(n) is coming out as a 16-Bit Double but I want it to come out as a waveform. How do I go about it?
    NOTE: Since this forum doesn't allow uploading .lvm files, I have share in Google Drive here. You can use this file to run the attached VI.
    Attachments:
    AECG_NI.vi ‏38 KB

    Step 1. Dont use the express VI. It makes assumptions about the data that don't appear to be valid.
    Mike...
    PS: The lvm is just a text file. Change the file extension to txt and upload away.
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • IMac OS 10.9.4 software updates apparent cause of Corel Painter X3 crash: I have run Disk Utility - no probs there, reinstalled Painter X3 (after first uninstalling X3). What now?

    iMac 10.9.4 software updates last week is apparent cause of my Corel Painter X3 now crashing. I ran Disk Utility check - no probs there. I reinstalled Painter X3 (after first uninstalling X3), still no success. Online Mac support suggest I use MacCleaner - tried at online Mac store & was referred to 0800 tech support for guidance - still waiting for reply.   

    Launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Console in the icon grid.
    Step 1
    For this step, the title of the Console window should be All Messages. If it isn't, select
              SYSTEM LOG QUERIES ▹ All Messages
    from the log list on the left. If you don't see that list, select
              View ▹ Show Log List
    from the menu bar at the top of the screen.
    In the top right corner of the Console window, there's a search box labeled Filter. Initially the words "String Matching" are shown in that box. Enter the name of the crashed application or process. For example, if iTunes crashed, you would enter "iTunes" (without the quotes.)
    Each message in the log begins with the date and time when it was entered. Select the messages from the time of the last crash, if any. Copy them to the Clipboard by pressing the key combination command-C. Paste into a reply to this message by pressing command-V.
    ☞ The log contains a vast amount of information, almost all of which is irrelevant to solving any particular problem. When posting a log extract, be selective. A few dozen lines are almost always more than enough.
    Please don't indiscriminately dump thousands of lines from the log into this discussion.
    Please don't post screenshots of log messages—post the text.
    ☞ Some private information, such as your name, may appear in the log. Anonymize before posting.
    Step 2
    In the Console window, select
              DIAGNOSTIC AND USAGE INFORMATION ▹ User Diagnostic Reports
    (not Diagnostic and Usage Messages) from the log list on the left. There is a disclosure triangle to the left of the list item. If the triangle is pointing to the right, click it so that it points down. You'll see a list of crash reports. The name of each report starts with the name of the process, and ends with ".crash". Select the most recent report related to the process in question. The contents of the report will appear on the right. Use copy and paste to post the entire contents—the text, not a screenshot.
    I know the report is long, maybe several hundred lines. Please post all of it anyway.
    If you don't see any reports listed, but you know there was a crash, you may have chosen Diagnostic and Usage Messages from the log list. Choose DIAGNOSTIC AND USAGE INFORMATION instead.
    In the interest of privacy, I suggest that, before posting, you edit out the “Anonymous UUID,” a long string of letters, numbers, and dashes in the header of the report, if it’s present (it may not be.)
    Please don’t post other kinds of diagnostic report—they're very long and rarely helpful.

  • Agent filter location in web.xml for websphere v7.0

    In the document:
    Sun OpenSSO Enterprise Policy Agent 3.0 Guide for IBM WebSphere Application Server 6.1/7.0 and WebSphere Portal Server 6.1
    I'm and tying to do this part:
    Installing the Agent Filter for the WebSphere Application Server 6.1/7.0 Administration Console
    for my WebSphere 7.0 installation.
    My issue is the placement of the second filter.
    <filter-mapping>
    <filter-name>Agent</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    the doc says to put it under:
    <filter-mapping>
    <filter-name>WSCUrlFilter</filter-name>
    <servlet-name>action</servlet-name>
    </filter-mapping>
    <filter-mapping>
         <filter-name>WSCUrlFilter</filter-name>
    <url-pattern>/federatedlogoff</url-pattern>
    </filter-mapping>
    however, my Websphere 7.0 web.xml does not have this section in the file.
    Can some one assist me with proper placement?
    here is the first few lines of my xml:
    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="WebApp_1" version="2.4" xsi:schemaLocation="http://java.sun.co
    m/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>isclite</display-name>
    <filter>
    <filter-name>WSCUrlFilter</filter-name>
    <filter-class>com.ibm.ws.console.core.servlet.WSCUrlFilter</filter-class>
    </filter>
    <filter>
    <filter-name>Trace_Tree_Cache_Init_Filter</filter-name>
    <filter-class>com.ibm.ws.console.probdetermination.trace.tree.TraceTreeCacheInit</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>WSCUrlFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>Trace_Tree_Cache_Init_Filter</filter-name>
    <servlet-name>Trace Tree Servlet</servlet-name>
    </filter-mapping>
    <listener>
    <listener-class>com.ibm.isclite.SessionListener</listener-class>
    </listener>
    <listener>
    <listener-class>com.ibm.ws.console.appmanagement.SessionListener</listener-class>
    </listener>
    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/config/struts-config.xml</param-value>
    </init-param>
    </servlet>
    <servlet>
    <servlet-name>SecureCleanup</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.SecureCleanupServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>FederationServlet</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.FederationServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>ProfileSelectionServlet</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.ProfileSelectionServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>ConsoleCSS</servlet-name>
    <jsp-file>secure/layouts/console_css.jsp</jsp-file>
    </servlet>
    <servlet>
    <servlet-name>EventInitializer</servlet-name>
    <servlet-class>com.ibm.ws.console.events.EventListenerServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>downloadFile</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.DownloadFileServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>StatusServlet</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.StatusServlet</servlet-class>
    </servlet>
    <servlet>

    See below. You just have additional probe filters.
    862059 wrote:
    In the document:
    Sun OpenSSO Enterprise Policy Agent 3.0 Guide for IBM WebSphere Application Server 6.1/7.0 and WebSphere Portal Server 6.1
    I'm and tying to do this part:
    Installing the Agent Filter for the WebSphere Application Server 6.1/7.0 Administration Console
    for my WebSphere 7.0 installation.
    My issue is the placement of the second filter.
    <filter-mapping>
    <filter-name>Agent</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    the doc says to put it under:
    <filter-mapping>
    <filter-name>WSCUrlFilter</filter-name>
    <servlet-name>action</servlet-name>
    </filter-mapping>
    <filter-mapping>
         <filter-name>WSCUrlFilter</filter-name>
    <url-pattern>/federatedlogoff</url-pattern>
    </filter-mapping>
    however, my Websphere 7.0 web.xml does not have this section in the file.
    Can some one assist me with proper placement?
    here is the first few lines of my xml:
    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="WebApp_1" version="2.4" xsi:schemaLocation="http://java.sun.co
    m/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>isclite</display-name>
    <filter>
    <filter-name>WSCUrlFilter</filter-name>
    <filter-class>com.ibm.ws.console.core.servlet.WSCUrlFilter</filter-class>
    </filter>
    <filter>
    <filter-name>Trace_Tree_Cache_Init_Filter</filter-name>
    <filter-class>com.ibm.ws.console.probdetermination.trace.tree.TraceTreeCacheInit</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>WSCUrlFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>Trace_Tree_Cache_Init_Filter</filter-name>
    <servlet-name>Trace Tree Servlet</servlet-name>
    </filter-mapping><filter-mapping>
    <filter-name>Agent</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
    <listener-class>com.ibm.isclite.SessionListener</listener-class>
    </listener>
    <listener>
    <listener-class>com.ibm.ws.console.appmanagement.SessionListener</listener-class>
    </listener>
    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/config/struts-config.xml</param-value>
    </init-param>
    </servlet>
    <servlet>
    <servlet-name>SecureCleanup</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.SecureCleanupServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>FederationServlet</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.FederationServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>ProfileSelectionServlet</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.ProfileSelectionServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>ConsoleCSS</servlet-name>
    <jsp-file>secure/layouts/console_css.jsp</jsp-file>
    </servlet>
    <servlet>
    <servlet-name>EventInitializer</servlet-name>
    <servlet-class>com.ibm.ws.console.events.EventListenerServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>downloadFile</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.DownloadFileServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>StatusServlet</servlet-name>
    <servlet-class>com.ibm.ws.console.core.servlet.StatusServlet</servlet-class>
    </servlet>
    <servlet>

  • Filter Records By Date in sharepoint

    Hello,
    I have one list which has lots of records, now i want to filter that list (Report you can say), for that I create one new page in which i inserted that list
    My Requirement(Prob)
    Whenever, i open that page it must show the records entered since last 10 days, i.e say
    Today's Date is 9th February 2012 dan it should show records entered on or after
    30th January 2012. I tried with the date filter webpart i set Current Date - 10 Days as the default value for my datefilter webpart and filter the list with that, but not able to get the records.
    Please tell me where m doing the wrong or missing something, i will really appreciate for this.....
    Sorry, for my poor english
    Regards,
    Prashant

    Hello Vijay,
    Finally i got the solution,
    Yes u were correct i just used the filter option on "Created" and choose "Greater Than or Equal" option and Value as "Current Date"
    than open that page in sharepoint designer when to the CAML Query
    Before:
    <Where>
                        <Geq>
                            <FieldRef Name="Created"/>
                            <Value Type="DateTime">
                                <Today />
                            </Value>
                        </Geq>
                    </Where>
    After:
    <Where>
                        <Geq>
                            <FieldRef Name="Created"/>
                            <Value Type="DateTime">
                                <Today
    OffsetDays="-10"/>
                            </Value>
                        </Geq>
                    </Where>
    and Bingo!!!!!!!!!! its works, Thanks a lot for the solution
    Regards
    Prashant

  • Bloom filter and performance

    I have the following query:
    SELECT 
                    obst.obst_id obstructionId
                   ,oost.comment_clob CommentClob
                   ,chp1.ptcar_no StartPtcar
                   ,chp2.ptcar_no EndPtcar
                   ,oost.track_code Track
                   ,oost.start_date StartPeriod
                   ,oost.end_date EndPeriod
                   ,oost.doc_no RelaasId
                   ,obst.status_code Status
            FROM   T1 obst
                 , T2 oost
                 , T3 chp1
                 , T3 chp2
              where obst.oost_id      = oost.oost_id
              and oost.chp_id_start = chp1.chp_id
              and oost.chp_id_end   = chp2.chp_id
              and obst.obs_stat     = 2
       and add_months(obst.mod_date,13) >= :ld_curr_date
       and oost.start_date between :ld_from_date and :ld_to_date         
              and exists (select 1
                            from T4  obsv
                               , T5  veh
                            where  obsv.veh_id = veh.veh_id
                            and (:ln_opr_id is null
                                   OR veh.opr_id = :ln_opr_id)
                            and  obsv.obst_id = obst.obst_id
                            and  veh.ac_number between :ln_min_number and :ln_max_number
                            and  obsv.start_date > obst.start_date
             order by obst.obst_id;
    Giving the following execution plan where a bloom filter has been used.
    | Id  | Operation                           | Name                    | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    |   0 | SELECT STATEMENT                    |                         |      1 |        |     10 |00:02:13.09 |     128K|  94376 |
    |   1 |  SORT ORDER BY                      |                         |      1 |      8 |     10 |00:02:13.09 |     128K|  94376 |
    |   2 |   NESTED LOOPS                      |                         |      1 |        |     10 |00:02:13.06 |     128K|  94376 |
    |   3 |    NESTED LOOPS                     |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |   4 |     NESTED LOOPS                    |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |*  5 |      HASH JOIN SEMI                 |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |   6 |       JOIN FILTER CREATE            | :BF0000                 |      1 |        |   1469 |00:00:02.06 |   12430 |     76 |
    |   7 |        NESTED LOOPS                 |                         |      1 |        |   1469 |00:00:00.17 |   12430 |     76 |
    |   8 |         NESTED LOOPS                |                         |      1 |    307 |   5522 |00:00:00.11 |   10545 |     52 |
    |*  9 |          TABLE ACCESS BY INDEX ROWID| T2                      |      1 |    316 |   5522 |00:00:00.07 |    3383 |     46 |
    |* 10 |           INDEX RANGE SCAN          | T2_OOST_START_DATE_I    |      1 |   1033 |   8543 |00:00:00.03 |      33 |      3 |
    |* 11 |          INDEX RANGE SCAN           | T1_OBST_OOST_DK_I       |   5522 |      1 |   5522 |00:00:00.08 |    7162 |      6 |
    |* 12 |         TABLE ACCESS BY INDEX ROWID | T1                      |   5522 |      1 |   1469 |00:00:00.13 |    1885 |     24 |
    |  13 |       VIEW                          | VW_SQ_1                 |      1 |  64027 |   1405 |00:00:07.82 |     115K|  94300 |
    |* 14 |        FILTER                       |                         |      1 |        |   1405 |00:00:07.82 |     115K|  94300 |
    |  15 |         JOIN FILTER USE             | :BF0000                 |      1 |  64027 |   1405 |00:00:07.82 |     115K|  94300 |
    |  16 |          PARTITION REFERENCE ALL    |                         |      1 |  64027 |  64027 |00:01:48.22 |     115K|  94300 |
    |* 17 |           HASH JOIN                 |                         |     52 |  64027 |  64027 |00:02:03.37 |     115K|  94300 |
    |  18 |            TABLE ACCESS FULL        | T4                      |     52 |  64027 |  64027 |00:00:00.34 |    1408 |    280 |
    |* 19 |            TABLE ACCESS FULL        | T5                      |     41 |    569K|   5555K|00:02:08.32 |     114K|  94020 |
    |  20 |      TABLE ACCESS BY INDEX ROWID    | T3                      |     10 |      1 |     10 |00:00:00.01 |      22 |      0 |
    |* 21 |       INDEX UNIQUE SCAN             | T3_CHP_PK               |     10 |      1 |     10 |00:00:00.01 |      12 |      0 |
    |* 22 |     INDEX UNIQUE SCAN               | T3_CHP_PK               |     10 |      1 |     10 |00:00:00.01 |      12 |      0 |
    |  23 |    TABLE ACCESS BY INDEX ROWID      | T3                      |     10 |      1 |     10 |00:00:00.01 |      10 |      0 |
    Predicate Information (identified by operation id):
       5 - access("ITEM_1"="OBST"."OBST_ID")
           filter("ITEM_2">"OBST"."START_DATE")
       9 - filter(("OOST"."CHP_ID_START" IS NOT NULL AND "OOST"."CHP_ID_END" IS NOT NULL))
      10 - access("OOST"."START_DATE">=:LD_FROM_DATE AND "OOST"."START_DATE"<=:LD_TO_DATE)
      11 - access("OBST"."OOST_ID"="OOST"."OOST_ID")
      12 - filter(("OBST"."OBS_STAT"=2 AND ADD_MONTHS(INTERNAL_FUNCTION("OBST"."MOD_DATE"),13)>=:LD_CURR_DATE))
      14 - filter((:LN_MIN_ac_number<=:ln_max_number AND TO_DATE(:LD_FROM_DATE)<=TO_DATE(:LD_TO_DATE)))
      17 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")
      19 - filter(((:LN_OPR_ID IS NULL OR "VEH"."OPR_ID"=:LN_OPR_ID) AND "VEH"."ac_number">=:LN_MIN_ac_number AND
                  "VEH"."ac_number"<=:ln_max_number))
      21 - access("OOST"."CHP_ID_START"="CHP1"."CHP_ID")
      22 - access("OOST"."CHP_ID_END"="CHP2"."CHP_ID")
    This query completes in a not acceptable response time of more than 2 minutes and this is why it has been handled to me for possible improvement.
    As you might have already pointed it out from the above execution plan, the operation number 19 is the most time consuming operation (TABLE ACCESS FULL of T5). The query without the EXISTS part represents our data. This part of the query is very fast. It gives about 1500 rows. However, when we want to limit those 1500 records to only records satisfying the exists clause (10 records), the query starts not performing very well because of this full table scan on T5 (5,5 millions).
    The ideal situation would have been to :
    (a) first join table T5(alias veh) with the table T4(alias obs) using the join condition (predicate 17) limiting the number of record from T5 table
    (b) and then filter from T5 table (predicate 19)
    But in this case the CBO is starting by a costly full scan of the entire T5 table (5,5 millions of rows operation 19) before sending this enormous amount of data to the HASH JOIN operation 17 which finally throw away the majority of T5 rows not satisfying the join condition : access("OBSV"."VEH_ID"="VEH"."VEH_ID")
    I have already verified that the table statistics and their join column statistics are up-to-date and are reflecting the reality. But failed to know how to let the CBO automatically doing what I want it to do i.e. Join first and then filter.
    When I discussed with the client we agreed to re-factor a little bit this query so that it is now completing in few seconds.
    The new plan is not using bloom filter and the veh table is accessed via its unique index on VEH_ID (18 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")) before applying the filter operation. Exactly as I wanted it to be in the original query
    Have you any idea on how to change this join method/order so that the full table scan is post poned? of course without refactoring the query
    Do you think that bloom filter is the culprit here?
    Thanks in advance
    Mohamed Houri
    PS : and  veh.ac_number between :ln_min_number and :ln_max_number
    These two imput parameters are beyound the known low and high value. But even when I used min and max value taken from the table (min = low_value from stats and max = high value from stat), the plan didn't changed

    Jonathan,
    I got the plan I was looking for.
    It is not exactly the same as the execution plan that corresponds to the re-factored query but it is what I wanted to have.
    SELECT  /*+ gather_plan_statistics */
                   obst.obst_id obstructionId
                   ,oost.comment_clob CommentClob
                   ,chp1.ptcar_no StartPtcar
                   ,chp2.ptcar_no EndPtcar
                   ,oost.track_code Track
                   ,oost.start_date StartPeriod
                   ,oost.end_date EndPeriod
                   ,oost.doc_no RelaasId
                   ,obst.status_code Status
            FROM   T1 obst
                 , T2 oost
                 , T3 chp1
                 , T3 chp2
            where obst.oost_id = oost.oost_id
              and oost.chp_id_start = chp1.chp_id
              and oost.chp_id_end = chp2.chp_id
              and obst.obs_stat = 2 -- only reeel       
                    and exists (select /*+ no_unnest push_subq */ 1
                            from T4 obsv
                               , T5 veh
                            where obsv.veh_id = veh.veh_id
                              and (null is null
                                   OR veh.opr_id = null
                              and  obsv.obst_id = obst.obst_id
                              and veh.ac_number between 1 and 99999
                              and obsv.start_date > obst.start_date
              and oost.start_date between to_date ('20/11/2013','DD/MM/YYYY') and to_date ('27/11/2013','DD/MM/YYYY')
              and add_months(obst.mod_date,13) >= sysdate
             order by obst.obst_id
    | Id  | Operation                                 | Name                    | Starts | E-Rows | A-Rows |   A-Time   |
    |   0 | SELECT STATEMENT                          |                         |      1 |        |      6 |00:00:00.56 |
    |   1 |  SORT ORDER BY                            |                         |      1 |    254 |      6 |00:00:00.56 |
    |*  2 |   HASH JOIN                               |                         |      1 |    254 |      6 |00:00:00.11 |
    |   3 |    TABLE ACCESS FULL                      | T3                      |      1 |   2849 |   2849 |00:00:00.01 |
    |*  4 |    HASH JOIN                              |                         |      1 |    254 |      6 |00:00:00.11 |
    |   5 |     TABLE ACCESS FULL                     | T3                      |      1 |   2849 |   2849 |00:00:00.01 |
    |   6 |     NESTED LOOPS                          |                         |      1 |        |      6 |00:00:00.10 |
    |   7 |      NESTED LOOPS                         |                         |      1 |    254 |   5012 |00:00:00.09 |
    |*  8 |       TABLE ACCESS BY INDEX ROWID         | T2                      |      1 |    262 |   5012 |00:00:00.06 |
    |*  9 |        INDEX RANGE SCAN                   | T2_OOST_START_DATE_I    |      1 |    857 |   7722 |00:00:00.01 |
    |* 10 |       INDEX RANGE SCAN                    | T1_OBST_OOST_DK_I       |   5012 |      1 |   5012 |00:00:00.03 |
    |* 11 |      TABLE ACCESS BY INDEX ROWID          | T1                      |   5012 |      1 |      6 |00:00:00.48 |
    |  12 |       NESTED LOOPS                        |                         |   1277 |        |      6 |00:00:00.46 |
    |  13 |        NESTED LOOPS                       |                         |   1277 |      2 |      6 |00:00:00.46 |
    |  14 |         PARTITION REFERENCE ALL           |                         |   1277 |      4 |      6 |00:00:00.46 |
    |* 15 |          TABLE ACCESS BY LOCAL INDEX ROWID| T4                      |  66380 |      4 |      6 |00:00:00.43 |
    |* 16 |           INDEX RANGE SCAN                | T4_OBSV_OBST_FK_I       |  66380 |     86 |      6 |00:00:00.28 |
    |* 17 |         INDEX UNIQUE SCAN                 | T5_VEH_PK               |      6 |      1 |      6 |00:00:00.01 |
    |* 18 |        TABLE ACCESS BY GLOBAL INDEX ROWID | T5                      |      6 |      1 |      6 |00:00:00.01 |
    Predicate Information (identified by operation id):
       2 - access("OOST"."CHP_ID_END"="CHP2"."CHP_ID")
       4 - access("OOST"."CHP_ID_START"="CHP1"."CHP_ID")
       8 - filter(("OOST"."CHP_ID_START" IS NOT NULL AND "OOST"."CHP_ID_END" IS NOT NULL))
       9 - access("OOST"."START_DATE">=TO_DATE(' 2013-11-20 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "OOST"."START_DATE"<=TO_DATE(' 2013-11-27
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
      10 - access("OBST"."OOST_ID"="OOST"."OOST_ID")
      11 - filter(("OBST"."OBS_STAT"=2 AND ADD_MONTHS(INTERNAL_FUNCTION("OBST"."MOD_DATE"),13)>=SYSDATE@! AND  IS NOT NULL))
      15 - filter("OBSV"."START_DATE">:B1)
      16 - access("OBSV"."OBST_ID"=:B1)
      17 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")
      18 - filter(("VEH"."ac_number">=1 AND "VEH"."ac_number"<=99999))
    Spot how the predicate 17 and 18 are now in the position I wanted them to be i.e probe first the T5 unique index using the join condition and then filter the table T5
    But, there is always a but, why am I obliged to hint?
    Where did I got something wrong (statistics, optimizer parameter, etc...) so that the CBO did not opted for this execution plan without a hint?
    Thanks
    Mohamed Houri

  • ALV: cannot filter multiple columns at a time

    Hi,
    I'm trying to fix a problem in a report that uses ALV grid: when I try to filter the grid content by choosing a multi-column criteria, I get prompted only to enter the first column selection criteria. That is, I multi-select 2 or more columns, right click, then Set Filter...; I get the selection only for the first selected column. I know this is a built-in feature of ALV grid, is there a parameter I'm missing when I build the grid?
    Thanks a lot,
    Dinu
    Here are some code snippets:
    FORM output_report.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program = 'ZRRRMPROJSTAT'
                is_layout          = gs_layout
                it_fieldcat        = gt_fieldcat
                it_sort            = gt_sort
                i_save             = 'A'
                it_events          = gt_events
           TABLES
                t_outtab           = i_project
           EXCEPTIONS
                program_error      = 1
                OTHERS             = 2.
    ENDFORM.                    " output_report
    FORM build_fieldcat.
      DATA: s_fieldcat TYPE slis_fieldcat_alv.
      DATA: l_col_count like s_fieldcat-col_pos.
      l_col_count = 1.
      CLEAR s_fieldcat.
      s_fieldcat-col_pos       = l_col_count.
      l_col_count = l_col_count + 1.
      s_fieldcat-tabname       = i_project.
      s_fieldcat-fieldname     = 'PSPID'.
      s_fieldcat-datatype      = 'CHAR'.
      s_fieldcat-outputlen     = '10'.
      s_fieldcat-seltext_l     = 'Project Number'.
      s_fieldcat-seltext_m     = 'Project Number'.
      s_fieldcat-seltext_s     = 'Project Number'.
      s_fieldcat-key           = 'X'.
      s_fieldcat-fix_column    = 'X'.
      s_fieldcat-just          = 'C'.
      s_fieldcat-no_zero       = 'X'.
      APPEND s_fieldcat TO gt_fieldcat.
    and so on....
    ENDFORM
    FORM sort_layout.
      DATA: ls_sort TYPE slis_sortinfo_alv.
      REFRESH gt_sort.
      CLEAR ls_sort.
      ls_sort-spos       = '1'.
      ls_sort-tabname    = 'i_project'.
      ls_sort-fieldname  = 'PSPID'.
      APPEND ls_sort TO gt_sort.
      CLEAR ls_sort.
      ls_sort-spos       = '2'.
      ls_sort-tabname    = 'i_project'.
      ls_sort-fieldname  = 'POSID'.
      APPEND ls_sort TO gt_sort.
    ENDFORM.                    " sort_layout
    FORM build_layout.
      CLEAR gs_layout.
    gs_layout-totals_before_items = 'X'.
      gs_layout-zebra = 'X'.
      gs_layout-numc_sum = 'X'.
      gs_layout-get_selinfos = 'X'.
      gs_layout-box_tabname = 'X'.
      gs_layout-info_fieldname = 'COLOR'.
    ENDFORM.                    "

    Hi,
    I think there is no prob with ALV, U follow steps as:
    click on alv Set filter button.
    then transfer column names to filter field list,
    on same screen filter button is there click it,
    now it will ask for both filter criteria.
    I am sure it will do, Award if it helps
    Jogdand M B

  • Tried the solutions posted for this "SubVI filter not executable​. Undefined error" but not solving the problem

    Hello,
    I am trying to use a lowpass filter for my application but getting the error "SubVI filter not executable. Undefined error".I tried working with the solutions at this post 
    http://forums.ni.com/t5/LabVIEW/SubVI-filter-not-e​xecutable-Undefined-error/m-p/1996701#M657751 and results with
    1. Create a blank vi, put a VI filter in the block diagram (this should not be functional as it is not wired), copy it and paste it in my other project. I believe if the filter is the first vi of a blank project, it is funcitonal and then you may copy it wherever you need to.
    Result:
    2.Tried to open the filter panel of the Filter but showing the same error as shown inthe below image
    Don't why the solutions worked for others are not working.Can someone suggest a solution for this.
    thanks in advance.

    Hi PatanGova,
    Very strange error. Actually, there are no required inputs on this express VI, so it should be able to run even without wires. It is not correct as you said: "this should not be functional as it is not wired". Nothing will happen, true, but the run arrow should not be broken.
    For some reason, the VI with the Filter express VI fails to compile. I tried it on my computer (LV 2013) and get no error when I add it to a new VI. As was suggested in the linked forum thread, you need to open the front panel of the Filter VI and run it to see the explicit error.
    If you do, do you also get the error:
    "This VI claims to be part of a library that does not include the VI. The VI might have been deleted from the library. Add the VI to the library again or select File - Disconnect from the library."?
    If you do, it seems that you may have a project library somewhere that has taken ownership of the express VI. The ownership prevents you from running or editing the express VI. To free the VI, you need to do one of two things. Either, you need to load the library into memory, or you need to disconnect the VI from the library. Either way, you need to find the project library that has taken the ownership of the VI. As soon as it is released, it should run for you. You release it by selecting File»Disconnect from Library on the VI.
    The workaround described in your link (and also here: http://forums.ni.com/t5/LabVIEW/compatibility-prob​lem-labview-2009-2010-2011-quot-This-VI-claims/td-​... tells that you can make a copy of the VI and thereby create another instance that is free. This solution may work for you as well, but if not, you may not have created the copy properly. Maybe your copy of the VI also became part of some project library that took ownership. In either way, you should rather find the project library to release the VI before trying the workaround to copy it.
    If project library ownership is not the problem, maybe the problem is connected to LV 2011, as most forum posters report that it only happens here.

  • Ecg baseline wandering[​need quick expert help]

    Hello everyone!
    I'm new user here, and I have an urgent problem considering my faculty project.
    I have looked at previous topics on this matter, and also I've checked the tutorial here
    http://zone.ni.com/devzone/cda/tut/p/id/6349
     but I didnt find the exact thing I need.
    So here is the thingd:
    I have baseline wandering, but how can I fix it without using additional 
     Digital Filter Design Toolkit (DFDT). I have access only to labview 8.5 at laboratory at my faculty
    and I dont have DFDT there.
    I have attached what I have done so far, and it would mean a lot if someone could help me 
    by explaining me how to create/or create for me the filter for wandering.
    I would upload the ecg txt file that I use but it's 35mb.
    Thanks in advance people!
    Attachments:
    Semestralni.vi ‏63 KB

    I agree with Steve. Also remember that if your goal only is to extract heart rate you will only be interested in the QRS complex. The rest of the ECG complex that have lower frequency content may be shaved away with filtering. In your signal you have a large bump just before sample 8000. This is caused by  electrode movement. Securing the electrodes is important.  But your biggest problem is that you do not use the "Peak Detector.vi" correct.
    Here is some useful tips for the Labview beginner (we have all been there some time)
    1)Then starting a new Labview session enable context help (Ctrl+h) Do not be afraid to use the detailed help option
    2)Then stuck, go to help in the toolbar then select find examples
    Ps. I also noticed that your Labview programming style is somewhat mixed-up. It is hard to follow the data flow. 
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • How can I get rid of baseline drift in an ecg without having the dfdt or advanced signal processing toolkits?

    Hello,
    I am recieving a lot of baseline drift in my ECG signal and was wondering how I can get rid of it? I saw examples at NI .com but they used the digital filter design toolkit and the advanced sgnal processing tollkit. I have neither one of these and since I am a student and this is my senior project I have no means to get these toolkits. I tried using a high pass filter but this did not work.\
    Ray

    Ray,
    When you say that something did not work, you are not giving much information for us to use to try to help you. Did the filter not work or did it not remove the drift?
    How big is the drift, compared to the desired signal? How fast does it drift? How long are your sample sets? What are you doing with the ECG data? Looking at heart rate or analyzing a single-beat waveform for morphological changes? I think you can see that different end goals might require different approaches to baseline compensation.
    If the drift is always fairly slow, you might be able to take small segments and subtract the mean of each segment. This may result in some offset or shift at the segment boundaries, but it is very simple and can easily be implemented without requiring a special toolkit.
    Another approach is to low pass filter the ECG signal to extract an estimate of the baseline which can then be subtracted. Remember that all filters have a transient response and many will have a phase shift between the input and output.
    Lynn

  • Query  in table view -filter.

    hi,
        i have one probs. for using the filter in the tableview.
       These r the following code i used.
        <%
          data: columnDefinitions type TABLEVIEWCONTROLTAB,
                  wa                type TABLEVIEWCONTROL.
            data filters type tableviewFilterTab.
            field-symbols: <filter> like line of filters,
                           <wa>     type IHTTPNVP2.
            append initial line to filters assigning <filter>.
            <filter>-columnName = 'connid'.
    i want to fetch all connid value from DB in the dropdownlistbox ,insteed of giving manually.here manually i am giving the value to the dropdownlistbox.
    i tryed in some ways,but still i am not getting.    
    can any one help me to sole the probs.
            append initial line to <filter>-dropdownlistbox table assigning <wa>.
            <wa>-name = '*'.
            <wa>-value = '*'.
            append initial line to <filter>-dropdownlistbox_table assigning <wa>.
            <wa>-name = '0820'.
            <wa>-value = '0820'.
      %>
       <htmlb:tableView    id            = "tv2"
                           headerText    = "Books that match your query"
                           headerVisible = "true"
                           footerVisible = "false"
                           design        = "ALTERNATING"
                           visibleRowCount = "30"
                           filter           = "server"
                           sort             = "server"
                           columnFilters     = "<%=filters%>"
                           onRowSelection = "MyEventRowSelection"
                           selectionMode = "SINGLESELECT"
                           table         = "<%= itab  %>" >
    with regards,
    ravi.

    Hi Ravi,
      Go through the weblog,
    /people/sap.user72/blog/2005/05/05/bsphowto-filter-using-dropdown-in-tableview
    Regards,
    Azaz Ali.

  • Prob in loading

    Hi 2 all               i am new to BI .i got a prob while iam loading from r/3 to dso. actualLY in r/3 there is 9000 rec  i put load to psa .THEN 10000 rec came to psa from therE  i put load to dso  .There I GOT ONLY 75OO  rec this  is my prob can any one hepltome its vey urgent
    thnks
    satish

    Hi Satish,
    The problem you are saying may not be a problem actaully
    Reasons of your observation:
    1.Firstly ,where did u check the no. of records??Is the loading delta..then why should no.of records be the 9000???(only new/changed records come in delta)
    2.Now...your observation can happen in three cases:
    a.Your functionmodule which is used in extraction may be having some filter criteria
    b.Your Infopackage has some selection condition
    c.Your Infopackage is loading delta request
    d.Now your DTP which is loading to target is having some filter
    e.Your transformation/update rules etc having routine to filter records..
    It is never mandatory to have transferred records same as added records.In some cases the transferred records can be greater than added records..(filter)
    or in some cases transferred records can be less than added records(appending data to result package)
    Regards,
    rocks

  • Savitzky filter: problem writing to file

    Hi,
    I have a very weird problem. I m using a Savitzky Golay filter to smooth some data and I can see the correct filtered data on the graph on the front panel. Now, I want to write this filtered data to a file. So I wired the output of the SG filter to a spreadsheet file. On replotting the file, I notice that the graph that I obtain is identical to the input that I gave to the filter. I have attached some screenshots of the front panels and the replotted graph.
    Figure one: Is the input to the SG filter
    Figure two: Is the output of the SG filter.
    Figure three: Is the waveform that I obtained from replotting the output that I wrote to a file.
    Figure four: Is the SG filter and write to file VI screenshot.
    Can someone please help me out. Its driving me crazy.
    Thanks and regards.
    Attachments:
    sgfilter_writetofile.doc ‏314 KB

    You index the output-array of the filter VI before you save it to file. So on the frontpanel you see the whole waveform, but you save only the first value to the file. Another evidendence for this is the messed up x-Axis (time) in the data loaded from your file. The data you see in the file is neither the data before, nor the data after the filter function. You see only the first value of each measurement. YOu have to put a for-loop arround your save to spreadsheet, or better would be to not index the array at all and write the whole array to file. You can use probes to see what I mean.
    Hope this helps!
    Andre

Maybe you are looking for

  • Photoshop CS2 on Windows 7 - unable to boot up after installing

    Hi everyone, I really hope anyone can help me with this!! Ok, I've always used Imageready CS2 to open avi files to edit then save as animation GIF without affecting quality (which part of PS CS2 that I did pay for) on my old laptop with Windows XP in

  • Iweb : site en 2 parties ?

    j'ai créé un site avec 2 parties une sans mot de passe et une avec mot de passe. Comment faire pour avoir accèse à la partie avec mot de passe ? Est-ce possible ?

  • Error in proxy configuration for a WebService

    This is my first attempt at working with a WebService in Flash. The services, which are on a local machine work fine when I call them directly, i.e. with useProxy="false". However, when I attempt to call them through BlazeDS, setting useProxy="true",

  • Temporary Pop Up Message

    I'm running a Java applet. I need to pop up some kind of message dialog to the user that lets them know that the program is running (while it appears to be doing nothing). However, I don't want this to stop the subsequent lines of the program executi

  • Substitution not allowing using table PRTE

    Dear All, I want to copy the WBS scheduled dates in two user defined date fields in WBS element. For this purpose, I created a substitution where I added the table fields of PRTE table( the scheduled dates for WBS are stored here) using SE16N in tabl