我正在尝试学习带通滤波器,我理解了理论或基本思想 . 但是,我一直在努力使用以下代码,但我能够完全理解它并将其塑造成我想要的工作 .
clc;
close all;
clear all;
n=0:300000;
delay = 10000;
wc=.2*pi;
w0=.4*pi;
hLP=(wc/pi)*sinc((wc/pi)*(n-delay));
hBP=2*cos(n*w0).*hLP;
[Happrox,W]=freqz(hBP,1);
plot(W,abs(Happrox));
xlabel('frequency');
ylabel('magnitude');
title('Band pass Filter');
运行此代码时,我得到了以下过滤器设计
我希望X轴延伸到255,我能够使用 xlim
实现这一点 . 现在,在改变带通的频率限制时,我遇到了问题 . 这就是我觉得我需要理解代码的原因 . 请帮我解释一下 .
wc
和 w0
是要更改频段的值,但是我无法获得所需频率的确切值,例如从12到250.如果你可以帮我解释,我觉得我可以完成它 .
提前致谢
1 回答
您从freqz函数获得的W变量具有每个样本的弧度单位,并从0延伸到pi . 要获得以Hz为单位的频率,您需要提供采样率,Fs以及您想要的点数N.
用以下行替换你对freqz的调用: