离散傅里叶变换和快速傅里叶变换(4)

2020-04-14 06:16

303252FFT Amplification20FFT Phase Angle (radian)0510FFT k1520115010-15-20-305

10FFT k1520图3.4.6 含噪声FFT的幅度谱和相位谱(弧度制)。

28点采样:

>> xs=sampJune3(28,0.1,0);%末尾的1表示有噪声。 >> DFT(28,xs); >> myFFT(28,xs);

4321

value0-1-2-3-4051015n202530

图3.4.7 进行28点采样得到的含噪声序列

第 16 页 共 16 页

4035302520151050321Phase Angle (radian)010k2030Amplification0-1-2-3-4010k2030图3.4.8 含噪声DFT的幅度谱和相位谱(弧度制)。

40353025201510504

3FFT Phase Angle (radian)010FFT k20302FFT Amplification10-1-2-3010FFT k2030

图3.4.9 含噪声FFT的幅度谱和相位谱(弧度制)。

【分析】

依然分别取12点、20点、28点采样。仍然与原信号的频谱X(?)?3?[?(??8?)??(??8?)](图

第 17 页 共 17 页

3.3.10)比较,可以得到结论:

由于叠加了噪声,所以频谱都受到了一定的干扰。由于白噪声在各个频率的功率相等,因此频谱上各处的干扰也是均匀随机的。

不过,通过对比我们可以发现,20点采样(无噪声时不发生泄漏的采样方法)在存在噪声时,仍然可以明显区分出原信号的谱线。第二好的是28点采样,因为采样时间较长,即使存在频谱泄漏也能较好地区分原信号的谱线。而最差的是12点采样,由于噪声的存在和严重的频谱泄漏,它的次谱线与主谱线的高度相差不大,使原信号不明显。

3.5已知序列x(n)?4?(n)?3?(n?1)?2?(n?2)??(n?3),X(k)是x(n)的6点DFT,设W(1)若有限长序列y(n)的6点DFT是Y(k)?W6?4k?kN?ej2?kN。

X(k),求y(n)。

(2)若有限长序列w(n)的6点DFT W(k)是X(k)的实部,求w(n)。 (3)若有限长序列q(n)的3点DFT是Q(k)?X(2k),k=0,1,2,求q(n)。

【解答】

思路:这是对DFT进行变换后求IDFT。考虑到IDFT和DFT定义的对称性,可以在DFT的基础上略加调整既可用于计算。

首先,∵x(n)?4?(n)?3?(n?1)?2?(n?2)??(n?3),

∴它的6点采样是序列是x(n)?{4,3,2,1,0,0}。值得指出的是,在Matlab中,数组的序号是从1开始的(而在信号分析中习惯从0开始),不过我在上面编程时已考虑到这一情况,具体可见实验报告最后的“附录”。 首先生成x(n)的6点DFT,再按照各小题分别转换,最后求相应的IDFT。 M文件源代码:

i) 输出x(n)的6点DFT的函数:

function X = ExportDFT(N,x)

%This is a DFT function that exports the solution to vector X.

k=(0:N-1); Tfine variable k for DFT.

X=zeros(size(k)); Tfine the initial valves of X. for i=0:N-1

X=X+x(i+1)*exp((-1)*j*2*k*pi/N*i); %It is the definition of DFT. end end

ii)算第(1)小题的Y(k)的函数: function Y = Convertor1(X)

%This is a mathematical convertor for the subproblem (1). for k=1:6

Y(k)=exp((-j)*2*pi*(-4*(k-1))/6)*X(k);

%Here we must use (k-1),because in Matlab index starts at 1. end end

iii)算第(2)小题的W(k)的函数: function W = Convertor2(X)

第 18 页 共 18 页

%This is a mathematical convertor for the subproblem (2). W=real(X);?quire the real part of X. end

iv)算第(3)小题的Q(k)的函数: function Q = Convertor3(X)

%This is a mathematical convertor for the subproblem (3). Q=zeros(3);% Detailed explanation goes here for tmp=1:3

Q(tmp)=X(2*tmp); end end

v)输出IDFT的函数:

function x = ExportIDFT(N,X)

%This is the IDFT function for my experiment. n=(0:N-1);Tfine variable n for IDFT.

x=zeros(size(n));Tfine the initial valves of x. for k=0:N-1

x=x+X(k+1)*exp(j*2*k*pi/N*n); end x=x/N;

a=real(x);%We MUST use real(x), though we may ALREADY know x is real. %It's caused by numeric calculation (not analytic calculation) in Matlab. stem(n,a,'.','MarkerSize',18);xlabel('n');ylabel('Solution'); end

命令窗口中的运行及其结果: >> x=[4,3,2,1,0,0]; >> X=ExportDFT(6,x);

第(1)小题

>> Y=Convertor1(X); >> y=ExportIDFT(6,Y) y =

Columns 1 through 4

0.0000 + 0.0000i 0.0000 + 0.0000i 4.0000 + 0.0000i 3.0000 + 0.0000i

%虚部都是0,说明是实数

Columns 5 through 6

2.0000 + 0.0000i 1.0000 - 0.0000i %虚部都是0,说明是实数

%事实上,在Matlab中,由于数值计算的截断误差,对原复数做乘法后,答案的虚部可能有一极小的量。

第 19 页 共 19 页

43.532.5Solution21.510.50-0.5答案:y(n)={0,0,4,3,2,1}

图3.5.1 输出的y(n),这是对x(n)的圆周移位。

012n345

第(2)小题

>> W=Convertor2(X); >> w=ExportIDFT(6,W) w =

Columns 1 through 4

4.0000 + 0.0000i 1.5000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i

%虚部都是0,说明是实数

Columns 5 through 6

1.0000 + 0.0000i 1.5000 + 0.0000i %虚部都是0,说明是实数;

%事实上,在Matlab中,由于数值计算的截断误差,对原复数做乘法后,答案的虚部可能有一极小的量。

43.532.5Solution21.510.50答案:w(n)={0,0,4,3,2,1}

图3.5.2 输出的w(n)。

012n345

第(3)小题

>> Q=Convertor3(X); >> q=ExportIDFT(6,Q) q =

Columns 1 through 4

1.5000 - 0.0000i -0.1667 - 0.2887i 0.7500 - 1.2990i 0.8333 - 0.0000i Columns 5 through 6

-0.5000 - 0.8660i 1.0833 - 1.8764i

这里的答案都是幅值、相位均非0的复数,而教材(实验指导第109页)并未要求作图,这里略去。

第 20 页 共 20 页


离散傅里叶变换和快速傅里叶变换(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:机电工程系09级机电一体化及09应用电子专业毕业设计安排

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: