FIR数字滤波器设计与使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

课程名称:数字信号处理指导老师:刘英成绩:_________________ 实验名称:FIR数字滤波器设计与使用同组学生姓名:__________

一、实验目的和要求

设计和应用FIR低通滤波器。掌握FIR数字滤波器的窗函数设计法,了解设计参数(窗型、窗长)的影响。

二、实验内容和步骤

编写MATLAB程序,完成以下工作。

2-1 设计两个FIR低通滤波器,截止频率ωC=0.5π。

(1)用矩形窗,窗长N=41。得出第一个滤波器的单位抽样响应序列h1(n)。记下h1(n)的各个抽样值,显示h1(n)的图形(用stem(.))。求出该滤波器的频率响应(的N个

抽样)H1(k),显示|H1(k)|的图形(用plot(.))。

(2)用汉明窗,窗长N=41。得出第二个滤波器的单位抽样响应序列h2(n)。记下h2(n)的各个抽样值,显示h2(n)的图形。求出滤波器的频率响应H2(k),显示|H2(k)|的图形。

(3)由图形,比较h1(n)与h2(n)的差异,|H1(k)|与|H2(k)|的差异。

2-2 产生长度为200点、均值为零的随机信号序列x(n)(用rand(1,200)-0.5)。显示x(n)。求出并显示其幅度谱|X(k)|,观察特征。

2-3 滤波

(1)将x(n)作为输入,经过第一个滤波器后的输出序列记为y1(n),其幅度谱记为|Y1(k)|。

显示|X(k)|与|Y1(k)|,讨论滤波前后信号的频谱特征。

(2)将x(n)作为输入,经过第二个滤波器后的输出序列记为y2(n),其幅度谱记为|Y2(k)|。

比较|Y1(k)|与|Y2(k)|的图形,讨论不同的窗函数设计出的滤波器的滤波效果。

2-4 设计第三个FIR低通滤波器,截止频率ωC=0.5π。用矩形窗,窗长N=127。用它对x(n)进行滤波。显示输出信号y3(n)的幅度谱|Y3(k)|,并与|Y1(k)|比较,讨论不同的窗长设计出的滤波器的滤波效果。

三、主要仪器设备

自行编程。

四、操作方法和实验步骤

(参见“二、实验内容和步骤”)

五、实验数据记录和处理

5.1 列出MATLAB程序清单,加注释。

%% 2-1

clear; close all; clc

% the length of window = 41

wc = 0.5*pi;

N = 41;

n = 0:N-1;

h1 = fir1(N-1,wc/pi,boxcar(N));

[H1,w1] = freqz(h1);

h2 = fir1(N-1,wc/pi);

[H2,w2] = freqz(h2);

figure;

subplot(1,2,1);

stem(n,h1,'filled');grid on;

xlabel('n','FontSize',14);ylabel('h1(n)','FontSize',14);

title('矩形窗得到的低通滤波器h1(n)的时域','FontSize',14);

subplot(1,2,2);

stem(n,h2,'filled');grid on;axis([0 30 -0.2 0.6]);

xlabel('n','FontSize',14);ylabel('h2(n)','FontSize',14);

title('矩形窗得到的低通滤波器h2(n)的时域','FontSize',14);

figure;

subplot(1,2,1);

plot(w1/pi,abs(H1));grid on;

xlabel('\omega /\pi','FontSize',14);ylabel('|H1(k)|','FontSize',14);

title('矩形窗得到的低通滤波器h1(n)的幅度谱','FontSize',14);

subplot(1,2,2);

plot(w2/pi,abs(H2));grid on;

xlabel('\omega /\pi','FontSize',14);ylabel('|H2(k)|','FontSize',14);

title('矩形窗得到的低通滤波器h2(n)的幅度谱','FontSize',14);

figure;

subplot(1,2,1);

plot(w1/pi,20*log10(abs(H1)));grid on;axis([0 1 -100 20]);

xlabel('\omega

/\pi','FontSize',14);ylabel('20lg|H1(k)|/dB','FontSize',14);

title(' h1(n)的幅度谱','FontSize',14);

subplot(1,2,2);

plot(w2/pi,20*log10(abs(H2)));grid on;

xlabel('\omega

/\pi','FontSize',14);ylabel('20lg|H2(k)|/dB','FontSize',14);

title(' h2(n)的幅度谱','FontSize',14);

pause;

%% 2-2

N = 200;

n = 0:N-1;

x = rand(1,N)-0.5;

[X,w] = freqz(x);

figure;

subplot(2,1,1);

stem(n,x,'filled');grid on;

xlabel('n','FontSize',14);ylabel('x(n)','FontSize',14);

title('随机序列x(n)的时域','FontSize',14);

subplot(2,1,2);

plot(w/pi,abs(X));grid on;

xlabel('\omega /\pi','FontSize',14);ylabel('|X(k)|','FontSize',14); title('随机序列x(n)的幅度谱','FontSize',14);

pause;

%% 2-3

y1 = filter(h1,1,x);

[Y1,w1] = freqz(y1);

y2 = filter(h2,1,x);

[Y2,w2] = freqz(y2);

figure;

subplot(2,1,1)

plot(w1/pi,abs(Y1));grid on;axis([0 1 0 12]);set(gca,'ytick',0:4:12); xlabel('\omega /\pi','FontSize',14);ylabel('|Y1(k)|','FontSize',14); title('输出信号y1(n)的幅度谱','FontSize',14);

subplot(2,1,2);

plot(w2/pi,abs(Y2));grid on;axis([0 1 0 12]);set(gca,'ytick',0:4:12); xlabel('\omega /\pi','FontSize',14);ylabel('|Y2(k)|','FontSize',14); title('输出信号y2(n)的幅度谱','FontSize',14);

pause;

相关文档
最新文档