关于双工器综合编程时候遇到的问题
05-08
各位双工器领域的前辈,我刚刚做好滤波器的综合,在此基础上在实践双工器的综合,参考的论文就是2006年G. Macchiarella的大作,中间遇到了几个问题,希望能获得你们的建议和指导:
1. 我选用的是空腔滤波器结构,做双工器的时候需要在公共输出端引入一个谐振腔,文中说它的作用是引入一个额外的传输零点,除此之外这个谐振腔还有什么作用吗?和传统的直接连接的双工器相比,这个做法在两个信道频率间距足够大时是不是有些多余呢?
2. 在编程的时候,利用带通边界-j和j处的反射系数等于-20dB这个条件去计算|p0r|^2 和|p0t|^2这两个系数时,我居然得到了一个正值和一个负值。这个应该是不对的吧。
这部分程序如下:
y = polyval(Nj_d,j); % STEP3 N(j) R
y1 = polyval(Nj_d,-j); % N(-j) R
pt = polyval(Ptj,j); % Ptj(j) R
pt1 = polyval(Ptj,-j); % Ptj(-j) R
pr = polyval(Prj,j); % Prj(j) R
pr1 = polyval(Prj,-j); % Prj(-j) R
a = (abs(y))^2; % |N(j)|^2 R
a1 = (abs(y1))^2; % |N(-j)|^2 R
b = (abs(pr))^2; % |Prj(j)|^2 R
b1 = (abs(pr1))^2; % |Prj(-j)|^2 R
c = (abs(pt))^2; % |Ptj(j)|^2 R
c1 = (abs(pt1))^2; % |Ptj(-j)|^2 R
d = 10^(RLTX/10); % Return loss of TX 的倒数RL -20dB
d1 = 10^(RL/10); % Return loss of RX 的倒数RL -20dB
A = a*d -a;
B = a1*d1 -a1;
g = -(B*c - A*c1)/(b*c1 - b1*c); % g = |p0r|^2 R
h = (B*b - A*b1)/(b*c1 - b1*c); % h = |p0t|^2 R
原来的公式是: |N(j)|^2 / (|N(j)|^2 + |p0r|^2 * |Prj(j)|^2) + |p0t|^2 * |Ptj(j)|^2) = 10^(-RLTX/10)
|N(-j)|^2 / (|N(-j)|^2 + |p0r|^2 * |Prj(-j)|^2) + |p0t|^2 * |Ptj(-j)|^2) = 10^(-RLRX/10)
前面各种多项式我自己可以验证,但是这一步自己检查不出来了,不觉得模平方还能算出个负值来。
但是这一步如果算错了,下面的 D(s)*conj(D(-s))的表达式也会跟着错下去……,大家有什么好的建议吗?
3.假设这段程序没有问题,下面就遇到了收敛的算法,我需要用递归算法去比较新求出来的S和上一次的S值。因为初值并不属于递归运算,而是从滤波器的反射零点取出来的(RX和TX的虚部都有正有负,新的值虚部RX全为负,TX全为正),那么这个比较第一次应该是谁和谁比呢?
到现在就是这几个地方,希望获得大神的指点,谢谢!
1. 我选用的是空腔滤波器结构,做双工器的时候需要在公共输出端引入一个谐振腔,文中说它的作用是引入一个额外的传输零点,除此之外这个谐振腔还有什么作用吗?和传统的直接连接的双工器相比,这个做法在两个信道频率间距足够大时是不是有些多余呢?
2. 在编程的时候,利用带通边界-j和j处的反射系数等于-20dB这个条件去计算|p0r|^2 和|p0t|^2这两个系数时,我居然得到了一个正值和一个负值。这个应该是不对的吧。
这部分程序如下:
y = polyval(Nj_d,j); % STEP3 N(j) R
y1 = polyval(Nj_d,-j); % N(-j) R
pt = polyval(Ptj,j); % Ptj(j) R
pt1 = polyval(Ptj,-j); % Ptj(-j) R
pr = polyval(Prj,j); % Prj(j) R
pr1 = polyval(Prj,-j); % Prj(-j) R
a = (abs(y))^2; % |N(j)|^2 R
a1 = (abs(y1))^2; % |N(-j)|^2 R
b = (abs(pr))^2; % |Prj(j)|^2 R
b1 = (abs(pr1))^2; % |Prj(-j)|^2 R
c = (abs(pt))^2; % |Ptj(j)|^2 R
c1 = (abs(pt1))^2; % |Ptj(-j)|^2 R
d = 10^(RLTX/10); % Return loss of TX 的倒数RL -20dB
d1 = 10^(RL/10); % Return loss of RX 的倒数RL -20dB
A = a*d -a;
B = a1*d1 -a1;
g = -(B*c - A*c1)/(b*c1 - b1*c); % g = |p0r|^2 R
h = (B*b - A*b1)/(b*c1 - b1*c); % h = |p0t|^2 R
原来的公式是: |N(j)|^2 / (|N(j)|^2 + |p0r|^2 * |Prj(j)|^2) + |p0t|^2 * |Ptj(j)|^2) = 10^(-RLTX/10)
|N(-j)|^2 / (|N(-j)|^2 + |p0r|^2 * |Prj(-j)|^2) + |p0t|^2 * |Ptj(-j)|^2) = 10^(-RLRX/10)
前面各种多项式我自己可以验证,但是这一步自己检查不出来了,不觉得模平方还能算出个负值来。
但是这一步如果算错了,下面的 D(s)*conj(D(-s))的表达式也会跟着错下去……,大家有什么好的建议吗?
3.假设这段程序没有问题,下面就遇到了收敛的算法,我需要用递归算法去比较新求出来的S和上一次的S值。因为初值并不属于递归运算,而是从滤波器的反射零点取出来的(RX和TX的虚部都有正有负,新的值虚部RX全为负,TX全为正),那么这个比较第一次应该是谁和谁比呢?
到现在就是这几个地方,希望获得大神的指点,谢谢!
这个问题我解决了,把做的经验和大家分享一下。
1、频率间距足够大时,不需要这样弄,直接连在一起PIM并不是很大。另外这个方法本身就不适合信道中心频率相差过大的情况,误差不少,有时候效率不高。
2、出现负值表示没有考虑到幺正性,本段计算程序不算错。
3、收敛这里的取值可以比较随意,前面编对了话,后面就不难了。
相关文章:
- 请问哪位做过400M的双工器和AGC,帮帮忙!(05-08)
- 一个双工器的问题!(05-08)
- 各位高手如何解决腔体滤波器或双工器的温度漂移(05-08)
- 有没有双工器仿真的例子?(05-08)
- 请教:射频双工器、限幅器和低噪声放大器分别包含哪些参数?(05-08)
- 请问国内哪家公司做双工器比较牛?(05-08)
射频专业培训教程推荐