数字信号处理课程设计

时间:2024.5.2

数字滤波器的设计及实现

摘要:通过MATLAB软件的信号处理工具箱中的滤波器设计各种IIR和FIR数字滤波器,并绘制滤波器的幅频特性、相频特性。通过观察滤波器的输入、输出信号的时域波形及其频谱,建立了数字滤波的概念。 关键词:MATLAB;IIR数字滤波器;FIR数字滤波器

(一)设计目的

1、熟悉IIR数字滤波器和FIR数字滤波器的设计原理和方法;

2、学会调用MATLAB信号处理工具箱中的滤波器设计函数设计各种IIR和FIR数字滤波器,学会根据滤波要求确定滤波器指标参数;

3、掌握用IIR和FIR数字滤波器的MATLAB实现方法,并能绘制滤波器的幅频特性、相频特性;

4、通过观察滤波器的输入、输出信号的时域波形及其频谱,建立数字滤波的概念。

(二)设计要求

用MATLAB软件设计IIR数字滤波器和FIR数字滤波器,并绘制滤波器的幅频特性、相频特性。

(三)设计原理

数字滤波器是将输入数字序列通过一定的运算后转变为输出数字序列的数字信号处理器。数字滤波器的输入、输出均为数字信号, 通过一定运算系改变输入信号所含频率成分的相对例或消除某些频率成分。与模拟滤波器相比, 数字滤波器的主要优点是:(1)精度和稳定性高; (2)系统函数容易改变, 因而灵活性高; (3)不存在阻抗匹配问题; ( 4)便于大规模集成; ( 5)可以实现多维滤波。它不仅能实现模拟处理的大部分功能, 而且还能完成模拟处理由于成本、可靠性等原因而无法具体实现的功能。

所谓抑制载波单频调制信号,就是两个正弦信号相乘,它有2个频率成分:和频fc+f0,差频fc-f0,这两个频率成分关于载波频率fc对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率fc对称的两根谱线。显然,当调制频率f0和(或)载波频率fc不同时,可以得到包含不同频率成分的单频调幅信号。

(四)设计内容

1、调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,观察st

的时域波形和幅频特性曲线;

根据题目的要求编写代码如下:

function st=mstg %产生信号序列st,并显示st的时域波形和频谱

%st=mstg返回三路调幅信号相加形成的混合信号,长度N=800

1

信号长度N为800

Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz,Tp为采样时间 t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

fc1=Fs/10; %第1路调幅信号载波频率fc1=1000Hz

fm1=fc1/10; %第1路调幅信号的调制信号频率fm1=100Hz fc2=Fs/20; %第2路调幅信号载波频率fc2=500Hz

fm2=fc2/10; %第2路调幅信号的调制信号频率fm2=50Hz fc3=Fs/40; %第3路调幅信号载波频率fc3=250Hz

fm3=fc3/10; %第3路调幅信号的调制信号频率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号

xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号

xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号

st=xt1+xt2+xt3; %三路信号相加,得到复合信号

fxt=fft(st,N); %计算信号st的频谱

%以下为绘图命令

subplot(2,1,1);

plot(t,st);grid;xlabel('t/s');ylabel('s(t)');

axis([0,Tp,min(st),max(st)]);title('(a)s(t)的波形')

subplot(2,1,2);

stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b)s(t)的频谱')

axis([0,Fs/8,0,1.2]);

