Matlab分段传递函数
我试图在matlab中建立滤波器的分段传递函数,以获得其脉冲响应。我的代码如下:Matlab分段传递函数,matlab,Matlab,我试图在matlab中建立滤波器的分段传递函数,以获得其脉冲响应。我的代码如下: function H = H(w) H = zeros(size(w)); % Preallocating enough memory for y nd = 0; region1 = (abs(w)<(pi/4)) & (abs(w)>(pi/8)) ; % First interval H(region1) = exp((-(w(region1))*1i*nd)); region2 = (
function H = H(w)
H = zeros(size(w)); % Preallocating enough memory for y
nd = 0;
region1 = (abs(w)<(pi/4)) & (abs(w)>(pi/8)) ; % First interval
H(region1) = exp((-(w(region1))*1i*nd));
region2 = (abs(w)<(7*pi/8)) & (abs(w)>(5*pi/8)); % Second interval
H(region2) = exp((-0.5*(w(region1))*1i*nd));
region3 = ~(abs(w)<(pi/4)) & (abs(w)>(pi/8)) & ~(abs(w)<(7*pi/8)) & (abs(w)>(5*pi/8)) ; % Third interval
H(region3) = 0;
我这样做是正确的还是有更简单的方法?我认为问题在于:
H(region2) = exp((-0.5*(w(region1))*1i*nd));
应该是:
H(region2) = exp((-0.5*(w(region2))*1i*nd));
其中,region1
被更正为region2
而且,nd
始终为0
你会问,你的方法是否正确,只要你意识到你指定的点之间的频率响应可能遍布整个地方,或者不取决于转换,我就觉得足够体面了。这修正了我的错误,我现在如何绘制H的脉冲响应?脉冲函数采用sys参数。如何将我的H转换为sys?
H(region2) = exp((-0.5*(w(region2))*1i*nd));