Рассчитать FFT для каждого столбца или строки в матрице - PullRequest
0 голосов
/ 08 сентября 2018

У меня проблема с вычислением fft для сигнала, который хранится в матрице с использованием matlab. Я пытаюсь рассчитать FFT для каждого столбца.

Я пытаюсь сделать это так:

 for k = 1: ncol
    y1(k)= fft(y(:,k));
 end

, где y - моя матрица, а ncol - количество столбцов в матрице, но я все еще получаю следующую ошибку:

In an assignment  A(:) = B, the number of elements in A and B must be the same.

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Просто сделай это

y1 = fft(y);

Он вычисляет каждый столбец отдельно и делает это намного быстрее, чем при использовании цикла for.

В ответ на ваш оригинальный вопрос вам нужно будет сделать это так:

 for k = 1: ncol
    y1(:,k)= fft(y(:,k));
 end

Вы пытались поместить весь столбец в один индекс, поэтому вы получили это сообщение об ошибке. Вам нужно выделить больше места, чтобы можно было сохранить весь столбец.

0 голосов
/ 08 сентября 2018

y1 также должен быть в матричной форме. FFT сигнала является массивом коэффициентов

...