matlab周期方波信号.docx

上传人:b****6 文档编号:3193712 上传时间:2022-11-20 格式:DOCX 页数:17 大小:309.05KB
下载 相关 举报
matlab周期方波信号.docx_第1页
第1页 / 共17页
matlab周期方波信号.docx_第2页
第2页 / 共17页
matlab周期方波信号.docx_第3页
第3页 / 共17页
matlab周期方波信号.docx_第4页
第4页 / 共17页
matlab周期方波信号.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

matlab周期方波信号.docx

《matlab周期方波信号.docx》由会员分享,可在线阅读,更多相关《matlab周期方波信号.docx(17页珍藏版)》请在冰豆网上搜索。

matlab周期方波信号.docx

matlab周期方波信号

matlab周期方波信号

(一)周期离散方波信号频域分析

与周期模拟信号一样,周期离散信号同样可以展开成傅里叶级数形式,并得到离散傅里叶级数(DFS)

上式可以看成周期离散信号x(n)的离散傅里叶级数展开。

上式是DFS的反变换,记作IDFS并且称

构成一对离散傅里叶级数变换对。

(以上两式中

在MTALAB中,DFS通过建立周期延拓函数语句实现:

functionXk=DFS(n,x,N)

ifN>length(x)

n=0:

N-1;

x=[xzeros(1,N-length(x))];

end

k=0:

N-1;

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^nk;

Xk=x*WNnk;

end

建立一个离散非周期方波信号

通过周期延拓后所得的周期序列利用DFS计算实现代码如下:

clearall;closeall;clc;

n=0:

3;

x=ones(1,4);

X=fft(x,1024);

Xk1=DFS(n,x,4);

Xk2=DFS(n,x,8);

figure

(1);

plot((-1023:

2048)/2048*8,[abs(X)abs(X)abs(X)],'--');holdon;

stem(-4:

7,[abs(Xk1)abs(Xk1)abs(Xk1)],'LineWidth',2);grid;

figure

(2);

plot((-1023:

2048)/2048*16,[abs(X)abs(X)abs(X)],'--');holdon;

stem(-8:

15,[abs(Xk2)abs(Xk2)abs(Xk2)],'LineWidth',2);grid;

set(gcf,'color','w');

运行后得到的是分别以4和8为周期延拓后的

频谱:

即第一幅图表示的是周期序列

的频谱,

第二幅图表示的是周期序列

的频谱。

两图中的包络线表示的是通过快速傅里叶变换(FFT)所得到的频谱线。

(二)非周期离散方波信号频域分析

对于非周期离散方波信号,可采用离散时间傅里叶变换DTFT进行分析。

上式为离散时间信号x(n)的离散时间傅里叶变换(DTFT)。

上式为

的离散时间傅里叶反变换(IDTFT)。

由于:

所以序列x(n)绝对可和,意味着DTFT存在,而非稳定序列(比如周期序列)不满足绝对可和条件,所以其DTFT不存在。

在MTALAB中,DTFT可以用以下语句实现:

w=-3*pi:

0.01:

3*pi;

K=length(w);

X=x*exp(-j*n'*w*K);

建立一个离散非周期方波信号

的离散傅里叶变换

利用DTFT计算实现代码如下:

clearall;closeall;clc;

n=0:

7;

x=ones(1,8);

w=-3*pi:

0.01:

3*pi;

X=x*exp(-j*n'*w);

figure

(1);

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

figure

(2);

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

set(gcf,'color','w');

运行后分别得到该离散非周期方波信号的幅频特性与相频特性:

幅频特性

相频特性

(三)两种变换DFS的DTFT的性质

DFS主要具有如下性质:

1.线性性质

2.周期卷积性质

3.复共轭

4.帕斯瓦尔定理

DTFT同连续时间信号傅里叶变换相似,具有如下性质:

1.线性性质

2.时域频域平移性质

3.时间翻转性质

4.共轭对称性质

5.时域频域卷积性质

6.调制性质

7.频域微分性质

8.帕斯瓦尔定理

从DTFT的推导过程,说明DTFT是DFS当

的极限情况。

共同点:

在时域都是离散的,在频域都是以

为周期,周而复始。

不同点:

离散时间周期信号频谱是离散的,具有谐波性,

是谐波复振幅,适用于计算机计算。

而离散时间非周期信号的频谱则是连续的,不具有谐波性,

表示的是谐波密度,是连续变量Ω的函数,所以不便于计算机进行分析计算。

 

(四)离散傅里叶变换(DFT)

由于DTFT不便于计算机进行计算,所以需要建立一种时域和频域都是离散的傅里叶变换对,这就是离散傅里叶变换(DFT)

上式为离散时间非周期信号的离散傅里叶变换(DFT)

上式为DFT的反变换,记作IDFT。

称为离散傅里叶变换(DFT)对。

在MTALAB中,DFT通过建立函数实现:

functionXk=DFT(n,x,N)

ifN>length(x)

n=0:

N-1;

x=[xzeros(1,N-length(x))];

end

k=0:

N-1;

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^nk;

Xk=x*WNnk;

End

建立一个离散非周期方波信号

的离散傅里叶变换

利用DFT计算实现代码如下:

clearall;closeall;clc;

n=0:

7;

x=ones(1,8);

X=fft(x,1024);

Xk2=DFT(n,x,16);

figure

(1);

plot((-1023:

2048)/2048*32,[abs(X)abs(X)abs(X)],'--');holdon;

stem(-16:

31,[abs(Xk2)abs(Xk2)abs(Xk2)],'LineWidth',2);grid;

figure

(2);

plot((-1023:

2048)/2048*32,[angle(X)angle(X)angle(X)],'--');holdon;

stem(-16:

31,[angle(Xk2)angle(Xk2)angle(Xk2)],'LineWidth',2);grid;

set(gcf,'color','w');

运行后分别得到该离散非周期方波信号的幅频特性与相频特性:

幅频特性

相频特性

两图中的包络线表示的是通过快速傅里叶变换(FFT)所得到的频谱线。

离散傅里叶变换是傅里叶变换在时域、频域均离散化的形式,因而与其他傅里叶变换有着相似的性质。

但是它又是从傅里叶级数派生而来的,所以又具有一些与其他傅里叶变换不同的特性,最主要的是圆周位移性质和圆周卷积性质。

 

一、快速傅里叶变换(FFT)

快速傅里叶变换,简称FFT,是计算DFT的快速算法,习惯上是指以库利和图基算法为基础的一类高效算法。

根据快速傅里叶变换基本思路以及基2FFT算法,在MTALAB中,FFT通过建立函数实现:

functiony=fft(x)

m=nextpow2(x);

N=2^m;

iflength(x)

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

end

nxd=bin2dec(fliplr(dec2bin([1:

N]-1,m)))+1;

y=x(nxd);

formm=1:

m

Nmr=2^mm;

u=1;

WN=exp(-i*2*pi/Nmr);

forj=1:

Nmr/2

fork=j:

Nmr:

N

kp=k+Nmr/2;

t=y(kp)*u;

y(kp)=y(k)-t;

y(k)=y(k)+t;

end

u=u*WN;

end

end

建立一个离散非周期方波信号

的快速傅里叶变换利用FFT计算实现代码如下:

clearall;closeall;clc;

x=ones(1,8);

fx=fft(x,512);

z=abs(fx);

k=0:

length(z)-1;

plot(k,z);

运行后得到该离散非周期方波信号的幅频特性:

分别利用FFT和DFT进行相同运算:

clearall;closeall;clc;

K=input('K=');

N=2^K;

n=0:

N-1;x=randn(1,2^K);

tic,X=fft(x,N),toc

tic,X=DFT(n,x,N),toc

运行结果如下:

Columns1through4069

Elapsedtimeis0.218536seconds.

Columns1through4069

Elapsedtimeis16.726921seconds.

由此可见,采用DFT计算时间为16.726921秒,而采用FFT计算只需要0.218536秒;说明,FFT在计算速度上,明显优于其他算法。

三、采样定理

(一)时域采样定理

为了验证时域采样定理,可以把原始采样序列每隔D-1点取一个值,形成一个新的序列。

在MATLAB中,通过以下程序实现:

clearall;closeall;clc;

x=ones(1,8);

D=2;

xd=x(1:

D:

length(x));

fx=fft(x,512);

fxd=fft(xd,512);

z=abs(fx);

s=abs(fxd);

k=0:

length(z)-1;

plot(k,s,k,z);

D=2时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。

D=3时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。

D=4时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。

D=0.5时得到的原始序列与采样序列的幅频特性(蓝色为原始序列,绿色为采样序列)。

由此可见,采样周期在D大于2的范围内,出现明显的混叠现象,有失真产生,而在小于1的范围内,采样过于密集,增加运算系统负担。

因此,可验证时域采样定理。

(二)频域采样定理

为了验证频域采样定理,可以把原始采样序列每隔D-1点取一个值,形成一个新的序列。

在MATLAB中,通过以下程序实现:

clearall;closeall;clc;

x=-10:

0.001:

10;

y=(sin(x))/x;

X=fft(y,20);

D=7;

Xd=X(1:

D:

length(X));

fxd=ifft(Xd,20);

s=fxd;

k=0:

length(s)-1;

plot(k,s);

D=7时根据频域样本集合恢复的原信号

D=3时根据频域样本集合恢复的原信号

D=10时根据频域样本集合恢复的原信号

 

由此可见,采样周期在D小于7的范围内,根据频域样本恢复的原信号与实际原信号有很大差别。

因此,可验证频域采样定理。

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

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1