最新20125数字滤波器的设计报告.doc

上传人:wj 文档编号:636518 上传时间:2023-04-29 格式:DOC 页数:47 大小:1.91MB
下载 相关 举报
最新20125数字滤波器的设计报告.doc_第1页
第1页 / 共47页
最新20125数字滤波器的设计报告.doc_第2页
第2页 / 共47页
最新20125数字滤波器的设计报告.doc_第3页
第3页 / 共47页
最新20125数字滤波器的设计报告.doc_第4页
第4页 / 共47页
最新20125数字滤波器的设计报告.doc_第5页
第5页 / 共47页
最新20125数字滤波器的设计报告.doc_第6页
第6页 / 共47页
最新20125数字滤波器的设计报告.doc_第7页
第7页 / 共47页
最新20125数字滤波器的设计报告.doc_第8页
第8页 / 共47页
最新20125数字滤波器的设计报告.doc_第9页
第9页 / 共47页
最新20125数字滤波器的设计报告.doc_第10页
第10页 / 共47页
最新20125数字滤波器的设计报告.doc_第11页
第11页 / 共47页
最新20125数字滤波器的设计报告.doc_第12页
第12页 / 共47页
最新20125数字滤波器的设计报告.doc_第13页
第13页 / 共47页
最新20125数字滤波器的设计报告.doc_第14页
第14页 / 共47页
最新20125数字滤波器的设计报告.doc_第15页
第15页 / 共47页
最新20125数字滤波器的设计报告.doc_第16页
第16页 / 共47页
最新20125数字滤波器的设计报告.doc_第17页
第17页 / 共47页
最新20125数字滤波器的设计报告.doc_第18页
第18页 / 共47页
最新20125数字滤波器的设计报告.doc_第19页
第19页 / 共47页
最新20125数字滤波器的设计报告.doc_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

最新20125数字滤波器的设计报告.doc

《最新20125数字滤波器的设计报告.doc》由会员分享,可在线阅读,更多相关《最新20125数字滤波器的设计报告.doc(47页珍藏版)》请在冰点文库上搜索。

最新20125数字滤波器的设计报告.doc

实验名称:

离散时间信号与系统的时、频域表示

实验目的和任务:

熟悉Matlab基本命令,理解和掌握离散时间信号与系统的时、频域表示及简单应用。

在Matlab环境中,按照要求产生序列,对序列进行基本运算;对简单离散时间系统进行仿真,计算线性时不变(LTI)系统的冲激响应和卷积输出;计算和观察序列的离散时间傅立叶变换(DTFT)幅度谱和相位谱。

实验内容:

基本序列产生和运算:

Q1.1~1.3,Q1.23,Q1.30~1.33

离散时间系统仿真:

Q2.1~2.3

LTI系统:

Q2.19,Q2.21,Q2.28

DTFT:

Q3.1,Q3.2,Q3.4

实验过程与结果分析:

Q1.1 运行P1_1产生单位样本序列u[n]的程序与显示的波形如下:

clf;

n=-10:

20;

u=[zeros(1,10)1zeros(1,20)];

stem(n,u);

xlabel('时间序号n');ylabel('振幅');

title('单位样本序列');

axis([-102001.2]);

Q1.2clf命令的作用是-清除图形窗口上的图形

axis命令的作用是-设置坐标轴的范围和显示方式

title命令的作用是-给图形加名字

xlabel命令的作用是-添加x坐标标注

ylabel命令的作用是-添加y坐标标注

Q1.3 产生有延时11个样本ud[n]的程序及其运行结果如下:

clf;

n=-10:

20;

u=[zeros(1,21)1zeros(1,9)];

stem(n,u);xlabel('时间序号n');ylabel('振幅');

title('单位样本序列');

axis([-102001.2]);

Q1.23修改上述程序,以长生长度为50、频率为0.08、振幅为2.5、相移为90度的一个正弦序列并显示它。

