कैसे MATLAB में बैंड लिमिटेड गाऊसी सफेद शोर उत्पन्न करने के लिए?


16

कुछ पत्रों में, मैंने पढ़ा कि योजक शोर बैंड सीमित गाऊसी सफेद है।
मैं इस प्रकार के शोर का उपयोग कैसे कर सकता हूं MATLAB का उपयोग करें?


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

2
@DilipSarwate: मेरे लिए, "बैंड-सीमित व्हाइट शोर" एक ऑक्सीमोरोन है! :-)
पीटर के.एच.

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

1
@DilipSarwate: स्पष्टीकरण के लिए धन्यवाद। मैं इसे प्राप्त करता हूं, लेकिन मुझे अभी भी लगता है कि यह शब्दावली का बहुत खराब विकल्प है। मेरे लिए "बैंड-पास फ़िल्टर्ड व्हाइट शोर" अधिक सटीक है, लेकिन मुझे लगता है कि यह उसी स्थान पर समाप्त होता है।
पीटर के.एच.

1
@PeterK। दुर्भाग्य से, "बैंड-पास फ़िल्टर्ड व्हाइट शोर" आमतौर पर जेसन के उत्तर में वर्णित प्रक्रिया का मतलब है। सफेद शोर से शुरू करें और ट्रांसफ़र फ़ंक्शन साथ एक फ़िल्टर के माध्यम से फ़िल्टर करें, जो कि PSD आनुपातिक के साथ एक प्रक्रिया प्राप्त करने के लिए | एच ( एफ ) | । बैंड-सीमित सफेद शोर एक ही है सिवाय इसके कि हम जोर देते हैं कि एच ( एफ ) एक आदर्श बैंडपास फिल्टर का स्थानांतरण कार्य होना चाहिए । सफेद शोर के साथ प्रमुख बिंदु यह है कि हम सिग्नल नहीं लगा सकते हैं, जहां शोर a'i'nt है जो बैंड-सीमित सफेद शोर पर भी लागू होता है जब तक हम अपने सिग्नल को बैंड में रहने के लिए विवश होते हैं।H(f)|H(f)|2H(f)
दिलीप सरवटे

जवाबों:


19

आप पहले सफेद शोर पैदा करके गॉलसीयन शोर उत्पन्न करेंगे, फिर इसे उस बैंडविड्थ को फ़िल्टर करेंगे जो आप चाहते हैं। उदाहरण के तौर पे:

% design FIR filter to filter noise to half of Nyquist rate
b = fir1(64, 0.5);
% generate Gaussian (normally-distributed) white noise
n = randn(1e4, 1);
% apply to filter to yield bandlimited noise
nb = filter(b,1,n);

मैंने हमेशा इस पर आश्चर्य किया है, लेकिन अगर ऐसा कुछ किया जाता है, तो इसके बारे में इतना गॉसियन क्या है? मुझे नहीं लगता कि पीडीएफ इस बिंदु पर बिल्कुल भी है ...
स्पेसी

8
गाऊसी यादृच्छिक चर की एक विशेष विशेषता यह है कि दो स्वतंत्र गाऊसी आरवी का योग भी गाऊसी वितरित किया जाता है। चूंकि इनपुट शोर सफेद है, आप कई स्वतंत्र गॉसियन यादृच्छिक चर के योग के रूप में फ़िल्टर आउटपुट पर प्रत्येक नमूने को देख सकते हैं (जहां प्रत्येक आरवी का विचरण इनपुट शोर विचरण और संबंधित फ़िल्टर टैप के मूल्यों पर निर्भर करता है)। इसलिए, फ़िल्टर आउटपुट पर नमूने भी गाऊसी वितरित किए गए हैं। हालाँकि, शोर स्पष्ट रूप से सफेद नहीं है, क्योंकि फ़िल्टर आउटपुट में क्रमिक नमूनों के बीच सहसंबंध है।
जेसन आर

यह संपत्ति विकिपीडिया पर अधिक विस्तार से वर्णित है । ध्यान दें कि संपत्ति अभी भी रखती है, भले ही इनपुट शोर रंगीन हो ("सहसंबद्ध यादृच्छिक चर" अनुभाग देखें)।
जेसन आर

1
फेसपालम । बेशक।
स्पेसी

