-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApplyFilter.m
30 lines (26 loc) · 1017 Bytes
/
ApplyFilter.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
function filtered = ApplyFilter(data,fft_res,h)
% FUNCTION filtered = ApplyFilter(data,fft_res,h)
% applies a filter to the time-domain signal
%
% INPUT
% data: structure with fields
% t -- vector containing time samples
% FID -- vector containing time-domain signal
% fft_res: desired FFT resolution
% h: filter function, e.g., hamming filter
% h = Hamming(1000), Hanning(1000) etc
% OUTPUT: filtered spectrum, structure with fields
% t vector containing time samples (identical to input)
% FID vector containing filtered time-domain signal
% f vector containing frequencies
% FT vector containing frequency-domain signal (spectrum)
% SPDX-License-Identifier: AGPL-3.0-or-later
%
% Copyright (C) 2021, Sophie M Shermer, Swansea University
L = size(data.FID,2);
N = length(h);
g = zeros(size(data.FID));
g(1:ceil(N/2),:) = h(floor(N/2)+1:N)*ones(1,L);
filtered = data;
filtered.FID = g.*data.FID;
filtered = GetSpectra(filtered,fft_res);