-
Notifications
You must be signed in to change notification settings - Fork 2
/
plotPwelch.m
41 lines (31 loc) · 1.02 KB
/
plotPwelch.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
% calc and plot signal's frequency content with welch.
% Inputs: x: signal (rows: signals; columns: time points)
% Color: colors to plot the results (default: random)
% freqPlot: figure number (default: 100)
% freq: highest frequency to calculate
% Fs: data sampling rate
% Shlomit Beker 2018 <shlomitbeker@gmail.com>
function [pxx,f] = plotPwelch(x,colors,freqPlot,freq,Fs)
%setting defaults
if ~exist('colors','var') || isempty(colors)
colors = rand(length(x),3);
end
if ~exist('freqPlot','var') || isempty(freqPlot)
freqPlot = 100;
end
if ~exist('Fs','var')|| isempty(Fs)
Fs = 256;
end
%
for i = 1:size(x,1)
figure(freqPlot);
freqVec = x(i,:);
[pxx,f] = pwelch(freqVec,length(x),length(x).*0.9,0:0.01:freq,Fs);
plot(f, pxx,'Color',colors(i,:),'LineWidth',2);
hold on;
end
title('time-frequency conversion with Welch');
xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)')
set(gca,'fontsize', 16);
end