信号及系统的谱分析.docx
《信号及系统的谱分析.docx》由会员分享,可在线阅读,更多相关《信号及系统的谱分析.docx(16页珍藏版)》请在冰点文库上搜索。
信号及系统的谱分析
数字信号处理实验一:
信号及系统的谱分析
学号
注:
1〕此次实验作为?
数字信号处理?
课程实验成绩的重要依据,请同学们认真、独立完成,不得抄袭。
2〕请在授课教师规定的时间内完成;
3〕完成作业后,请以word格式保存,文件名为:
学号+
4〕请通读全文,依据第2及第3两局部内容,认真填写第4局部所需的实验数据,并完成实验分析。
5〕需将这次实验的内容给出一个纸质报告〔31-40号〕。
全体将报告的电子版交给班长以便实验结束后刻成光盘
1.实验目的
(1)熟练利用DFT计算公式对信号进行谱分析,加深DFT算法原理和根本性质的理解。
(2)利用卷积方法计算信号经过离散系统输出响应,并观察输出信号的频谱变化。
(3)熟悉FFT算法原理和FFT子程序的应用,掌握利用函数fft.m对离散信号及系统响应进行频域分析。
(4)理解并掌握利用FFT实现线性卷积的方法。
了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
2.实验原理与方法
1〕离散傅里叶变换〔DFT〕的根本原理
离散傅里叶变换〔DFT〕是分析有限长序列频谱成分的重要工具,在信号处理的理论上有重要意义。
由于其可以在计算机上实现谱分析、卷积、相关等主要的信号频谱分析过程,因此DFT的快速算法得到了广泛的应用。
实现DFT的根本计算公式如下:
2〕系统响应信号的时域分析〔卷积运算〕
离散信号输入离散系统后,假设系统起始状态为0,那么系统的响应输出是
其方框图表示如下:
图1
在matlab中计算卷积的函数为y=conv(x,h)。
3〕FFT实现线性卷积的快速计算
设一离散线性移不变系统的冲激响应为,长度为L点;其输入信号为,长度为M点;其输出为,长度为M+L-1点。
当满足一定条件时,有限长序列的线性卷积可用圆周卷积和来代替,而圆周卷积可用FFT来计算,从而可以大大提高运算速度。
用FFT实现线性卷积计算的具体步骤:
(1)有限长序列和补零值点,至长度为大于或等于M+L-1点,且为,
r为整数。
(2)求,N点DFT,用FFT快速算法实现;
(3)求,N点DFT,用FFT快速算法实现;
(4)计算;
(5)求N点IDFT,用IFFT快速算法完成。
3.实验内容及步骤
某系统的单位样值响应为:
,
信号x〔n〕=〔SIN〔ω1n〕+COS〔ω2n〕〕R1023〔n〕,
输入该系统后,输出的响应信号为y(n)。
请认真复习离散信号与系统、线性卷积、序列的傅里叶变换及性质等有关内容,阅读上述实验原理与方法,编制2个程序文件完成如下2局部实验内容。
一)利用函数y=conv(x,h)求解响
应信号y(n)〔流程图见图2〕
要求:
a〕利用函数y=conv(x,h)
求解响应信号y(n);
b)利用DFT的计算
公式对x(n),h(n)和y(n)DFT计算;
图2
在第一个图形框内给出x(n)的波形图和频谱图X(K),在第二个图形框内给出h(n)的波形图和频谱图H(K),在第三个图形框内给出y(n)的波形图和频谱图Y(K);在第四个图形框内给出X(K),H(K)和Y(K)的频谱图,并分析这3张频谱图的关系。
c)给出程序内容
d)统计程序运行时间T1。
注意:
a〕dft.m为学生自己编写的自定义函数文件,根据DFT运算的计算公式完成
xk=DFT〔xn〕功能,xk为时间序列xn的DFT变换xk。
b〕dft.m可参考<数字信号处理>教材P117的例题3-6自行理解并修改为函数文件
二〕利用FFT实现线性卷积计算〔流程图见图3〕
要求:
a〕利用FFT实现线性卷积计算的步骤编写程序求解y(n)
在第一个图形框内给出x(n)的波形图和频谱图X(K),在第二个图形框内给出h(n)的波形图和频谱图H(K),在第三个图形框内给出y(n)的波形图和频谱图Y(K);在第四个图形框内给出X(K),H(K)和Y(K)的频谱图,并分析这3张频谱图的关系。
c)给出程序内容
d)统计程序运行时间T2。
图3
4.实验数据及分析
实验数据:
一、利用函数y=conv(x,h)求解响应信号y(n)
1〕将yn1和Xk1、Hk1及Yk1存为dft1.mat文件上交;
2〕按要求给出相关的图形xn1和Xk1、hn1和Hk1及yn1和Yk1
3〕程序内容:
〔包括主程序和函数文件dft.m〕
clc,close,clear
tic
n=0:
1022;
W1=0.065;W2=0.35;
x=(sin(W1*pi*n)+cos(W2*pi*n));
figure
(1);
plot(x);title('xn');
XK1=dft(x);
figure
(2)
plot(abs(XK1));title('XK');
m=0:
1000;wc=0.165;
h=wc*sinc(wc*(m-500));
figure(3);
plot(h);title('hn');
HK=dft(h);
figure(4),
plot(abs(HK));title('HK');
y=conv(x,h);
Yk=dft(y);
figure(5);
plot(abs(Yk));title('YK');
figure(6);
plot(y);
toc
functiony=dft(x)
%clc;close;clear
%x=[123]
N=length(x);
n=1:
N;
k=1:
N;
nk=(n-1)'*(k-1);
WN=exp(-j*2*pi/N);
Wnk=WN.^nk;
y=x*Wnk;
4〕运行时间T1=13.719
二、利用FFT实现线性卷积计算
1〕将yn2和Xk2、Hk2及Yk2存为fft1.mat文件上交;
2〕按要求给出相关的图形xn2和Xk2、hn2和Hk2及yn2和Yk2
3〕程序内容:
〔主程序〕
clc,close,clear
tic
n=0:
1022;N=2048;
W1=0.065;W2=0.35;
x=(sin(W1*pi*n)+cos(W2*pi*n));
figure
(1);
plot(x);title('xn');
XK=fft(x,N);
figure
(2)
plot(abs(XK));title('XK');
m=0:
1000;wc=0.165;
h=wc*sinc(wc*(m-500));
figure(3);
plot(h);title('hn');
HK=fft(h,N);
figure(4),
plot(abs(HK));title('HK');
Yk=XK.*HK;
figure(5);
plot(abs(Yk));title('YK');
y=ifft(Yk,N);
figure(6);
plot(y);
toc
4〕运行时间T2=0.109
实验分析:
1)假设二〕中FFT的点数N取值比L+M-1小,那么实验结果是否正确,为什么?
2〕比拟一〕和二〕两种方法所得结果y(n)长度是否相同,为什么?
3〕比拟运行时间T1和T2,给出两者数值不同的主要原因;
4〕改变ω1和ω2的值来看结果,并分析所得的结果
答:
1〕不正确,fft运算当满足N>M+L-1时,有限长序列的线性卷积可用圆周卷积和来代替,否那么波形会产生失真。
2〕不相同,fft运算的长度应为2的L次方,长度N=2048>dft运算的长度。
3〕当满足一定条件N>M+L-1时,有限长序列的线性卷积可用圆周卷积和来代替,而圆周卷积可用FFT来计算,从而可以大大提高运算速度