信号及系统的谱分析.docx
《信号及系统的谱分析.docx》由会员分享,可在线阅读,更多相关《信号及系统的谱分析.docx(15页珍藏版)》请在冰点文库上搜索。
![信号及系统的谱分析.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/38edd090-6300-4b54-9852-367278c624af/38edd090-6300-4b54-9852-367278c624af1.gif)
信号及系统的谱分析
信号及系统的谱分析
数字信号处理实验一:
信号及系统的谱分析
学号姓名
注:
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的基本计算公式如下:
信号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来计算,从而可以大大提高运算速度