xlabel('f/Hz');ylabel('幅度

数字信号处理课程设计

');

运行的波形如下:

图一三路调幅信号st的时域波形和幅频特性曲线

2

、 通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率;假定要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB,编程调用MATLAB滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线。

根据题目编写代码如下:

% 低通 巴特沃斯

clear;clc

Fs=10000; %采样频率

fp=280; %通带截止频率

fs=525; %阻带截止频率

rp=0.1; %通带最大衰减

rs=60; %阻带最小衰减

wp=2*fp/Fs;ws=2*fs/Fs; %计算数字滤波器的设计指标

[N,wc]=buttord(wp,ws,rp,rs); %计算数字滤波器的阶数和通带截止频率

[b,a]=butter(N,wc); %计算数字滤波器系统函数

w=0:0.01*pi:pi;

[h,w]=freqz(b,a,w); %计算数字滤波器的幅频响应

h=20*log10(abs(h)); %求频率的幅度值

%绘图程序

subplot(3,1,1);plot(w/pi,h);grid;axis([0,1,-700,40]);

xlabel('\omega/\pi');ylabel('幅度/dB');title('巴特沃斯低通滤波器的幅频特性曲线');

%带通 切比雪夫II

clear;clc

Fs=10000; fp1=400;fp2=600;fs1=300;fs2=750; rp=0.1;rs=60;

wp=[2*fp1/Fs,2*fp2/Fs];ws=[2*fs1/Fs,2*fs2/Fs]; %计算数字滤波器的设计指标

[N,wso]=cheb2ord(wp,ws,rp,rs); %计算数字滤波器的阶数和阻带截止频率

[b,a]=cheby2(N,rs,wso); %计算数字滤波器的系统函数

w=0:0.01*pi:pi;

[h,w]=freqz(b,a,w); %计算数字滤波器的幅频响应

h=20*log10(abs(h));

%绘图程序

subplot(3,1,2);plot(w/pi,h);grid;axis([0,1,-100,50]);

xlabel('\omega/\pi');ylabel('幅度/dB');title('切比雪夫II带通滤波器的幅频特性曲线'); %高通 切比雪夫I

3

Fs=10000;fp=800;fs=600; rp=0.1;rs=60;wp=2*fp/Fs;ws=2*fs/Fs;

[N,wpo]=cheb1ord(wp,ws,rp,rs); %计算数字滤波器的阶数和通带截止频率

[b,a]=cheby1(N,rp,wpo,'high'); %计算数字滤波器系统函数

w=0:0.01*pi:pi;

[h,w]=freqz(b,a,w); %计算数字滤波器的幅频响应

%绘图程序

subplot(3,1,3);plot(w/pi,h);grid;axis([0,1,-250,50]);

xlabel('\omega/\pi');ylabel('幅度/dB');title('切比雪夫I高通滤波器的幅频特性曲线

数字信号处理课程设计

');

运行波形如下:

图二

3、 用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的

调幅信号,并绘图显示滤波后信号的时域波形和频谱,观察分离效果。

根据题目编写代码如下:

%产生调幅信号(同内容1,这里省略)

%低通滤波器

fp=300;fs=320;

wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF指标(低通滤波器的通、阻带边界频)

[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp

[B,A]=ellip(N,rp,rs,wp); %调用ellip计算椭圆带通DF系统函数系数向量B和A

4

滤波器软件实现

y1=fft(y1t);

% 绘图部分

figure(2)

subplot(311)

[H,W]=freqz(B,A,800);

plot(W*Fs/2/pi,abs(H));

xlabel('Hz');

ylabel('H(w)');

title('低通滤波器');

axis([0,2000,0,1.2]);

grid;

figure(1)

subplot(4,2,3);

plot(t,y1t);

xlabel('t');

ylabel('y(t)');

title('分离出的250Hz的波形');

figure(1)

subplot(4,2,4);

stem(f,abs(y1)/max(abs(y1)),'.');

xlabel('Hz');

ylabel('|H|');

title('250Hz的频谱');

axis([0,1200,0,1]);

grid;

%带通滤波器

fpl=400;fpu=580;fsl=300;fsu=700;

wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;

[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp

[B,A]=ellip(N,rp,rs,wp); %调用ellip计算椭圆带通DF系统函数系数向量B和A

y2t=filter(B,A,st); %滤波器软件实现

y2=fft(y2t);

%绘图部分

figure(2)

subplot(312)

[H,W]=freqz(B,A,800);

plot(W*Fs/2/pi,abs(H));

xlabel('Hz');

ylabel('H(w)');

title('带通滤波器');

axis([0,2000,0,1.2]);

5

figure(1)

subplot(4,2,5);

plot(t,y2t);

xlabel('t');

ylabel('y(t)');

title('分离出的500Hz的波形');

figure(1)

subplot(4,2,6);

stem(f,abs(y2)/max(abs(y2)),'.'); xlabel('Hz');

ylabel('|H|');

title('频谱');

axis([0,1200,0,1]);

grid;

%高通滤波器

fp=800;fs=780;

wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF

[N,wp]=ellipord(wp,ws,rp,rs); %止频率wp

[B,A]=ellip(N,rp,rs,wp,'high'); %量B和A

y3t=filter(B,A,st); %y3=fft(y3t);

%绘图部分

figure(2)

subplot(313)

[H,W]=freqz(B,A,800);

plot(W*Fs/2/pi,abs(H));

xlabel('Hz');

ylabel('H(w)');

title('高通滤波器');

axis([0,2000,0,1.2]);

grid;

figure(1)

subplot(4,2,7);

plot(t,y3t);

xlabel('t');

ylabel('y(t)');

title('分离出的1000Hz的波形');

figure(1)

subplot(4,2,8);

stem(f,abs(y3)/max(abs(y3)),'.'); xlabel('Hz');

指标(低通滤波器的通、阻带边界频) 调用ellipord计算椭圆DF阶数N和通带截调用ellip计算椭圆带通DF系统函数系数向滤波器软件实现 6

title('频谱');

数字信号处理课程设计

axis([0,1200,0,1]); grid;

运行波形如下:

图三

(五)调试分析

由图一可见,三路信号时域混叠无法在时域进行分离,但频域是分离的。容易看出,这三路调幅信号的载波频率分别为250Hz、500Hz和1000Hz,因此可以通过设计合适的滤波器的方法在频域分离。

如图三中经过滤波器的方法在频移分离出了250Hz、500Hz和1000Hz的波形。如图三中在250Hz、500Hz和1000Hz的地方就有被分离出来的波形。

(六)心得体会

通过这次的课程设计使我进一步的熟悉了数字滤波器的原理和设计方法及实现方法,以及一些MATLAB的代码的意思和使用。也使我学会自己搜索资料的能力,为以后的学习打下基础。 参考文献:

[ 1] 任志刚.“数字信号处理”多媒体教学方法初探[J].电气电子教学学报,2006,28(6):102-104。

[ 2] 刘大年,史旺旺,孙贵根,等.“数字信号处理”课程的形象化教学方法探索[ J].电气电子报,2006, 28(4):104-108。

[ 3] 曾孟雄,吴海华.基于LabV IEW 平台的虚拟滤波器设计[J].三峡大学学报:自然科版,2003,25(2):53- 156。

[ 4] 杨乐平,李海涛,赵勇,等.LabV IEW 高级程序设计[M].北京:清华大学出版社,2003。

[ 5] 唐建锋.MATLAB在数字滤波器设计教学中的应用研究[J].衡阳师范学院学报,2005,26(3):164- 166。

7


第二篇:课程设计之数字信号处理


课程设计

————张前杰

Wp=0.2*pi;Ws=0.05*pi;Ap=3;As=48; Wp=tan(Wp/2);Ws=tan(Ws/2);

[N,wn]=buttord(Wp,Ws,Ap,As,'s'); fprintf('滤波器阶数N=%.0f\n',N);

[b,a]=butter(N,1,'s');

[numa,dena]=lp2hp(b,a,Wp);

[numd,dend]=bilinear(numa,dena,0.5); disp('分子系数b'); fprintf('%.4e ',numd); fprintf('\n');

disp('分母系数a'); fprintf('%.4e',dend); fprintf('\n');

w=linspace(0,pi,1024); h=freqz(numd,dend,w); plot(w/pi,20*log10(abs(h))); axis([0,1,-50,0]);grid; xlabel('归一化频率'); ylabel('幅度/dB');

课程设计之数字信号处理

课程设计之数字信号处理

更多相关推荐:
基于MATLAB的数字信号处理的课程设计报告

一课程设计综合实验的目的与要求目的与要求1掌握数字信号处理基础课程的基本理论2掌握应用MATLAB进行数字信号处理的程序设计实验内容已知低通数字滤波器的性能指标如下p026Rp075dBs041As50dB要求...

数字信号处理课程设计报告(样本)

福州大学至诚学院Matlab实践报告专业电子科学与技术班级08级1班姓名黄来奋学号210891205指导老师周老师20xx年5月28日摘要随着计算机和信息科学的飞速发展信号处理逐渐发展成为一门独立的学科成为信息...

数字信号处理课程设计报告

课程设计报告课程名称课题名称专业通信工程班级学号姓名指导教师20xx年12月25日湖南工程学院课程设计任务书课程名称数字信号处理课题数字滤波器设计及滤波专业班级学生姓名学号指导老师审批任务书下达日期20xx年1...

数字信号处理综合设计报告

江南大学物联网工程学院课题数字信号处理综合设计报告设计题目信号处理系统综合设计专业通信工程班级通信0902姓名吴磊学号07020xx225指导教师陈文驰张建平20xx年6月29日一设计概述目的和要求数字信号处理...

数字信号处理课程设计报告

数字信号处理课程设计报告班级电信0803班学号成绩设计一正余弦信号的谱分析一设计目的1用DFT实现对正余弦信号的谱分析2观察DFT长度和窗函数长度对频谱的影响3对DFT进行谱分析中的误差现象获得感性认识二设计原...

数字信号处理课程设计报告

第一章绪论11设计的目的及意义本次课程设计的目的是利用MATLAB对语音信号进行数字信号处理和分析要求学生采集语音信号后在MATLAB软件平台进行频谱分析并对所采集的语音信号加入干扰噪声对加入噪声的信号进行频谱...

数字信号处理课程设计 报告

淮阴工学院数字信号处理课程设计报告课题名称基于MATLAB的语音信号分析和处理低通部分姓名xx学号1234567890班级电子0000专业电子信息工程归口系部电子与电气工程学院起迄日期20xx年12月22日20...

数字信号处理器课程设计实验报告

数字信号处理器课程设计实验报告专业电子信息工程班级XX姓名XX学号XXxx年XX月XX日直流电机控制实验一实验目的1学习用C语言编制中断程序控制F2812DSP通用IO管脚产生不同占空比的PWM信号2学习F28...

数字信号处理课程设计实验报告

华北电力大学实验报告第1页华北电力大学实验报告第2页华北电力大学实验报告第3页华北电力大学实验报告第4页华北电力大学实验报告第5页华北电力大学实验报告第6页华北电力大学实验报告第7页华北电力大学实验报告华北电力...

简单数字信号处理系统的实现_DSP设计报告

目录1课程设计的题目与设计要求211课程设计的题目212课程设计的设计要求22设计的目的和意义23设计任务24设计的原理分析241设计总体分析242关键技术数字滤波器概述243FIR和IIR数字滤波器的比较34...

数字信号处理实验报告5

数字信号处理实验报告册班级姓名学号唐山学院信息与控制工程实验教学中心20xx年3月数字信号处理课程实验报告五

数字信号处理课程设计报告书

吉首大学信息科学与工程学院课程设计报告书课程数字信号处理课姓名黄涛蔡君谢强广磊磊学号20xx405506920xx40559520xx40559220xx405597专业通信工程年级2班指导教师刘昕基地指导教师...

数字信号处理课程设计报告(22篇)