You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python生成的中心在x=4的矩形信号移至x=0?

调整矩形信号中心到x=0的思路和代码修改

问题分析

你的代码生成的矩形信号默认用数组索引作为x轴(从0开始),导致中心偏移到x=4附近。要将中心移到x=0,核心是重新定义对称的x轴坐标,同时修正原函数中可能存在的长度不匹配问题。

具体调整步骤

  1. 修正矩形信号生成函数:
    原代码中int((n-T)/2)会在n-T为奇数时截断数值,导致生成的数组总长度不等于n。改用np.pad可以精准控制左右填充的0的数量,保证总长度严格为n。

  2. 生成以0为中心的x轴坐标:
    对于长度为n的信号,若n是奇数,生成从-n//2到n//2的整数序列作为x轴;若n是偶数,生成从-(n//2)+1到n//2的序列,确保信号中心对齐x=0。

修改后的完整代码

import numpy as np
import matplotlib.pyplot as plt

def rect(n, T):
    # 计算左右填充的0的数量,保证总长度为n
    left_pad = (n - T) // 2
    right_pad = n - T - left_pad
    # 用pad生成对称的矩形信号
    return np.pad(np.ones(T), (left_pad, right_pad), mode='constant')

# 生成信号
n = 11
T = 6
rect_signal = rect(n, T)
# 生成以0为中心的x轴坐标
x_axis = np.arange(-(n//2), n//2 + 1)

# 绘制图形
plt.step(x_axis, rect_signal, 'r')
plt.xlabel('x')
plt.ylabel('幅值')
plt.grid(True)
plt.show()

效果说明

修改后,长度为11的信号的x轴范围是-5到5,中间6个1的位置对应-2到3(11-6=5,左边填充2个0,右边填充3个0),中心刚好对齐x=0;如果n和T都是偶数,信号会完全对称分布在x=0两侧。

内容的提问来源于stack exchange,提问作者kidox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:45:33