
数字信号处理课程设计正余弦信号的谱分析.doc
10页成 绩指导教师:日 期:?数字信号处理?课程设计题 目: 正余弦信号的谱分析 姓 名: 院 系: 电子信息工程系 专 业: 通信工程 班 级: 通信091 学 号: 指导教师: 2021年 6 月正余弦信号的谱分析〔电子信息工程学系 指导教师:留黎钦〕中文摘要:使用MATLAB软件,通过编写程序,对正余弦信号进行傅里叶变换用DFT和FFT实现对正余弦信号的谱分析,并且分析DFT长度对频谱的影响关键词:matlab; 傅里叶变换; DFT; FFT; 一、概述数字信号处理方法的一个重要用途是在离散时间域中确定一个连续时间信号的频谱,通常称为频谱分析,更具体的说,它也包括确定能量谱或功率谱数字频谱分析可以应用在很广阔的领域二、设计目的1.用DFT实现对正余弦信号的谱分析;2.观察DFT长度和窗函数长度对频谱的影响;3.对DFT进行谱分析中的误差现象获得感性认识。
三、设计原理1、谱分析原理频谱分析方法是基于以下的观测:如果连续时间信号是频带有限的,那么对其离散时间等效信号的DFT进行谱分析它的离散时间等效物g(n)应当能给出(t)频谱的一个很近似的估计两者之间只差一个带数因子T然而,在大多数情况下,是在范围内定义的,因此也就定义在的无线范围内,要估计一个无限长信号的频谱是不可能的实用的方法是:先让模拟连续信号通过一个抗混叠的模拟滤波器,然后把它采样成一个离散序列假定反混叠滤波器的设计是正确的,那么混叠效应可以忽略,又假设A/D变换器的字长足够长,那么A/D变换中的量化噪声也可忽略假定表征正余弦信号的根本参数,如振幅、频率和相位不随时间改变,那么此信号的傅立叶变换可以用计算它的DTFT得到 〔1〕实际上无限长序列首先乘以一个长度为M的窗函数,使它变成一个长为M的有限长序列,,对求出的DTFT 应该可以作为原连续模拟信号的频谱估计,然后求出在区间等分为N点的离散傅立叶变换DFT为保证足够的分辨率,DFT的长度N选的比窗长度M大,其方法是在截断了的序列后面补上N-M个零。
计算采用FFT算法更详细地考察一下上面的方法这样才能了解它的限制,并正确利用它所得出的结果特别要分析加窗的效果,以及和由DFT样本来估计DTFT频率采样值的问题在讨论由来估计频谱和时,需要重新探讨一下这些变换和它们所对应的频率之间的关系,R点的DFT与它的DTFT的关系为:=| (2)归一化的数字角频率和DFT样本序号k的关系为 = (3)同样的,模拟角频率和DFT样本序号k的关系为 (4)其中T是采样周期为了能正确地解释一DFT为根底的频谱分析结果,首先来考虑单频率正余弦序列的频谱分析设一个具有数字角频率的余弦信号为: (5)把这个序列表为: (6)查表得知它的DTFT为: (7)因此,它是一个以2为周期的的周期信号,每个周期中包含两个冲击信号。
在的频率范围内,处的冲击具有复数幅特性,而在处具有的复数幅特性为了用DFT分析个g(n)的频域特性,取g(n)的一个有限长序列 (8)2、MATLAB函数介绍1. 输入函数input( ) 格式:R=input(string) 功能:在屏幕上显示input括号后的’string’内容,提示用户从键盘输入某值,并将输入的值赋给R例如,在命令窗口输入R=input(‘How many apples’) 会显示How many apples 从键盘输入 3 会显示 R=32. 一维快速傅里叶变换函数fft( ) 格式: y=fft(x) y=fft(x,n) 说明:fft函数用于计算矢量或矩阵的傅里叶变换3.幅度函数abs( ) 格式:abs〔X〕 功能:对X取绝对值,当X是复数时,得到X的复模值四、设计过程1.理解题目,编写程序;2.运行程序;3.输入相关参数;4.观察图像设计过程框图:五、设计内容1.对一个频率为10Hz,采样频率为64Hz的32点余弦序列进行谱分析,画出其频谱图;假设将频率改为11Hz,其他参数不变,重新画出该序列的频谱图,观察频率泄漏现象,分析原因。
〔1〕.频率为10Hz,采样频率为64Hz的32点余弦序列clear all;close all;clc;N=32;n=0:N-1;Fs=64;T=1/Fs;x1=cos(10*2*pi*n*T); %定义10Hz序列x1k=0:N-1;X1=abs(fft(x1,N)); %求余弦序列x1的32点FFTsubplot(1,2,1);stem(n,x1); %绘制10Hz序列x1的波形xlabel('n');ylabel('x1(n)'); title('余弦序列(f=10Hz)');subplot(1,2,2);stem(k,X1); %绘制序列x1的幅频特性曲线xlabel('k');ylabel('X1(k)'); title('32点FFT幅频曲线(f=10Hz)');图1. 频率为10Hz,采样频率为64Hz的32点余弦序列频谱图〔2〕频率为11Hz,采样频率为64Hz的32点余弦序列clear all;close all;clc;N=32;n=0:N-1;Fs=64;T=1/Fs;x2=cos(11*2*pi*n*T); %定义11Hz序列x2k=0:N-1;X2=abs(fft(x2,N)); %求余弦序列x2的32点FFTsubplot(1,2,1);stem(n,x2); %绘制11Hz序列x2的波形xlabel('n');ylabel('x2(n)'); title('余弦序列(f=11Hz)');subplot(1,2,2);stem(k,X2); %绘制序列x2的幅频特性曲线xlabel('k');ylabel('X2(k)');title('32点FFT幅频曲线(f=11Hz)');图2. 频率为11Hz,采样频率为64Hz的32点余弦序列频谱图分析:由图1可见,它的DFT只有两个点不等于零,这样DFT确实正确地分辨了余弦信号的频率。
但是这样理想的结果是碰巧得到的,因为我们恰好截取了五个完整的余弦周期(f*N/Fs=5)如果截取的不是整数周期,情况就不同了把频率改为11Hz,而采样频率仍为64Hz和窗长度仍为32点,用同样的程序计算此余弦信号的频谱,可以得到,频谱图上有两个较大的峰值,而其他的点上幅度也不再为零因此可以判断,信号的频谱峰值确实位于两者之间本来是单一的11Hz频率的能量会分布到许多DFT频率上的现象称为频率泄漏,来源于截断效应2. 考察DFT的长度对双频率信号频谱分析的影响设待分析的信号为 令两个长度为16的正余弦序列的数字频率为及取N为四个不同值16,32,64,128画出四个DFT幅频图,分析DFT长度对频谱分辨率的影响n=0:15; N1=16;N2=32;N3=64;N4=128;f1=0.22;f2=0.34;x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n); %待分析信号%谱分析X1=abs(fft(x,N1));X2=abs(fft(x,N2));X3=abs(fft(x,N3));X4=abs(fft(x,N4));k1=0:N1-1;k2=0:N2-1;k3=0:N3-1;k4=0:N4-1;subplot(4,2,1),stem(n,x); %绘制序列的波形xlabel('n');ylabel('x1(n)');title('余弦序列');subplot(4,2,2);stem(k1,X1); %绘制N1的幅频特性xlabel('n');ylabel('X(n)'); title('N=16的幅频特性曲线图');subplot(4,2,3),stem(n,x); %绘制序列的波形xlabel('n');ylabel('x1(n)');title('余弦序列');subplot(4,2,4);stem(k2,X2); %绘制N2的幅频特性xlabel('n');ylabel('X(n)'); title('N=32的幅频特性曲线图');subplot(4,2,5),stem(n,x); %绘制序列的波形xlabel('n');ylabel('x1(n)');title('余弦序列');subplot(4,2,6);stem(k3,X3); %绘制N3的幅频特性xlabel('n');ylabel('X(n)'); title('N=64的幅频特性曲线图');subplot(4,2,7),stem(n,x); %绘制序列的波形xlabel('n');ylabel('x1(n)');title('余弦序列');subplot(4,2,8);stem(k4,X4); %绘制N4的幅频特性xlabel('n');ylabel('X(n)'); title('N=128的幅频特性曲线图')图3. N=16的DFT幅频图 图4. N=32的DFT幅频图图5. N=64的DFT幅频图图6. N=128的DFT幅频图分析:采样速率Fs>2fc,谱分辨率F=Fs/N,如果保持采样点数N不变,要提高频谱分辨率〔减小F〕,就必须降低采样频率,采样频率的降低会引起谱分析范围变窄和谱频率混叠失真。
如维持Fs不变,为提高频谱分辨率可以增加采样点数N更长的时域信号能够提供更高的频域分辨率,因为一个N点的时域信号能被分解为N/2+1个余弦信号和N/2+1个正弦信号,N增大那么(N/2+1)也增大,频域间隔(1/2的时域采样频率)/(N/2+1)减小,所以频域分辨率提高了所以利用DFT计算频谱时增加取样点的长度范围可以提高分辨率3. 在上题中。
