編程計算N階耦合矩陣,基本都能算對,但是對于某些特殊參數會出現R1!=RN,大家又出現類似的情況么?
希望高手幫忙計算以下參數,看看是否能算出來。
參數為
ftz=[-1.2i -1.4i 1.4i 1.2i -1.05i 1.05i];傳輸零點
RL=20;%帶內回波
N = 14; %濾波器階數
我計算結果R1=0.6212,RN=0.9567.
理論結果為R1=RN=0.9567
自己頂一下,有哪位高人幫忙算一下,感謝!
希望大家能幫幫忙,不清楚程序問題,還是matlab函數使用上的問題!
matlab里自帶的留數函數residue在高階計算時極點是不準確的(當兩個極點很近時)。這導致了本不該出現的重極點出現了。綜合出來的留數也就不對了。我自己編輯個程序計算留數,問題已解決。
達人啊!
你這是做濾波器么,還用到留數了,高深莫測啊,佩服佩服!
樓主的留數計算程序能否分享一下?
是啊,把留數代碼分享下貼出來吧,
其實matlab留數計算程序還是很好的,只是精度不是太高,它的精度可以通過改參數來實現,具體方法:
在residu.m中,修改參數
tol = 1E-5; %0.001; % Repeated-root tolerance; adjust as needed.
將tol由原來的0.001改為1E-5,則計算精度就又高了
呵呵,這樣改的效果并不怎么好的
我用的matlab自帶的程序計算出來的R1=RN=0.9567
我覺得樓主程序有問題的可能性很大,因為精度問題不會讓R1和RN偏差那么大