这个例子展示了如何计算一个简单的带通滤波器的时域响应。计算一个简单的带通滤波器时域响应的八个步骤是:
图像参数设计是分析计算无源滤波器中串联和并联分量值的框架。有关图像参数的更多信息,请参阅Cotter W. Sayre的“完整无线设计”,McGraw-Hill出版社,2008年第331页。
图1:由两个半部分组成的巴特沃斯带通滤波器。
生成带通滤波器的组件值,该滤波器的截止频率较低3 dB为2.4 GHz,上限3 dB截止频率为2.5 GHz。
Ro = 50;f1C = 2400 e6;f2C = 2500 e6;l = (pi*(f2C - f1C)) /2;% Ls1和Ls2c = 2*(f2C - f1C)/(4*pi*Ro*f2C*f1C);% Cs1和Cs2(4*pi*f2C*f1C) /(4*pi*f2C*f1C);% Lp1和Lp2Cp = (1/(pi*Ro*(f2C - f1C)) /2);% Cp1和Cp2
在建立电路之前使用电感器
和电容器
电路中的对象和节点都有编号。如图1所示。
图2:添加到巴特沃思带通滤波器的节点数。
电路=电路(“butterworthBPF”);添加(电路(3 - 2),电感器(Ls));% Ls1add(电路,3[4],电容器(Cs));% Cs1添加(电路4[5],电容器(Cs));% Cs2add(电路,5[6],电感器(Ls));% Ls2添加(电路(4 - 1),电容器(Cp));Cp1 %添加(电路(4 - 1),电感器(Lp));% Lp1添加(电路(4 - 1),电感器(Lp));% Lp2添加(电路(4 - 1),电容器(Cp));% Cp2
要从电路对象中提取s参数,首先使用setports
函数将电路定义为2端口网络。
频率= linspace (2 e9 3 e9,101);
使用sparameters
函数提取感兴趣频率处的s参数。
setports(ckt,[2 1],[6 1]) S =参数(ckt,freq);
使用s2tf
函数从s参数对象生成传递函数。
tfS = s2tf(年代);
使用理性的
对象将传递函数数据拟合到有理函数。
适合=理性(频率、tfS);
使用freqresp
函数来验证有理拟合近似在拟合频率范围的两侧都有合理的行为。
widerFreqs = linspace (2 e8、5 e9, 1001);resp = freqresp(健康,widerFreqs);
图可视化有理拟合近似。合理拟合在拟合频率范围外表现良好。
图semilogy(频率、abs (tfS)、widerFreqs、abs(职责)“——”,“线宽”(2)包含的频率(赫兹));ylabel (“级”);传奇(“数据”,“健康”);标题(“理性的”行为符合近似);
为了测试采用图像参数技术设计的带通滤波器,从噪声输入信号中恢复出2.45 GHz的正弦信号。噪声输入信号是通过在输入信号中加入零均值随机噪声和2.35 GHz的阻断器而产生的。
构造一个输入和一个带有8192个样本的噪声输入信号。
fCenter = 2.45 e9;fBlocker = 2.35 e9;时间= 1 / fCenter;sampleTime = / 16时期;signalLen = 8192;t = (0: signalLen-1) * sampleTime;% 256期输入=罪(2 *π* fCenter * t);干净输入信号rng (“默认”) noise = randn(size(t)) + sin(2*pi*fBlocker*t);noisyInput =输入+噪声;输入信号噪声百分比
使用timeresp
函数来计算状态空间的解析解。金宝搏官方网站
输出= timeresp(健康,noisyInput sampleTime);
将输入信号、噪声输入信号和带通滤波器输出绘制在图形窗口中。
xmax = t(结束)/ 8;图subplot(3,1,1) plot(t,input) axis([0 xmax -1.5 1.5]) title(“输入”) subplot(3,1,2) plot(t,noisyInput) axis([0 xmax floor(min(noisyInput)) ceil(max(noisyInput))]);标题(嘈杂的输入的);ylabel (的振幅(伏));Subplot (3,1,3) plot(t,output) axis([0 xmax -1.5 1.5]);标题(滤波器输出的);包含(的时间(秒));
在频域中叠加噪声输入和滤波器响应解释了为什么滤波操作是成功的。在2.35 GHz的阻断信号和许多噪声都被显著地衰减。
NFFT = 2 ^ nextpow2 (signalLen);% y长度的下一个2次方Y = fft (noisyInput NFFT) / signalLen;samplingFreq = 1 / sampleTime;f = samplingFreq / 2 * linspace (0, 1, NFFT / 2 + 1) ';O = fft(输出,NFFT) / signalLen;图次要情节(2,1,1)情节(频率、abs (tfS),“b”,“线宽”,2)轴([freq(1) freq(end) 0 1.1]);传奇(滤波器传递函数的);标题(“带通滤波器的传递函数”);ylabel (“级”);次要情节(2,1,2)情节(f, 2 * abs (Y (1: NFFT / 2 + 1)),‘g’f 2 * abs (O (1: NFFT / 2 + 1)),“r”,“线宽”,2)轴([freq(1) freq(end) 0 1.1]);传奇(“输入+噪声”,“输出”);标题(滤波特性和噪声输入频谱);包含(的频率(赫兹));ylabel (的大小(伏));
要使用RFCKT对象计算和显示这个带通滤波器响应,请参见使用RFCKT对象的带通滤波器响应.