Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不使用内置函数的情况下在MATLAB中设计高通滤波器?_Matlab_Signal Processing - Fatal编程技术网

如何在不使用内置函数的情况下在MATLAB中设计高通滤波器?

如何在不使用内置函数的情况下在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,然后使用上面的方程

我只是不知道如何绘制高通滤波器的频率响应(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
,然后使用上面的方程找到高通频率响应,然后如果你有一个带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,…
确定。