该序列的周期是多少?

n=0:

50;

f=0.1;

f=0.08;

phase=pi;

A=2.5;

arg=2*pi*f*n-phase;

x=A*cos(arg);

clf;

stem(n,x);

axis([050-33]);

grid;

周期为:

2π/ω=1/f=1/0.08=1/(8/100)=100/8=25/2.

Q1.30 未污染的信号s[n]是什么样的形式?

加性噪声d[n]是什么样的形式?

加性噪声d[n]是均匀分布在-0.4和+0.4之间的随机序列

Q1.31 使用语句s=s+d能产生被噪声污染的信号吗?

若不能,为什么?

不能。

因为d是列向量,s是行向量

Q1.32 信号x1、x2、x3与x之间的关系是什么?

x1是x的延时,x2和x相等,x3超前于x

Q1.33 legend的作用是什么

legend用于产生图例说明

Q2.1 对于M=2和输入x[n]=s1[n]+s2[n],程序P2.1的输出为:

输入x[n]被该离散时间系统抑制的分量为-Signal#2的高频分量

Q2.2 程序P2.1中LTIsystem被修改为y[n]=0.5(x[n]–x[n–1])后,输入x[n]=s1[n]+s2[n]导致的输出为:

对于输入的影响是-该系统现在是一个高通滤波器。

它通过高频率的输入分量S2,而不是低频分量输入S1。

Q2.3 程序P2_1对于不同M(M=4,6)取值和不同正弦分量(任取2个)取值的运行结果如下:

M=4f1=0.05f2=0.10

M=6f1=0.30f2=0.30

Q2.19 运行P2_5生成的结果如下:

:

Q2.21 生成的MATLAB代码如下:

clf;

N=40;

num=[0.9-0.450.350.002];

den=[1.00.71-0.46-0.62];

x=[1zeros(1,N-1)];

y=filter(num,den,x);

stem(y);

xlabel('时间序号n');ylabel('振幅');

title('冲击响应');grid;

程序产生的40个样本如下所示:

Q2.28 程序P2_7产生的序列y[n]andy1[n]如下所示:

①y[n]和y1[n]的差别为---它们无差别。

②将x[n]补零后得到x1[n]作为输入,产生y1[n]的原因是--对于长度N1和N2的两个序列,转化率返回得到的序列长度N1+N2-1。

与此相反,过滤器接受一个输入信号和一个系统规范。

返回的结果是相同的长度作为输入信号。

因此,为了从转化率和滤波器得到直接比较的结果,有必要供应滤波器的输入已经零填充为长度L(x)+L(h)-1。

Q3.1 程序P3_1计算离散时间傅里叶变换的原始序列为---H(e)=

pause命令的作用为-不加参数,直接用pause的话,就是程序暂停,直至用户按任意一个按键。

如果加参数,比如pause(1.5)就是程序暂停1.5秒。

Q3.2 程序P3_1运行结果为:

DTFT是关于w的周期函数么?

答:

DTFT是关于的周期函数周期是2

四个图形的对称性为:

实部是2周期和偶对称;虚部是2周期和奇对称;幅度是2周期和偶对称;相位是2周期和奇对称性。

Q3.4 修改程序P3_1重做Q3.2的程序如下:

clf;

w=-4*pi:

8*pi/511:

4*pi;

num=[1357911131517];

den=1;

h=freqz(num,den,w);

subplot(2,1,1)

plot(w/pi,real(h));grid

title('H(e^{j\omega})的实部')

xlabel('\omega/\pi');

ylabel('振幅');

subplot(2,1,2)

plot(w/pi,imag(h));grid

title('H(e^{j\omega})的虚部')

xlabel('\omega/\pi');

ylabel('振幅');

pause

subplot(2,1,1)

plot(w/pi,abs(h));grid

title('|H(e^{j\omega})|幅度谱')

xlabel('\omega/\pi');

ylabel('振幅');

subplot(2,1,2)

