用窗函数法设计一个高通fir数字滤波器,设计指标为wp =0.6元,rp =0.25db,wst =0.4
时间: 2023-09-18 12:01:45 浏览: 48
高通滤波器的设计指标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数字滤波器。具体的设计过程中,需要根据窗函数的选择和归一化方法来确定滤波器的冲激响应。
相关问题
数字滤波器的技术指标如下:𝜔_𝑝=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。
用窗函数法设计一个满足下列指标的线性相位低通FIR滤波器用matlab:Wp=0.2π,Ws=0.3π,Rp=0.25dB,Rp=50dB
好的,下面是用窗函数法设计一个满足下列指标的线性相位低通FIR滤波器的MATLAB代码:
```matlab
% 指定参数
Wp = 0.2*pi; % 通带截止频率
Ws = 0.3*pi; % 阻带截止频率
Rp = 0.25; % 通带最大衰减
Rs = 50; % 阻带最小衰减
% 计算滤波器阶数和截止频率
delta_p = (10^(Rp/20)-1)/(10^(Rp/20)+1);
delta_s = 10^(-Rs/20);
A = -20*log10(delta_s);
if A>50
N = ceil((A-8)/(2.285*(Ws-Wp)));
else
N = ceil((0.922*log(1/delta_s))/(Ws-Wp));
end
fc = (Ws+Wp)/2;
% 计算窗函数
w = hamming(N+1).';
% 计算理想低通滤波器的单位冲激响应
h_ideal = (fc/pi)*sinc(fc*(0:N)/pi);
% 计算窗函数法设计的滤波器的单位冲激响应
h = h_ideal.*w;
% 绘制滤波器幅频响应和相频响应
[H, w] = freqz(h,1,1024);
figure();
subplot(2,1,1);
plot(w/pi, 20*log10(abs(H)));
xlabel('\omega/\pi');
ylabel('幅度(dB)');
title('滤波器幅频响应');
grid on;
subplot(2,1,2);
plot(w/pi, unwrap(angle(H)));
xlabel('\omega/\pi');
ylabel('相位(rad)');
title('滤波器相频响应');
grid on;
```
其中,我们使用了汉明窗作为窗函数,使用sinc函数计算理想的低通滤波器单位冲激响应,最后绘制了滤波器的幅频响应和相频响应。您可以根据需要进行修改和调整。