袁 靖,高 楊,任萬春
(1.西南科技大學(xué) 信息工程學(xué)院, 四川 綿陽 621010;2.西南科技大學(xué) 微系統(tǒng)中心, 四川 綿陽 621010)
隨著無線電技術(shù)的迅速發(fā)展和無線電設(shè)備應(yīng)用領(lǐng)域的擴(kuò)大,通信系統(tǒng)對濾波器性能提出了更高的要求[1]。與聲表面波(SAW)濾波器和介質(zhì)濾波器等相比,雖然體聲波(BAW)濾波器具有體積小,品質(zhì)因數(shù)(Q)值高及帶外抑制好等優(yōu)勢,但也需要同時(shí)滿足現(xiàn)代通信系統(tǒng)對BAW濾波器時(shí)域特性的高要求[2-4]。因?yàn)樾盘柾ㄟ^BAW濾波器后,BAW濾波器的非理想相頻特性會使信號產(chǎn)生相位失真,這些失真會對通信系統(tǒng)的性能產(chǎn)生嚴(yán)重影響[5]。為了盡可能使帶內(nèi)信號通過BAW濾波器不失真,需要BAW濾波器有線性的相頻特性,即BAW濾波器群時(shí)延波動盡可能小[6],因此需要對BAW濾波器群時(shí)延波動進(jìn)行準(zhǔn)確計(jì)算,以便根據(jù)計(jì)算結(jié)果對其性能進(jìn)行評估和后續(xù)的改進(jìn)。
BAW濾波器群時(shí)延波動表示為通帶內(nèi)群時(shí)延最大值和最小值的差。群時(shí)延可通過矢量網(wǎng)絡(luò)分析儀測試后導(dǎo)出的S參數(shù)計(jì)算得到。為了從測得的S參數(shù)計(jì)算BAW濾波器群時(shí)延波動,本文分別給出了在ADS、MATLAB中計(jì)算BAW濾波器群時(shí)延波動的兩種方法,并將一組測得的BAW濾波器的S2P文件分別導(dǎo)入ADS、MATLAB中進(jìn)行計(jì)算,同時(shí)對兩種方法進(jìn)行對比,得到的結(jié)果基本吻合。
首先需要?jiǎng)?chuàng)建一個(gè)m文件,m文件名和輸入函數(shù)名一樣都為“readS2P”;然后定義function函數(shù)和輸入函數(shù);接著找到S2P文件中數(shù)據(jù)開始存儲的行;最后讀取S2P中的每個(gè)頻率點(diǎn)及對應(yīng)的S參數(shù)的幅值和相位。S2P文件讀取部分程序如下:
function [freq,S,magZ,angZ] =
readS2P(m,a,b)
fid = fopen(m);
tline = fgetl(fid);
i=0;j1=0;
while ischar(tline)%
if tline(1)==′!′
i=i+1;
j1=i;
elseif tline(1)==′#′
i=i+1;
else
break;
end
tline = fgetl(fid);
end
data=textread(m,″,′headerlines′,i);
freq=data([1∶1∶22000],1);
群時(shí)延波動計(jì)算同樣應(yīng)先創(chuàng)建m文件,m文件名和輸入函數(shù)名一樣都為“Filter_Measure”;然后定義function函數(shù)和輸入函數(shù);接著調(diào)用“readS2P”文件,并根據(jù)群時(shí)延的定義,編寫群時(shí)延波動的計(jì)算程序。部分程序如下:
function [Daiwaiyizhi1]=Filter_Measure1(m)
[freq,S,Mag,Ang]=readS2P(m,2,1);
warning(′off′)
Ang=(Ang<0).*(Ang+360)+(Ang>0).*Ang;
AngPi=Ang/180*pi;
AngPi=AngPi(((freq<(2094+3.1)*1000000)&(freq>(2094-3.1)*1000000)));
oumiga=2*pi*freq;
oumiga=oumiga(((freq<(2094+3.1)*1000000)&(freq>(2094-3.1)*1000000)));
Qunyanshi=-diff(AngPi(1:1:end))./diff(oumiga(1:1:end))*10^9;
Qunyanshi1=max(Qunyanshi)-min(Qunyanshi);
str=[′....5.群時(shí)延波動=′num2str(Qunyanshi1)′ns....′];
disp(str);
end
首先需要讀取測試數(shù)據(jù)文件夾下所有測得的BAW濾波器的S2P文件;然后調(diào)用群時(shí)延的計(jì)算程序“Filter_Measure”文件;接著依此計(jì)算BAW濾波器的群時(shí)延波動;最后以excel形式輸出計(jì)算數(shù)據(jù)。數(shù)據(jù)輸出部分程序如下:
clc
clear
maindir = ′F:data高低溫試驗(yàn)數(shù)據(jù)′;
subdir =dir(maindir);
for bianhao=[1 2 3 4 5 7 8]
Wendu=[];Qunyanshiall=[];
fori= 1:length(subdir)
filename=subdir(i).name;
flg=strfind(subdir(i).name,[′du_′num2str(bianhao)′#′]);
if(length(flg)~=0)
Wendu=[Wendu str2num(filename(1:flg-1))];
[Qunyanshi1]=Filter_Measure1(filename);
Qunyanshiall=[Qunyanshiall Qunyanshi1];
end
在ADS軟件中計(jì)算BAW濾波器的群時(shí)延波動,首先在ADS軟件中導(dǎo)入測得的BAW濾波器的S2P文件。具體方法是在ADS軟件中新建一張?jiān)韴D,然后放置S2P元件和相應(yīng)的S參數(shù)端子,構(gòu)成的電路圖如圖1所示。在S2P元件中導(dǎo)入測得的BAW濾波器S2P文件;S參數(shù)仿真設(shè)置的掃頻范圍和步長需要與矢量網(wǎng)絡(luò)分析儀測量時(shí)保持一致。
圖1 在ADS中導(dǎo)入S2P文件
在圖1的基礎(chǔ)上,雙擊“S-PARAMETERS”進(jìn)入S參數(shù)仿真器設(shè)置中,選中計(jì)算“Group delay”;然后在ADS軟件繪圖框中的“Trace Expression”輸入“delay(S12)”,得到BAW濾波器群時(shí)延頻率曲線,如圖2所示。
圖2 “delay(S12)”計(jì)算群時(shí)延頻率曲線
“delay(S12)”函數(shù)是利用群時(shí)延定義及下式計(jì)算[7]得到
(1)
式中:φ(ω)為相頻特性曲線;ω為角頻率;τ(ω)為群時(shí)延。
在ADS中仿真phase(S12)-頻率曲線如圖3所示。
圖3 phase(S12)-頻率曲線
由圖3可知,相位存在-180°~180°的跳變,這是因?yàn)橛?jì)算一個(gè)系統(tǒng)相頻特性時(shí),要用到反正切函數(shù)提取相位,計(jì)算機(jī)中反正切函數(shù)規(guī)定,在一、二象限時(shí)角度為0°~180°,三、四象限時(shí)角度為0°~-180°。這使實(shí)際得到的結(jié)果發(fā)生相位跳變,跳變幅度為360°。群時(shí)延為相位變化量和頻率變化量之比,相位發(fā)生跳變會使相位變化量增大,進(jìn)而導(dǎo)致群時(shí)延增大。
為了避免“delay(S12)”計(jì)算時(shí)遇到的相位跳變問題,在ADS中可使用“group_delay”進(jìn)行計(jì)算,即
group_delay=-diff(unwrap(phase(S12),π)/(2*π)
(2)
式中unwrap函數(shù)用于檢查數(shù)據(jù)前、后兩點(diǎn)的相位差距是否超過180°,超過為有跳變,后點(diǎn)的值自動減去360°。unwrap函數(shù)的作用是使相位在-180°處不發(fā)生跳變,從而反應(yīng)出真實(shí)的相位變化,如圖4所示。
圖4 unwrap(phase(S12))-頻率曲線
在ADS軟件繪圖框中的“Trace Expression”中輸入式(2),得到BAW濾波器群時(shí)延頻率曲線如圖5所示。通過計(jì)算帶內(nèi)群時(shí)延的最大值與最小值的差可得到群時(shí)延波動。
圖5 “group_delay”計(jì)算群時(shí)延頻率曲線
將用矢量網(wǎng)絡(luò)分析儀實(shí)測的一個(gè)BAW濾波器S2P文件作為算例的輸入數(shù)據(jù),分別導(dǎo)入MATLAB、ADS中進(jìn)行計(jì)算。一組S2P文件是BAW濾波器分別對8個(gè)溫度點(diǎn)(-55 ℃、-30 ℃、0、+25 ℃、+50 ℃、+85 ℃、+100 ℃、+125 ℃)進(jìn)行試驗(yàn)條件下測得。
BAW濾波器群時(shí)延波動在MATLAB中計(jì)算和ADS中使用“group_delay”計(jì)算的結(jié)果,如圖6所示。
圖6 MATLAB和ADS中使用“group_delay”計(jì)算的BAW濾波器帶內(nèi)群時(shí)延波動隨溫度的變化曲線
由圖6可知,MATLAB計(jì)算和ADS使用“group_delay”計(jì)算的結(jié)果偏差≤0.8 ns,表明兩種方法計(jì)算的結(jié)果基本吻合,均能正確計(jì)算BAW濾波器的群時(shí)延波動。
在ADS中分別使用“delay(S12)”和“group_delay”計(jì)算BAW濾波器群時(shí)延波動,其結(jié)果如圖7所示。
圖7 ADS中使用“group_delay”和“delay(S12)”計(jì)算的BAW濾波器帶內(nèi)群時(shí)延波動隨溫度的變化曲線
由圖7可知,在ADS中使用“delay(S12)”計(jì)算時(shí)結(jié)果出錯(cuò),這證實(shí)了相位跳變會導(dǎo)致計(jì)算的群時(shí)延波動偏大。
1) 本文給出了在ADS、MATLAB中計(jì)算BAW濾波器群時(shí)延波動的兩種方法。將一組測得的BAW濾波器的S2P文件分別導(dǎo)入ADS、MATLAB中進(jìn)行計(jì)算,均能準(zhǔn)確計(jì)算出BAW濾波器的群時(shí)延波動。
2) 在ADS中使用“delay(S12)”計(jì)算群時(shí)延波動時(shí),因相位存在-180°~180°的跳變,當(dāng)相位延時(shí)超過180°時(shí)會導(dǎo)致計(jì)算結(jié)果出錯(cuò),因此需要使用增加unwrap函數(shù)的“group_delay”進(jìn)行計(jì)算,以避免因相位跳變而導(dǎo)致的計(jì)算出錯(cuò)。