如何在不使用内置函数的情况下在MATLAB中设计高通滤波器?
我只是不知道如何绘制高通滤波器的频率响应(H)?绘制频率响应后,我可以通过取(H)的ifft得到b系数。如何在不使用内置函数的情况下在MATLAB中设计高通滤波器?,matlab,signal-processing,Matlab,Signal Processing,我只是不知道如何绘制高通滤波器的频率响应(H)?绘制频率响应后,我可以通过取(H)的ifft得到b系数。 是的,对于一个截止频率为pi/2的低通滤波器:频率响应代码将是H=exp(-1*j*w*4)。*((0如果你有一个频率响应H\u lp(w)的低通滤波器,你可以通过从1中减去它的频率响应来找到相应的高通滤波器H\u hp(w) H_hp(w) = 1 - H_lp(w) 因此,如果你想让高通滤波器从K传递到pi,那么设计一个低通滤波器,你已经知道怎么做了,它从0传递到K,然后使用上面的方程
是的,对于一个截止频率为pi/2的低通滤波器:频率响应代码将是
H=exp(-1*j*w*4)。*((0如果你有一个频率响应H\u lp(w)
的低通滤波器,你可以通过从1中减去它的频率响应来找到相应的高通滤波器H\u hp(w)
H_hp(w) = 1 - H_lp(w)
因此,如果你想让高通滤波器从K
传递到pi
,那么设计一个低通滤波器,你已经知道怎么做了,它从0
传递到K
,然后使用上面的方程找到高通频率响应,然后如果你有一个带f的低通滤波器,则取H\u hp频率响应H_lp(w)
,您可以从1中减去相应的高通滤波器H_hp(w)
H_hp(w) = 1 - H_lp(w)
因此,如果你想让高通滤波器从K
传递到pi
,那么设计一个低通滤波器,你已经知道怎么做了,它从0
传递到K
,然后使用上面的方程来找到高通频率响应,然后取H\u hp的IFFT,如果你有脉冲响应,b[n]
,对于低通滤波器,您可以通过混合奈奎斯特频率将其转换为等效的高通滤波器。您可以通过与复指数相乘来实现这一点:exp(j*pi*n)
。然而,这很容易,因为这只是序列+1,-1,+1,-1,
。因此,只需将b[n]
的每一个样本乘以-1。如果你有脉冲响应,b[n]
,对于低通滤波器,您可以通过混合奈奎斯特频率将其转换为等效的高通滤波器。您可以通过与复指数相乘来实现这一点:exp(j*pi*n)
。然而,这很容易,因为这只是序列+1,-1,+1,-1,
。因此,只需将b[n]的每一个样本相乘
by-1.有点。这会给你一个互补的反应,可能是你想要的,也可能不是你想要的。看我的答案,其中包括将低通原型翻译成奈奎斯特。有点。这会给你一个互补的反应,这可能是你想要的,也可能不是你想要的。看我的答案,其中包括翻译低通原型-将原型传递给Nyquist.+1,这是迄今为止最简单的方法。它也适用于IIR滤波器-将分子系数乘以+1,-1,+1,
,分母系数乘以-1,+1,-1,
+1,这是迄今为止最简单的方法。它也适用于IIR滤波器-将分子系数乘以+1,-1,+1,…
和分母系数由-1,+1,-1,…
确定。