根据如下技术指标,选择窗函数,用窗函数法设计FIR数字高通滤波器: wp=0.6π,Rp=1dB,7ws=0. 4π,Rs=50dB。 用MATLAB写出滤波器的阶数N,幅频特性曲线的代码。
时间: 2024-06-13 09:08:31 浏览: 129
根据提供的技术指标,选择窗函数,用窗函数法设计FIR数字高通滤波器的步骤如下:
1. 确定滤波器的过渡带宽和阻带衰减要求:
wp=0.6π,Rp=1dB,ws=0.4π,Rs=50dB。
2. 选择合适窗函数的类型并进行估计窗函数的宽度N:
根据经验,可以选择Kaiser窗函数,其参数beta可以通过下面的公式计算得到:
beta = 0.1102 * (Rs - 8.7)
delta_w = ws - wp
A = -20 * log10(Rp)
N = ceil((A - 8) / (2.285 * delta_w))
beta = 0.5842 * (pow(A, 0.4) - 1) + 0.07886 * A
其中,delta_w为过渡带宽,A为通带最大衰减,N为滤波器阶数,beta为Kaiser窗函数的参数。
3. 根据所求的理想滤波器求出单位脉冲响应hd(n):
根据高通滤波器的理想响应,可以得到其频率响应为:
H(e^jw) = 1 - H_l(e^jw)
其中,H_l(e^jw)为低通滤波器的理想响应,可以通过下面的公式计算得到:
H_l(e^jw) = (sin(wc*(N-n)))/(pi*(N-n))
其中,wc为截止频率,N为滤波器阶数,n为滤波器的系数。
将H(e^jw)代入逆离散傅里叶变换公式中,可以得到单位脉冲响应hd(n)。
4. 根据求得的hd(n)求出其频率响应:
利用MATLAB中的fft函数对hd(n)进行傅里叶变换,得到其频率响应。
5. 根据频率响应验证是否满足技术指标:
利用MATLAB中的freqz函数对频率响应进行分析,验证是否满足技术指标。
根据上述步骤,可以得到MATLAB代码如下:
```matlab
% 窗函数法设计FIR数字高通滤波器
wp = 0.6*pi;
Rp = 1;
ws = 0.4*pi;
Rs = 50;
delta_w = ws - wp;
A = -20 * log10(Rp);
N = ceil((A - 8) / (2.285 * delta_w));
beta = 0.5842 * (pow(A, 0.4) - 1) + 0.07886 * A;
wc = (wp + ws) / 2;
n = 0:N;
hd = sin(wc*(N-n))./(pi*(N-n));
w = 0:0.01:pi;
H = freqz(hd, 1, w);
plot(w/pi, abs(H));
```
其中,freqz函数用于计算滤波器的频率响应,plot函数用于绘制幅频特性曲线。
阅读全文