实验四IIR和FIR数字滤波器设计及软件实现实验报告

.

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

谱 ' );

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

xlabel( 'f/Hz' );ylabel(

' 幅度 ' );

( myplot 函数):

function myplot(B,A)

%时域离散系统损耗函数绘图

%B为系统函数分子多项式系数向量

%A为系统函数分母多项式系数向量

[H,W]=freqz(B,A,1000); m=abs(H);

plot(W/pi,20*log10(m/max(m)));grid on;

xlabel( '\\omega/\\pi'

);ylabel(

' 幅度 (dB)' )

axis([0,1,-150,50]);title(

' 损耗函数曲线 ' );( tplot 函数):

function tplot(xn,T,yn)

%时域序列连续曲线绘图函数

% xn: 信号数据序列, yn: 绘图信号的纵坐标名称(字符串)% T为采样间隔 n=0:length(xn)-1;t=n*T; plot(t,xn);

xlabel( 't/s' );ylabel(yn);

.

.

axis([0,t(end),min(xn),1.2*max(xn)]) (实验 4_1 源代码):

% IIR 数字滤波器设计及软件实现

clear all ;close Fs=10000;T=1/Fs;

all

%采样频率

%调用信号产生函数 mstg 产生由三路抑制载波调幅信号相加构成的

复合信号 st

st=mstg;

%低通滤波器设计与实现

========================================= fp=280;fs=450;

wp=2*fp/Fs;ws=2*fs/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

y1t=filter(B,A,st);

%滤波器软件实现

% 低通滤波器设计与实现绘图部分

figure(5);

subplot(2,1,1); myplot(B,A);

%调用绘图函数 myplot 绘制损耗函数曲线

.

.

yt= 'y_1(t)' ;

subplot(2,1,2); tplot(y1t,T,yt);

%调用绘图函数 tplot 绘制滤波器输出波形

%带通滤波器设计与实现

==================================================== fpl=440;fpu=560;fsl=275;fsu=900;

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);

%滤波器软件实现

% 带通滤波器设计与实现绘图部分 figure(3);

subplot(2,1,1); myplot(B,A);

%调用绘图函数 myplot 绘制损耗函数曲线

;

yt= 'y_2(t)'

subplot(2,1,2); tplot(y2t,T,yt);

%调用绘图函数 tplot 绘制滤波器输出波形

%高通滤波器设计与实现

================================================ fp=890;fs=600;

.

.

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

?指标(低通滤波器的

通、阻带边界频)

[N,wp]=ellipord(wp,ws,rp,rs);

%调用 ellipord 计算椭圆 DF阶

数 N和通带截止频率 wp

[B,A]=ellip(N,rp,rs,wp,

'high' ); %调用 ellip 计算椭圆带通 DF系

统函数系数向量 B 和 A

y3t=filter(B,A,st);

%滤波器软件实现

% 高低通滤波器设计与实现绘图部分 figure(4);

subplot(2,1,1); myplot(B,A);

%调用绘图函数 myplot 绘制损耗函数曲线

yt= 'y_3(t)'

;

subplot(2,1,2); tplot(y3t,T,yt);

%调用绘图函数 tplot 绘制滤波器输出波形

function myplot(B,A)

%时域离散系统损耗函数绘图

%B为系统函数分子多项式系数向量

%A为系统函数分母多项式系数向量

[H,W]=freqz(B,A,1000); m=abs(H);

plot(W/pi,20*log10(m/max(m)));grid

on;

.

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4