मैं एक संकेत है कि मैं चाहूँगा जब यह प्रतिलिपि करने के लिए ढूँढना:शून्य पार कि सकारात्मक जा रहे हैं और शून्य पार कि नकारात्मक जा रहे हैं
1) शून्य क्रॉसिंग पर शुरू होता है के लिए जा रहा सकारात्मक
2) (8000) की तरह अंक की एक निर्धारित संख्या
3) कॉपी और बाद 8000 अंक कॉपी कर रहे हैं जब तक एक शून्य क्रॉसिंग खंड नीचे जा पाया जाता है अंक जोड़कर जारी है।
मुझे शून्य क्रॉसिंग मिल सकती है लेकिन मुझे यह जानने के साथ कुछ समस्याएं हैं कि शून्य क्रॉसिंग सकारात्मक होने पर और/या शून्य क्रॉसिंग नकारात्मक हो रहा है। मैं भी अंत में 8000 अंक के बाद अंक के अगले भाग को जोड़ने के साथ समस्या हो रही है (तो सवाल # 1 और सवाल # 3 बोल्ड मैं के साथ समस्या है कर रहा हूँ में )
नोट: कृपया ध्यान रखें कि मैं जिस सिग्नल का उपयोग कर रहा हूं वह एक ऑडियो सिग्नल है, इसलिए यह एक साधारण समीकरण के रूप में उतना अच्छा नहीं होगा।
मैंने एक छवि के साथ परीक्षण कोड संलग्न किया है। मैं matlab/सप्तक
clear all, clc, tic, clf;
n=16000
t=linspace(0,2*pi,n);
y=cos(6*t)+sin(4*t);
%find zero crossings
t1=y(1:n-1);
t2=y(2:n);
tt=t1.*t2;
indx=find(tt<0)
%1) start at first zero crossing going positive
%2) get 8000 pts
%3) and after the 8000 points continue appending points until a zero crossing going down section is found
new_y=y(indx(1,1):8000); %start at zero section found get 8000 pts
subplot(2,1,1);plot(y);title('Original Signal')
subplot(2,1,2);plot(new_y);title('New signal')
आप शायद भी अपने संकेत फिल्टर करने के लिए करने के लिए इस परीक्षण करने से पहले उच्च आवृत्ति शोर निकालना चाहते हैं जाएगा है शून्य के माध्यम से आप कई क्रॉसिंग से बचें। – craigim
धन्यवाद क्रेगिम मदद के लिए लेकिन आपका क्या मतलब है "वर्तमान बिंदु और अंतिम बिंदु के लिए परीक्षण x"। मुझे उनके खिलाफ क्या परीक्षण करना चाहिए? –
सटीक रूप से आप यह कैसे करते हैं कि आप डेटा में कैसे पढ़ रहे हैं, इस विवरण पर निर्भर करेंगे, लेकिन यदि आपका लूप इंडेक्स 'n' है, तो आप कुछ ऐसा कर सकते हैं जैसे 'x = sign (t (n-1)) - sign (टी (एन)); यदि एक्स> 0; 8000 अंक जोड़ें; elseif x == 0; एक बिंदु संलग्न करें; elseif x <0; अंक जोड़ना बंद करो; अंत'। – craigim