转换一个过滤器使用汇集和输入向量解决

6视图(30天)
我想有一个更好的理解从过滤器创建工作流- >将滤波器转换成数字领域- >将过滤器应用到一个向量
我创建了一个六阶模拟巴特沃斯滤波器截止频率为2.841 ghz和2.861 ghz。我有一个正弦信号在2851 mhz,与x轴resoluation Ts = 1 / (100 e9)。基于过滤器的文档: //www.tianjin-qmedu.com/help/matlab/ref/filter.html bt_vs4t-1-b, 这是一个一维数字滤波器。这让我觉得我需要将模拟滤波器转换成离散使用汇集。我在困惑c2d的Ts值应该是什么。应该是输入的分辨率值向量?或者只需要2 x通频带的频率?如果我使用的Ts值1 / (100 e9),我的预示结果是完全无法使用。我读了这篇文章“使用正确的模型表示 //www.tianjin-qmedu.com/help/control/examples/using-the-right-model-representation.html。 它表明通过使用状态,我汇集会更准确,但我仍然需要为最终转换为tf过滤步骤,失败将ss的目的。
所以我有两个问题:
  1. 有一种更简单的方法来模拟这个吗?
  2. 如何选择一个合适的Ts值?
谢谢!
fc = 2851.3 e6;%共振频率
fs = 100 e9;% x轴分辨率
Ts = 1 / f;
t_start = 0;% x轴开始时间
t_stop = 10 e-6;% x轴停止时间
t = (t_start): (Ts): (t_stop);% x轴
射频= cos((2 *π* f_c * (t)) + (0));
%外部带通滤波器
lp_f = 2.841 e9;
hp_f = 2.861 e9;
lp_w = 2 *π* lp_f;
hp_w = 2 *π* hp_f;
ext_bpf_bw = [lp_w hp_w];
[ext_bpf_Num, ext_bpf_Den] =黄油(6 ext_bpf_bw“带通”,“年代”);%创建一个巴特沃斯滤波器
ext_bpf =特遣部队(ext_bpf_Num ext_bpf_Den);
选择= c2dOptions (“方法”,“匹配”,“FractDelayApproxOrder”3);
ext_bpfz =汇集(ext_bpf, (Ts),选择);
图()
P = bodeoptions (“cstprefs”);
P。Xlim = [2.7, 3.0];
P。FreqUnits =“GHz”;
P.Title。字符串=Ext射频滤波器的;
P。网格=“上”;
bodeplot (ext_bpf ext_bpfz,“x”,P);
(ext_bpfz ext_bpf_out =过滤器。ext_bpfz Num {1}。窝{1},rf);

接受的答案

明星黾
明星黾 2019年8月7日
我会选择一个奈奎斯特频率高于你的通带频率最高,所以随意:
Fn = 3 e + 9;%奈奎斯特频率
Fs = Fn * 2;%采样频率
Ts = 1 / f;%采样间隔
你选择的采样频率是有可能不适合离散滤波器。我可能更合适。
但是要注意,使用我的价值观是采样间隔 ,所以将应变浮点计算的极限。还请注意, “Fs” 必须你的信号的采样频率,可能应变你的ADC。
它可能是更好的让信号处理工具箱做离散滤波器设计的“重任”。(我喜欢椭圆滤波器。)既然你想设计巴特沃斯滤波器,开始的 buttord 功能,从那里开始:
Fn = 3 e + 9;%奈奎斯特频率
Fs = Fn * 2;%采样频率
Ts = 1 / f;%采样间隔
lp_f = 2.841 e9 / Fn;%正常化通频带限制
hp_f = 2.861 e9 / Fn;%正常化通频带限制
Wp = [lp_f hp_f];%通频带向量
Ws = Wp。* (。1 / 99 .99];%阻带矢量
Rp = 1;%通带波纹(巴特沃斯无关)
Rs = 50;%阻带衰减
[n, n] = buttord (Wp、Ws Rp, Rs);%的顺序计算
(z,磷、钾)=黄油(n, Wn);% Zero-Pole-Gain
(sos, g) = zp2sos (z,磷、钾);%二阶部分稳定
Fs freqz (sos、2 ^ 16日)%滤波德图
看看,你想要什么。
2的评论
明星黾
明星黾 2019年8月7日
我的荣幸!
“… 您没有使用创建的黄油过滤器创建一个数字滤波器的Ts
是的,确实。在信号处理工具箱,离散过滤器是默认,通带和阻带正常区间 [0,1] 定义除以频率(1 /单位时间单位)在奈奎斯特频率,正常化,间隔。指定 “年代” 创建一个连续的过滤器,当你在你的代码。
你会使用过滤器()?
我将使用 filtfilt () ,因为它是一个phase-neutral过滤器,也解决了,并使用适当的初始条件。
也可以过滤函数连续过滤系统?
万博1manbetx仿真软件可以 模拟 连续系统和过滤器(我记得使用它很久以前),然而一切在信号处理工具箱处理离散信号。您可以设计连续过滤,然而实现它们在硬件(是绝对必要的)需要电路合成技术,几十年来我学习虽然不习惯,当然,然后实际实现的硬件。实现离散过滤器是相对简单的。如果您想使用一个连续过滤,贝塞尔(设计 besself 函数)是最好的,因为它本质上是phase-neutral(尽管是不可能有效地实现它作为离散滤波器)。

登录置评。

更多的答案(0)

s manbetx 845


释放

R2018b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!