Что вызывает этот странный прыжок на этих фазовых графах коэффициентов Фурье?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Что вызывает этот странный прыжок на этих фазовых графах коэффициентов Фурье?

Сообщение Anonymous »

Это из назначения в обработке сигналов в Python. Все это сделано в Python (через Google Colab) с библиотеками Cmath, Numpy и Matplotlib. В том же духе BK-это коэффициенты Фурье сигнала b. < /P>
(следующий код исправляется вместе, так как он находится в стиле ноутбука): < /p>

Код: Выделить всё

import numpy as np
import cmath
import matplotlib.pyplot as plt

D=1000
j = complex(0, 1)
pi = np.pi
N = 2 * D + 1

# initializing signal a[n]
a=np.zeros(2*D+1)
for i in range(-99,100):
a[i+D] = 1

# function to do DFST (either inverse or regular)
def fourier_series_transform(data, D, inverse=False):
j = complex(0, 1)
pi = np.pi
N = 2 * D + 1

# Allocate result array
result = np.zeros(N, dtype=complex)

if inverse:
# Inverse transform: reconstruct time-domain signal from bk
for n in range(-D, D + 1):
for k in range(-D, D + 1):
result[n + D] += data[k + D] * cmath.exp(j * 2 * pi * k * n / N)
else:
# Forward transform: compute bk from b[n]
for k in range(-D, D + 1):
for n in range(-D, D + 1):
result[k + D] += (1 / N) * data[n + D] * cmath.exp(-j * 2 * pi * k * n / N)

return result

# getting ak from a
ak = fourier_series_transform(a, D)
Вот фото A [n] и Ak (который является ядром Dirichlet):




Код: Выделить всё

# initialization of bk
bk = np.zeros(N, dtype=complex)

# defining bk - n=100 - which means the signal b[n] is moved 100 units to the right
for k in range(-D, D + 1):
bk[k + D] = ak[k + D] * cmath.exp(-j * 2 * pi * k * 100 / N)

# getting the original signal b[n]
b = fourier_series_transform(bk, D, inverse=True)
bk дается мне как bk = ak e^(-jk 2 * pi/n * 100), вот фото Bk, b [n]:
pr> https://i.sstatic.net/fvoqii6t.png"/p>. alt = "Введите описание изображения здесь" src = "https://i.sstatic.net/1mw7gs3l.png"/>
Как вы можете видеть до -190 и после 190, если единица цифры составляет 1 (т.е. 841, -561, -191). Область отбора проб (значение [-1000, -190], и [190,1000]).
Я хотел бы понять, почему это происходит, я не верю, что это проблема с моей математикой, но я могу ошибаться в этом. />

Подробнее здесь: https://stackoverflow.com/questions/795 ... efficients
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»