3
फिर भी यह विधि व्हाइट शोर उत्पन्न नहीं करेगी। फ़िल्टर लागू करने की आवश्यकता नहीं है, हर असतत नमूना शोर बैंड के साथ शुरू होने तक सीमित है।
रॉय जू

9

बस जेसन के जवाब देने के लिए एक छोटे से अतिरिक्त के रूप में: आम तौर पर आप किसी दिए गए विचरण के साथ शोर bandlimited उत्पन्न करने की जरूरत है । आप इस कोड को जेसन के उत्तर में दिए गए कोड में जोड़ सकते हैं:σ2

var = 3.0;  % just an example  
scale = sqrt(var)/std(nb);
nb = scale*nb;  % nb has variance 'var'

ध्यान दें कि आपको फ़िल्टर करने के बाद स्केलिंग करनी होगी, क्योंकि सामान्य तौर पर फ़िल्टर शोर विचरण को बदल देता है।


2
n=0N|h[n]|2=1

@ बहुत अच्छा जोड़!
स्पेसी

4

हर बार जब आप असतत शोर नमूने (MATLAB का उपयोग करते हुए उत्पन्न randn/ randउदाहरण के लिए) आप वास्तव में एक बैंड शोर सीमित उत्पन्न करते हैं।

आपको बस इतना करना है कि असतत नमूनों के विचरण का समायोजन "निरंतर" शोर के विचरण के लिए किया गया है, जो उन नमूनों को कथित रूप से लिया गया है।

σcn2δ(t)fsfsσcn2

fs/2

पूर्ण विवरण यहाँ दिया गया है - विशिष्ट बैंडविड्थ के लिए संचार प्रणालियों में AWGN (एडिटिव व्हाइट गॉसियन शोर) को कैसे अनुकरण करें


अधिक यहाँ जानकारी: dsp.stackexchange.com/questions/17494/...
Royi

2

इस पोस्ट में उल्लिखित दृष्टिकोण का उपयोग क्यों नहीं किया जा सकता है ?

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

क्या इस तरह से कोई कमियां हैं?


1
मूल matlab कोड को देखते हुए, यह n, आपके fft लंबाई के ब्लॉक आकार के लिए काम करता है। अगर मुझे 2n सैंपल चाहिए, तो आप fft की लंबाई को दोगुना कर सकते हैं, जो कि 2 ffts करने से ज्यादा है। यदि आप 2 अलग-अलग ब्लॉक करते हैं, तो पहले से दूसरे ब्लॉक में एक अलग संक्रमण होगा। आप संक्रमण को सुचारू करने के लिए एक विंडो का उपयोग कर सकते हैं, लेकिन फिर आपको अपनी समय श्रृंखला को रोकने के लिए 2 से अधिक ब्लॉक करने की आवश्यकता है। फ़िल्टर विधि का उपयोग करते हुए, जब फ़िल्टर स्थिर स्थिति में होता है, तो आप जब तक चाहें तब इसे यादृच्छिक संख्या में फीड कर सकते हैं। फ़िल्टर विधि के लिए प्रसंस्करण वृद्धि रैखिक रूप से होती है।

0

मुझे एहसास है कि यह प्रश्न वर्तमान दृश्य में पॉप अप हुआ है क्योंकि @Drazick ने अपने 2013 के उत्तर को संशोधित किया है।

xrand()frand()0x<1

"सफेद शोर" निश्चित रूप से एक मिथ्या नाम है, यहां तक ​​कि एनालॉग संकेतों के लिए भी। फ्लैट स्पेक्ट्रम के साथ एक "पावर सिग्नल" अनंत के लिए भी अनंत शक्ति है। वस्तुतः गाऊसी और "सफेद" संकेत के रूप में उत्पन्न एक परिमित शक्ति है (जो विचरण है और 1 है) और परिमित बैंडविड्थ जो एकतरफा के रूप में व्यक्त किया गया है, Nyquist है। (इसलिए 'पॉवर स्पेक्ट्रल डेंसिटी' या पॉवर प्रति यूनिट फ्रिक्वेंसी 1 / Nyquist है।) इसे स्केल करें और इसे ऑफ़सेट करें, लेकिन कृपया।

मैं इसे बाद में संपादित कर सकता हूं और इसे स्पष्ट रूप से दिखाने के लिए कुछ सी-जैसे छद्म कोड जोड़ सकता हूं।


