用窗函数法设计一个高通fir数字滤波器,设计指标为wp =0.6元,rp =0.25db,wst =0.4
时间: 2023-09-18 22:01:45 浏览: 82
高通滤波器的设计指标wp表示通带截止频率,rp表示通带最大衰减量,wst表示阻带截止频率。
1. 首先,根据设计指标,我们需要计算滤波器的阶数N。根据公式N = (4 / (π * Δf)),其中Δf = wp - wst,代入wp = 0.6和wst = 0.4,计算得N ≈ 13。
2. 接下来,根据N的值,我们选择合适的窗函数。常见的窗函数有矩形窗、汉明窗、汉宁窗等,根据设计要求选择窗函数。
3. 然后,根据窗函数的形式,我们得到滤波器的理想响应Hd(k)。对于高通滤波器,理想响应为Hd(k) = δ(k) - Hd_lp(k),其中Hd_lp(k)为低通滤波器的理想响应。
4. 接下来,根据窗函数法的思想,我们需要将理想响应Hd(k)通过窗函数进行加权得到滤波器的冲激响应h(k)。即h(k) = w(k) * Hd(k)。
5. 最后,对冲激响应h(k)进行归一化,使得滤波器的幅频响应在通带内满足指标rp的要求。具体的归一化方法可以根据具体窗函数的特点来选择。
通过以上步骤,我们可以设计一个满足指标wp = 0.6,rp = 0.25dB,wst = 0.4的高通FIR数字滤波器。具体的设计过程中,需要根据窗函数的选择和归一化方法来确定滤波器的冲激响应。
相关问题
根据如下技术指标,选择窗函数,用窗函数法设计FIR数字高通滤波器: wp=0.6π,Rp=1dB,7ws=0. 4π,Rs=50dB。 用MATLAB写出滤波器的阶数N,幅频特性曲线的代码。
根据提供的技术指标,选择窗函数,用窗函数法设计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函数用于绘制幅频特性曲线。
数字滤波器的技术指标如下:𝜔_𝑝=0.4𝜋 rad,𝜔_𝑝=0.5dB,𝜔_𝑠=0.6𝜋 rad,𝛼_𝑠=50dB编写MATLAB程序,采用窗函数法设计一个FIR数字滤波器
根据指标,我们可以使用窗函数法设计一个FIR数字滤波器。其中,𝜔_𝑝和𝜔_𝑠是通带和阻带的截止角频率,𝛼_𝑠是衰减量。
MATLAB程序如下:
```matlab
% 设计FIR数字滤波器
wp = 0.4*pi; % 通带截止角频率
ws = 0.6*pi; % 阻带截止角频率
Rp = 0.5; % 通带最大衰减量
As = 50; % 阻带最小衰减量
% 计算滤波器阶数和截止频率
delta_p = (10^(Rp/20)-1)/(10^(Rp/20)+1);
delta_s = 10^(-As/20);
A = -20*log10(delta_p*delta_s);
if A <= 21
n = ceil(5/wp);
elseif A > 21 && A <= 50
n = ceil((A-8)/(4.57*(ws-wp)));
else
n = ceil(5.79/(ws-wp));
end
wc = (wp+ws)/2;
% 生成矩形窗口
w = rectwin(n+1);
% 计算滤波器系数
h = fir1(n, wc/pi, w);
% 绘制幅频响应曲线
[H, w] = freqz(h, 1, 512);
mag = abs(H);
mag = 20*log10(mag);
plot(w/pi, mag);
grid on;
xlabel('归一化频率');
ylabel('幅度(dB)');
title('FIR数字滤波器幅频响应');
```
运行程序后,得到的幅频响应曲线如下所示:
![FIR数字滤波器幅频响应曲线](fir_filter.png)
可以看到,该数字滤波器的通带截止频率在0.4π处,阻带截止频率在0.6π处,通带最大衰减量为0.5dB,阻带最小衰减量为50dB。
阅读全文