Feil i MATLAB-koden
Lagt inn: 27/04-2018 23:13
Hva er feil i denne koden:
function [xx] = HvittStoyGauss(Fs,N,fsenter,fullFbredde)
% Parametre: Fs : Samplingsfrekvens, N : Antall datapunkt
% fsenter, fullFbredde : Frekvensspekteret har en gaussisk fordeling,
% med senterfrekvens fsenter og full bredde (1/e) i
% frekvensspekteret lik fullFbredde..
fsigma = fullFbredde/2.0;
y = zeros(N,1);
T = N/Fs;
t = linspace(0,T*(N-1)/N,N);
f = linspace(0,Fs*(N-1)/N, N);
nsenter = floor(N*fsenter/(Fs*(N-1)/N));
nsigma = floor(N*fsigma/(Fs*(N-1)/N));
gauss = exp(-(f-fsenter).*(f-fsenter)/(fsigma*fsigma));
ampl = rand(N,1);
ampl = ampl.*transpose(gauss);
faser = rand(N,1);
faser = faser*2*pi;
y = ampl.*(cos(faser) + i* sin(faser));
% Speiler nedre del rundt (Nhalv+1) for å få øvre del korrekt
Nhalv = round(N/2);
for k = 1:Nhalv -1
y(N-k+1) = conj(y(k+1));
end;
y(Nhalv+1) = real(y(Nhalv+1));
y(1) = 0.0;
q = real(ifft(y)*200);
Hva må til for at den skal kunne kjøres i MATLAB?
function [xx] = HvittStoyGauss(Fs,N,fsenter,fullFbredde)
% Parametre: Fs : Samplingsfrekvens, N : Antall datapunkt
% fsenter, fullFbredde : Frekvensspekteret har en gaussisk fordeling,
% med senterfrekvens fsenter og full bredde (1/e) i
% frekvensspekteret lik fullFbredde..
fsigma = fullFbredde/2.0;
y = zeros(N,1);
T = N/Fs;
t = linspace(0,T*(N-1)/N,N);
f = linspace(0,Fs*(N-1)/N, N);
nsenter = floor(N*fsenter/(Fs*(N-1)/N));
nsigma = floor(N*fsigma/(Fs*(N-1)/N));
gauss = exp(-(f-fsenter).*(f-fsenter)/(fsigma*fsigma));
ampl = rand(N,1);
ampl = ampl.*transpose(gauss);
faser = rand(N,1);
faser = faser*2*pi;
y = ampl.*(cos(faser) + i* sin(faser));
% Speiler nedre del rundt (Nhalv+1) for å få øvre del korrekt
Nhalv = round(N/2);
for k = 1:Nhalv -1
y(N-k+1) = conj(y(k+1));
end;
y(Nhalv+1) = real(y(Nhalv+1));
y(1) = 0.0;
q = real(ifft(y)*200);
Hva må til for at den skal kunne kjøres i MATLAB?