ম্যাটল্যাবে বর্ণালী এনট্রপি গণনা


9

আমি কীভাবে ম্যাটল্যাবে একটি সংকেতের বর্ণালী এন্ট্রপি গণনা করব? আমি প্রাথমিক পদক্ষেপগুলি জানি তবে কেউ যদি সহায়তা করতে পারে তবে এটি ভাল হবে,

  1. এমএটিএলবিএফএফটি কমান্ড ব্যবহার করে সিগন্যালের পাওয়ার বর্ণালী গণনা করুন।
  2. পাওয়ার বর্ণালী ব্যবহার করে বা অন্য কোনও কৌশল ব্যবহার করে পাওয়ার স্পেকট্রাল ঘনত্ব গণনা করুন।
  3. এর মধ্যে পাওয়ার স্পেকট্রাল ঘনত্ব স্বাভাবিক করুন [0,1], যাতে এটি সম্ভাবনার ঘনত্ব ফাংশন হিসাবে বিবেচনা করা যায় পিআমি
  4. এন্ট্রপি গণনা করুন এইচ(গুলি)=-Σপিআমিলগ2(পিআমি)

মতলব কোড হিসাবে, এখানে dsprelated.com/code.php
ব্যবহারকারী 13107

বর্ণালী ফ্ল্যাটনেস বা ভিয়েনার এনট্রপি হিসাবে এটি কি একই জিনিস? dsp.stackexchange.com/q/2045/29
এন্ডোলিথ

উত্তর:


9

প্রযুক্তিগতভাবে এটি কোনও ম্যাটল্যাব-এস্কো ফোরাম নয়, তবে আমি আপনার জন্য আরও বিস্তারিতভাবে পদক্ষেপগুলি ব্যাখ্যা করতে পারি: মনে করুন আপনার ইনপুট সিগন্যালটি এক্স[এন], এবং এর ডিএফটি হ'ল এক্স()। বাস্তব সংকেতগুলির জন্য আপনি একতরফা ডিএফটি ব্যবহার করতে পারেন, যেহেতু আপনি যখন পাওয়ার পাওয়ার স্পেকট্রাল ঘনত্বের দিকে তাকান তখন অন্য অর্ধেক রিডানডান্ট হয়। (পিএসডি)।

একবার আপনি আপনার সিগন্যালের DFT গণনা করলে, পিএসডি সহজভাবে হয় |এক্স()|2। এটি হ'ল, আপনাকে আপনার ডিএফটি ফলাফল, স্কোয়ারের নিখুঁত পরিমাণ নিতে হবে।

আপনার এখন পিএসডিটিকে সাধারণকরণ করা দরকার এটি এটিকে একটি সম্ভাব্য ঘনত্ব ফাংশন, (পিডিএফ) হিসাবে দেখা যেতে পারে। সুতরাং, একটি সাধারণীকরণের পিএসডি, (আসুন আমরা এটি কল করি)পিএসডিএন) সহজভাবে হবে:

পিএসডিএন()=পিএসডি()Σ=-গুলি2=গুলি2পিএসডি()

অবশেষে, আপনার বর্ণাল এন্ট্রপিটি হ'ল:

=-Σ=-গুলি2=গুলি2পিএসডিএন()2[পিএসডিএন()]

5

আমি শুধু এখানে

আমার উত্স কোড:

    [x, Fs, nbits] = wavread('ederwander.wav'); 


    winSize = 2048;

    n_samples = length(x);


    %50% overlap or 0 to not use overlap
    OverlapStep = 50;

    if OverlapStep > 0

        Overlap = floor((OverlapStep*winSize) / 100); 
        nFrames=floor(n_samples/Overlap)-1; 
    else
        Overlap= winSize;
        nFrames=floor(n_samples/Overlap)-1;
    end

    Entropy = zeros(nFrames,1);

    k=1;
    inc=1;

    while ( (k+winSize-1) <= n_samples )

        FrameSignal = x(k:k+winSize-1);

        v = FrameSignal .* hann(length(FrameSignal));           

        N = length(v);

        Y=fft(v);

        % Compute the Power Spectrum
        sqrtPyy = ((sqrt(abs(Y).*abs(Y)) * 2 )/N);
        sqrtPyy = sqrtPyy(1:winSize/2);



       %Normalization
       d=sqrtPyy(:);
       d=d/sum(d+ 1e-12);

       %Entropy Calculation
       logd = log2(d + 1e-12);
       Entropy(inc) = -sum(d.*logd)/log2(length(d));


       k=k+Overlap;
       inc=inc+1;
end

এই উত্স কোডটি প্রতিটি ফ্রেমড ব্লক থেকে বর্ণালী এন্ট্রপি গণনা করে ...

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