用矩形窗设计一个FIR线性相位数字低通滤波器,已知Wc=0.5pi,N=21。求出h(n),并画出20lg|H(ejw)曲线|,使用matlab程序
时间: 2023-09-07 17:04:40 浏览: 513
### 回答1:
首先,我们需要确定矩形窗的长度为N=21,因为题目中已经给出了这个参数。
其次,我们需要计算出滤波器的截止频率Wc=0.5pi。由于线性相位的限制,我们可以将滤波器的频率响应表示为:
H(e^jw)=A(e^jw)·e^-jw(N-1)/2
其中A(e^jw)表示滤波器的幅度响应,e^-jw(N-1)/2表示相位补偿项。
根据矩形窗的定义,我们有:
h(n)=sin(Wc(n-(N-1)/2))/(π(n-(N-1)/2))
然后,我们可以使用MATLAB编写程序来计算h(n)和绘制20lg|H(e^jw)|曲线:
```
N = 21;
Wc = 0.5*pi;
n = 0:N-1;
h = sin(Wc*(n-(N-1)/2))./(pi*(n-(N-1)/2));
w = 0:0.01:pi;
H = freqz(h,1,w);
plot(w/pi, 20*log10(abs(H)));
xlabel('Normalized frequency (\times\pi rad/sample)');
ylabel('Magnitude (dB)');
title('Magnitude response of FIR lowpass filter');
```
这段程序会生成一个绘制了20lg|H(e^jw)|曲线的图像。
### 回答2:
要设计一个FIR线性相位数字低通滤波器,我们可以使用矩形窗方法。已知截止频率Wc为0.5pi,滤波器阶数N为21。我们需要求解hn的值,并绘制20lg|H(ejw)|曲线。
首先,根据矩形窗的定义,hn的表达式为:
hn = (sin(Wc(n-(N-1)/2))/π(n-(N-1)/2)) * rect((n-(N-1)/2)/N)
其中,rect表示矩形函数。根据上述式子,我们可以使用matlab程序计算hn的值。
```matlab
N = 21;
Wc = 0.5*pi;
hn = zeros(1, N);
for n = 1:N
hn(n) = (sin(Wc*(n-(N-1)/2))/(pi*(n-(N-1)/2))) * rect((n-(N-1)/2)/N);
end
```
接下来,我们可以使用matlab程序绘制20lg|H(ejw)|曲线。根据滤波器的频率响应定义,可以使用fft函数计算H(ejw),然后将其转换为对数域。
```matlab
H = fft(hn);
w = linspace(0,2*pi,1000);
H_ejw = abs(H) * exp(1i * w' * (-(N-1)/2));
H_log = 20*log10(H_ejw);
plot(w,H_log);
xlabel('Frequency (rad/sample)');
ylabel('20log|H(ejw)| (dB)');
```
运行这段代码,我们将得到20lg|H(ejw)|曲线。
### 回答3:
要设计一个FIR线性相位数字低通滤波器,我们可以使用矩形窗方法。
首先根据给定的参数Wc=0.5pi和N=21,可以计算出滤波器的通带边缘频率为0.5pi,即Wc。根据通带边缘频率的计算公式得到f=0.25/T,其中T为采样周期。假设采样频率为Fs,则T=1/Fs。假设Fs=1000Hz,则T=0.001s。
接下来,根据通带边缘频率和滤波器的长度N,可以计算出滤波器的理想频率响应Hd(ejw)。对于低通滤波器来说,Hd(ejw)在[-Wc, Wc]区间内等于1,其余区间等于0。
然后,根据理想频率响应Hd(ejw)和窗函数,可以计算出滤波器的时域系数h(n)。在矩形窗方法中,滤波器的时域系数等于理想频率响应Hd(ejw)与窗函数的卷积。
最后,使用matlab程序可以绘制出20lg|H(ejw)|的曲线。根据滤波器的时域系数h(n),使用fft函数可以计算出滤波器的频域响应H(ejw),然后借助20lg函数计算出20lg|H(ejw)|的值。再使用plot函数绘制出曲线。
综上所述,根据给定的参数Wc=0.5pi和N=21,可以求出FIR线性相位数字低通滤波器的时域系数h(n)和20lg|H(ejw)|曲线。使用matlab程序可以实现这个过程。
阅读全文