离散傅里叶级数奇索引傅里叶系数符号错误排查
离散傅里叶级数(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
相关产品推荐
相关产品推荐

