সময়-সিরিজের প্রদত্ত শক্তি এবং ক্রস বর্ণাল ঘনত্বের অনুকরণ


20

তাদের কোভেরিয়েন্স ম্যাট্রিক্স (তাদের পাওয়ার বর্ণালী ঘনত্ব (পিএসডি) এবং ক্রস-পাওয়ার বর্ণালী ঘনত্ব (সিএসডি)) দিয়ে স্টেশনারি রঙিন টাইম-সিরিজের একটি সেট তৈরি করতে আমার সমস্যা হচ্ছে।

আমি জানি যে দুটি টাইম-সিরিজ এবং , আমি তাদের পাওয়ার বর্ণালী ঘনত্ব (পিএসডি) এবং ক্রস বর্ণালী ঘনত্ব (সিএসডি) অনেক বিস্তৃতভাবে উপলব্ধ রুটিন ব্যবহার করে অনুমান করতে পারি can এবং মতলব ইত্যাদিতে ফাংশন ইত্যাদি পিডিএস এবং সিএসডি সমবায় ম্যাট্রিক্স তৈরি করে: Yআমি(টি)Yজে(টি)psd()csd()

সি()=(পিআমিআমি()পিআমিজে()পিজেআমি()পিজেজে()),
যা ফ্রিকোয়েন্সি সাধারণ একটি ফাংশন হয় ।

বিপরীতটি করতে চাইলে কী হয়? ম্যাট্রিক্স দেওয়া, আমি কীভাবে এবং উপলব্ধি তৈরি ?Yআমি(টি)Yজে(টি)

দয়া করে কোনও পটভূমি তত্ত্ব অন্তর্ভুক্ত করুন, বা এটি করার যে কোনও বিদ্যমান সরঞ্জামগুলি চিহ্নিত করুন (পাইথনের যে কোনও কিছুই দুর্দান্ত হবে)।

আমার চেষ্টা

নীচে আমি কী চেষ্টা করেছি এবং যে সমস্যাগুলি আমি লক্ষ্য করেছি সেগুলির একটি বিবরণ দেওয়া হল। এটি কিছুটা দীর্ঘ পঠিত, এবং দুঃখিত যদি এতে এমন পদ রয়েছে যা অপব্যবহার করা হয়েছে। যদি ভুলটি চিহ্নিত করা যায় তবে তা খুব সহায়ক হবে। তবে আমার প্রশ্নটি উপরের সাহসের সাথে এক।

  1. পিডিএস এবং সিএসডিগুলিকে সময়-সিরিজের ফুরিয়ার রূপান্তরগুলির পণ্যগুলির প্রত্যাশা মান (বা গড়ের গড়) হিসাবে লেখা যেতে পারে। সুতরাং, সমবায় ম্যাট্রিক্সটি এইভাবে লেখা যেতে পারে: কোথায়
    সি()=2τওয়াই()ওয়াই(),
    ওয়াই()=(Y~আমি()Y~জে())
  2. কোভরিয়েন্স ম্যাট্রিক্স হের্মিটিয়ান ম্যাট্রিক্স, আসল ইগেনভ্যালুগুলি শূন্য বা ধনাত্মক having সুতরাং, এটি
    সি()=এক্স()λ12()আমিλ12()এক্স(),
    যেখানে λ12() একটি তির্যক ম্যাট্রিক্স যার অ-শূন্য উপাদানগুলি সি() এর ইগ্যালভ্যালুগুলির বর্গমূল; এক্স() ম্যাট্রিক্স যার কলামগুলি সি() এর অর্থোন্নত আইজেনভেেক্টর ;আমি হ'ল পরিচয় ম্যাট্রিক্স।
  3. পরিচয় ম্যাট্রিক্সটি যেখানে এবং zero শূন্য গড় এবং ইউনিট বৈকল্পিক সহ অসামঞ্জস্যিত এবং জটিল ফ্রিকোয়েন্সি-সিরিজ।
    আমি=z- র()z- র(),
    z- র()=(z- রআমি()z- রজে()),
    {z- রআমি()}আমি=আমি,জে
  4. ৩. এ ২ ব্যবহার করে এবং তারপরে ১ টির সাথে তুলনা করুন time টাইম-সিরিজের ফুরিয়ার রূপান্তরগুলি :
    ওয়াই()=τ2z- র()λ12()এক্স()
  5. বিপরীত দ্রুত ফুরিয়ার রূপান্তর মত রুটিন ব্যবহার করে সময়-সিরিজটি পাওয়া যায়।

