Spectral methods: Welch vs. Blackman Turkey, Which is better?

Hello,
i have a question.
LabView uses to estimate the frequency response in SI-Toolkit a
correologram method (Blackman-Turkey).
Matlab uses with tfestimate() a periodogramm method (Welch)to
estimate the Frequency response.
Which is better? In some books i read that Welch method is even a little bit
better and faster.So why doesn´t LabView use the Welch method as well?
Does somebody know where I can find the entire ecuation for the
Welch method?
Thx for help
Regards,
Rapha

Hi RRapha,
I only found out, that you can use the Welch.vi in Labview, too.
Take a look at the attached screenshot.
Best regards
Dippi
Attachments:
Welch.jpg ‏272 KB

Similar Messages

  • Session method and call transaction methos which one is the sap recomonded

    hi
    PLease give me the answer to these questions.
    session method and call transaction methos which one is the sap recomonded why .
    2) if we want to maintain BDC program in all the systems.wt to d0

    Hi Revethi,
    Here is the difference between the Session and Call Transaction method.
         Session
    Session method supports both small amount of data aswell as large amount of data
    2) data processing is asynchronus and data updation is synchronus.
    3) it process multiple apllication while perfomaning validations.
    4) in session method data will be updated in data base only after processing session only.
    5) system provide by default logfile for handling error records.
    6) it supports both foreground aswell as background process
    in bdc we use FM ... bdc_open_group " for creating Session
    bdc_insert " adding transaction and bdcdata table for updating database
    bdc_close_group " for closing Session
          Call Transaction
    Call transaction exclusively for small amout of data
    2) it supports only one apllication while perfoming validations
    3) there is no default logfile, We can explicitly provide logic for creating logfile for handling error records.
    we can create logfile by using structure....BDCMSGCOLL
    4) it doesn't support background processing.
    5) data processing is synchronous and Data updation is Synchronous( default), in
    this method also supports daya updation in asynchronus process also.
    Syntax:
    Call transaction <transaction-name> using BDCDATA
    mode <A/N/E> update <L/A/S>
    messages into BDCMSGCOLL.

  • In session and call tansaction methods, which is better . why?

    hi
    in session and call tansaction methods, which is better . why?

    see the link:
    <a href="http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/">batch inpunt VS call transaction</a>
    "The most important aspects of the session interface are:
    <b>Asynchronous processing</b>
    Transfer data for multiple transactions
    Synchronous database update. During processing, no transaction is started until the previous transaction has been written to the database.
    A batch input processing log is generated for each session
    Sessions cannot be generated in parallel. The batch input program must not open a session until it has closed the preceding session.
    The most important features of CALL TRANSACTION USING are:
    <b>Synchronous processing</b>
    Transfer of data from an individual transaction each time the statement CALL TRANSACTION USING is called
    You can update the database both synchronously and asynchronously. The program specifies the update type.
    Separate LUW (Logical Units of Work) for the transaction. The system executes a database commit immediately before and after the CALL TRANSACTION USING statement.
    No batch input processing log"
    I hope I have been able to help you.
    cordial greetings.

  • Do we have any native methods to get object instances which are alive ?

    Do we have any native methods to get object instances which are alive ?
    Help appreciated.

    If you are looking for accessing objects that are eligible for GC but are not GC,than it should be very difficult.As Java does not give you memory access to its variables.

  • Which is better for newbies?

    Which is better for newbies, Jgrasp or Netbeans? I need something that explains errors more thoroughly than Jgrasp.

    Here's my code with 3 errors. Now bear in mind that my program has compiled completely and ran correctly up to this method. All I'm trying to do with this method is get the average of all grades in a multi-array. I researched and found some code that was similar to what I needed to do but it's not working out yet. All other methods in my program work perfectly but I can't get this one to compile.
    public double getMean(int allGrades[][])
              int total = 0;
              for (int grade : allGrades)
              total += grade;
         System.out.println("Total is "+getMean(grades));     
              return total/allGrades.length;
    } // end class GradeBookGradebook.java:100: illegal start of type
              return total/allGrades.length;
              ^
    Gradebook.java:100: <identifier> expected
              return total/allGrades.length;
              ^
    Gradebook.java:100: <identifier> expected
              return total/allGrades.length;
              ^
    3 errors

  • Which is Better? Mac or PC?

    Which is Better?
    Intel iMac   Mac OS X (10.4.5)  

    Hello,
    I'm not going to argue that a Mac is better, but I do have a response to:
    looking computers and the software is great however
    they have major compatibility issues. for example
    many websites do not support mac's Ex.
    www.aircanada.com
    I have never had any problem exchanging documents or viewing web pages with the Mac.
    All my document exchanges have worked flawlessly, and work going both to and from Windows PC's.
    But, you need to make sure you are using the right program on the Mac if you want to share files with PC users.
    As for the website compatibility, the site you provided as an example will work just fine. They just don't want you to know it.
    What that website is doing, is running a check to see what web-browser you are using. Beyond that, they are also running a check to see which computer you are using.
    So, what you need to do is make sure that your browser tells their website what it wants to hear.
    So, in Safari, you can use the "Debug" menu to have Safari report itself as the Windows version of Internet Explorer.
    Go to the Debug menu, then pick "User Agent", then choose: "Windows MSIE 6.0".
    If the site still won't load, then go to the site first, and perform the selection again from the Debug menu.
    Basically, what you are doing is changing what Safari identifies itself as.
    Additionally, the website that you listed does list that it is compatible with Mac OS 9.0 or later. So, it should work provided you pass it's checks.
    If for some reason it still won't work, contact them since they say that it is compatible with the Mac.
    The only sites that absolutely will not work with a Mac are sites that use "Active X" to take over control of your computer or communicate directly with the operating system. Fortunately, those sites are getting rarer and rarer.
    The only site I've run across in recent times that uses Active X is Microsoft's Windows Update site (which you wouldn't need with a Mac anyway).
    As for enabling the "Debug" menu in Safari, if it is not already there, you can do that by:
    Closing Safari
    Open "Terminal" which is located at:
    Hard Drive --> Applications --> Utilities --> Terminal
    Then type the following at the command line:
    defaults write com.apple.Safari IncludeDebugMenu 1
    If you would prefer an automated method of enabling the Debug menu, you can always download the free Safari Enhancer program which includes a setting for this feature:
    http://www.lordofthecows.com/softwarelist.php

  • Coding Preference ..Which is better for memory?

    Hey all,
    Javas garbage collection is sweet. However, I was reading somewhere that setting some objects to null after I'm done with them will actually help.
    (help what .. I'm not sure.. my guess is memory used by the JVM)
    Thus I have two ways to do the same thing and I'd like to hear peoples comments on which is "better" ... or will yield faster performance.
    Task: I have a Vector of Strings (called paths) that hold absolute file paths. (Don't ask why I didn't use a String[]) I'd like to check and see if they exist, and if not, create them... I'll use the createNewFile() method for that.
    Method A -- Here I'll reuse that File object
    public void myMethod()throws Exception{
    File file = null;
    for(int i = 0; i < paths.size(); i++){
      file = new File(paths.get(i).toString());
      boolean made  = file.createNewFile();
      if(made){doSomething();}
    file = null;
    }Method B -- Here I'll use um... "dynamically made" ones that I won't eventually be set back to null
    public void myMethod()throws Exception{
    for(int i = 0; i < paths.size(); i++){
      boolean made  = (new File(paths.get(i).toString())).createNewFile();
      if(made){doSomething();}
    }So when the code eventually exists myMethod, the object "file" will be out of scope and trashed.... correct? If thats the case, then would there be any other differences between the two implementations?
    Thanks

    There's no real difference between the two. Choose the style you prefer,
    although in the first one I'd lose the "file = null" statement since that
    variable is about to disappear, and I'm move the definition into the loop
    -- always give variables as small a scope as possible, mainly to
    keep the logic simple:
    public void myMethod()throws Exception{
        for(int i = 0; i < paths.size(); i++){
            File file= new File(paths.get(i).toString());
            boolean made  = file.createNewFile();
             if(made){doSomething();}
    }

  • Which is better, Double Buffering 1, or Double Buffering 2??

    Hi,
    I came across a book that uses a completely different approach to double buffering. I use this method:
    private Graphics dbg;
    private Image dbImage;
    public void update() {
      if (dbImage == null) {
        dbImage = createImage(this.getSize().width, this.getSize().height);
        dbg = dbImage.getGraphics();
      dbg.setColor(this.getBackground());
      dbg.fillRect(0, 0, this.getSize().width, this.getSize().height);
      dbg.setColor(this.getForeground());
      paint(dbg);
      g.drawImage(dbImage, 0, 0, this);
    }that was my method for double buffering, and this is the books method:
    import java.awt.*;
    public class DB extends Canvas {
         private Image[] backing = new Image[2];
         private int imageToDraw = 0;
         private int imageNotDraw = 1;
         public void update(Graphics g) {
              paint(g);
         public synchronized void paint(Graphics g) {
              g.drawImage(backing[imageToDraw], 0, 0, this);
         public void addNotify() {
              super.addNotify();
              backing[0] = createImage(400, 400);
              backing[1] = createImage(400, 400);
              setSize(400, 400);
              new Thread(
                   new Runnable() {
                        private int direction = 1;
                        private int position = 0;
                        public void run() {
                             while (true) {
                                  try {
                                       Thread.sleep(10);
                                  }catch (InterruptedException ex) {
                                  Graphics g = backing[imageNotDraw].getGraphics();
                                  g.clearRect(0, 0, 400, 400);
                                                    g.setColor(Color.black);
                                  g.drawOval(position, 200 - position, 400 - (2 * position), 72 * position);
                                  synchronized (DB.this) {
                                       int temp = imageNotDraw;
                                       imageNotDraw = imageToDraw;
                                       imageToDraw = temp;
                                  position += direction;
                                  if (position > 199) {
                                       direction = -1;
                                  }else if (position < 1) {
                                       direction = 1;
                                  repaint();
              ).start();
         public static void main(String args[]) {
              Frame f = new Frame("Double Buffering");
              f.add(new DB(), BorderLayout.CENTER);
              f.pack();
              f.show();
    }which is better? I noticed smoother animation with the later method.
    Is there no difference? Or is it just a figment of my imagination??

    To be fair if you download an applet all the class files are stored in your .jpi_cache, and depending on how that game requests its graphics sometimes they are stored there to, so really if you have to download an applet game twice, blame the programmer (I've probably got that dead wrong :B ).
    But, what's wrong with Jars. They offer so much more.
    No offence meant by this Malohkan but if you can't organize your downloaded files the internet must really be a landmine for you :)
    Personally I'd be happy if I never seen another applet again, it seems java is tied to this legacy, and to the average computer user it seems that is all java is capable of.
    Admitidly there are some very funky applets out here using lots of way over my head funky pixel tricks, but they would look so much better running full screen and offline.

  • Singleton vs static - which is better?

    Of the two approaches -
    a class which can be used by accessing its ONLY instance(singleton) or a class which has a set of static methods which can be invoked on the class itself
    which is better and why? Or are these just two 'styles' of programming?
    I always get confused as to which way to go? I tend to prefer to have static methods on the class instead of a singleton.
    All insights/comments/ideas welcome.
    Thanks

    Well, there are a few questions you can ask - does the method cause any changes of state, or is it a pure function? If the latter, static is probably the way to go.
    The way you are talking, I gather that there is some state involved.
    Next question: does it make sense for there to be more than one of these per JVM? Not only in the way you currently envision it, but at all, anywhere. For example, consider the list of Strings that the String class keeps so it can consolidate memory and avoid duplication (see String.intern() ). That list makes sense to be static.
    On the other hand, the representation of the state of a board game should not be static, because someone could want to write a program which has multiple games within it - or you could within one game wish to have contingencies or undo-ability (essentially, it might not be as singleton as you think).
    Next, if you think the methods will ever need to be overridden, use a singleton, because static methods aren't, well, dynamic! (in case the singleton is a one-at-a-time singleton but it makes sense to have a change of identity over time).
    I have never written a true singleton - though often written classes which I did not PLAN on instantiating more than once.

  • Which is better in performance Double + "" or Double.toString() ?

    Can anyone let me know which of these will be performance effective for converting a Double to String:
    1. Double + ""
    2. Double.toString() ?

    ejp wrote:
    Double+"" calls String.valueOf(double) and then appends "" so it can't possibly be faster.Actually the append/+ uses a StringBuilder which costs almost a micro-second more. (Actually its about 0.3 us on my machine)
    Both methods call Double.toString(double) which is what I would use except ""+d is faster to type. ;)
    Edited by: Peter__Lawrey on 25-Jul-2009 07:57

  • Which is better in terms of performance

    Dear All,
    which is better..
    to use FOR ALL ENTRIES      or
    to build a range and use  WHERE IN RANGE_TABLE     .. Does this have data limitation problem.
    is there a better method?
    Thanks,
    Raghavendra
    Moderator message - Please search before asking - post locked
    Edited by: Rob Burbank on Jul 7, 2009 10:53 AM

    I want to know which is betterThere's not enough information for anyone here to be able to tell you.
    Obviously the first one "looks" faster, but without knowing the tables, structure, data, indexes, platform etc. etc. etc. we won't have a clue.

  • Which is better? Code comparsion of performance and style

    Recently I run into a discussion over a small piece of code. Could help me which is better, either in performance or coding style? The code is not complete, the question is the use of local cancellationNumber variable.
    public String cancelAction(/**/) {
    /* some code */
            String cancellationNumber = result.getCancellationNumber();
            if (empty(cancellationNumber)) {
                throw new Exception("Did not receive a cancellation number!");
            return cancellationNumber;
        }or
    public String cancelAction(/**/) {
    /* some code */
            if (empty(result.getCancellationNumber()) {
                throw new Exception("Did not receive a cancellation number!");
            return result.getCancellationNumber();
        }

    Yes, I know profiling can be misleading, also compiler optimization adds to the picture. However seeing the numbers differentially, I think there is still some information, which is faster, even if taking it completely out scope. I didn't paste the code, because it's so trivial. I run the two methods in a loop with same arguments.
    With increased loop count, the difference is 6-7%, cancelActionWithLocal being faster. But this can be pointless, I know.
    package org.helloprofile;
    import static org.helloprofile.Util.empty;
    import java.util.Locale;
    public class CUT {
        public String cancelActionWithoutLocal(Locale locale, String email, long itineraryId, String confirmationId) throws Exception {
            Result result = new Result();
            if (empty(result.getCancellationNumber())) {
                throw new Exception("Did not receive a cancellation number!");
            return result.getCancellationNumber();
        public String cancelActionWithLocal(Locale locale, String email, long actionId, String confirmationId) throws Exception {
            Result result = new Result();
            String cancellationNumber = result.getCancellationNumber();
            if (empty(cancellationNumber)) {
                throw new Exception("Did not receive a cancellation number!");
            return cancellationNumber;
    }Thanks for the comments!

  • Which Is Better Time Machine or Backup

    So I just got a new iMac plus a 1T external drive. I have been using backup on my old mini-mac with an external drive plus I used the drive for iTunes and iPhoto. So which is better TM or the old backup (which I had no problems with). I really do not do a lot on the iMac, no work just iLife stuff.
    If I use TM can I partition the 1T to use one 500 GB for TM and another 500 GB for any odds and ends I simply want to store there (I plan to convert old videos to digital)?
    Thanks

    Hi! The drive for a bootable clone should be the same size as the internal main drive as should be the drive for TM. To create a bootable clone you can use the disk utility but I prefer SUPERDUPER and if you pay the 27.95 you get the ability to schedule auto backups! Tom
    To use the disk utility: Kappy's method
    How to Clone Using Restore Option of Disk Utility
    1. Open Disk Utility from the Utilities folder.
    2. Select the backup or destination volume from the left side list.
    3. Click on the Erase tab in the DU main window. Set the format type to Mac OS Extended (journaled, if available) and click on the Erase button. This step can be skipped if the destination has already been freshly erased.
    4. Click on the Restore tab in the DU main window.
    5. Select the backup or destination volume from the left side list and drag it to the Destination entry field.
    6. Select the startup or source volume from the left side list and drag it to the Source entry field.
    7. Double-check you got it right, then click on the Restore button.
    8. Select the destination drive on the Desktop and press COMMAND-I to open the Get Info window. At the bottom in the Ownership and Permissions section be sure the box labeled "Ignore Permissions on this Volume" is unchecked. Verify the settings for Ownership and Permissions as follows: Owner=system with read/write; Group=admin with read/write; Other with read-only. If they are not correct then reset them.
    For added precaution you can boot into safe mode before doing the clone.
    Message was edited by: Thomas Bryant

  • Which is better notify() or notifyAll() ??

    Hello ,
    i know that notify() is responsible to wake up on of the threads waiting to access object and notifyAll() responsible to wake up all threads waiting to access same object but what it is the other different between these two methods ?? and which is better ??
    Thanks a lot

    If there are n number of threads in a wait() mode then the notify() method wakes up or sends the notification to the nth thread that went in the wait() mode in the last. So, only the last thread that went into the wait() mode wakes up out of all the waiting threads. However, in case of notifyAll() the notification is sent to all the waiting threads that are waiting. So, any one of them may come out of the wait() mode depending upon the priority and other factors, like the kind of multitasking supported by the operating system( preemptive or collaborative).

  • Onclick or onsubmit which is better?

    Hello,
    Adding JS validation onclick of a submit button or adding JS
    to form onsubmit, which is better?. What is Adv and Dis?.
    <form name="frm" method="post">
    <input type="Submit" name="Submit" value="Submit"
    onclick="return JSCheck(this.form)">
    </form>
    OR
    <form name="frm" method="post" onsubmit="return
    JSCheck(this.form)">
    <input type="Submit" name="Submit" value="Submit">
    </form>
    Thanks

    In this kind of programming there are no hard and fast rules.
    I don't think there is a significant difference between the two.
    Which one you choose depends on how creatively you put the function
    JSCheck() together.
    However, i prefer the second. I get the feeling the button is
    'overloaded', as it has to respond to two events: submit the form
    and run the script.
    Also, if the Javascript performs form validation, then it
    will only be natural for it to be called by onSubmit. Imagine that
    the result of the form validation,
    return JSCheck(this.form), is a boolean. If it is true, the
    form is submitted; otherwise, not. In these circumstances the code
    onSubmit="true;" will be more natural than the code
    onClick="true;" .

Maybe you are looking for