[討論] continuous-discrete轉換 impulse invariance "impinvar"已回收
請問各位懂得訊號處理的前輩們
我現在做了一個類比濾波器和一個數位濾波器
想看他們響應的總合
所以必須把analog filter轉到discrete time domain
這樣把兩者的響應加總才合理
也就是要把analog filter的impulse response取sampling讓他產生aliasing
但是我發現了一個奇怪的現象 想很久都不懂
code如下
....................
clear all
clc
fp = 18.125e6; % passband edge
fstop = 60e6; % stopband edge
fs = 640e6; % sampling freq.
Rp = 0.05; % passband maxmum attenuation
Rs = 9; % stopband minimum attenuation
[n,w] = buttord(fp*2*pi,fstop*2*pi,Rp,Rs,'s');
[b,a] = butter(n,w,'s');
H = freqs(b,a, [0:2^7-1]/(2^7)*(fs/2)*(2*pi) );
M = 20*log10(abs(H)/max(abs(H)));
[bz,az] = impinvar(b,a,fs);
[Hz,wz] = freqz(bz,az,2048,fs);
Mz = 20*log10((abs(Hz))/max(abs(Hz)));
plot([0:2^7-1]/(2^7)*(fs/2),M,wz,Mz)
legend('s-domain','z-domain')
......................
圖型出來的結果竟然是有aliasing以後的濾波器performance較好
(stopband rejection較多)
但是這個現象發生在特定參數下 比如說把Rp改成0.5或0.01結果都正常
可不可以請教各位前輩這是哪裡出錯了?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.150.151