|
2647 | 2647 | </Documentation> |
2648 | 2648 | </IntVectorProperty> |
2649 | 2649 |
|
| 2650 | + <DoubleVectorProperty name="DefaultSampleRate" |
| 2651 | + command="SetDefaultSampleRate" |
| 2652 | + number_of_elements="1" |
| 2653 | + default_values="10000"> |
| 2654 | + <DoubleRangeDomain name="range" min="10" max="100000" /> |
| 2655 | + <Documentation> |
| 2656 | + If the "Time" column is not found then this value will be used as the sample rate of the input. |
| 2657 | + </Documentation> |
| 2658 | + </DoubleVectorProperty> |
| 2659 | + |
2650 | 2660 | <IntVectorProperty name="WindowingFunction" |
2651 | 2661 | command="SetWindowingFunction" |
| 2662 | + panel_visibility="advanced" |
2652 | 2663 | number_of_elements="1" |
2653 | 2664 | default_values="4"> |
2654 | 2665 | <EnumerationDomain name="enum"> |
|
2660 | 2671 | </EnumerationDomain> |
2661 | 2672 | <Documentation> |
2662 | 2673 | Specify the windowing function to apply on the input. This allows to better process |
2663 | | - data that is not periodic. When NumberOfBlocks > 1, the windowing function is applied |
2664 | | - to each block. |
| 2674 | + data that is not periodic. When Welch method is used, the window is applied to each frame. |
2665 | 2675 | </Documentation> |
2666 | 2676 | </IntVectorProperty> |
2667 | 2677 |
|
2668 | | - <IntVectorProperty name="OptimizeForRealInput" |
2669 | | - command="SetOptimizeForRealInput" |
2670 | | - panel_visibility="advanced" |
| 2678 | + <IntVectorProperty name="OneSidedSpectrum" |
| 2679 | + command="SetReturnOnesided" |
| 2680 | + panel_visibility="default" |
2671 | 2681 | number_of_elements="1" |
2672 | 2682 | default_values="0"> |
2673 | 2683 | <BooleanDomain name="bool" /> |
|
2684 | 2694 | default_values="0"> |
2685 | 2695 | <BooleanDomain name="bool" /> |
2686 | 2696 | <Documentation> |
2687 | | - Specify if the output should be normalized. |
| 2697 | + Specify if the output should be normalized. Only used if UseWelchMethod is false. |
2688 | 2698 | </Documentation> |
| 2699 | + <Hints> |
| 2700 | + <PropertyWidgetDecorator type="GenericDecorator" |
| 2701 | + mode="visibility" |
| 2702 | + property="AverageFft" |
| 2703 | + value="0" /> |
| 2704 | + </Hints> |
2689 | 2705 | </IntVectorProperty> |
2690 | 2706 |
|
2691 | | - <IntVectorProperty name="AverageFft" |
| 2707 | + <IntVectorProperty name="UseWelchMethod" |
2692 | 2708 | command="SetAverageFft" |
2693 | | - label="Average FFT per block" |
2694 | 2709 | panel_visibility="advanced" |
2695 | 2710 | number_of_elements="1" |
2696 | 2711 | default_values="0"> |
2697 | 2712 | <BooleanDomain name="bool" /> |
2698 | 2713 | <Documentation> |
2699 | | - Specify if the input should be split in multiple blocks to compute |
2700 | | - an average fft across all blocks. |
| 2714 | + Specify if filter should use the Welch / periodogram method. If true the |
| 2715 | + input will be split in multiple segment to compute an average fft across |
| 2716 | + all segments / blocks. This can be faster for input with lots of samples |
| 2717 | + and also remove some noise. |
2701 | 2718 | </Documentation> |
2702 | 2719 | </IntVectorProperty> |
2703 | 2720 |
|
2704 | | - <IntVectorProperty name="NumberOfBlock" |
2705 | | - command="SetNumberOfBlock" |
| 2721 | + <IntVectorProperty name="BlockSize" |
| 2722 | + command="SetBlockSize" |
2706 | 2723 | panel_visibility="advanced" |
2707 | 2724 | number_of_elements="1" |
2708 | | - default_values="2"> |
| 2725 | + default_values="1024"> |
2709 | 2726 | <Documentation> |
2710 | | - Specify the number of blocks to use when computing the average fft over |
2711 | | - the whole input sample array. If NumberOfBlock == 1, no average is done |
2712 | | - and we only compute the fft on the first BlockSize samples of the input data. |
| 2727 | + Specify the number of samples to use for each block / segment in the Welch method. |
| 2728 | + This should be a power of 2 in order to achieve better performance. |
2713 | 2729 | </Documentation> |
| 2730 | + </IntVectorProperty> |
2714 | 2731 |
|
2715 | | - <Hints> |
2716 | | - <PropertyWidgetDecorator type="GenericDecorator" |
2717 | | - mode="visibility" |
2718 | | - property="AverageFft" |
2719 | | - value="1" /> |
2720 | | - </Hints> |
| 2732 | + <IntVectorProperty name="BlockOverlap" |
| 2733 | + command="SetBlockOverlap" |
| 2734 | + panel_visibility="advanced" |
| 2735 | + number_of_elements="1" |
| 2736 | + default_values="-1"> |
| 2737 | + <Documentation> |
| 2738 | + Specify the number of samples which will overlap between each block / segment. |
| 2739 | + If value is not in a valid range (ie inferior to 0 or superior to BlockSize) then the |
| 2740 | + value BlockSize / 2 will be used. Only used if UseWelchMethod is true. |
| 2741 | + </Documentation> |
2721 | 2742 | </IntVectorProperty> |
2722 | 2743 |
|
2723 | | - <IntVectorProperty name="BlockSize" |
2724 | | - command="SetBlockSize" |
| 2744 | + <IntVectorProperty name="ScalingMethod" |
| 2745 | + command="SetScalingMethod" |
2725 | 2746 | panel_visibility="advanced" |
2726 | 2747 | number_of_elements="1" |
2727 | | - default_values="1024"> |
| 2748 | + default_values="0"> |
| 2749 | + <EnumerationDomain name="enum"> |
| 2750 | + <Entry value="0" text="Density"/> |
| 2751 | + <Entry value="1" text="Spectrum"/> |
| 2752 | + </EnumerationDomain> |
| 2753 | + <Documentation> |
| 2754 | + Set what scaling should be used when applying the Welch method. |
| 2755 | + </Documentation> |
| 2756 | + </IntVectorProperty> |
| 2757 | + |
| 2758 | + <IntVectorProperty name="Detrend" |
| 2759 | + command="SetDetrend" |
| 2760 | + panel_visibility="advanced" |
| 2761 | + number_of_elements="1" |
| 2762 | + default_values="0"> |
| 2763 | + <BooleanDomain name="bool" /> |
2728 | 2764 | <Documentation> |
2729 | | - Specify the number of samples to use for each block. This should be a power of 2. |
2730 | | - If not, the closest power of two will be used anyway. |
| 2765 | + Remove trend on each segment before applying the FFT. This is a constant |
| 2766 | + detrend where the mean of the signal is substracted to the signal. |
| 2767 | + Only used if UseWelchMethod is true. |
2731 | 2768 | </Documentation> |
| 2769 | + </IntVectorProperty> |
2732 | 2770 |
|
| 2771 | + <PropertyGroup label="Welch Method Parameters" panel_visibility="advanced" > |
| 2772 | + <Property name="BlockSize" /> |
| 2773 | + <Property name="BlockOverlap" /> |
| 2774 | + <Property name="ScalingMethod" /> |
| 2775 | + <Property name="Detrend" /> |
2733 | 2776 | <Hints> |
2734 | 2777 | <PropertyWidgetDecorator type="GenericDecorator" |
2735 | 2778 | mode="visibility" |
2736 | | - property="AverageFft" |
| 2779 | + property="UseWelchMethod" |
2737 | 2780 | value="1" /> |
2738 | 2781 | </Hints> |
2739 | | - </IntVectorProperty> |
| 2782 | + </PropertyGroup> |
2740 | 2783 |
|
2741 | 2784 | <Hints> |
2742 | 2785 | <PipelineIcon name="XYChartView" /> |
|
0 commit comments