वेवलेट में कौन से समय-आवृत्ति गुणांक गणना करता है?


26

फास्ट फूरियर रूपांतरण लेता है संचालन, जबकि फास्ट तरंगिका रूपांतरण लेता है । लेकिन क्या, विशेष रूप से, FWT गणना करता है?O(NlogN)O(N)

हालांकि उनकी तुलना अक्सर की जाती है, ऐसा लगता है जैसे एफएफटी और एफडब्ल्यूटी सेब और संतरे हैं। जैसा कि मैं इसे समझता हूं, जटिल मोरलेट डब्ल्यूटी के साथ एसटीएफटी (समय के साथ छोटे चंक्स के एफएफटी) की तुलना करना अधिक उचित होगा , क्योंकि वे दोनों जटिल साइनसोइड के आधार पर समय-आवृत्ति प्रतिनिधित्व हैं (कृपया मुझे गलत होने पर सही करें) )। इसे अक्सर इस तरह से आरेख के साथ दिखाया जाता है:

ग्रिड दिखा रहा है कि एफएफटी और डब्ल्यूटी के गुणांक समय-आवृत्ति विमान के अनुरूप कैसे हैं

( एक और उदाहरण )

बायां पता चलता है कि कैसे एसटीएफटी समय बीतने के साथ एक दूसरे के ऊपर खड़ी एफएफटी का एक गुच्छा है (यह प्रतिनिधित्व स्पेक्ट्रोग्राम की उत्पत्ति है ), जबकि दायां डायडिक डब्ल्यूटी दिखाता है, जिसमें उच्च आवृत्तियों पर बेहतर समय संकल्प और बेहतर आवृत्ति होती है। कम आवृत्तियों पर रिज़ॉल्यूशन (इस प्रतिनिधित्व को स्केलोग्राम कहा जाता है )। इस उदाहरण में, STFT के लिए खड़ी स्तंभों की संख्या (6), और एक एकल है FFT आपरेशन की एक पंक्ति की गणना से गुणांक नमूने हैं। कुल 8 अंकों के 8 एफएफटी हैं, या टाइम डोमेन में 48 नमूने हैं।NO(NlogN)NN

मुझे क्या समझ में नहीं आता:

  • कितने गुणांक एकल एफडब्ल्यूटी ऑपरेशन की गणना करते हैं, और वे समय-आवृत्ति चार्ट पर कहां स्थित हैं? O(N)

  • कौन सी आयतें एक एकल संगणना से भर जाती हैं?

  • यदि हम दोनों का उपयोग करते हुए समय-आवृत्ति गुणांक के बराबर-क्षेत्र ब्लॉक की गणना करते हैं, तो क्या हमें समान मात्रा में डेटा मिलता है?

  • एफडब्ल्यूटी एफएफटी की तुलना में अभी भी अधिक कुशल है?

PyWavelets का उपयोग करके ठोस उदाहरण :

