Issues with understanding and interpreting single dimension FFT
You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Show older comments
0 votes
Greetings,
I am trying to get the FFT from a powermeter trace I acquired, but I seem to be doing it wrong and/or can't interpret the results.
My dataset is named Pm and has 720 points, separated by 10 seconds, for a total duration of 7200 seconds. I can provide the data vector if necessary, but it is just a simple vector.
Here are my questions.
- Why is the amplitude at 0Hz so high? I do not see this artefact in MATLAB's example of an FFT.
- Why is there an offset in the amplitude? I would expect the signal to hover around 0 in general.
- Based on visual inspection of the trace, I would expect a peak at around 0,0016Hz. I can see that there is a modulation of around 10 minutes in the trace.
Any help would be appreciated.
Here is the code I am using.
% This is to plot the data in units of time. I am using the following code from someone else to plot the moving average.
% The black curve is the moving average and the green points are the complete dataset.
figure
plot(Pm,'g.');
hold on;
plot(moving(Pm,7),'k');
legend('Pm','7pt moving mean')
xlabel('Temps / 10 (s)')
ylabel('P (mW)')

% This is the FFT part.
figure
Fs = 1/10; % Sampling frequency
T = 1/Fs; % Sampling period
L = length(Pm); % Length of signal
t = (0:L-1)*T; % Time vector
F = fft(Pm);
F2 = abs(F);
F3 = log(abs(F/length(Pm)));
P2 = abs(F/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs/L*(0:(L/2));
plot(f,P1);
xlabel("f (Hz)")
ylabel("|fft(Puissance)|")
figure
plot(Fs/L*(0:L-1),F3);
xlabel("f (Hz)")
ylabel("log[|fft(Puissance)|]")
% FFT plot

% Zoom in of the FFT plot

Accepted Answer
Star Strider
on 24 Sep 2024
Edited: Star Strider
on 24 Sep 2024
1 vote
It would help to have your data.
1 The 0 Hz value is high because that represents the mean of the time-domain signal. If you subtract the mean from the signal and then calculate the Fourier transform, the 0 Hz compionent goes to zero (or close to it). I do this routinely in order to avoid hiding the other peaks.
2. I’m not certain what you’re referring to.
3. I don’t have your signal. Subtracting the mean and then calculatting the Fourier transform could reveal the other ‘hidden’ peaks. Otherwise, witth a sampled siignal, the sampling introduces artifacts. These are less prominent at faster (higher) sampling frequencies, however essentially unavoidable. Also, windowing the signal could reveal more information, as could zero-padding it (using the length parameter) to increase the frequency resolution.
.
EDIT — (24 Sep 2024 at 18:31)
Note that the fft function assumes that the sampling intervals are regular and constant. If they aren’t, use the resample function to force them to be.
I usually use it as:
Fs = 1/mean(diff(t)); % Sampling Frequency, ‘t’ Is The Time Vector Corresponding To The Signal Samples
[sr,tr] = resample(s, t, Fs); % Return The Resampled Signal And Corresponding Time Vector
.
4 Comments
Patrick Soucy
on 24 Sep 2024
Greetings,
Thank you very much for your answer.
I have attached the whole file, which contains a few more things that you can simply overlook.
I did not want to type a 720 long vector in my original question.
As for question 2, I mean that the average of the FFT signal is around 0,08 in amplitude, never going towards 0. I take this as every frequency is contributing almost equally to the signal. Is this not strange, seeing how my data is not devoid of periodicity? I should see some peaks, with large plateaus in between weighing little.
Let me know if you can help me, I might be completely wrong in my approach.
Star Strider
on 24 Sep 2024
You can save the vector as a .mat file, and then upload the .mat file (example provided of saving and loading it).
I substituted my ‘FFT1’ function here to calculate the Fourier transform. It is yours to use if you want to.
clear variables
clc
P = [ 1.777270e-02
1.919480e-02
1.937940e-02
1.900310e-02
1.978500e-02
1.868690e-02
1.942430e-02
1.811460e-02
1.880430e-02
1.716290e-02
1.704670e-02
1.798970e-02
1.804430e-02
1.826040e-02
1.617990e-02
1.641550e-02
1.597960e-02
1.581880e-02
1.799090e-02
1.815640e-02
1.636090e-02
1.500410e-02
1.697110e-02
1.679200e-02
1.700500e-02
1.660820e-02
1.760210e-02
1.735110e-02
1.622430e-02
1.609500e-02
1.606730e-02
1.363800e-02
1.591190e-02
1.471970e-02
1.270900e-02
1.648413e-02
1.626519e-02
1.693698e-02
1.586812e-02
1.692085e-02
1.738400e-02
1.734704e-02
1.776534e-02
1.784294e-02
1.626901e-02
1.878797e-02
1.680066e-02
1.756710e-02
1.746410e-02
1.789992e-02
1.664676e-02
1.729096e-02
1.620132e-02
1.778258e-02
1.724837e-02
1.778334e-02
1.702882e-02
1.656365e-02
1.712925e-02
1.570174e-02
1.584232e-02
1.578238e-02
1.438798e-02
1.584858e-02
1.503978e-02
1.627495e-02
1.621823e-02
1.639801e-02
1.495664e-02
1.640816e-02
1.604574e-02
1.547151e-02
1.718650e-02
1.636993e-02
1.541611e-02
1.573796e-02
1.703588e-02
1.611078e-02
1.701162e-02
1.699075e-02
1.547257e-02
1.587824e-02
1.554051e-02
1.627521e-02
1.585496e-02
1.788353e-02
1.779565e-02
1.436781e-02
1.693178e-02
1.644162e-02
1.788493e-02
1.773638e-02
1.847953e-02
1.806266e-02
1.704432e-02
1.720648e-02
1.798578e-02
1.763900e-02
1.792828e-02
1.801249e-02
1.716554e-02
1.738399e-02
1.901783e-02
1.818202e-02
1.811920e-02
1.859652e-02
1.587322e-02
1.719671e-02
1.510414e-02
1.641984e-02
1.620884e-02
1.667761e-02
1.683999e-02
1.715407e-02
1.668611e-02
1.655130e-02
1.579200e-02
1.433498e-02
1.645956e-02
1.661054e-02
1.683441e-02
1.771308e-02
1.705342e-02
1.621515e-02
1.625381e-02
1.703101e-02
1.685930e-02
1.793801e-02
1.719603e-02
1.757812e-02
1.737790e-02
1.775327e-02
1.628050e-02
1.860320e-02
1.860390e-02
1.925650e-02
1.784180e-02
1.971240e-02
1.819010e-02
1.955050e-02
1.845650e-02
1.825540e-02
1.983080e-02
1.894570e-02
1.677750e-02
1.951130e-02
2.035750e-02
1.776090e-02
1.772760e-02
1.846730e-02
1.817680e-02
1.868930e-02
1.826200e-02
1.769770e-02
1.778110e-02
1.883730e-02
1.796640e-02
1.935250e-02
1.947590e-02
1.822830e-02
1.522070e-02
1.926370e-02
1.676780e-02
1.819440e-02
1.832030e-02
1.874020e-02
1.849060e-02
1.870220e-02
1.675930e-02
1.812610e-02
1.840490e-02
1.869960e-02
1.757640e-02
1.661930e-02
1.701610e-02
1.801160e-02
1.919790e-02
1.795310e-02
1.738250e-02
1.845150e-02
1.848190e-02
1.686650e-02
1.801390e-02
1.844380e-02
1.834340e-02
1.851280e-02
1.896870e-02
1.797830e-02
1.885780e-02
1.918870e-02
1.926610e-02
1.885710e-02
1.902170e-02
1.905820e-02
2.032320e-02
1.953510e-02
1.937160e-02
2.005150e-02
1.987140e-02
1.989510e-02
1.853190e-02
1.850970e-02
1.942590e-02
1.912240e-02
1.677190e-02
1.711190e-02
1.800840e-02
1.948300e-02
1.983620e-02
1.861190e-02
1.996500e-02
1.876660e-02
1.833110e-02
1.896870e-02
1.855610e-02
1.797050e-02
1.836850e-02
1.773730e-02
1.724780e-02
1.895690e-02
1.781450e-02
1.757760e-02
1.813320e-02
1.670160e-02
1.897590e-02
1.671070e-02
1.467120e-02
1.613510e-02
1.754210e-02
1.577890e-02
1.759610e-02
1.794760e-02
1.736040e-02
1.612870e-02
1.571900e-02
1.584860e-02
1.787930e-02
1.683820e-02
1.814820e-02
1.846050e-02
1.606580e-02
1.752870e-02
1.770750e-02
1.756980e-02
1.868130e-02
1.770520e-02
1.648100e-02
1.797900e-02
1.787240e-02
1.552600e-02
1.835980e-02
1.871820e-02
1.920120e-02
1.906630e-02
1.876010e-02
1.773950e-02
1.853000e-02
1.912710e-02
1.771030e-02
1.983370e-02
1.879480e-02
1.855790e-02
1.680490e-02
1.706350e-02
1.754970e-02
1.650590e-02
1.917680e-02
1.733760e-02
1.837650e-02
1.841790e-02
1.508080e-02
1.728100e-02
1.678400e-02
1.633040e-02
1.655350e-02
1.672990e-02
1.487660e-02
1.636450e-02
1.628030e-02
1.669020e-02
1.684620e-02
1.578300e-02
1.822300e-02
1.715720e-02
1.729970e-02
1.596890e-02
1.729490e-02
1.690940e-02
1.610310e-02
1.627360e-02
1.705720e-02
1.618550e-02
1.813210e-02
1.589690e-02
1.705320e-02
1.794990e-02
1.664840e-02
1.717010e-02
1.818000e-02
1.893990e-02
1.888510e-02
1.796560e-02
1.815550e-02
1.734350e-02
1.826120e-02
1.905420e-02
1.959410e-02
1.882610e-02
1.756680e-02
1.791160e-02
1.868560e-02
1.841870e-02
1.887690e-02
1.851960e-02
1.859880e-02
1.900410e-02
1.896200e-02
1.910060e-02
1.948500e-02
1.910770e-02
1.696270e-02
1.843960e-02
1.831740e-02
1.838280e-02
1.706110e-02
1.900980e-02
1.767530e-02
1.969020e-02
2.007430e-02
1.856230e-02
2.022130e-02
1.838400e-02
1.881850e-02
1.749350e-02
1.978300e-02
1.888180e-02
1.826840e-02
1.930860e-02
1.812060e-02
1.874720e-02
1.618150e-02
1.829180e-02
1.843290e-02
1.570900e-02
1.792930e-02
1.623560e-02
1.829120e-02
1.627700e-02
1.777040e-02
1.650260e-02
1.757720e-02
1.860980e-02
1.817630e-02
1.884060e-02
1.719680e-02
1.531710e-02
1.792560e-02
1.765530e-02
1.726440e-02
1.767550e-02
1.708550e-02
1.733010e-02
1.535760e-02
1.793150e-02
1.772740e-02
1.661500e-02
1.809600e-02
1.790680e-02
1.807910e-02
1.667320e-02
1.673680e-02
1.763890e-02
1.948480e-02
1.801480e-02
1.807610e-02
1.683090e-02
1.811190e-02
1.789040e-02
1.808660e-02
1.861540e-02
1.771350e-02
1.944090e-02
1.913490e-02
1.898910e-02
1.872390e-02
1.905990e-02
1.846430e-02
2.008740e-02
1.731130e-02
1.742140e-02
1.864880e-02
1.903700e-02
1.705590e-02
1.823110e-02
1.856420e-02
1.889220e-02
1.977790e-02
1.937880e-02
1.800470e-02
1.843970e-02
1.809660e-02
1.769900e-02
1.910170e-02
1.843190e-02
1.732310e-02
1.965850e-02
1.986440e-02
1.970670e-02
2.025200e-02
1.938740e-02
1.789940e-02
1.867010e-02
1.976920e-02
1.941470e-02
1.807000e-02
1.778180e-02
1.760520e-02
1.848660e-02
1.842240e-02
1.889880e-02
1.842600e-02
1.480620e-02
1.694480e-02
1.878240e-02
1.798940e-02
1.776750e-02
1.913180e-02
1.867530e-02
1.688920e-02
1.821910e-02
1.838040e-02
1.766560e-02
1.817180e-02
1.598260e-02
1.680700e-02
1.719650e-02
1.782660e-02
1.826350e-02
1.817510e-02
1.764040e-02
1.787170e-02
1.936980e-02
1.889670e-02
1.788480e-02
1.843420e-02
1.662480e-02
1.649970e-02
1.692800e-02
1.861560e-02
1.844750e-02
1.835250e-02
1.678410e-02
1.870880e-02
1.855240e-02
1.643390e-02
1.907070e-02
1.891650e-02
1.955780e-02
1.652660e-02
1.827510e-02
1.737750e-02
1.840930e-02
1.932060e-02
1.752080e-02
1.811680e-02
1.929990e-02
1.883460e-02
1.836210e-02
1.870570e-02
1.849730e-02
1.855150e-02
1.762540e-02
1.891510e-02
1.984870e-02
1.909950e-02
1.893770e-02
1.742890e-02
1.901330e-02
1.965400e-02
1.963110e-02
1.900560e-02
1.849550e-02
1.978510e-02
1.938590e-02
1.882470e-02
1.874810e-02
2.012130e-02
2.070230e-02
1.950260e-02
2.046640e-02
1.880170e-02
1.910240e-02
1.944460e-02
1.883410e-02
1.991670e-02
1.913310e-02
1.839360e-02
1.823020e-02
1.903450e-02
1.924540e-02
1.944630e-02
1.790060e-02
1.716060e-02
1.921890e-02
1.787610e-02
1.885310e-02
1.754610e-02
1.887780e-02
1.609910e-02
1.472270e-02
1.835280e-02
1.757160e-02
1.885220e-02
1.513460e-02
1.805570e-02
1.735050e-02
1.704580e-02
1.724790e-02
1.678520e-02
1.668810e-02
1.775090e-02
1.919630e-02
1.861510e-02
1.737130e-02
1.818860e-02
1.778640e-02
1.700660e-02
1.737330e-02
1.895040e-02
1.868200e-02
1.891750e-02
1.823550e-02
1.888380e-02
1.702120e-02
1.846610e-02
1.856890e-02
1.876150e-02
1.760150e-02
1.825140e-02
1.933940e-02
1.667030e-02
1.893410e-02
1.921170e-02
1.686860e-02
1.659680e-02
1.846950e-02
1.758840e-02
1.830290e-02
1.936890e-02
1.841950e-02
1.892660e-02
1.996480e-02
1.805490e-02
1.858670e-02
1.846340e-02
1.971850e-02
1.843740e-02
1.865780e-02
1.816140e-02
1.908790e-02
1.877050e-02
1.969860e-02
1.834900e-02
1.872440e-02
1.848320e-02
1.804490e-02
1.789380e-02
1.767620e-02
1.921010e-02
1.855830e-02
1.986510e-02
2.038270e-02
1.942800e-02
1.892510e-02
1.996130e-02
1.948940e-02
1.920230e-02
1.922350e-02
2.026870e-02
1.960160e-02
1.949230e-02
2.004780e-02
1.966010e-02
2.053400e-02
1.940670e-02
2.046970e-02
1.998420e-02
1.896940e-02
2.059080e-02
2.064010e-02
2.017340e-02
2.053500e-02
2.025000e-02
1.947030e-02
2.022680e-02
2.037180e-02
1.999530e-02
1.839140e-02
2.019290e-02
2.013210e-02
2.031450e-02
2.086870e-02
1.928550e-02
1.995130e-02
2.079890e-02
2.095280e-02
1.998270e-02
1.941790e-02
2.051170e-02
2.041450e-02
1.984770e-02
1.917940e-02
1.847750e-02
2.006820e-02
1.962230e-02
2.008660e-02
1.791370e-02
1.912380e-02
1.855430e-02
2.007680e-02
1.903120e-02
1.884500e-02
1.971500e-02
1.913430e-02
1.780920e-02
1.809210e-02
1.796720e-02
1.886600e-02
1.871170e-02
1.753500e-02
1.767060e-02
1.744390e-02
1.885190e-02
1.686580e-02
1.826910e-02
1.746180e-02
1.735830e-02
1.955730e-02
1.776490e-02
1.754070e-02
1.885510e-02
1.883280e-02
1.788970e-02
1.797140e-02
1.912240e-02
1.654300e-02
1.823670e-02
1.756590e-02
1.704290e-02
1.744600e-02
1.885190e-02
1.645960e-02
1.726330e-02
1.829290e-02
1.782410e-02
1.882530e-02
1.878380e-02
1.645170e-02
1.803660e-02
1.833980e-02
1.799910e-02
1.770050e-02
1.861430e-02
1.874550e-02
2.009480e-02
1.875930e-02
1.858640e-02
1.685380e-02
1.969770e-02
1.880960e-02
1.994530e-02
1.918540e-02
1.902690e-02
1.995370e-02
1.871610e-02
1.832180e-02
1.842090e-02
2.051100e-02
1.878820e-02
1.933690e-02
1.957130e-02
2.000150e-02
1.981200e-02
1.978850e-02
2.003910e-02
2.002380e-02
1.958500e-02
1.982520e-02
1.915220e-02
1.948880e-02
1.969180e-02
2.050900e-02
2.122110e-02
2.005730e-02
2.008850e-02
1.958440e-02
1.905260e-02
2.010110e-02
2.007470e-02
1.981710e-02
2.022160e-02
2.036260e-02
1.989770e-02
2.039120e-02
1.976400e-02
1.818130e-02
1.865480e-02
1.879840e-02
1.746580e-02
1.945230e-02
1.829030e-02
1.971430e-02
2.008810e-02
1.978920e-02
1.728390e-02
1.926720e-02
1.849960e-02
1.917510e-02
1.999730e-02
1.928220e-02];
Fs = 1/10;
T = linspace(0, numel(P)-1, numel(P)).'/Fs;
save('P_vector.mat','P', 'T') % Save Vecotyrs To ‘P_vector.mat’
LD = load('P_vector')
LD = struct with fields:
P: [720x1 double]
T: [720x1 double]
P = LD.P; % ‘P’
t = LD.T; % 'T'
Pm = P*1000;
Q = quantile(P,4,1);
STD = zeros(1,1);
RANGE = zeros(1,1);
MEAN = zeros(1,1);
COV = zeros(1,1);
for i = 1:1
STD(i) = std(P(:,i));
RANGE(i) = max(P(:,i))-min(P(:,i));
MEAN(i) = mean(P(:,i));
COV(i) = 100*STD(i)/MEAN(i);
end
figure
boxplot(Pm,'Labels',{'45'})
title('Dépendance thermale de la quatrième harmonique')
xlabel('Angle (°)')
ylabel('P (mW)')

figure
plot(Pm,'g.');
hold on;
plot(movmedian(Pm,7),'k'); % Corrected
hold off
legend('Pm','7pt moving mean')
xlabel('Temps / 10 (s)')
ylabel('P (mW)')

% % figure
% % Fs = 1/10; % Sampling frequency
% % T = 1/Fs; % Sampling period
% % L = length(Pm); % Length of signal
% % t = (0:L-1)*T; % Time vector
% % F = fft(Pm);
% % F2 = abs(F);
% % F3 = log(abs(F/length(Pm)));
% To find the amplitudes of the three frequency peaks, convert the
% fft spectrum in Y to the single-sided amplitude spectrum. Because
% the fft function includes a scaling factor L between the original
% and the transformed signals, rescale Y by dividing by L. Take the
% complex magnitude of the fft spectrum. The two-sided amplitude
% spectrum P2, where the spectrum in the positive frequencies is
% the complex conjugate of the spectrum in the negative frequencies,
% has half the peak amplitudes of the time-domain signal. To convert
% to the single-sided spectrum, take the first half of the two-sided
% spectrum P2. Multiply the spectrum in the positive frequencies by 2.
% You do not need to multiply P1(1) and P1(end) by 2 because these
% amplitudes correspond to the zero and Nyquist frequencies, respectively,
% and they do not have the complex conjugate pairs in the negative frequencies.
% % P2 = abs(F/L);
% % P1 = P2(1:L/2+1);
% % P1(2:end-1) = 2*P1(2:end-1);
% % f = Fs/L*(0:(L/2));
[P1,Fv] = FFT1(P,T);
[pks,locs] = findpeaks(abs(P1)*2, 'MinPeakProminence', 1.75E-4);
figure
% plot(f,P1);
plot(Fv, abs(P1)*2)
grid
xlabel("f (Hz)")
ylabel("|fft(Puissance)|")
ylim([min(ylim) max(ylim)*1.25])
xlim('padded')
text(Fv(locs), pks, compose('\\leftarrow Magnitude: %.6f\n Frequency: %.4f', [pks Fv(locs)]), 'Rotation',20)

figure
semilogy(Fv, abs((P1))*2);
grid
xlabel("f (Hz)")
ylabel("log[|fft(Puissance)|]")
text(Fv(locs), pks, compose('\\leftarrow Magnitude: %.6f\n Frequency: %.4f', [pks Fv(locs)]), 'Rotation',20)

% for i = 1:size(Pm)
% Pa(i) = mean(Pm(i-3):Pm(i+3))
% if arg(Pm(i-3)) < 0
% P
% elseif arg(Pa) > 0
% figure
% plot(T,STD)
% title('Dépendance thermale de la quatrième harmonique')
% xlabel('T (°C)')
% ylabel('STD (W)')
%
% figure
% plot(T,COV)
% title('Dépendance thermale de la quatrième harmonique')
% xlabel('T (°C)')
% ylabel('CoV (%)')
%
% figure
% plot(T,MEAN)
% title('Dépendance thermale de la quatrième harmonique')
% xlabel('T (°C)')
% ylabel('MEAN (W)')
%plot(T,P)
%legend ('')
%title('Dépendance thermale de la quatrième harmonique')
%xlabel('T (°C)')
%ylabel('P (mw)')
function [FTs1,Fv] = FFT1(s,t)
% Arguments:
% s: Signal Vector Or Matrix
% t: Associated Time Vector
t = t(:);
L = numel(t);
if size(s,2) == L
s = s.';
end
Fs = 1/mean(diff(t));
Fn = Fs/2;
NFFT = 2^nextpow2(L);
FTs = fft((s - mean(s)) .* hann(L).*ones(1,size(s,2)), NFFT)/sum(hann(L));
Fv = Fs*(0:(NFFT/2))/NFFT;
% Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
Fv = Fv(:);
FTs1 = FTs(Iv,:);
end
The frequency peak at 0.0165 Hz is clearly visible, as are some others. (I use the findpeaks function here to make locating them easier.)
.
Patrick Soucy
on 24 Sep 2024
Greetings,
Thank you very much for your answer. I will take the time to read your modified code for the FFT.
If I understand correctly, I was basically doing it fine, but your code diminished the artefact at 0Hz, making it easier to visualize.
I think I see what you mean that substracting the mean is what fixes this issue. Is this therefore a standard procedure for signal processing?
You mentioned two things in your original answer, windowing and zero padding (using the length parameter). What are those?
- For windowing, do you mean doing the FFT on the moving average data (my black curve) instead of the original data? I am definitely going to do that, as the trend is more obvious there.
- For zero padding, I would just add zeroes at the end of my vector, and recalculate the FFT?
Again, thank you very much.
Star Strider
on 24 Sep 2024
My pleasure!
‘Is this therefore a standard procedure for signal processing?’
I am not certain that it is standard, although it is definitely recommended, for the reason I stated.
- No. In my ‘FFT1’ function, I use the hann window. The purpose of windowing is to correct for the fft being finite, instead of infinite as is the formal definition of the Fourier transform. Windowing produces a better and more representative spectrum result.
- That is one option. Here, I use the second argument to speciify the length of the fft. Making it a power-of-2 makes the fft calculation more efficient.
My pleasure!
.
More Answers (0)
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)