matlab信号处理相关函数程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

序列的傅里叶变换及其逆变换定义:

)(|)(|)()(ωϕωωω

j j n n j j e e X e

n x e X ==∑∞-∞=- 1(n)(e )e 2jw jwn x X dw π

ππ-=⎰

其幅度特性为|)(|ωj e X ,在Matlab 中采用abs 函数;相位特性为)(ωϕ,在Matlab 中采用angle 函数。

为了方便,考虑在两个周期,例如[ππ2,2-]中2M+1个均匀频率点上计算FT ,并且观察其周期性和对称性。为此给出function 文件如下,求解FT 变换:

function [X,w]=ft(x,n,k)

%X :序列x(n)的傅里叶变换

%w :X 的自变量

%x :要进行傅里叶变换的序列x(n)

%n :序列x(n)的位置向量

%k :求和区间

w=(pi/abs(max(k)/2))*k;

X=x*(exp(-1i*pi/abs(max(k)/2))).^(n'*k);

使用方法如下:

n=-5:5;%序列区间

x=(-0.9).^n;%序列表达式

k=-200:200;%求和区间

[Xw,w]=ft(x,n,k);%求傅里叶变换

magX=abs(Xw);%求幅度

angX=angle(Xw);%求相位

realX=real(Xw);

imagX=imag(Xw);

subplot(2,2,1)

plot(w/pi,magX)%绘制幅度曲线

grid on

title('幅度曲线')

xlabel('\omega/\pi')

ylabel('幅度')

xmin=0;

xmax=2;

set(gca,'xlim',[xmin,xmax],'ylimmode','auto','zlimmode','auto'); %xmin xmax 为范围 subplot(2,2,2)

plot(w/pi,angX/pi) %绘制相位曲线

grid on

title('相位曲线')

xlabel('\omega/\pi')

ylabel('相位')% angle(X)/pi

xmin=0;

xmax=2;

set(gca,'xlim',[xmin,xmax],'ylimmode','auto','zlimmode','auto'); %xmin xmax 为范围 subplot(2,2,3)

plot(w/pi,realX) %绘制实部曲线

grid on

title('实部曲线')

xlabel('\omega/\pi')

ylabel('实部')

xmin=0;

xmax=2;

set(gca,'xlim',[xmin,xmax],'ylimmode','auto','zlimmode','auto'); %xmin xmax 为范围 subplot(2,2,4)

plot(w/pi,imagX) %绘制虚部曲线

grid on

title('虚部曲线')

xlabel('\omega/\pi')

ylabel('虚部')

xmin=0;

xmax=2;

set(gca,'xlim',[xmin,xmax],'ylimmode','auto','zlimmode','auto'); %xmin xmax 为范围

序列的DFT 及IDFT 定义:

∑∑-=-=-==10102)()()(N n N n nk N j nk N e

n x W n x k X π

21100

11(n)(k)W (k)e N N j nk nk N N k k x X X N N π---====∑∑ 离散傅里叶变换的的性质:

(1)DFT 的共轭对称性。若)()()(n x n x n x op ep +=,[])()(n x DFT k X =,则:)()]([k X n x DFT R ep =, )()]([k jX n x DFT I op =。

(2)实序列DFT 的性质。若)(n x 为实序列,则其离散傅里叶变换)(k X 为共轭对称,即10),()(*-≤≤-=N k k N X k X 。

(3)实偶序列DFT 的性质。若)(n x 为实偶序列,则其离散傅里叶变换)(k X 为实偶对称,即10),()(-≤≤-=N k k N X k X 。

(4)实奇序列DFT 的性质。若)(n x 为实奇序列,则其离散傅里叶变换)(k X 为纯虚奇对称,即10),()(-≤≤--=N k k N X k X 。

离散傅立叶变换函数

function [Xk,k]=dft(xn,N)

n=0:1:N-1;

k=0: N-1;

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

nk=n'*k;

WNnk=WN.^(nk);

Xk=xn*WNnk; %采用矩阵相乘的方法

magX=abs(Xk);

k=(0:length(magX)-1)*N/length(magX);

离散傅立叶反变换函数

function [xn]=idft(Xk,N)

n=0:1:N-1;

k=0:1:N-1;

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

nk=n'*k;

WNnk=WN.^(-nk);

xn=(Xk*WNnk)/N;

使用方法如下:

1、序列的傅里叶变换及离散傅里叶变换计算

N=5;

n=0:4;

x=[ones(1,5)]; %产生矩形序列

k=0:999;w=(pi/500)*k;

X=x*(exp(-j*pi/500)).^(n'*k); %计算序列的傅立叶变换

Xe=abs(X);

subplot(3,2,1);stem(n,x);ylabel('x(n)');

subplot(3,2,2);plot(w/pi,Xe);ylabel('|X(ejw)|'); %画出序列的傅立叶变换X=dft(x,N); %进行5点DFT

magX=abs(X);

k=(0:length(magX)'-1)*N/length(magX);

subplot(3,2,3);stem(n,x);ylabel('x(n)');

subplot(3,2,4);stem(k,magX);

axis([0,5,0,5]);ylabel('|X(k)|');

2、序列产生及其DFT

N=20;

n=0:N-1;

相关文档
最新文档