matlab - modem.oqpskmod - converting array of different values to array of 1s and 0s -
नमस्कार मैं matlab में निम्नलिखित कर रहा था
values = [0; 1; 0 ; 0; 1; 0; 1; 0]; % में केवल 0 एस और 1 एस एच = मॉडेम। ओकक्स्केमोड हो सकते हैं; Y = कमांड (एच, मान); जी = मॉडेम। ओक्सास्कडमॉड (एच); Z = डिमोड्यूट (जी, वाई); बीईआर = योग (तार्किक (मूल्य (:) - z (:))) / अंक (मान); % Gnovice करने के लिए धन्यवाद! बीएआर की गणना करने से पहले, क्या आपको लगता है कि सरणी ज़रेब को 1 एस और 0 के सरणी में परिवर्तित करना है ... उदाहरण के लिए, मेरा z में 3 एस और 0 एस हो सकते हैं, फिर क्या मुझे सभी नंबरों को 0 से 1 से बड़ा और सभी 0 अपरिवर्तित परिवर्तित करना है। तो अंत में मुझे बीईआर के लिए सही तुलना मिलती है?
यह इस बात पर निर्भर करता है कि आप कैसे चाहते हैं इनपुट और आउटपुट की तुलना करें बीईआर की गणना करने के लिए एक त्रुटि के रूप में इनपुट और आउटपुट के बीच कोई अंतर गिनेंगे इसलिए, एक आउटपुट के लिए 3 का एक मान और इनपुट के लिए एक एक्टिव 1 को अलग के रूप में गिना जाता है। यदि आप किसी अन्य तरीके से बीईआर की गणना करना चाहते हैं, तो यहां एक जोड़े हैं अधिक विकल्प जो आप उपयोग कर सकते हैं इनमें से प्रत्येक मान मान
में केवल शून्य और वाले होते हैं:
-
1: के रूप में किसी भी गैर-शून्य आउटपुट मान को गिनें: में इस मामले में, आप किसी भी को z
के शून्य-शून्य मान (जैसे मान 3, 0.5, -1, आदि) को 1 में परिवर्तित करने के लिए फ़ंक्शन का उपयोग करेंगे मान जो बिल्कुल शून्य अपरिवर्तित हैं:
BER = sum (मान (:) - तार्किक (z (:))) / numel (values);
-
1 और नकारात्मक मानों के रूप में 0: के रूप में सकारात्मक मानों को गणना करें यह समाधान केवल इसके बजाय एक तुलना ऑपरेटर का उपयोग करता है:
BER = sum (मान (:) - (z (:)> 0)) / numel (values); आप ऑब्जेक्ट की 'OutputType'
संपत्ति को सेट करने का प्रयास भी कर सकते हैं, 'bit' एक बाइनरी आउटपुट सुनिश्चित करने के लिए तो आपको z
:
... g = modem.oqpskdemod (h, 'आउटपुट टाइप', 'बिट') के लिए कुछ भी करने नहीं चाहिए; Z = डिमोड्यूट (जी, वाई); बीईआर = राशि (मूल्य (:) - z (:)) / अंक (मान);
Comments
Post a Comment