plot(w/pi,angle(h));grid

title('相位谱arg[H(e^{j\omega})]')

xlabel('\omega/\pi');

ylabel('以弧度为单位的相位');

修改程序后的运行结果为:

DTFT是关于w的周期函数么?

答:

DTFT是关于w的周期函数。

周期是-2

相位谱中跳变的原因是-角度返回到arctan的本值

实验名称:

离散傅立叶变换和z变换

实验目的和任务:

掌握离散傅立叶变换(DFT)及逆变换(IDFT)、z变换及逆变换的计算和分析。

利用Matlab语言,完成DFT和IDFT的计算及常用性质的验证,用DFT实现线性卷积,实现z变换的零极点分析,求有理逆z变换。

实验内容:

DFT和IDFT计算:

Q3.23~3.24

DFT的性质:

Q3.26~3.29,Q3.36,Q3.38,Q3.40

z变换分析:

Q3.46~3.48

逆z变换:

Q3.50

实验过程与结果分析:

Q3.23编写一个MATLAB程序,计算并画出长度为N的L点离散傅里叶变换X[k]的值,其中L≥N,然后计算并画出L点离散傅里叶变换X[k]。

对不同长度N和不同的离散傅里叶变换长度L,运行程序。

讨论你的结果。

编写的MATLAB程序:

clf;

N=200;%lengthofsignal

L=256;%lengthofDFT

nn=[0:

N-1];

kk=[0:

L-1];

xR=[0.1*(1:

100)zeros(1,N-100)];

xI=[zeros(1,N)];

x=xR+i*xI;

XF=fft(x,L);

subplot(3,2,1);grid;

plot(nn,xR);grid;

title('Re\{x[n]\}');

xlabel('Timeindexn');

ylabel('Amplitude');

subplot(3,2,2);

plot(nn,xI);grid;

title('Im\{x[n]\}');

xlabel('Timeindexn');

ylabel('Amplitude');

subplot(3,2,3);

plot(kk,real(XF));grid;

title('Re\{X[k]\}');

xlabel('Frequencyindexk');

ylabel('Amplitude');

subplot(3,2,4);

plot(kk,imag(XF));grid;

title('Im\{X[k]\}');

xlabel('Frequencyindexk');

ylabel('Amplitude');

%IDFT

xx=ifft(XF,L);

subplot(3,2,5);

plot(kk,real(xx));grid;

title('RealpartofIDFT\{X[k]\}');

xlabel('Timeindexn');

ylabel('Amplitude');

subplot(3,2,6);

plot(kk,imag(xx));grid;

title('ImagpartofIDFT\{X[k]\}');

xlabel('Timeindexn');

ylabel('Amplitude');

Q3.24写一个MATLAB程序,用一个N点复数离散傅里叶计算两个长度为N的实数序列的N点离散傅里叶变换,,并将结果同直接使用两个N点离散傅里叶变换得到的结果进行比较。

编写的MATLAB程序:

clf;

N=256;%lengthofsignal

nn=[0:

N-1];

ntime=[-N/2:

N/2-1];

g=(0.75).^abs(ntime);%signalg

h=(-0.9).^ntime;%signalh

GF=fft(g);

HF=fft(h);

x=g+i*h;

XF=fft(x);

XFstar=conj(XF);

XFstarmod=[XFstar

(1)fliplr(XFstar(2:

N))];

GF2=0.5*(XF+XFstarmod);

HF2=-i*0.5*(XF-XFstarmod);

abs(max(GF-GF2))

abs(max(HF-HF2))

figure

(1);clf;

subplot(2,2,1);grid;

plot(nn,real(GF));grid;

title('TwoN-pointDFT''s');

xlabel('Frequencyindexk');

ylabel('Re\{G[k]\}');

subplot(2,2,2);

plot(nn,imag(GF));grid;

title('TwoN-pointDFT''s');

xlabel('Frequencyindexk');

