视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
实验五IIR数字滤波器设计及软件实现
2025-09-24 07:10:29 责编:小OO
文档
实验四:IIR数字滤波器设计及软件实现

一、实验内容及步骤

1、调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,三路信号在时域混叠无法在时域分离,但频域是可分离的,所以可以通过滤波的方法在频域分离。

2、要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通、高通、带通)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1db,阻带最小衰减为60db.

3、编程序调用MATLAB滤波器设计函数ellipord和ellip分别设计三个椭圆滤波器,并绘图显示其损耗函数曲线。

4、调用滤波器实现函数filter,用三个滤波器分别对信号产生函数mstg产生的信号st进行滤波,分离出st中的三路不同载波频率的调幅信号yn1、yn2、yn3的,并绘图显示其时域波形,观察分离效果。

二、实验结果显示

原信号图形:

高通滤波器

输出波形

带通滤波器

输出波形

低通滤波器

输出波形

带阻滤波器

输出波形

三、实验结论:由上面所绘图形可知,利用数字滤波器完全可以将时域混叠而频域未混叠的波形分开,达到滤波目的。

四、思考题

(1)请阅读信号产生函数mstg,确定三路调幅信号的载波频率和调制信号频率。

答:第一路调幅信号的调制信号频率为100HZ,载波频率为1000HZ;第二路调幅信号的调制信号频率为50HZ,载波频率为500HZ;第三路调幅信号的调整信号频率为25HZ,载波频率为250HZ。

(2)信号产生函数mstg中采样点数N=1600,对st进行N点FFT可以得到6根理想谱线。如果取N=1800,可否得到6根理想谱线?为什么?N=2000呢?请改变函数mstg中采样点数N的值,观察频谱图验证您的判断是否正确?

答:

因为信号st是周期序列,谱分析时要求观察时间为整数倍周期。分析可知,st的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25×400Hz,即在25Hz的正弦波的1个周期中采样400点。所以,当N为400的整数倍时一定为st的整数个周期。因此,采样点数N=800和N=2000时,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,不是400的整数倍,不能得到6根理想谱线。

(3)修改信号产生函数mstg,给每一路调幅信号加入载波成分,产生AM信号,观察AM信号与抑制载波调幅信号的时域波形及其频谱的差别。

可以观察到AM的频谱中含有离散的载波分量,且占用很大比重。

五、实验程序:

1、信号产生函数mstg程序:

function st=mstg

N=800;

FS=10000;T=1/FS;TP=N*T;

t=0:T:(N-1)*T;K=0:N-1;f=K/TP;

fc1=FS/10;%第一路调幅信号的载波频率fc1=1000HZ

fm1=fc1/10;%第一路调幅信号的调制信号频率为fm1=100hz.

fc2=FS/20;%第二路调幅信号的载波频率fc2=500HZ

fm2=fc2/10;%第二路调幅信号的调制信号频率为fm2=50hz.

fc3=FS/40;%第三路调幅信号的载波频率fc3=250HZ

fm3=fc3/10;%第三路调幅信号的调制信号频率为fm3=25hz.

xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);

xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);

xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);

st=xt1+xt2+xt3;

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

%绘图

subplot(211)

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

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

subplot(212)

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

axis([0,FS/5,0,1.2]);xlabel('f/HZ');ylabel('幅度');

2、高通滤波器的程序

%高通滤波器设计

fp=800;

fs=700;

Fs=10000;

wp=2*fp/Fs;ws=2*fs/Fs;

rp=1;rs=40;

N=800;st=mstg;

T=1/Fs;Tp=N*T;

t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

[N1,wpo]=ellipord(wp,ws,rp,rs);%确定最小阶数和截止频率

[B,A]=ellip(N1,rp,rs,wpo,'high');%求传递函数的分子分母系数

y=filter(B,A,st);%滤波

fyt=fft(y,N);%求其频谱

subplot(2,1,1),plot(t,y),grid on;xlabel('t/s'),ylabel('y(t)'),

axis([0,Tp/4,min(y),max(y)]),title('(a) y(t)的波形')

subplot(2,1,2);

stem(f,abs(fyt)/max(abs(fyt)),'.');grid on;title('(b) y(t)的频谱')

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

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

3、带通滤波器

%带通滤波器

fpl=400;fpu=600;fsl=350;fsu=650;Fs=10000;

wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];

rp=1;rs=40;

N=800;st=mstg;

T=1/Fs;Tp=N*T;

t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

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

[B,A]=ellip(N1,rp,rs,wpo);

y=filter(B,A,st);

fyt=fft(y,N);

subplot(2,1,1),plot(t,y),grid on;xlabel('t/s'),ylabel('y(t)'),

axis([0,Tp/4,min(y),max(y)]),title('(a) y(t)的波形')

subplot(2,1,2);

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

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

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

4、低通滤波器设计

%低通滤波器

fp=350;

fs=400;

Fs=10000;

wp=2*fp/Fs;ws=2*fs/Fs;

rp=1;rs=40;

N=800;st=mstg;

T=1/Fs;Tp=N*T;

t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

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

[B,A]=ellip(N1,rp,rs,wpo);

y=filter(B,A,st);

fyt=fft(y,N);

subplot(2,1,1),plot(t,y),grid,xlabel('t/s'),ylabel('y(t)'),

axis([0,Tp/4,min(y),max(y)]),title('(a) y(t)的波形')

subplot(2,1,2);

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

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

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

5、带阻滤波器的设计

%带阻滤波器的设计

fpl=350;

fpu=700;

fsl=400;

fsu=600;

Fs=10000;

wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];

rp=1;rs=40;

N=800;st=mstg;

T=1/Fs;Tp=N*T;

t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

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

[B,A]=ellip(N1,rp,rs,wpo,'stop');

y=filter(B,A,st);

fyt=fft(y,N);

subplot(2,1,1),plot(t,y),grid,xlabel('t/s'),ylabel('y(t)'),

axis([0,Tp/4,min(y),max(y)]),title('(a) y(t)的波形')

subplot(2,1,2);

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

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

xlabel('f/Hz');ylabel('幅度')下载本文

显示全文
专题