для построения l oop в python - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь построить функцию sin c в python на том же графике, который в основном является сигналом несущей OFDM, который будет суммироваться на втором рисунке.

Можете ли вы сказать мне, что не так. Вот фрагмент кода.

NoOfCarriers = 11 
interval = math.pi/50
f = np.arange((-5*math.pi),(5*math.pi),interval)  
fnoiseMax = 0.3
iMin = -(NoOfCarriers-1)//2
iMax =  (NoOfCarriers-1)//2
csum = np.zeros(len(f))
fList = [];cList = []

ax = plt.subplot(111)

for i in range(iMin,iMax):
    print("i = ", i)
    fnoise = fnoiseMax*(np.random.uniform(-1,1))
    fshift = (i * (1//math.pi) * math.pi) + fnoise
    c = np.sinc(f - fshift)
    csum = csum + c[i]
    fList = [fList,fshift]
    cList = [cList,max(c)]
    ax.plot(f, c)
    plt.grid(True)
    plt.show()

Вот что я получил: enter image description here

Вот что я ожидал: upper figure is the OFDM subcarriers and lower figure is the sum of the all figure

  • Я не знаю, как добавить функцию ствола в python. basi c math logi c для функции ствола stem((i * (1/pi) * pi) + fnoise,1)

обновленный график после извлечения plt.show из цикла enter image description here

1 Ответ

0 голосов
/ 23 марта 2020

Попробуйте поместить plt.show из l oop, например:

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

NoOfCarriers = 11
interval = math.pi/50
f = np.arange((-5*math.pi),(5*math.pi),interval)
fnoiseMax = 0.3
iMin = -(NoOfCarriers-1)//2
iMax =  (NoOfCarriers-1)//2
csum = np.zeros(len(f))
fList = [];cList = []

ax = plt.subplot(111)

for i in range(iMin,iMax):
    print("i = ", i)
    fnoise = fnoiseMax*(np.random.uniform(-1,1))
    fshift = (i * (1//math.pi) * math.pi) + fnoise
    c = np.sinc(f - fshift)
    csum = csum + c[i]
    fList = [fList,fshift]
    cList = [cList,max(c)]
    ax.plot(f, c)

plt.grid(True)
plt.show()

Проблема в том, что функция show (блокировка) запускается, когда не все графики находятся на ax .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...