Я пытаюсь рассчитать SNR несинусоидального сигнала, при расчете мощности сигнала я получаю ошибку.Пожалуйста, помогите, спасибо заранее
Я пытался увеличить длину БПФ и утечки, я: е N = 2 ^ nextpow2 (длина (сигнал));но не повезло.Частота выборки: 16000
Мой код выглядит следующим образом:
[signal, Fs] = audioread('40db_heart_insulation.wav');
N = 8192; % FFT length
leak = 150; %bins
fft_s = fft(signal,N);
abs_fft_s = abs(fft_s);
plot (abs_fft_s)
[~,p] = max(abs_fft_s(1:N/2));
sigpos= [p-leak:p+leak N-p-leak:N-p+leak];% Finding the peak
sig_pow = sum(abs_fft_s(sigpos));
Ошибка: индексы нижнего индекса должны быть либо действительными положительными целыми числами, либо логическими.
Ошибка в сердечных звуках (строка 17) sig_pow = sum (abs_fft_s (sigpos));% мощности сигнала = сумма величин бинов, соответствующих сигналу