سؤال

الناس ،

Matlab 2007ب (7.5.0) لديه avgpower وظيفة.انظر هنا:

"إن avgpower يستخدم أسلوب المستطيل تقريب إلى جزء لا يتجزأ من حساب إشارة متوسط الطاقة باستخدام PSD البيانات المخزنة في الكائن.

"إن avgpower طريقة إرجاع متوسط قوة الإشارة التي منطقة تحت PSD منحنى."

مثال الاحتجاج:

    numSamples = 10000
    frequency = 20
    amplitude = 10
    Fs = 1000
    t = [0:1/numSamples:1];
    sig = amplitude * sin(2*pi*frequency*t);
    h = spectrum.periodogram('rectangular');
    hopts = psdopts(h, signal);
    set(hopts,'Fs',Fs);
    p = psd(h,signal,hopts);
    lower = 12
    upper = 30
    beta_power = p.avgpower([lower upper]);

أنا أتطلع لتكرار هذا النوع من الوظائف في اوكتاف.على وظيفة "pwelch" يبدو مثل هذا الاحتمال.إلى الطرافة:

    ...
    sig = amplitude * sin(2*pi*frequency*t);
    pwelch('R12+');
    [spectra, freq]=pwelch(signal, [], [], [], Fs, plot_type='dB');

الآن أنا أعتقد أطياف لديه قيم y من مديرية الأمن العام و التكرار لديه x القيم.لذا يمكنني العثور على عينات في التكرار التي تقع بين "الدنيا" و "العليا" و ..إيه, متوسط القيم المناظرة في الأطياف ؟ أنا مشوشة على هذا.

وعلاوة على ذلك ، فإن القيم في "التكرار" لا تتوافق بالضرورة مع بلدي المطلوب العلوي والسفلي ، وأنا لست متأكدا ما يجب القيام به حيال ذلك.ماذا لو السفلي أو العلوي تقع في منتصف واسعة التكرار بن ؟ على سبيل المثال, لا تأخذ نصف سلة (أيخطيا أقحم)?

قد يكون من الممكن أيضا الحصول على قيمة واحدة من نوع من الاتحاد الفرنسي للتنس بدلا من استخدام pwelch.

اقتراحات ؟

هل كانت مفيدة؟

المحلول

على ما يبدو أنا أتحدث إلى نفسي ، ولكن هنا بعض المقترحة اوكتاف رمز لأولئك الذين يهيمون على وجوههم في هذا الطريق.

function[avgp] = oavgpower(signal, sampling_freq, lowfreq, highfreq, window)

[spectra, freq]=pwelch(signal, window, [], [], sampling_freq);

idx1=max(find(freq = highfreq));

% Index and actual frequency of lower and upper bins
%idx1
%freq(idx1)
%idx2
%freq(idx2)

% 0: don't include the last bin
width = [diff(freq); 0];

pvec = width(idx1:idx2).*spectra(idx1:idx2);
avgp = sum(pvec);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top