ylabel('Im\{G[k]\}');

subplot(2,2,3);grid;

plot(nn,real(GF2));grid;

title('SingleN-pointDFT');

xlabel('Frequencyindexk');

ylabel('Re\{G[k]\}');

subplot(2,2,4);

plot(nn,imag(GF2));grid;

title('SingleN-pointDFT');

xlabel('Frequencyindexk');

ylabel('Im\{G[k]\}');

figure

(2);clf;

subplot(2,2,1);grid;

plot(nn,real(HF));grid;

title('TwoN-pointDFT''s');

xlabel('Freqindexk');

ylabel('Re\{H[k]\}');

subplot(2,2,2);

plot(nn,imag(HF));grid;

title('TwoN-pointDFT''s');

xlabel('Freqindexk');

ylabel('Im\{H[k]\}');

subplot(2,2,3);grid;

plot(nn,real(HF2));grid;

title('SingleN-pointDFT');

xlabel('Freqindexk');

ylabel('Re\{H[k]\}');

subplot(2,2,4);

plot(nn,imag(HF2));grid;

title('SingleN-pointDFT');

xlabel('Freqindexk');

ylabel('Im\{H[k]\}');

Q3.26在函数circshift中,命令rem的作用是什么?

答:

rem(x,y)是用y对x求余数函数。

Q3.27解释函数circshift怎样实现圆周移位运算。

答:

在输入序列x由M的位置开始被循环移位。

如果M>0,则circshift删除从矢量x最左边开始的M个元素和它们附加在右侧的剩余元素,以获得循环移位序列。

如果如果M<0,则circshift首先通过x的长度来弥补M,即序列x最右边的长度的M样品从x中删除和所附在其余的M个样本的右侧,以获得循环移位序列。

Q3.28在函数circshift中,运算符~=的作用是什么?

答:

~=是不等于的意思。

Q3.29解释函数circonv怎样实现圆周卷积运算。

答:

输入是两个长度都为L的向量x1和x2,它是非常有用的定期延长X2的函数。

让x2p成为x2延长无限长的周期的序列。

从概念上讲,在定点时间上通过时序交换后的x2p的长度L交换x2p序列和x2tr等于1的元素。

然后元素1至L的输出向量y是通过取x1和获得的长度为L的sh矢量之间的内积得到通过循环右移的时间反转向量x2tr。

对于输出样本Y[n]的1≤N≤L时,右循环移位的量为n-1个位置上。

Q3.36运行程序P3.9并验证离散傅里叶变换的圆周卷积性质。

g1=[123456];g2=[1-233-21];

ycir=circonv(g1,g2);

disp('Resultofcircularconvolution=');disp(ycir)

G1=fft(g1);G2=fft(g2);

yc=real(ifft(G1.*G2));

disp('ResultofIDFToftheDFTproducts=');disp(yc)

Resultofcircularconvolution=

12281401614

ResultofIDFToftheDFTproducts=

12281401614

一个圆周卷积的DTF是DTF的逐点产物。

Q3.38运行程序P3.10并验证线性卷积可通过圆周卷积得到。

g1=[12345];g2=[22011];

g1e=[g1zeros(1,length(g2)-1)];

g2e=[g2zeros(1,length(g1)-1)];

ylin=circonv(g1e,g2e);

disp('Linearconvolutionviacircularconvolution=');disp(ylin);

y=conv(g1,g2);

disp('Directlinearconvolution=');disp(y)

Linearconvolutionviacircularconvolution=

2610152115795

Directlinearconvolution=

2610152115795

使用圆周卷积确实有可能得到线性卷积

Q3.40编写一个MATLAB程序,对两个序列做离散傅里叶变换,已生成他们的线性卷积。

用此程序验证Q3.38和Q3.39的结果

编写的MATLAB程序:

%ProgramQ3.40

g1=[12345];

g2=[22011];

g1e=[g1zeros(1,length(g2)-1)];

