Matlab: коэффициенты Фурье - PullRequest
       9

Matlab: коэффициенты Фурье

0 голосов
/ 13 октября 2019

У меня проблема с моим кодом. Моя цель - получить коэффициенты Фурье с матрицами прохождения. Затем используйте FFT и убедитесь, что мои два результата совпадают. Но я получаю разные результаты и не понимаю почему?

clear all;
N=[50];
for k=1:length(N)
    Dx=1/(N(k)-1);
    x=linspace(0,1-Dx,N(k));

    for j=1:N(k)
        f(j,k)=100.*exp(-20*x(j))*(x(j)-(x(j)).^2);
    end

    for j=1:N(k)
        for m=1:N(k)
            Mphsp(j,m)=exp((2*pi*i*(m-1)*(j-1))/N(k));
            Mspph(j,m)=(1/N(k)).*exp(-(2*pi*i*(m-1)*(j-1))/N(k));
        end
    end
    Idd=Mphsp*Mspph;

    coeff(1:N(k),k)=Mspph*f(1:N(k),k);

    coeff2(1:N(k),k)=fft(f(1:N(k),k));

    verf(1:N(k),k)=coeff2(1:N(k),k)-coeff(1:N(k),k); 
end

Если у кого-нибудь есть идеи? Пожалуйста. * * 1004

1 Ответ

0 голосов
/ 14 октября 2019

Ваш цикл for неправильный. длина (N) = 1, потому что N является матрицей 1x1.

clear all;
N=[50];
for k=1:length(N)

Полагаю, вы хотите сделать что-то вроде

N = zeros(50, 1);
for k = 1:50
  N(k) = k; 
end

for k=1:length(N)
...
...