আমি এটি করার জন্য পাইথনে একটি রুটিন লিখেছি:

def get_noise_freq_domain_CovarMatrix( comatrix , df , inittime , parityN , seed='none' , N_previous_draws=0 ) :
    """                                                                                                          
    returns the noise time-series given their covariance matrix                                                  
    INPUT:                                                                                                       
    comatrix --- covariance matrix, Nts x Nts x Nf numpy array                                                   
      ( Nts = number of time-series. Nf number of positive and non-Nyquist frequencies )                     
    df --- frequency resolution
    inittime --- initial time of the noise time-series                                                           
    parityN --- is the length of the time-series 'Odd' or 'Even'                                                 
    seed --- seed for the random number generator                                                                
    N_previous_draws --- number of random number draws to discard first                                          
    OUPUT:                                                                                                       
    t --- time [s]                                                                                               
    n --- noise time-series, Nts x N numpy array                                                                 
    """
    if len( comatrix.shape ) != 3 :
       raise InputError , 'Input Covariance matrices must be a 3-D numpy array!'
    if comatrix.shape[0]  != comatrix.shape[1] :
        raise InputError , 'Covariance matrix must be square at each frequency!'

    Nts , Nf = comatrix.shape[0] , comatrix.shape[2]

    if parityN == 'Odd' :
        N = 2 * Nf + 1
    elif parityN == 'Even' :
        N = 2 * ( Nf + 1 )
    else :
        raise InputError , "parityN must be either 'Odd' or 'Even'!"
    stime = 1 / ( N*df )
    t = inittime + stime * np.arange( N )

    if seed == 'none' :
        print 'Not setting the seed for np.random.standard_normal()'
        pass
    elif seed == 'random' :
        np.random.seed( None )
    else :
        np.random.seed( int( seed ) )
    print N_previous_draws
    np.random.standard_normal( N_previous_draws ) ;

    zs = np.array( [ ( np.random.standard_normal((Nf,)) + 1j * np.random.standard_normal((Nf,)) ) / np.sqrt(2)
                 for i in range( Nts ) ] )

    ntilde_p = np.zeros( ( Nts , Nf ) , dtype=complex )
    for k in range( Nf ) :
        C = comatrix[ :,:,k ]
        if not np.allclose( C , np.conj( np.transpose( C ) ) ) :
            print "Covariance matrix NOT Hermitian! Unphysical."
        w , V = sp_linalg.eigh( C )
        for m in range( w.shape[0] ) :
            w[m] = np.real( w[m] )
            if np.abs(w[m]) / np.max(w) < 1e-10 :
                w[m] = 0
            if w[m] < 0 :
                print 'Negative eigenvalue! Simulating unpysical signal...'

        ntilde_p[ :,k ] =  np.conj( np.sqrt( N / (2*stime) ) * np.dot( V , np.dot( np.sqrt( np.diag( w ) ) , zs[ :,k ] ) ) )

    zerofill = np.zeros( ( Nts , 1 ) )
    if N % 2 == 0 :
        ntilde = np.concatenate( ( zerofill , ntilde_p , zerofill , np.conj(np.fliplr(ntilde_p)) ) , axis = 1 )
    else :
        ntilde = np.concatenate( ( zerofill , ntilde_p , np.conj(np.fliplr(ntilde_p)) ) , axis = 1 )
    n = np.real( sp.ifft( ntilde , axis = 1 ) )
    return t , n