In [2]: dwt([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[2]:
(array([ 0.70710678,  0.        ,  0.        ,  0.        ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ]))

यह 4 गुणांक के दो सेट बनाता है, इसलिए यह मूल सिग्नल में नमूनों की संख्या के समान है। लेकिन इन 8 गुणांक और आरेख में टाइल के बीच संबंध क्या है?

अद्यतन करें:

वास्तव में, मैं शायद यह गलत कर रहा था, और इसका उपयोग करना चाहिए wavedec(), जो बहु-स्तरीय DWT अपघटन करता है:

In [4]: wavedec([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[4]: 
[array([ 0.35355339]),
 array([ 0.35355339]),
 array([ 0.5,  0. ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ])]

2
इन तरंगों के अपघटन का काम कैसे होता है, इसकी बेहतर समझ रखने के लिए, एक उपयोगी उपकरण इसे वास्तविक जीवन के संकेतों पर करने में सक्षम होगा: उदाहरण के लिए ऑडियो सिग्नल (इस दिशा में मेरा एक प्रश्न है यहां dsp.stackexchange.com/ questions / 12694 / stft-and-dwt-
wavelets

@endolith क्या आपका प्रश्न अभी भी अनुरोध किया गया है? यदि हां, तो मैं अन्य संकेत जोड़ सकता हूं
लॉरेंट डुवल

@LaurentDuval हाँ, यह अभी भी खुला है, और मुझे अभी भी समझ में नहीं आया है। मैं भ्रमित हो सकता हूं क्योंकि CWT Morlet और DWT जैसी चीजों का उपयोग करता है और केवल Haar या Daubechies जैसी चीजों का उपयोग करता है। मुझे यकीन नहीं है कि अगर तेज एफडब्ल्यूटी केवल हैर है या अन्य प्रकार के तरंगों का भी उपयोग कर सकता है।
एंडोलिथ

2
@ndolith इस एक के लिए एक टिप्पणी: निरंतर CWT संभावित तरंगिका आकृतियों की एक अविश्वसनीय मात्रा को स्वीकार करता है। उन्हें केवल नमूने के पैटर्न (समय या पैमाने पर) के साथ ही विवेकाधीन किया जा सकता है जो कुछ "हाइजेनबर्ग" असमानता का सम्मान करते हैं। ये पैटर्न तरंगिका पर निर्भर करते हैं। अधिकांश मामलों में, पैटर्न एक विवेकी सीडब्ल्यूटी बनाता है जो बेमानी है। कुछ इसे गैर-बेमानी चाहते हैं, एक रंगाई पैमाने के साथ। केवल बहुत कम तरंगें ही इसकी अनुमति देती हैं। यदि आप तब तरंगिका समर्थन को परिमित होने के लिए लगाते हैं, तो हार एक है, डब्ल्यू / "प्राकृतिक तरंगों" को प्राप्त करना लगभग असंभव है, यही कारण है कि ड्यूबचीज़ का निर्माण क्यों किया गया
लॉरेंट डुवल

जवाबों:


13

आप सही हैं कि एफटीटी को एफटी के बजाय एसटीएफटी के "चचेरे भाई" के रूप में बेहतर माना जाता है। वास्तव में, एफडब्ल्यूटी सीडब्ल्यूटी (निरंतर तरंगिका परिवर्तन) का सिर्फ एक असतत नमूना है, क्योंकि एफएफटी / डीएफटी फूरियर रूपांतरण का एक असतत नमूना है। यह एक सूक्ष्म बिंदु की तरह लग सकता है, लेकिन यह प्रासंगिक है कि आप कैसे परिवर्तन का चयन करते हैं।

सीडब्ल्यूटी और एसटीएफटी दोनों एक संकेत के निरर्थक विश्लेषण हैं। दूसरे शब्दों में, आपके पास "गुणांक" (असतत मामले में) की तुलना में आपके पास पूरी तरह से एक संकेत का प्रतिनिधित्व करने की आवश्यकता है। हालांकि, एक फूरियर ट्रांसफॉर्म (या केवल एक पैमाने का उपयोग करके एक वेवलेट ट्रांसफॉर्म कहते हैं) -infinity से + इन्फिनिटी तक एक सिग्नल को एकीकृत करता है। यह वास्तविक दुनिया के संकेतों पर बहुत उपयोगी नहीं है, इसलिए हम छोटी लंबाई में परिवर्तन को काटते हैं (यानी विंडो)। एक सिग्नल की विंडिंग ट्रांसफॉर्मेशन को बदल देती है - आप समय / स्थान में विंडो से गुणा करते हैं, इसलिए ट्रांसफ़ॉर्मिंग स्पेस में आपको सिग्नल के ट्रांसफ़ॉर्मेशन के साथ विंडो के ट्रांसफ़ॉर्मेशन का कनविक्शन होता है।

एसटीएफटी के मामले में, खिड़कियां हर समय एक ही लंबाई (गैर-शून्य सीमा) होती हैं, और आवृत्ति अज्ञेयवादी होती हैं (आप एक 10 हर्ट्ज विंडो को 10 kHz सिग्नल के समान चौड़ाई का संकेत देते हैं)। तो आपको आयताकार ग्रिड स्पेक्ट्रोग्राम मिलता है जैसे आपने खींचा है।

सीडब्ल्यूटी में इस विंडो को इस तथ्य से बनाया गया है कि तरंग कम हो जाती है (समय या स्थान में) जैसे-जैसे स्केल घटता है (उच्च आवृत्ति की तरह)। इस प्रकार उच्च आवृत्तियों के लिए, प्रभावी विंडो की अवधि कम होती है, और आप एक स्केलोग्राम के साथ समाप्त होते हैं जो दिखता है कि आपने FWT के लिए क्या तैयार किया है।

आप कैसे समझें कि सीडब्ल्यूटी कुछ हद तक आपके ऊपर है, हालांकि मुझे लगता है कि पूरी तरह से एक सिग्नल का प्रतिनिधित्व करने के लिए शिफ्ट और स्केल दोनों में न्यूनतम नमूने हैं। आमतौर पर (कम से कम मैंने उन्हें कैसे उपयोग किया है), सबसे कम पैमाने (उच्चतम आवृत्ति) के लिए, आप सभी शिफ्ट स्थानों (समय / स्थान) पर नमूना लेंगे। जैसा कि आप बड़े पैमाने पर प्राप्त करते हैं (आवृत्ति में कम), आप कम बार नमूना कर सकते हैं। औचित्य यह है कि कम आवृत्तियों में परिवर्तन नहीं होता है कि तेजी से (एक झगड़ा गिटार बनाम एक बास गिटार के बारे में सोचो - झांझ दुर्घटना में बहुत कम ग्राहक होते हैं, जबकि बास गिटार को बदलने में अधिक समय लगेगा)। वास्तव में, सबसे छोटे पैमाने पर (आप सभी शिफ्ट स्थानों पर नमूना मानकर), आपके पास एक संकेत का पूर्ण प्रतिनिधित्व है (आप इस पैमाने पर केवल गुणांक का उपयोग करके इसे फिर से संगठित कर सकते हैं)। मैं पैमाने के नमूने के औचित्य के बारे में निश्चित नहीं हूं। मैं' मैंने देखा कि इसे लघुगणक के बीच के अंतर के साथ लघुगणक के रूप में सुझाया गया है। मुझे लगता है कि यह इसलिए है क्योंकि लंबे समय तक तराजू पर तरंगों का व्यापक फूरियर रूपांतरण होता है (इसलिए वे "अधिक आवृत्तियों को उठाते हैं")।

मैं मानता हूं कि मैं एफडब्ल्यूटी को पूरी तरह से नहीं समझता हूं। मेरा कूबड़ यह है कि यह वास्तव में शिफ्ट / स्केल में न्यूनतम नमूना है, और निरर्थक प्रतिनिधित्व नहीं है। लेकिन फिर मुझे लगता है कि आप अवांछित कलाकृतियों को पेश किए बिना कम समय में एक सिग्नल का विश्लेषण (और गड़बड़) करने की क्षमता खो देते हैं। मैं इसके बारे में और अधिक पढ़ूंगा और, अगर मुझे कुछ भी उपयोगी लगता है, तो वापस रिपोर्ट करें। उम्मीद है कि अन्य लोग टिप्पणी करना चाहेंगे।


1
"यह वास्तव में शिफ्ट / स्केल में न्यूनतम नमूना है, और निरर्थक प्रतिनिधित्व नहीं है।" आह! मुझे लगता है कि आप सही हैं, और यह समझाएगा कि यह हमेशा एफएफटी की तुलना में क्यों है, जो एक न्यूनतम प्रतिनिधित्व भी है।
एंडोलिथ

3
एफडब्ल्यूटी सीडब्ल्यूटी का एक महत्वपूर्ण नमूना है। मैं अभी भी इसे बेहतर तरीके से समझने की कोशिश कर रहा हूं, लेकिन मुझे पता चला है कि एसटीएफटी और सीडब्ल्यूटी दोनों फ्रेम्स हैं। फ़्रेम थ्योरी मेरे से परे हो रही है, लेकिन एक दिलचस्प धारणा अनिश्चितता का सूत्र है, कि STFT के लिए, dw * dt> C (dw फ़्रीक्वेंसी रिज़ॉल्यूशन है, और dt टाइम रिज़ॉल्यूशन है)। दूसरे शब्दों में, जैसा कि आप आवृत्ति को बेहतर ढंग से हल करने का प्रयास करते हैं, आप समय संकल्प खो देते हैं। सीडब्ल्यूटी के पास यह सीमा नहीं है। मैं इसे पढ़ता रहूँगा और कोशिश करूँगा और अपने उत्तर को स्पष्ट करूँगा, क्योंकि मैं इसे अपने सिर में स्पष्ट करूँगा।

1
मेरी समझ से, सीडब्ल्यूटी की एक ही सीमा है, लेकिन एक बेहतर व्यापार बंद का उपयोग करता है।
19ol में

1
"STFT दोनों एक संकेत के निरर्थक विश्लेषण हैं"। मुझे नहीं लगता कि यह सच है। यदि आपके पास 100-पॉइंट सिग्नल है, तो इसे 10 बिंदुओं के भाग में विभाजित करें, फिर प्रत्येक पर 10-पॉइंट एफएफटी करें, आपके पास अभी भी समान जानकारी समान नमूनों में संग्रहीत है।
एंडोलिथ

11

हार तरंग तरंग मामले पर विचार करें। फास्ट वेवलेट ट्रांसफॉर्म आपके सिग्नल को पुन: विभाजित करता है और हर बार दो हिस्सों के योग और अंतर की गणना करता है। अंतर वर्तमान तरंगिका के लिए परिवर्तन का परिमाण है और कॉलर को आधे आवृत्ति के साथ एक पतले तरंगिका के लिए परिवर्तन के परिमाण की गणना करने के लिए वापस किया जाता है। इस प्रकार, एफडब्ल्यूटी आपके द्वारा दिए गए आरेख में वर्णित पैटर्न का उपयोग करके समय-आवृत्ति विमान को कवर करता है।

ध्यान दें कि आपके द्वारा दिया गया आरेख थोड़ा भ्रामक है। वे वास्तव में आपको यह बताने की कोशिश कर रहे हैं कि आपको सबसे कम आवृत्ति पर एक नमूना मिलता है, दो नमूने उस आवृत्ति पर, चार नमूने चौगुनी कि आवृत्ति और इतने पर। प्रत्येक तरंगिका का समय-आवृत्ति गुण ऐसा नहीं है कि वे अपनी टाइल को कवर करते हैं। व्यवहार में, प्रत्येक तरंगिका एक अनंत क्षेत्र को कवर करेगी क्योंकि उनके पास कॉम्पैक्ट समर्थन है और इसलिए, आवृत्ति के संदर्भ में पूरी तरह से delocalized होना चाहिए। तो आपको उन टाइलों के केंद्रों के बारे में सोचना चाहिए।

इसके अलावा, एफडब्ल्यूटी को एक असतत तरंगिका की आवश्यकता होती है जो सीडब्ल्यूटी के लिए निरंतर तरंगों की तुलना में कहीं अधिक प्रतिबंधात्मक स्वीकार्यता मानदंड का पालन करना चाहिए। नतीजतन, असतत तरंगों के समय-आवृत्ति गुण आम तौर पर भयानक होते हैं (जैसे Daubechies तरंगिका या तो तेज विशेषताओं से भरी होती है या आवृत्ति में परिवर्तन होता है) और एफडब्ल्यूटी के संदर्भ में समय-आवृत्ति विमान की उपयोगिता बहुत कम हो जाती है। हालांकि, संकेतों की समय-आवृत्ति अभ्यावेदन की गणना करने के लिए निरंतर तरंगों का उपयोग किया जाता है।


हां, मैं गुणांक के स्थानीयकरण को समझता हूं। यह FFT जैसा ही है। जब आप कहते हैं "पालन करना चाहिए", तो आपका क्या मतलब है? क्या यह केवल एक आवश्यकता है यदि आप सिग्नल का न्यूनतम / गैर-निरर्थक प्रतिनिधित्व प्राप्त करने की कोशिश कर रहे हैं? क्या होगा यदि आप केवल इसका विश्लेषण / कल्पना करने की कोशिश कर रहे हैं? मैं प्रश्न के लिए एक और अधिक ठोस उदाहरण जोड़ूंगा।
एंडोलिथ

1
प्रवेश मानदंड का पालन करना सुनिश्चित करता है कि पहचान का एक संकल्प मौजूद है, अर्थात सभी संकेतों को उनके तरंगिका परिवर्तनों से पुनर्प्राप्त किया जा सकता है। यदि आप इसका पालन नहीं करते हैं, तो आप इसके परिवर्तन से एक संकेत को पुनर्प्राप्त नहीं कर सकते हैं, जिस बिंदु पर आपको सवाल करना चाहिए कि यह वास्तव में क्या है जिसका आप विश्लेषण कर रहे हैं (क्या यह किसी भी जानकारी को दर्शाता है जो सिग्नल में था?)। यदि आपको न्यूनतम / गैर-निरर्थक प्रतिनिधित्व की आवश्यकता नहीं है, तो आप CWT से अधिक लक्स स्वीकार्यता मानदंड का उपयोग कर सकते हैं (जो आपको अधिक "आदर्श" तरंगिकाओं को परिभाषित करने देता है)।

1
मुझे लगता है कि आपको मेरी पीएचडी थीसिस वास्तव में उपयोगी लगेगी। मैं इसे आपके लिए ऑन-लाइन

क्या आपने इसे ऑनलाइन डाला था? :)
एंडोलिथ

2
मुझे यकीन है कि किया था: flyfrogblog.blogspot.com/2010/02/…

3

आपके संदर्भ में यह है:

छोटे परिमित तरंगों, या तरंगों के ऑर्थोगोनल आधार पर गुणांक का एक क्रम।

अधिक के लिए, आप DWT पृष्ठ को पसंद कर सकते हैं । वहाँ यह Haar wavelets, Daubechies wavelets और अन्य का परिचय देता है। यह बताता है कि कैसे

  • वेवलेट्स का स्थान है - (1,1, –1, -1) तरंगिका "बाईं ओर" बनाम "दाईं ओर" से मेल खाती है, जबकि अंतिम दो तरंगों का बाईं ओर या दाईं ओर समर्थन है, और एक अनुवाद है दूसरे का।
  • साइनसॉइडल तरंगों का स्थान नहीं होता है - वे पूरे अंतरिक्ष में फैलते हैं - लेकिन चरण होते हैं - दूसरी और तीसरी तरंगें एक दूसरे के अनुवाद होती हैं, जो चरण से बाहर 90 ° होने के लिए होती हैं, जैसे कोसाइन और साइन, जिनमें से ये असतत संस्करण हैं ।

यदि, असतत तरंगों के बजाय, आप अब निरंतर तरंगों या जटिल तरंगों के बारे में चाहते हैं, तो आप तरंग श्रृंखला के साथ शुरू कर सकते हैं ।

विकिपीडिया से परे, एक पाठ्यपुस्तक और एक कोर्स आपको अच्छी तरह से कर सकते हैं।


मुझे यह उत्तर समझ में नहीं आता। क्या यह मेरे सवालों का जवाब देता है? बाईं ओर और दाईं ओर क्या है? समय-आवृत्ति प्रतिनिधित्व के साथ इसका क्या करना है?
एंडोलिथ

"बाईं ओर बनाम दाईं ओर" विवरण DWT पृष्ठ का एक स्पष्ट पूर्वावलोकन है, जिसमें दिखाया गया है कि उस पृष्ठ में साइनसॉइडल आधार और हर तरंग तरंगों के आधार के सापेक्ष गुणों को समझाने के लिए एक सरल उदाहरण शामिल है। आप एक तरंगिका परिवर्तन में गुणांक की प्रकृति के बारे में पूछ रहे थे। ऐसा लग रहा था जैसे आप अंतर्ज्ञान की तलाश में थे। मुझे लगा कि आपको वह उदाहरण (इसके मूल संदर्भ में) उपयोगी लग सकता है।

हां, मैंने इस प्रश्न को पोस्ट करने से पहले कई बार विकिपीडिया लेख पढ़ा है। मुझे पता नहीं है कि समय-आवृत्ति प्रतिनिधित्व के बारे में मेरे प्रश्न के साथ आपका उत्तर क्या है / क्या है। यदि ऐसा होता है, तो क्या आप डॉट्स कनेक्ट कर सकते हैं? एन नमूनों का एक एफएफटी, एन गुणांक का उत्पादन करेगा, जो एसटीएफटी स्पेक्ट्रोग्राम का एक स्तंभ बनाता है। क्या WT और स्केलोग्राम द्वारा निर्मित गुणांक के बीच एक समान संबंध है? यदि ऐसा है, तो ये क्या है? नीचे दायें चार्ट में से कौन सा बॉक्स एफडब्ल्यूटी के माध्यम से एक रन से भर जाता है?
एंडोलिथ 16

1
विकिपीडिया के तरंगों से संबंधित लगभग सभी चीजें वर्तमान में गलत हैं।

3

O(N2)

O(N)O(Nlog(N))O()

जेनेरिक विंडो वाले STFT (निरंतर रूप) से शुरू करें । यदि आप इकाई ऊंचाई की एक अनंत खिड़की में प्लग करते हैं, तो आप एक विशेष मामले के रूप में फूरियर रूपांतरण को पुनर्प्राप्त करते हैं। जिसे आप विवेकाधीन (और डीएफटी प्राप्त कर सकते हैं) कर सकते हैं और इसे तेज़ कर सकते हैं (और एफएफटी प्राप्त कर सकते हैं)।

एक सीडब्ल्यूटी (निरंतर रूप) से शुरू करें । निरंतर CWT संभावित तरंगिका आकृतियों की एक अविश्वसनीय मात्रा को स्वीकार करता है। उन्हें केवल नमूने के पैटर्न (समय या पैमाने पर) के साथ ही विवेकाधीन किया जा सकता है जो कुछ "हेइज़ेनबर्ग" असमानता का सम्मान करते हैं: प्रति यूनिट सतह का एक नमूना। ये पैटर्न तरंगिका पर निर्भर करते हैं। अधिकांश मामलों में, पैटर्न एक विवेकपूर्ण सीडब्ल्यूटी बनाता है जो अनावश्यक है, और एक तरंगिका फ्रेम प्राप्त करता है।

कुछ लोग इसे गैर-निरर्थक चाहते थे, जिसमें डियाडिक स्केल (DWT) था। केवल बहुत कम तरंगिकाएं (अभी भी एक अनंत संख्या है, लेकिन आप उन्हें संयोग से नहीं ढूंढ सकते हैं) इसकी अनुमति दें। पहले लोगों में हर, फ्रैंकलिन और मेयर तरंग थे। यदि आप तब तरंगिका समर्थन को परिमित होने के लिए लगाते हैं, तो हर काफी लंबे समय तक एकमात्र था। "प्राकृतिक निरंतर तरंगिका" से एक ऑर्थोगोनल तरंगिका प्राप्त करना लगभग असंभव है, यही कारण है कि Daubechies वाले बनाए गए थे, और बाद में Symmlets और Coiflets । उन अजीब आकार के वेवलेट्स में मोरलेट वेवलेट की तरह अच्छे और सरल सूत्र नहीं हैं।

O(N)

वास्तव में, एफडब्ल्यूटी सीडब्ल्यूटी का सिर्फ एक असतत नमूना है

DFT / FFT की तरह DWT (या FWT) सटीक है। अधिकांश अन्य विवेकाधीन CWT (किसी भी तरंगिका के साथ) लगभग इतने ही होते हैं (यदि आपके पास पर्याप्त अतिरेक है तो बहुत नुकसान के बिना)।

इसलिए:

  • kkk804T2×424[ω/2,ω]42×22[ω/8,ω/4][1,1,2,4]
  • k
  • +×O(N) । साइन विश्लेषण के लिए? एफडब्ल्यूटी कभी भी अच्छा नहीं होता (सीमित लंबाई के फिल्टर के कारण, विशेष रूप से)। लेकिन JPEG2000 की तरह, छवियों के एक कॉम्पैक्ट प्रतिनिधित्व के लिए, वे काफी अच्छे हो सकते हैं। वहां, आप लिफ्टिंग स्कीम जैसी थोड़ी तेज़ योजना का उपयोग कर सकते हैं।

निम्नलिखित चित्रों से पता चलता है कि कैसे हायर तरंगिका का एक निरंतर संस्करण है निरंतर हैर तरंग

एक ऑर्थोगोनल में जांचा जा सकता है, असतत तरंगिका: असतत महत्वपूर्ण हार तरंग

ध्यान दें कि कुछ असतत तरंगें, विशेष रूप से लंबे वाले (जैसे छींटे), कभी-कभी एक एफएफटी का उपयोग करके गणना की जाती हैं :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.