Why does pwelch signal magnitude change with frequency?

4 vues (au cours des 30 derniers jours)
J H
J H le 21 Déc 2016
Commenté : J H le 10 Jan 2017
I am sampling a signal with high and low frequency components that I know should occur. My sampling rate is 2.56*10^4 Hz, and I have 577664 data points in the input vector x.
I am using pwelch and a blackman-harris window with 50% overlap to estimate the magnitude of my signal in the frequency domain with the code example below.
When I use the code below, the low frequency magnitudes (0 to 200 Hz) are about 30 dB greater than what I expect and the high frequency components (600 to 1000 Hz) are about 20 dB lower than I expect. Why would this happen and how can I fix it?
Thank you.
Code Example:
fs = 2.56*10^4;
n = fs/2;
win = blackmanharris(floor(n)); % Window Function
[magFFTX,f] = pwelch(x,win,floor(n/2),[],fs); % Calculate Mag and f
fbin = f(2,1) - f(1,1); % Calculate frequency bin
%CG = 0.5400; % Coherent Gain of Hamming Window
%NG = 0.3974; % Noise Gain of Hamming Window
%CG = 0.5000; % Coherent Gain of Hanning Window
%NG = 0.3750; % Noise Gain of Hanning Window
CG = 0.3587; % Coherent Gain of Blackman-Harris Window
NG = 0.2580; % Noise Gain of Blackman-Harris Window
scalingFactor = NG.*fbin./(CG.^2);
magFFTX = magFFTX.*scalingFactor;
magFFTX = magFFTX ./(10^-6); % Convert to micro g
magFFTX = 20.*log10(magFFTX ); % Convert to dB
plot(f,magFFTX);
xlim([0 1000]);
  12 commentaires
John BG
John BG le 10 Jan 2017
Modifié(e) : John BG le 10 Jan 2017
ok,
1.
is the comb of tones you supplied as example, just an example, or is it the real signal you want to analyse?
I ask this because the window to apply depends upon the type of signal you want to analyse.
2.
would you consider splitting the input spectrum into smaller bands and analyse them separately?
3.
If the supplied signal is not the signal you want to analyse, would it be possible to have a look at the the actual signal?
4.
what kind of signals are you working with
Are you analysing coupled interference across different loops?
or are you monitoring wireless traffic picked by a mobile communications tower?
J H
J H le 10 Jan 2017
1. The comb of tones I supplied as an example is just an example.
2. I would consider this, if it may help. Would I split the data before FFT, and how/where should I split it?
3. I am not allowed to provide the actual signal. Sorry.
4. The signal comes from accelerometers, placed on a vibrating cable. The cable is forced by a fluid flowing at a certain velocity past it. I am taking the maximum at each timestep of specifically placed accelerometer data to get the natural frequencies of the cable. This is the power spectrum that I am trying to plot.
Thanks.

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by