আমি এই রুটিনটি পিএসডি এবং সিএসডিগুলিতে প্রয়োগ করেছি, এমন বিশ্লেষণাত্মক অভিব্যক্তি যার সাথে আমি কাজ করছি এমন কিছু ডিটেক্টরের মডেলিং থেকে প্রাপ্ত হয়েছে। গুরুত্বপূর্ণ বিষয়টি হ'ল সমস্ত ফ্রিকোয়েন্সিগুলিতে তারা একটি কোভারিয়েন্স ম্যাট্রিক্স তৈরি করে (ভাল করে কমপক্ষে তারা ifরুটিনে সমস্ত বিবৃতি পাস করে)। কোভেরিয়েন্স ম্যাট্রিক্সটি 3x3। 3 টি টাইম-সিরিজটি প্রায় 9000 বার উত্পন্ন হয়েছে, এবং এই সমস্ত উপলব্ধির গড় হিসাবে গড় পিডিএস এবং সিএসডি বিশ্লেষণাত্মকগুলির সাথে নীচে চক্রান্ত করা হয়েছে। সামগ্রিক আকারগুলি সম্মত হওয়ার পরেও সিএসডিগুলিতে কিছু নির্দিষ্ট ফ্রিকোয়েন্সিগুলিতে লক্ষণীয় গোলমাল বৈশিষ্ট্য রয়েছে (চিত্র 2)। পিএসডিএস (চিত্র 3) এর শিখরের চারপাশে ঘনিষ্ঠ হওয়ার পরে আমি লক্ষ্য করেছি যে পিএসডিগুলি আসলেই অবমূল্যায়িত, এবং যে সিএসডিগুলিতে শোরগোলের বৈশিষ্ট্যগুলি পিএসডিএসে শৃঙ্গগুলির প্রায় একই ফ্রিকোয়েন্সিতে ঘটে। আমি মনে করি না যে এটি একটি কাকতালীয় ঘটনা, এবং কোনওভাবেই পিএসডি থেকে সিএসডিগুলিতে শক্তি ফুটে উঠছে। আমি প্রত্যাশা করতাম কার্ভগুলি একে অপরের শীর্ষে থাকবে, ডেটাগুলির অনেকগুলি উপলব্ধি সহ।

চিত্র 1: পি 11
চিত্র 2: পি 12 চিত্র 2: পি 11 (ক্লোজ-আপ)


সাইটে স্বাগতম। আমি এই প্রশ্নটিকে কিছু অংশে ভোট দিয়েছি, যাতে আপনি ছবি পোস্ট করতে সক্ষম না হন। যদি তা না হয় তবে কেবল লিঙ্কগুলি পোস্ট করুন এবং পর্যাপ্ত খ্যাতি সম্পন্ন কেউ চিত্রগুলি এম্বেড করতে সম্পাদনা করবে।
মূল

1
আপনি কি উচ্চ ফ্রিকোয়েন্সি শব্দটি ফিল্টার করার চেষ্টা করেছেন?
কার্ল

উত্তর:


1

যেহেতু আপনার সিগন্যালগুলি স্থিতিশীল, তাই একটি সহজ পদ্ধতির উদ্দেশ্য হল সাদা গোলমালকে ভিত্তি হিসাবে ব্যবহার করা এবং এটি আপনার পিএসডিগুলিতে ফিট করার জন্য filter এই ফিল্টার সহগগুলি গণনা করার একটি উপায় লিনিয়ার পূর্বাভাস ব্যবহার করা ।

মনে হচ্ছে এটির জন্য অজগর কার্য রয়েছে, চেষ্টা করে দেখুন:

from scikits.talkbox import lpc

যদি আপনি চান (আমি কেবল ম্যাটল্যাব সমতুল্য ব্যবহার করেছি)। এটি স্পিচ প্রসেসিংয়ে ব্যবহৃত একটি পদ্ধতি, যেখানে ফর্ম্যান্টগুলি এইভাবে অনুমান করা হয়।


