Как найти коэффициенты каждого косинусного члена, составляющего дискретный сигнал?

#python #scipy #signal-processing

#python #scipy #обработка сигналов

Вопрос:

У меня есть дискретная последовательность из N действительных значений. Есть ли способ найти список из N-1 действительных чисел x [n], чтобы это:

с n-м коэффициентом x [n], а каждый элемент в моем исходном списке равен y [k], причем k представляет индекс элемента в списке, начиная с k = 0, верно?

Ответ №1:

Я полагаю, вы ищете дискретное косинусное преобразование типа III, как показано здесь, или его обратное.

Комментарии:

1. Я использовал scipy.fft.dct (type= 3), затем применил к нему scipy.fft.dct. Хотя форма сигнала такая же, как и у оригинала, значения намного больше (я имею в виду 1,8 против 125000). Это нормально?

2. Я не знаю. В FFT вы можете получить гораздо большие значения из-за неявных 1/N факторов, здесь я не знаю.

3. Это зависит от определения / реализации БПФ. Но это не ошибка, это то, как это определено. Вы всегда можете проверить, получили ли вы то, что хотели, применив приведенную выше формулу к ряду.

4. О, я исправил проблему для dct — я просто использовал norm= ‘ortho’ для них обоих.