MATLAB SYNTAX - получить [pxx, f] векторы из периодограммы (_fs);<- Ошибки в текущем использовании пользователя - PullRequest
0 голосов
/ 07 апреля 2019

ВОПРОС: Как правильно использовать [pxx, f] = периодограмма (y_soundsource_data, window, nfft, Fs);?

Для контекста ... пытается получить локальные максимумы PSD для 3 конкретных частотных диапазонов. Мне нужны и значения x-частоты, и значения PSD-y.

1008

Я отправил электронное письмо кому-то, и он сказал, что он использует [pxx, f] = периодограмму (_Fs) версию вызова периодограммы.

Где pxx = вектор значений PSD y и f = значения x, которые соответствуют значениям частоты, которые соответствуют 1: 1 точкам pxx

Документация Matlab говорит: enter image description here

Нежелательное поведение:

  • Когда я использую [pxx, f] = периодограмма (y_soundsource_data, window, nfft, Fs); появляется окно создателя окна, которое не отображается автоматически или
    посчитайте что угодно.
  • вызов пробной функции -> [pxx, f] = периодограмма ([], Fs); который должен дать PSD-оценка со значениями по умолчанию, но затем она вызвала ошибку. error image

Код

    %% audioread .wav file
[y Fs]= audioread('100-daddy1.wav');
%% y=source signal
sourceFig=figure(1);
plot(y);
xlabel('milliseconds'); ylabel('amplitude'); title('spectrogram = voice source signal');

%% PSD - Power Spectral Density <-- peaks here should give formants
filterfcn=figure(2);
PSD=periodogram(y); %calculate the power spectral density of the source signal
plot(PSD);
ylabel('magnitude || intensity of signal'); xlabel('frequency in Hz'); title('PSD of Source');
xlim([0, .35*10^4]);

%% [pxx,f] = periodogram(_,fs)
%fs is the fourth input to periodogram 
% to use default values, do [], for preceding args
[pxx4, f]= periodogram( [], Fs);
disp(sizeof(pxx4));
disp(sizeof(f));

Как правильно использовать [pxx, f] = периодограмма (y_soundsource_data, window, nfft, Fs);

Мне нужно, чтобы векторы pxx и f могли индексироваться, чтобы найти максимумы.

1 Ответ

0 голосов
/ 07 апреля 2019

Причина, по которой появился оконный плоттер, заключалась в том, что в качестве входного аргумента для вызова использовалась функция входа в окно: [pxx, f] = periodogram (y_soundsource_data, window, nfft, Fs).

Деконструкция периодограммы [pxx, f] = (y_soundsource_data, window, nfft, Fs);

  1. Вы можете получить y_soundsource_data и Fs <- частоту дискретизации из функции audioread. <code>file[y Fs]= audioread('100-daddy1.wav');
  2. window и nfft не понимаются функцией периодограммы, ЕСЛИ ВЫ не определите их.
    • y_soundsource_data и Fs понятны, потому что audioread возвращает метрики данных.
    • nfft - относится к количеству точек, используемых в DFT. Большее значение nfft приведет к лучшей оценке. nfft ДОЛЖЕН быть целым числом. Вы не можете иметь пол-очка.
    • window = вектор размера y_soundsource_data. 1: length_y_soundsource_data
    • оба окна и nfft должны быть определены до вызова функции периодограммы.
...