আপনি কি বলতে চান না যে সাদা শব্দের চেয়ে ফিল্টারটি সিগন্যালে প্রয়োগ করুন?
মাইকেল আর চেরনিক

না, আমি যা লক্ষ্য করছি তা হ'ল এমন একটি ফিল্টার আনুমানিক করা যেখানে স্থানান্তর ফাংশনটি স্থিতিশীল প্রক্রিয়ার পিএসডি সাদৃশ্যযুক্ত। যদি সাদা শব্দ, যা সমস্ত ফ্রিকোয়েন্সি ব্যান্ডগুলিতে একই শক্তি থাকে, এগুলি দিয়ে ফিল্টার করা হয় তবে আউটপুটটি তার পাওয়ার বর্ণালী ঘনত্বের মধ্যে মূল সংকেতগুলির সাথে সাদৃশ্যপূর্ণ।
জোনাস শোয়ার্জ

0

পার্টিতে কিছুটা দেরি, যথারীতি, তবে আমি কিছু সাম্প্রতিক ক্রিয়াকলাপ দেখছি তাই আমি আমার দুই ইয়েন।

প্রথমত, আমি ওপিএস প্রয়াসকে দোষ দিতে পারি না - এটি আমার কাছে ঠিক দেখাচ্ছে। পার্থক্যগুলি সীমাবদ্ধ নমুনাগুলির সাথে সমস্যাগুলির কারণে হতে পারে, উদাহরণস্বরূপ সংকেত শক্তি অনুমানের ইতিবাচক পক্ষপাতী।

তবে আমি মনে করি যে ক্রস বর্ণালী ঘনত্ব ম্যাট্রিক্স (সিপিএসডি, এটিই ওভারকে কোভারিয়েন্স ম্যাট্রিক্স বলে) থেকে সময় সিরিজ উত্পন্ন করার সহজ উপায় রয়েছে।

একটি প্যারাম্যাট্রিক পদ্ধতির হ'ল একটি স্বাবলম্বী বর্ণনা পেতে সিপিএসডি ব্যবহার করা এবং তারপরে সময় সিরিজটি তৈরি করতে gene মাতলাব-এ আপনি গ্রানজার কার্যকারিতা সরঞ্জামগুলি ব্যবহার করে এটি করতে পারেন (উদাঃ মাল্টিভাইরাট গ্রেঞ্জার কার্যকারিতা সরঞ্জাম বাক্স, শেঠ, বার্নেট )। টুলবক্সটি ব্যবহার করা খুব সহজ। যেহেতু সিপিএসডি এর অস্তিত্ব একটি স্ব-ক্ষতিকারক বর্ণনার গ্যারান্টি দেয় এই পদ্ধতির সঠিক। (সিপিএসডি এবং অটোরিগ্রেশন সম্পর্কে আরও তথ্যের জন্য গেউইক, 1982 দ্বারা, সম্পূর্ণ ছবি পেতে "লিনিয়ার নির্ভরতা এবং একাধিক সময় সিরিজের মধ্যে প্রতিক্রিয়া" দেখুন)

সম্ভাব্যরূপে সহজ, সিপিএসডি লক্ষ্য করে অটো কোভেরিয়েন্স (সিপিএসডি এর তির্যক অর্থাত্ সিগন্যালগুলির শক্তি প্রদান) এবং ক্রস কোভেরিয়েন্স (অফ তির্যক উপাদানগুলি, অর্থাৎ ক্রস-পাওয়ার প্রদান) দ্বারা সিপিএসডি গঠন করা যেতে পারে। সুতরাং সিপিএসডি-তে বিপরীতমুখী ফিটটি প্রয়োগ করে আমরা স্বতঃসংশোধন এবং অটো কোভেরিয়েন্স পেতে পারি। তারপরে আমরা আমাদের ডেটার নমুনা তৈরি করতে এটি ব্যবহার করতে পারি।

আশাকরি এটা সাহায্য করবে. মন্তব্যে তথ্যের জন্য কোনও অনুরোধ জানান এবং আমি ঠিকানা দেওয়ার চেষ্টা করব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.