【问题标题】:How to Get Frequency Window from Lanczos Filter如何从 Lanczos 滤波器获取频率窗口
【发布时间】:2021-06-07 20:17:20
【问题描述】:

我有这个 Lanczos 过滤器的代码:

dT = 1 % sampling interval
Cf = 1/40 % cutoff frequency
fl = 100 % ?
M = 100 % number of coefficients ? not sure about number
LoH = 1 % low pass

Nf=1/(2*dT); %Nyquist frequency

% Normalize the cut off frequency with the Nyquist frequency:
Cf = Cf/Nf;

% Lanczos cosine coeficients:
coef = lanczos_filter_coef(Cf,M); coef = coef(:,LoH);

% Filter in frequency space:
[window,Ff] = spectral_window(coef,length(vel)); Ff = Ff*Nf;

% Filtering:
[y,Cx] = spectral_filtering(vel,window);

function coef = lanczos_filter_coef(Cf,M)
% Positive coeficients of Lanczos [low high]-pass.
hkcs = lowpass_cosine_filter_coef(Cf,M);
sigma = [1 sin(pi*(1:M)/M)./(pi*(1:M)/M)];
hkB = hkcs.*sigma;
hkA = -hkB; hkA(1) = hkA(1)+1;
coef = [hkB(:) hkA(:)];
end

function coef = lowpass_cosine_filter_coef(Cf,M)
% Positive coeficients of cosine filter low-pass.
coef = Cf*[1 sin(pi*(1:M)*Cf)./(pi*(1:M)*Cf)];
end

function [window,Ff] = spectral_window(coef,N)
% Window of cosine filter in frequency space.
Ff = 0:2/N:1; window = zeros(length(Ff),1);
for i = 1:length(Ff)
    window(i) = coef(1) + 2.*sum(coef(2:end).*cos((1:length(coef)-1)'*pi*Ff(i)));
end
end

function [y,Cx] = spectral_filtering(vel,window)
% Filtering in frequency space is multiplication, (convolution in time 
% space).
Nx  = length(vel);
Cx  = fft(vel(:)); Cx = Cx(1:floor(Nx/2)+1);
CxH = Cx.*window(:);
CxH(length(CxH)+1:Nx) = conj(CxH(Nx-length(CxH)+1:-1:2)); 
y = real(ifft(CxH));
end

我需要从中绘制时间窗口和频率窗口。我得到了来自 coef 的时间窗口,但我不知道哪个输出会给我频率窗口。我已经绘制了输出变量的所有可能组合,并尝试对其中一些变量进行傅里叶变换,但我没有尝试给我预期的数字。

【问题讨论】:

  • 您是否要对这段代码进行逆向工程?
  • 我不确定你的意思。代码给了我我需要的一切。我只是不确定哪些变量与频率响应有关,因为我不知道所有输出的含义。
  • 逆向工程意味着您拥有一个未记录的系统,并且您想了解它是如何工作的。你会如何用笔和纸计算 Lanczos 滤波器的频率窗口?

标签: matlab time-series frequency spectrum lanczos


【解决方案1】:

频率窗口在输出“窗口”中,因此需要绘制(Ff,窗口)。您会得到一个在 Cf (所以 1/50)附近有强烈下降的图表,这是您选择的截止频率,它将您将用于低通滤波器的频率与用于高通滤波器的频率分开。

【讨论】:

  • 嗯。我想我得问问教授我们是否需要做一些数据转换,因为这正是我所做的,它看起来不像她在课堂上展示的图表。不过谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 2019-07-04
  • 2013-06-22
  • 2014-12-27
  • 2015-09-12
相关资源
最近更新 更多