2014-11-22 1 views
3

나는 일부 풍속 측정을위한 파워 스펙트럼을 계산하는 matlab에 pwelch 방법을 사용하고 있습니다. 내가 충분히 명성 포인트의 사용과 matlab에서 pwelch의 이해에

이 메이크업 감각을합니까을 가지고 있지 않는 한 나는 플롯을 포함 할 수 없습니다

t = 10800; % number of seconds in 3 hours 
t = 1:t; % generate time vector 
fs = 1; % sampling frequency (seconds) 
A = 2; % amplitude 
P = 1000; % period (seconds), the time it takes for the signal to repeat itself 
f1 = 1/P; % number of cycles per second (i.e. how often the signal repeats itself every second). 
y = A*sin(2*pi*f1*t); % signal 

fh = figure(1); 
set(fh,'color','white','Units', 'Inches', 'Position', [0,0,6,6],... 
    'PaperUnits', 'Inches', 'PaperSize', [6,6]); 
[pxx, f] = pwelch(y,[],[],[],fs); 
loglog(f,10*(pxx),'k','linewidth',1.2); 
xlabel('log10(cycles per s)'); 
ylabel('Spectral Density (dB Hz^{-1})'); 

: 그래서, 지금까지 내가 예를 들어 다음과 같은 코드를 작성했다? 저는 음모의 오른쪽에 잡음이 있다는 생각에 고심하고 있습니다. 분해 된 신호는 잡음이없는 사인파였습니다.이 잡음은 어디에서 왔습니까? y 축의 값이 음수라는 사실은 그 주파수가 무시할 만하다는 것을 암시합니까? 또한 풍속이 m/s 단위로 측정되는 경우 y 축에 단위를 쓰는 가장 좋은 방법은 환경 과학자에게 더 의미있는 것으로 변환 될 수 있습니까?

답변

3

결과가 만족 스럽습니다. dB은 혼란 스러울 수 있습니다. 선형 플롯이 좋은보기를 얻을 것이다

,

Fs = 1000;     % Sampling frequency 
T = 1/Fs;      % Sample time 
L = 1000;      % Length of signal 
t = (0:L-1)*T;    % Time vector 
y = sin(2 * pi * 50 * t);  % 50Hz signal 

fft 접근,

NFFT = 2^nextpow2(L); % Next power of 2 from length of y 
Y = fft(y,NFFT)/L; 
f = Fs/2*linspace(0,1,NFFT/2+1); 
subplot(1,2,1); 
plot(f,2*abs(Y(1:NFFT/2+1))) 
xlabel('Frequency (Hz)') 
ylabel('|Y(f)|') 

pwelch 접근,

subplot(1,2,2); 
[pxx, freq] = pwelch(y,[],[],[],Fs); 
plot(freq,10*(pxx),'k','linewidth',1.2); 
xlabel('Frequency (Hz)'); 
ylabel('Spectral Density (Hz^{-1})'); 

enter image description here

당신이 볼 수 있듯이 그들은 모두 50Hz에 최고점을 가지고 있습니다. 모두 loglog를 사용

,

enter image description here

그래서 "노이즈" 1e-6입니다뿐만 아니라 fft에 존재 무시할 수 있습니다.

두 번째 질문에 대해서는 축이 변경되지 않는다고 생각하면 frequency이 다시 나타납니다. Fs의 경우 10 초의 속도 샘플을 가지고있는 경우 Fs10 인 것처럼 풍속의 샘플링 빈도를 사용해야합니다. 그래프에서 주파수가 높을수록 풍속이 더 많이 변하고 주파수가 낮을수록 속도는 느리게 변합니다.

+1

정말 훌륭하고 종합적인 답변입니다. +1 – am304

+0

답변 해 주셔서 감사합니다. Hz는 초당 사이클 수를 의미하므로 x 축의 값을 사용하여 신호의주기를 계산할 수 있습니다. 그러나, Hz 당 yaxis는 무엇을 나타 냅니까? 어떻게 이것을 사용할 수 있습니까? 예를 들어, 0.8 Hz-1의 스펙트럼 밀도는 실제로 무엇을 의미합니까? –

+0

@EmmaTebbs,'y' 축에서'y'의 값은 하나의 빈도 값을 의미합니다. 그래프 속도와 속도가 (m/s)이고 시간이's' 인 그래프와 같습니다. – Rashid

관련 문제