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

离散傅里叶级数奇索引傅里叶系数符号错误排查

离散傅里叶级数(DFS)计算中奇索引系数符号错误排查求助

我正在手动实现单周期离散信号的离散傅里叶级数(DFS),流程为先求解傅里叶系数再重构信号,每一步都通过绘图可视化。实现了两个核心函数:傅里叶系数计算函数FourierCoeffGen和信号重构函数DiscreteFourierSeries,测试用例为周期20、仅在-5<n<5时x[n]=1的离散信号。但计算得到的傅里叶系数中,所有奇索引的符号均错误,尝试将索引范围从-10到10改为0到20后问题仍存在,寻求排查帮助。

系数计算函数

function [Ak, k] = FourierCoeffGen(x, n, N_per)
    W0 = (2*pi/N_per); 
    k = -N_per/2:N_per/2-1; % 傅里叶系数的索引范围
    Ak = (1/N_per)*x*exp(-1*j*W0*(n.')*k); 
end

信号重构函数

function x = DiscreteFourierSeries(Ak, k, N_per)
    W0 = (2*pi/N_per);
    expo = exp(1j*W0*(k.')*k);
    x = Ak*(expo.');
end

测试代码

% 示例2 - x[n]在-5 < n < 5时为1,其余为0
N_per = 20;
n2 = -N_per/2:N_per/2-1;
%x2 = (n2 > -5) & (n2 < 5);
x2 = zeros(1,20);
x2(7:15) = 1;

% 绘制原始函数2
subplot(3, 1, 1);
stem(n2, x2);
xlabel('n');
ylabel('x[n]');
title('原始函数2');

% 计算示例3的傅里叶系数
[Ak2, k2] = FourierCoeffGen(x2, n2, N_per);

% 绘制函数2的系数
subplot(3, 1, 2);
plot(n2, Ak2);
xlabel('n');
ylabel('A[k]');
title('X[n]系数');

% 重构示例3的信号
x2_reconstructed = DiscreteFourierSeries(Ak2, k2, N_per);

% 绘制重构后的函数2
subplot(3, 1, 3);
stem(n2, x2_reconstructed);
xlabel('n');
ylabel('x_{reconstructed}[n]');
title('重构后的函数2');

sgtitle('原始函数与重构函数对比');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:07:29