-1

पूर्ण स्पेक्ट्रम सफेद शोर पैदा करना और फिर इसे छानना ऐसा है जैसे आप अपने घर की दीवार को सफेद रंग देना चाहते हैं, इसलिए आप पूरे घर को सफेद रंग देने का फैसला करते हैं और फिर दीवार को छोड़कर सभी घर को वापस पेंट करते हैं। मुहावरेदार है। (लेकिन इलेक्ट्रॉनिक्स में समझ है)।

मैंने एक छोटा सी कार्यक्रम बनाया जो किसी भी आवृत्ति और किसी भी बैंडविड्थ पर सफेद शोर उत्पन्न कर सकता है (चलो 16kHz केंद्रीय आवृत्ति और 2 kHz "चौड़ा" कहते हैं)। कोई फ़िल्टरिंग शामिल नहीं है।

मैंने जो किया वह सरल है: मुख्य (अनंत) लूप के अंदर मैं केंद्र आवृत्ति पर एक साइनसॉइड उत्पन्न करता हूं +/- एक यादृच्छिक संख्या के बीच-वर्कफ़्लो बैंडविड्थ और + हाफ़बैंड एक्सपोज़र, फिर मैं उस आवृत्ति को अनियंत्रित संख्या के नमूने (दानेदारता) के लिए रखता हूं और यह परिणाम है:

सफेद शोर 2kHz 16kHz केंद्र आवृत्ति पर चौड़ा

सफेद शोर 2kHz 16kHz केंद्र आवृत्ति पर चौड़ा

छद्म कोड:

while (true)
{

    f = center frequency
    r = random number between -half of bandwidth and + half of bandwidth

<secondary loop (for managing "granularity")>

    for x = 0 to 8 (or 16 or 32....)

    {

        [generate sine Nth value at frequency f+r]

        output = generated Nth value
    }


}

1
एसटीएफटी बैंड भर में सपाट नहीं है। आपने यह नहीं दिखाया कि आपकी तकनीक का कोई लाभ क्यों है। Btw अधिकांश पेंट को एक धूसर सफेद के रूप में स्टॉक किया जाता है और फिर वर्णक के साथ मिलाया जाता है। नारंगी रंग सिर्फ नारंगी सामग्री का उपयोग करके नहीं बनाया गया है। सफेद शोर पैदा करने में कोई अतिरिक्त काम नहीं है।

@StanleyPawlukiewicz इलेक्ट्रॉनिक्स में आप कठोर हैं क्योंकि एक शोर जनरेटर और एक फिल्टर दो बहुत ही सरल "ऑब्जेक्ट" हैं। प्रोग्रामिंग में, केवल आवश्यक डेटा उत्पन्न करने से अधिक निर्देशों की संख्या में एक फिल्टर जटिल है। यदि आपके पास समय-समय पर महत्वपूर्ण एप्लिकेशन हैं, तो प्रोग्रामिंग मेरे लिए बेहतर है। यदि आपने मुझे अस्वीकार किया है तो मैं आपको इसके बारे में फिर से सोचने का सुझाव देता हूं।
ज़िबरी

1
आपका शोर बेहतर नहीं है। स्पेक्ट्रम बैंड के पार सपाट नहीं है। मक्खी पर एक पारलौकिक फ़ंक्शन को कॉल करना फ़िल्टरिंग से तेज़ नहीं है। आपके तर्क निराधार हैं

1
वास्तव में इनबाउंड रिपल एक डिज़ाइन पैरामीटर है। कहने के लिए कि वे केंद्र आवृत्ति पर शिखर भी झूठे हैं

1
चूंकि आपकी तकनीक को संशोधित करना इतना आसान है, इसलिए आप किसी से लिंक करने के बजाय अपनी खुद की साइन वेव रूटीन क्यों नहीं लिखते हैं और यह दावा करते हैं कि आपका कोड कम जटिल है और इसकी तुलना एक बाईक से करें। जब आप इसे जोड़ रहे हैं, तो एक निश्चित बिंदु संस्करण के बारे में कैसे। आप यह भी सोच सकते हैं कि जैसे ही आप नमूनों की संख्या बढ़ाते हैं, आपकी तकनीक कैसे बढ़ती है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.