数字信号处理上机指导 - 1dl 联系客服

发布时间 : 星期五 文章数字信号处理上机指导 - 1dl更新完毕开始阅读a620bd4b852458fb770b56fc

title('圆周卷积幅度的离散序列图') grid

figure(3)

subplot(3,1,1)

stem(n,angle(xn)*180/pi); %绘制激励x(n)=e j3n幅角的离散序列图 axis([0,M,-180,180]);

title('输入激励幅角的离散序列图') subplot(3,1,2);

stem(nh,angle(yn)*180/pi); %绘制零状态响应yn幅角的离散序列图 axis([0,N,-180,180]);

title('线性卷积幅角的离散序列图') subplot(3,1,3);

stem(ny,angle(ynn)*180/pi,'r'); %绘制零状态响应ynn幅角的离散序列图 axis([0,N,-180,180]);

title('圆周卷积幅角的离散序列图') grid

实验二 利用DFT分析信号频谱

一、实验目的

1.实现有限长序列的点的计算;

2.研究记录时间、采样频率、频域采样点数对频谱的影响; 二、实验内容

有一调幅信号

xa(t)=[1+cos(2π×50t)] cos(2π×500t)

确定合理的采样频率fS及记录长度T0,用DFT做频谱分析。要求能分辨xa(t)的所有频率分量。

三、实验原理

欲用DFT分析连续时间信号的频谱,要做到:

1.将连续时间信号xa(t)离散为序列xa(nT)

时域采样定理:要想采样后能够不失真地还原出原信号,则采样频率fS必须大于两倍的信号谱的最高频率fh,即fS>2fh。

时域采样间隔T=1/fS

xa(nT)= xa(t)|t=nT , n为整数 2.设记录T0,则意味着将xa(nT)截短为一有限长的序列x(n),其长度N1= T0/T,即在时域内乘一个矩形窗函数,用数学语言表达为

x(n)= xa(nT)RN1(n)

对周期序列而言,T0应为序列周期的整数倍,否则由于有限长的矩形窗函数影响,造成原信号频谱的“扩散”——频谱泄露,使最高频率有可能超过折叠频率(fS/2),产生频率混叠现象。

3.对有限长序列的频谱X(ejω)进行采样,在一个周期内采样点数为N2。 频域采样定理:对于N1点的有限长序列,频域采样不失真的条件是: N2≥N1

在N2>N1时,补零到长度为N2。(通常取N2=N1)

N2?12?N24.X(k)=DFT[x(n)]=

?n?0?jnkx(n)e=X(ej?)??2?N2

- 24 -

四、实验步骤

1.编写一计算有限长序列的DFT的程序; 2.确定信号x(t)的周期Ti及最高频率fh; 3.设定fS=2kHz →T=0.5mS,将xa(t)离散化;

4.令记录长度T0=0.02S →N1=40,编程计算N2=40的X(e)、X(k)并绘制幅频图; 5.令记录长度T0=0.016S →N1=32,编程计算N2=32或64的X(ejω)、X(k)并绘制幅频图;

6.令记录长度T0=0.02S →N1=80,编程计算N2=80或128的X(ejω)、X(k)并绘制幅频图;

7.令记录长度T0=0.05S →N1=100,编程计算N2=100或128的X(ejω)、X(k)并绘制幅频图

五、实验要求

仔细观查并解释步骤4~7中的各种现象。

六、程序示例

function shiyan2(N1,N2,M)

n0=[0:1:N1-1]; %截取原始信号N1点 n=[0:1:N2-1]; %补零N2-N1个 y=(1+cos(0.05*pi*n0)).*cos(0.5*pi*n0);

%原始信号,其周期N=40,频率分量为0.45*pi,0.5*pi,0.55*pi

x=[y(1:1:N1),zeros(1,N2-N1)]; %信号序列 w=[0:1:2000]*2*pi/2000;

