【问题标题】:for loop plotting in pythonpython中的for循环绘图
【发布时间】:2020-03-23 00:25:09
【问题描述】:

我试图在同一个图中用 python 绘制 sinc 函数,这基本上是一个 OFDM 载波信号,将在第二个图中总结。

你能告诉我有什么问题吗?这是代码sn-p。

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()

这是我得到的:

这是我所期望的:

  • 我不知道如何在python中添加stem函数。干函数stem((i * (1/pi) * pi) + fnoise,1)的基本数学逻辑

从循环中取出 plt.show 后更新了绘图

【问题讨论】:

    标签: python numpy for-loop python-3.6


    【解决方案1】:

    尝试将plt.show 置于循环之外,如下所示:

    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()
    

    当并非所有地块都在ax 上时,问题是触发show 函数(阻塞)。

    【讨论】:

    • 它仍然不是 c 的迭代值,所有图都相互重叠。这是否意味着它没有采用不同的 c 值?请查看更新后的问题。
    • @JayPatel 不,它们没有重叠,它们的值非常接近。您可以使用np.random.uniform(-10,10) 而不是np.random.uniform(-1,1) 来获得接近预期结果的结果。如果您需要更多帮助,请对您的问题提供一些数学解释。
    • 更新了逻辑和图。基本上每个sinc函数都是携带数据的OFDM子载波。
    猜你喜欢
    • 2021-08-11
    • 2018-04-24
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多