第34章 离散傅里叶变换及快速算法与应用.docx
- 文档编号:9507899
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:13
- 大小:100.57KB
第34章 离散傅里叶变换及快速算法与应用.docx
《第34章 离散傅里叶变换及快速算法与应用.docx》由会员分享,可在线阅读,更多相关《第34章 离散傅里叶变换及快速算法与应用.docx(13页珍藏版)》请在冰豆网上搜索。
第34章离散傅里叶变换及快速算法与应用
成绩:
《数字信号处理》
作业与上机实验
(第三、四章)
班级:
学号:
姓名:
任课老师:
完成时间:
2014.10.27
信息与通信工程学院
2013—2014学年第2学期
第3-4章离散傅里叶变换及快速算法与应用
1、对信号在x(n)=0.01n,n=0,1,2....N-1,应用FFT程序求N=128点的信号的FFT。
画出其幅度谱与相位谱。
(1)代码如下:
n=0:
127;
x=0.01*n;
stem(n,x);
x=fft(n,128);
A=abs(x);
plot(A);
figure
(2)
P=angle(x);
plot(P);
figure(3)
plot(x);
(2)x(n)的幅度谱与相位谱如图1.1
图1.1x(n)的幅度谱与相位谱
2、一个由40Hz和100Hz正弦信号构成的信号,受零均值随机噪声的干扰(噪声服从标准正态分布,由randn函数产生,n(t)=randn(m,n)返回一个m*n的随机矩阵),即
。
数据采样率为500Hz,试用FFT函数来分析其信号频率成分。
①求其幅度频谱,从频谱图(横坐标以HZ为单位,用plot函数画图)中能否观察出信号的2个频率分量?
(1)代码如下:
n=0:
100;
t=1/500;
n=(2*pi*n/1000)/(t*2*pi);
x=sin(2*pi*100*t)+sin(2*pi*40*t)+randn(1,101);
stem(n,x);
figure
(1)
x=fft(x,t);
A=abs(x);
plot(A)
figure
(2)
P=angle(x);
plot(P)
figure(3)
plot(x)
(2)频谱图如2.1
figure
(1)
figure
(2)
figure(3)
很难观察出频率分量
②提高采样点数,再求该信号的幅度频谱图,此时幅度频谱发生了什么变化?
信号的2个模拟频率和数字频率各为多少?
FFT频谱分析结果与理论上是否一致?
(1)提高采样点数后的代码如下:
n=0:
5000;
t=1/500;
n=(2*pi*n/1000)/(t*2*pi);
x=sin(2*pi*100*t)+sin(2*pi*40*t)+randn(1,5001);
stem(n,x);
figure
(1)
x=fft(x,t);
A=abs(x);
plot(A)
figure
(2)
P=angle(x);
plot(P)
figure(3)
plot(x)
(2)频谱图如2.2
figure
(1)
figure
(2)
figure(3)
提高采样点数后图像分辨率提高了,更容易看出频率分量,模拟频率大概为0~3Hz,数字频率大概为0~3Hz,fft结果与理论上还是稍微有点区别。
3、研究高密度频谱与高分辨率频谱。
频率分辨率是指所用的算法能将信号中两个靠得很近的谱峰分开的能力。
信号末尾补零由于没有对原信号增加任何新的信息,因此不能提高频率分辨率,但可以减小栅栏效应,所得到的频谱称为高密度频谱。
在维持采样频率不变的情况下,为提高分辨率只能增加采样点数N,此时所得到的频谱称为高分辨率频谱。
设有连续信号
以采样频率
对信号
采样,分析下列几种情况的幅频特性。
调用%FFT库函数
function[Am,pha]=dft(x)
Xk=fft(x);
Am=abs(Xk);
pha=angle(Xk);
1采集数据长度N=16点,做N=16的FFT;采集数据长度N=16点,补零到256点,做256点的FFT;
(1)代码如下:
fs=32000;
N=16;
n=0:
N-1;
xa=cos(2*pi*6.5*10^3*n/fs)+cos(2*pi*7*10^3*n/fs)+cos(2*pi*9*10^3*n/fs);
x=[xa(1:
16),zeros(1,240)];
[Am1,pha1]=dft(xa);
n=[0:
(length(xa)-1)];
w=(2*pi/length(xa))*n;
figure
(1)
plot(w,Am1,'b');
grid;
title('FFTN=16长度16');
xlabel('频率(单位:
pi)');ylabel('|X|');
(2)频谱图如3.1
图3.1
2采集数据长度N=64点,做N=64的FFT;采集数据长度N=64点,补零到256点,做256点的FFT;
(1)代码如下:
fs=32000;
N=64;
n=0:
N-1;
xa=cos(2*pi*6.5*10^3*n/fs)+cos(2*pi*7*10^3*n/fs)+cos(2*pi*9*10^3*n/fs);
x=[xa(1:
64),zeros(1,192)];
[Am2,pha2]=dft(x);
n=[0:
(length(x)-1)];
w=(2*pi/length(x))*n;
figure
(2)
plot(w,Am2,'b');grid;
title('FFTN=64长度64');
xlabel('频率(单位:
pi)');
ylabel('|X|');
(2)频谱图如图3.2
图3.2
3采集数据长度N=256点,做N=16点的FFT。
(1)代码如下:
fs=32000;
N=16;
n=0:
255;
xa=cos(2*pi*6.5*10^3*n/fs)+cos(2*pi*7*10^3*n/fs)+cos(2*pi*9*10^3*n/fs);
[Am1,pha1]=dft(xa);
n=[0:
(length(xa)-1)];
w=(2*pi/length(xa))*n;
figure(3)
plot(w,Am1,'b');
grid;
title('FFTN=16长度256');
xlabel('频率(单位:
pi)');
ylabel('|X|');
(2)频谱图如图3.3
图3.3
4观察以上几幅不同的幅频特性曲线,分析和比较它们的特点,并说明形成的原因。
答:
观察运行结果可知,N=16点时的FFT,由于点数太少,很难反映出频谱的细节特征,只能分辨出两个频率分量。
将16点FFT补零到64点,做64点FFT,由结果可以看出,频率间隔缩小(由2π/16减小为2π/64),得到了比较平滑的连续曲线,此为高密度频谱。
它是由16点经过补零所得到的,并没有增加任何信息,频率分辨率并未提高,仍然只能看出两个频率分量。
第三次做的是16点的FFT,它是由256点经过补零所得到的,分辨率提高,可以清楚看到三根谱线的位置,是为高分辨率频谱。
5注:
在MATLAB中,可用zeros函数实现填零运算,例如x1=[x(1:
1:
16),zeros(1,240)]。
所有频谱图的横坐标以HZ为单位,用plot函数画图。
6一个连续信号含三个频率分量,经采样得以下序列
。
已知N=16,
分别为1/16,1/64,观察其频谱;当N=64,128,
不变,其结果有何不同,为什么?
代码如下:
以N=16f=1/16为例
N=16;
n=0:
N-1;
f=1/16;
xa=sin(2*pi)*0.15*n+cos(2*pi)*(0.15+f)*n+cos(2*pi)*(0.15+2*f)*n;
[Am1,pha1]=dft(xa);
n=[0:
(length(xa)-1)];
w=(2*pi/length(xa))*n;
figure
(1)
plot(w,Am1,'b');
grid;
title('FFT');
xlabel('频率(单位:
pi)');
ylabel('|X|');
N=16,f=1/16如图3.6.1N=16,f=1/64如图3.6.2
图3.6.1
图3.6.2
当N改变,f不变时,结果无变化,因为是由频率决定变化于取点无关。
4、语音信号频谱分析
首先应用录音软件(见下图),录音“我是XXX(学生姓名)”,得到语音数据“录音.WAV”并将“录音.WAV”文件复制到MATLABWORK目录下。
其次在MATLAB环境下,X(n)=wavread('录音.WAV',2048),得到2048点的语音数据X(n),对X(n)进行FFT频谱分析,画出频谱图(横坐标以HZ为单位,用plot函数画图)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第34章 离散傅里叶变换及快速算法与应用 34 离散 傅里叶变换 快速 算法 应用