x0=x*exp(-j*n'*w); %信号序列的傅里叶变换

magx0=abs(x0); %信号序列的傅里叶变换的幅度 a=max(magx0);

magx0=magx0/a; %幅度归一化

x1=dft(x,N2); %信号序列的N2点离散傅里叶变换 magx1=abs(x1(1:1:N2/2+1))/a; k1=0:1:N2/2; w1=2*pi/N2*k1; figure(M)

subplot(2,1,1)

stem(n,x); %绘制信号序列的离散序列图 axis([0,N2,-2.5,2.5]) line([0,N2],[0,0]) subplot(2,1,2)

plot(w/pi,magx0) %绘制信号序列的傅里叶变换的幅频响应图 hold on

stem(w1/pi,magx1,'r') %绘制信号序列傅里叶变换的幅频响应离散序列图 axis([0,1,0,1.1])

function [Xk]=dft(xn,N)

%计算序列xn的N点离散傅里叶变换 n=[0:1:N-1];k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n'*k;

WNnk=WN.^nk; Xk=xn*WNnk;

实验三 信号时间尺度变换

一、实验目的

- 25 -

1.研究抽取因子为整数时,抽取过程对频谱产生的影响; 2.研究插值因子为整数时,插值过程对频谱产生的影响;

3.在不产生频率响应的混叠失真的条件下,实现比值为有理数的抽样率转换。 二、实验内容

已知信号

x(t)=0.5+0.93*cos(0.025×2πt×103)+0.86*cos(0.050×2πt×103)+

0.79*cos(0.075×2πt×10)+0.72*cos(0.100×2πt×10)+0.65*cos(0.125×2πt×103)+0.58*cos(0.150×2πt×103)+0.51*cos(0.175×2πt×103)+

0.44*cos(0.200×2πt×103)+0.37*cos(0.225×2πt×103)+0.30*cos(0.250×2πt×103)+0.23*cos(0.275×2πt×103)+0.16*cos(0.300×2πt×103)+

33

0.09*cos(0.325×2πt×10)+0.02*cos(0.350×2πt×10)

其最高频率为fh=0.35kHz,抽样频率为fs=1kHz。现欲将此信号的抽样率转换为fs’=1.4kHz,设计该转换过程,并画出频谱的变化。

三、实验原理

实现抽样率的转换,是数字信号处理的一个重要内容。比较简单的办法是直接在数字域内对抽样信号作抽样率的变换,从而得到新的抽样信号。

1.序列的插值(插值因子I为整数) 插值就是在信号序列x(n)中,每相邻两个数据之间插入I-1个零,从而得到新的抽样信号z(n) 。用数学形式表达为:

?x(n/I)z(n)??0?n?iI,i?0,?,N?1其它3

3

插值意味着抽样率由fs转换为Ifs,这时

IN?1Z(ej?)??n?0N?1i?0z(n)e?j?nN?1 ??i?0z(iI)e?j?iI ? ?x(i)eIN?1?j?iI?X(e?j?I)N?1IikNIN?1或:Z(k)??n?0z(n)WnkNI??z(iI)Wi?0??i?0x(i)WN?X((k))N

ik显然,经过插值,频谱(在数字域内)被压缩I倍,即在2π范围内将有I个完整周期。因而再加接一个数字低通滤波截取一个周期即可。

2.序列的抽取(抽取因子D为整数)

抽取就是在信号序列x(n)中,每D个数据中取出一个,从而得到新的抽样信号y(n) 。用数学形式表达为y(n)= x(Dn)

抽取意味着抽样率由fs压缩为fs/D,这时频谱(数字域)被展宽D倍,即

Y(ej?)?N?11DX(e?j?/D)

nkNN?1?? Di?0Dn?0n?0其中k/D为整数。即经过抽取,频谱被扩展D倍。因此,若原信号频谱的最高频率为ωh,

Y(k)?Y(n)W?x(i)WND?X(k/D)nkN??x(nD)W 1ND?1ik/D1抽取后最高频率为Dωh,当Dωh>π时将发生频率响应的混叠失真。

- 26 -

3.比值为有理数的抽样率转换

若希望将信号x(n)的抽样率转换为I/D倍,比较合理且有效的办法是先对信号做I倍的插值,经过数字低通滤波后,再做D倍的抽取,抽样率由fs转换为(I/D)fs。 四、实验步骤

1.将连续信号x(t)离散为序列x(n)。

x(n)?x(t)|t?nfS

2.观察在对序列进行插值、抽取后频谱的变化。

3.实现对信号x(t)(即序列x(n))的抽样率的转换。 五、实验要求

仔细观察I、D分别为各种整数时的频谱现象,并解释之。 六、程序示例

function shiyan31(I,D)

%观察对序列插值、抽取后频谱的变化 n0=[0:1:39]; N=40; n1=2/N*n0;

xn=0.5+0.7*cos(0.05*pi*n0)+0.4*cos(0.1*pi*n0)+0.1*cos(0.15*pi*n0); xk=dft(xn,N); magxk=abs(xk); subplot(3,1,1); stem(n1,magxk); %信号序列的插值 yn=chazhi(xn,I); M=length(yn); yk=dft(yn,M); magyk=abs(yk);

m=[0:1:M-1]; m1=2/M*m; subplot(3,1,2) stem(m1,magyk); %信号序列的抽取 zn=chouqu(xn,D);

M=length(zn); m=[0:1:M-1]; m1=2/M*m; zk=dft(zn,M); magzk=abs(zk); subplot(3,1,3) stem(m1,magzk);

function shiyan32(I,D,wp)

%抽样转换率为I/D,先插值(I),经低通滤波(截止频率wp*pi),再抽取(D)。 %有限频宽序列xn n0=[0:1:39]; N=40;

x1=0.5+.93*cos(0.05*pi*n0)+.86*cos(0.1*pi*n0); x2=.79*cos(0.15*pi*n0)+.72*cos(0.20*pi*n0); x3=.65*cos(0.25*pi*n0)+.58*cos(0.30*pi*n0); x4=.51*cos(0.35*pi*n0)+.44*cos(0.40*pi*n0); x5=.37*cos(0.45*pi*n0)+.30*cos(0.50*pi*n0); x6=.23*cos(0.55*pi*n0)+.16*cos(0.60*pi*n0); x7=.09*cos(0.65*pi*n0)+.02*cos(0.70*pi*n0); xn=x1+x2+x3+x4+x5+x6+x7; %序列的频谱xk xk=dft(xn,N); a=max(abs(xk));

- 27 -