MATLAB实验.ppt

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

3
%dft2.m: function [Am,pha] = dft2(x) N = length(x); n = [0:N-1]; k = [0:N-1]; nk=n'*k; w= exp(-j*2*pi/N); wnk = w.^(nk); Xk = x*wnk; Am=abs(Xk); pha=angle(Xk);
subplot(2,1,2);
plot(w,pha3,'r');grid;
title('Phase Part');
xlabel('frequency in radians');
ylabel('arg(X[exp(jw)]/radians');
9
10
2、有一连续信号
xa (t) cos(2 6.5103t) cos(2 7.0103t) cos(2 9.0103t) •三以种采情样况频的率幅fs=频3特2性kH。z对信号xa(t)进行采样,分析下列
(1)采集数据长度N=16点,做N=16点的DFT。 (2)采集数据长度N=16点,补零到256点, 做256点的DFT。 (3)采集数据长度N=256点,做256点的DFT 。 观察三幅不同频率特性图,分析和比较它们的特点以 及形成的原因。
11
%spectrum_com2 % part 1 % Spectrum based on the first 16 samples of x(n) fs=32000; figure(1) n=[0:1:15];x=cos(2*pi/fs*6500*n)+cos(2*pi/fs*7000*n)+0.5*cos (2*pi/fs*9000*n); subplot(2,1,1);stem(n,x);title('signal x(n), 0 <= n <= 15');xlabel('n');axis([0,255,-2.5,2.5]); X=fft(x);magX=abs(X(1:1:16)); k=0:1:15;f=fs/16*k; subplot(2,1,2);plot(f,magX);title('DTFT Magnitude');xlabel('frequency in Hz');axis([0,10000,0,25]); 12
6
t=cputime; [Am1,pha1]=dft1(x); t1=cputime-t figure(1) subplot(2,1,1); plot(w,Am1,'g'); title('Magnitude part'); xlabel('frequency in radians');ylabel('|X(exp(jw))|'); subplot(2,1,2); plot(w,pha1,'r');grid; title('Phase Part'); xlabel('frequency in radians');ylabel('arg(X[exp(jw)]/radians'); 7
上机实验一:离散傅里叶变换的计算和应用
一、实验目的 1、熟悉MATLAB的编程特点。 2、了解DFT的计算及其应用。 二、实验内容及要求
1、用三种不同的DFT程序计算的 x(n) R8 (n) 傅里
叶变换 X (e j ) ,并比较三种程序计算机运行时间。 (1)编制用for loop语句的M函数文件dft1.m,用 循环变量逐点计算 X (k) 。
4
%dft3.m: function [Am,pha] = dft3(x) Xk = fft(x); Am=abs(Xk); pha=angle(Xk);
5
%labdft.m x=[ones(1,8),zeros(1,248)]; n=[0:(length(x)-1)]; w=(2*pi/length(x))*n;
t=cputime; [Am2,pha2]=dft2(x); t1=cputime-t figure(2) subplot(2,1,1); plot(w,Am2,'g'); title('Magnitude part'); xlabel('frequency in radians');ylabel('|X(exp(jw))|'); subplot(2,1,2); plot(w,pha2,'r');grid; title('Phase Part'); xlabel('frequency in radians');ylabel('arg(X[exp(jw)]/radians');8
1
(2)编写用MATLAB矩阵运算的的M文件 dft2.m ,完成下列矩阵运算:
X
X
...
X
(0) (1)
(N
1)
WWNN00WWNN10WWNN20
...... ......
. .
. .
.... ....
.W. N0 .WNN 1
...
WN0WNN
W 1 2( N
N
1)
.
.
ห้องสมุดไป่ตู้.WN(
N
% part 2
% High density spectrum (256 samples) based on the first 16 samples of x(n)
1)
N
1
x(0) x(1) ... x( N
1)
(3)调用FFT库函数,直接计算 X (k) 。
(4)分别用上述三种不同方式编写的DFT程
序labdft.m:计算序列 x(n)的傅里叶变换 X (e j,)
并画出相应的幅频和相频特性,再比较各个程序
的计算机运行时间。
2
%dft1.m:
function [Am,pha] = dft1(x)
N = length(x);
w= exp(-j*2*pi/N);
for k=1:N
sum=0;
for n=1:N
sum=sum+x(n)*w^((k-1)*(n-1));
end
Am(k)=abs(sum);
pha(k)=angle(sum);
end
t=cputime;
[Am3,pha3]=dft3(x);
t1=cputime-t
figure(3)
subplot(2,1,1);plot(w,Am3,'g');
title('Magnitude part');
xlabel('frequency in radians');ylabel('|X(exp(jw))|');
相关文档
最新文档