তাদের কোভেরিয়েন্স ম্যাট্রিক্স (তাদের পাওয়ার বর্ণালী ঘনত্ব (পিএসডি) এবং ক্রস-পাওয়ার বর্ণালী ঘনত্ব (সিএসডি)) দিয়ে স্টেশনারি রঙিন টাইম-সিরিজের একটি সেট তৈরি করতে আমার সমস্যা হচ্ছে।
আমি জানি যে দুটি টাইম-সিরিজ এবং , আমি তাদের পাওয়ার বর্ণালী ঘনত্ব (পিএসডি) এবং ক্রস বর্ণালী ঘনত্ব (সিএসডি) অনেক বিস্তৃতভাবে উপলব্ধ রুটিন ব্যবহার করে অনুমান করতে পারি can এবং মতলব ইত্যাদিতে ফাংশন ইত্যাদি পিডিএস এবং সিএসডি সমবায় ম্যাট্রিক্স তৈরি করে:
psd()
csd()
বিপরীতটি করতে চাইলে কী হয়? ম্যাট্রিক্স দেওয়া, আমি কীভাবে এবং উপলব্ধি তৈরি ?
দয়া করে কোনও পটভূমি তত্ত্ব অন্তর্ভুক্ত করুন, বা এটি করার যে কোনও বিদ্যমান সরঞ্জামগুলি চিহ্নিত করুন (পাইথনের যে কোনও কিছুই দুর্দান্ত হবে)।
আমার চেষ্টা
নীচে আমি কী চেষ্টা করেছি এবং যে সমস্যাগুলি আমি লক্ষ্য করেছি সেগুলির একটি বিবরণ দেওয়া হল। এটি কিছুটা দীর্ঘ পঠিত, এবং দুঃখিত যদি এতে এমন পদ রয়েছে যা অপব্যবহার করা হয়েছে। যদি ভুলটি চিহ্নিত করা যায় তবে তা খুব সহায়ক হবে। তবে আমার প্রশ্নটি উপরের সাহসের সাথে এক।
- পিডিএস এবং সিএসডিগুলিকে সময়-সিরিজের ফুরিয়ার রূপান্তরগুলির পণ্যগুলির প্রত্যাশা মান (বা গড়ের গড়) হিসাবে লেখা যেতে পারে। সুতরাং, সমবায় ম্যাট্রিক্সটি এইভাবে লেখা যেতে পারে:
কোথায়
- কোভরিয়েন্স ম্যাট্রিক্স হের্মিটিয়ান ম্যাট্রিক্স, আসল ইগেনভ্যালুগুলি শূন্য বা ধনাত্মক having সুতরাং, এটি
যেখানে একটি তির্যক ম্যাট্রিক্স যার অ-শূন্য উপাদানগুলি এর ইগ্যালভ্যালুগুলির বর্গমূল; ম্যাট্রিক্স যার কলামগুলি এর অর্থোন্নত আইজেনভেেক্টর ; হ'ল পরিচয় ম্যাট্রিক্স।
- পরিচয় ম্যাট্রিক্সটি
যেখানে
এবং zero শূন্য গড় এবং ইউনিট বৈকল্পিক সহ অসামঞ্জস্যিত এবং জটিল ফ্রিকোয়েন্সি-সিরিজ।
- ৩. এ ২ ব্যবহার করে এবং তারপরে ১ টির সাথে তুলনা করুন time টাইম-সিরিজের ফুরিয়ার রূপান্তরগুলি :
- বিপরীত দ্রুত ফুরিয়ার রূপান্তর মত রুটিন ব্যবহার করে সময়-সিরিজটি পাওয়া যায়।
আমি এটি করার জন্য পাইথনে একটি রুটিন লিখেছি:
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) এর শিখরের চারপাশে ঘনিষ্ঠ হওয়ার পরে আমি লক্ষ্য করেছি যে পিএসডিগুলি আসলেই অবমূল্যায়িত, এবং যে সিএসডিগুলিতে শোরগোলের বৈশিষ্ট্যগুলি পিএসডিএসে শৃঙ্গগুলির প্রায় একই ফ্রিকোয়েন্সিতে ঘটে। আমি মনে করি না যে এটি একটি কাকতালীয় ঘটনা, এবং কোনওভাবেই পিএসডি থেকে সিএসডিগুলিতে শক্তি ফুটে উঠছে। আমি প্রত্যাশা করতাম কার্ভগুলি একে অপরের শীর্ষে থাকবে, ডেটাগুলির অনেকগুলি উপলব্ধি সহ।