g2e=[g2zeros(1,length(g1)-1)];

G1EF=fft(g1e);

G2EF=fft(g2e);

ylin=real(ifft(G1EF.*G2EF));

disp('LinearconvolutionviaDFT=');disp(ylin);

LinearconvolutionviaDFT=

2.00006.000010.000015.000021.000015.00007.00009.00005.0000

Q3.46使用程序P3.1在单位圆上求下面的z变换:

G(z)=

Q3.47编写一个MATLAB程序,计算并显示零点和极点,计算并显示其因式形式,并产生z的两个多项式之比的形式表示的z变换的极零点图。

使用该程序,分析式(3.32)的z变换G(z)。

编写的MATLAB程序:

%ProgramQ3_47

clf;

num=[25953];

den=[545211];

[zpk]=tf2zpk(num,den);

disp('Zeros:

');

disp(z);

disp('Poles:

');

disp(p);

input('Hittocontinue...');

[sosk]=zp2sos(z,p,k)

input('Hittocontinue...');

zplane(z,p);

运行结果:

Zeros:

-1.0000+1.4142i

-1.0000-1.4142i

-0.2500+0.6614i

-0.2500-0.6614i

Poles:

-8.9576

-0.2718

0.1147+0.2627i

0.1147-0.2627i

sos=

1.00002.00003.00001.00009.22932.4344

1.00000.50000.50001.0000-0.22930.0822

k=

0.4000

Q3.48通过习题Q3.47产生的极零点图,求出G(z)的收敛域的数目。

清楚地显示所有的收敛域。

由极零点图说明离散时间傅里叶变换是否存在。

R1:

|z|<0.2718(left-sided,notstable)

R2:

0.2718<|z|<0.2866(two-sided,notstable)

R3:

0.2866<|z|<8.9576(two-sided,stable)

R4:

|z|>8.9576(right-sided,notstable)

不能从极零点图肯定的说DTFT是否存在,因为其收敛域一定要指定。

当收敛域在上述R3内所获得的序列却是证明了DTFT的存在,它是一个具有双面冲激响应的稳定系统。

Q3.50编写一个MATLAB程序,计算一个有理逆z变换的前L个样本,其中L的值由用户通过命令input提供。

用该程序计算并画出式(3.32)中G(z)的逆变换的前50个样本。

使用命令stem画出由逆变换产生的序列。

编写的MATLAB程序:

%ProgramQ3.50

clf;

%initialize

num=[25953];

den=[545211];

%QueryuserforparameterL

L=input('EnterthenumberofsamplesL:

');

%findimpulseresponse

[gt]=impz(num,den,L);

%plottheimpulseresponse

stem(t,g);

title(['First',num2str(L),'samplesofimpulseresponse']);

xlabel('TimeIndexn');

ylabel('h[n]');

EnterthenumberofsamplesL:

50

实验名称:

数字滤波器的频域分析和实现

实验目的和任务:

(1)求滤波器的幅度响应和相位响应,观察对称性,判断滤波器类型。

(2)用Matlab函数实现系统的级联型和并联型结构,并对滤波器进行结构仿真。

实验内容:

系统传递函数的级联和并联实现:

Q6.1,Q6.3,Q6.5,Q8.3,Q8.5,

滤波器的幅频特性分析:

Q8.1,Q8.9,Q8.10,Q8.14

实验过程与结果分析:

Q6.1使用程序P6.1,生成如下有限冲激响应传输函数的一个级联实现:

H(z)=2+10z+23z+34z+31z+16z

编写的MATLAB程序:

%ProgramP6_1

num=input('分子系数向量=');

den=input('分母系数向量=');

[z,p,k]=tf2zp(num,den);

sos=zp2sos(z,p,k);

分子系数向量=[2102334314]

分母系数向量=[111111]

sos=

2.00006.00004.00001.000000

1.00001.00002.00001.000000

1.00001.00000.50001.00

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2