离散信号与系统的频谱分析实验报告.docx
- 文档编号:6076664
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:18
- 大小:477.34KB
离散信号与系统的频谱分析实验报告.docx
《离散信号与系统的频谱分析实验报告.docx》由会员分享,可在线阅读,更多相关《离散信号与系统的频谱分析实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
离散信号与系统的频谱分析实验报告
实验二离散信号与系统的频谱分析
一、实验目的
1.掌握离散傅里叶变换(DFT)及快速傅里叶变换(FFT)的计算机实现方法。
2.检验序列DFT的性质。
3.掌握利用DFT(FFT)计算序列线性卷积的方法。
4.学习用DFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差,以便在实际中正确应用DFT。
5.了解采样频率对谱分析的影响。
6.了解利用FFT进行语音信号分析的方法。
二、实验设备
1.计算机
2.Matlab软件7.0以上版本。
三、实验内容
1.对不同序列进行离散傅里叶变换并进行分析;DFT共轭对称性质的应用
(通过1次N点FFT计算2个N点实序列的DFT)。
2.线性卷积及循环卷积的关系,以及利用DFT(FFT)进行线性卷积的方法。
3.比较计算序列的DFT和FFT的运算时间。
4.利用FFT实现带噪信号检测。
5.利用FFT计算信号频谱及功率谱。
6.扩展部分主要是关于离散系统采样频率、时域持续时间、谱分辨率等参数之间的关系,频谱的内插恢复,对语音信号进行简单分析。
四、实验原理
1.序列的离散傅里叶变换及性质
离散傅里叶变换的性质:
(1)DFT的共轭对称性。
若x(n)xep(n)xop(n),X(k)DFTx(n),则:
DFT[xep(n)]XR(k),DFT[xop(n)]jXI(k)。
(2)实序列DFT的性质。
若x(n)为实序列,则其离散傅里叶变换X(k)为共轭对称,即X(k)X*(Nk),0kN1。
(3)实偶序列DFT的性质。
若x(n)为实偶序列,则其离散傅里叶变换X(k)为实偶对称,即X(k)X(Nk),0kN1。
(4)实奇序列DFT的性质。
若x(n)为实奇序列,则其离散傅里叶变换X(k)
为纯虚奇对称,即X(k)X(Nk),0kN1。
2.利用DFT计算线性卷积时域循环卷积定理:
设有限长序列为x1(n)和x2(n),它们的N点DFT分别为
X1(k)和X2(k),如果X(k)X1(k)X2(k),则其IDFT为两序列的循环卷积
N1
x(n)IDFT[X(k)]x1(m)x2((nm))NRN(n)。
m0
循环卷积和线性卷积的关系:
循环卷积是线性卷积周期延拓的主值序列。
当循环卷积的点数大于等于线性卷积的长度,这时循环卷积等于线性卷积,就可以利用DFT计算线性卷积,方法如图4-1所示。
x1(n)
补L-N
L点
个零点
DFT
y(n)
L点IDFT
x2n)
补L-M
L点
个零点
DFT
图4-1利用DFT计算线性卷积流程图
3、利用DFT对信号进行谱分析
(1)用DFT进行谱分析的参数选择
用DFT进行连续信号谱分析时参数的选择要遵循一定的原则。
(2)用DFT进行谱分析的误差问题
由于DFT计算频谱仅限于离散点上的频谱,而采样点之间的频谱函数值是不知道的。
因此会引起栅栏效应,解决方法是:
对有限长序列在原数据末尾补0,
对无限长序列增大截取长度和DFT变换区间长度。
由于实际中信号可能是无限长的,而DFT处理的是有限长序列,因此实际中经常要把观测的时域信号截断,相当于时域加窗,会引起截断效应,表现为频谱泄露和谱间干扰,解决的方法是增加窗长、改变窗函数形状。
栅栏效应和谱分辨率是不同的概念,对信号补0,可以减小栅栏效应,但是由于截断已经使频谱变模糊了,所以补零后虽采样间隔变小,但得到的频谱包络仍是变模糊的频谱,因此频率分辨率没有提高,要提高频率分辨率,必须使时域截取长度增加。
4.DFT和FFT的运算量
离散傅里叶变换在实际应用中非常重要,利用它可以计算信号的频谱、功率谱和线性卷积等。
但其计算量太大(与N的平方成正比),很难实时地处理问题,因此引出了快速傅里叶变换(FFT)。
设序列的长度为N,则计算DFT和计算FFT的运算量如表4.1所示。
表4.1DFT和FFT运算量比较
计算DFT
计算FFT
复数乘法次数
N2
N(N1)
复数加法次数
N
2log2N
Nlog2N
5.周期图法计算信号功率谱周期图法是一种估计信号功率谱密度的方法。
因为序列的DFT隐含有周期性,所以这种功率谱也有周期性,称为周期图。
该方法的优点是能应用离散傅里叶变换的快速算法来进行估值。
定义如式(4-1)所示。
121*
P|X(k)|2X(k)X*(k)(4-1)
NN
6.信噪比
设纯净信号为s(n),噪声信号为v(n),带噪信号为x(n),则信噪比的定义如式(4-2)所示,单位为dB
N1
N1|s(n)|2
SNR10logNNn01(4-2)
Nn0
12
五、实验步骤
1.
实奇序列,虚奇序列进行离散傅里叶
实验所需序列自选。
序列的离散傅里叶变换及分析分别对复序列,实序列,实偶序列,变换,得到实验结果并对其特点进行分析
x1n=[1111];
x2n=[1234];xn=x1n+1i*x2n;
Xk=fft(xn,4);
k=0:
3;wk=2*k/4;
subplot(3,2,1);
h=stem(wk,abs(Xk),'o','fill');
set(h,'LineWidth',3)
title('复序列的4点DFT的幅频特性图');
xlabel('\omega/\pi');ylabel('幅度');
Xk1=fft(x1n,4);
k=0:
3;wk=2*k/4;
subplot(3,2,2);
h=stem(wk,abs(Xk1),'o','fill');
set(h,'LineWidth',3)
title('实序列的4点DFT的幅频特性图');
xlabel('\omega/\pi');ylabel('幅度');Xk2=fft(x2n,4);
k=0:
3;wk=2*k/4;
subplot(3,2,1);
h=stem(wk,abs(Xk2),'o','fill');
set(h,'LineWidth',3)
title('复序列的4点DFT的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
Xk3=(0.5)*(Xk+conj(Xk(mod(-k,4)+1)));
k=0:
3;wk=2*k/4;
subplot(3,2,3);
h=stem(wk,abs(Xk3),'o','fill');
set(h,'LineWidth',3)
title('实偶序列的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
Xk4=(0.5)*(Xk-conj(Xk(mod(-k,4)+1)));
k=0:
3;wk=2*k/4;
subplot(3,2,4);
h=stem(wk,abs(Xk4),'o','fill');
set(h,'LineWidth',3)
title('实奇序列的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
Xk5=-1i*(0.5)*(Xk-conj(Xk(mod(-k,4)+1)));
k=0:
3;wk=2*k/4;
subplot(3,2,5);
h=stem(wk,abs(Xk5),'o','fill');
set(h,'LineWidth',3)
title('虚奇序列的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
2.利用共轭对称性,设计高效算法计算2个N点实序列的DFT。
用一个N点FFT计算两个长度为N的实序列N点离散傅里叶变换,并将结果和直接使用两个N点DFT得到的结果进行比较。
x1n=[1111];
x2n=[1234];
xn=x1n+1i*x2n;
Xk=fft(xn,4);
k=0:
3;wk=2*k/4;
subplot(3,2,1);
h=stem(wk,abs(Xk),'o','fill');
set(h,'LineWidth',3)
title('xn的4点DFT的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
Xk3=(0.5)*(Xk+conj(Xk(mod(-k,4)+1)));
k=0:
3;wk=2*k/4;
subplot(3,2,2);
h=stem(wk,abs(Xk3),'o','fill');
set(h,'LineWidth',3)
title('经计算的X1k的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
Xk4=-1i*(0.5)*(Xk-conj(Xk(mod(-k,4)+1)));
k=0:
3;wk=2*k/4;
subplot(3,2,3);
h=stem(wk,abs(Xk4),'o','fill');
set(h,'LineWidth',3)
title('经计算的X2k的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
Xk1=fft(x1n,4);
k=0:
3;wk=2*k/4;
subplot(3,2,4);
h=stem(wk,abs(Xk1),'o','fill');
set(h,'LineWidth',3)
title('x1n的4点DFT的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
Xk2=fft(x2n,4);
k=0:
3;wk=2*k/4;
subplot(3,2,5);
h=stem(wk,abs(Xk2),'o','fill');
set(h,'LineWidth',3)
title('x2n的4点DFT的幅频特性图');xlabel('\omega/\pi');
ylabel('幅度');
3.线性卷积及循环卷积的实现及二者关系分析计算两序列的线性卷积及循环卷积,循环卷积采用2种计算方法(时域、频域方法)。
设序列x1长度为M,序列x2长度为N,循环卷积长度为L,分别计算L大于、等于、小于(M+N-1)时的循环卷积。
序列x1、x2、L自选,得到实验结果并对线性卷积及循环卷积的关系进行分析。
x1=[1,2,3,4,5,6];
x2=[1,2,3,4,5];
N=12;
y=circonv(x1,x2,N);
subplot(3,1,1)
stem(x1)
subplot(3,1,2)
stem(x2)subplot(3,1,3)
stem(y)
N=8
N=12k1=1:
6;
f1=[1,2,3,4,5,6];
k2=1:
5;
f2=[1,2,3,4,5];
[f,k]=lsjuanji(f1,f2,k1,k2);
subplot(3,1,1)
stem(f1)
subplot(3,1,2)
stem(f2)
subplot(3,1,3)
stem(f)
线性卷积
4.比较DFT和FFT的运算时间。
(1)自行选择进行计算的序列(或产生随机序列)。
(2)利用计时函数tic、toc,计算点数N=64、128、256、
tic
N=256n=0:
N-1;
x=2*cos(0.25*pi*n)+cos(0.65*pi*n);
Y=dft(x,N);
toc
64
时间已过0.100923秒。
>>Untitled
N=
128
时间已过0.016722秒。
>>Untitled
N=
256
时间已过0.197153秒。
tic
N=256;
n=0:
N-1;
x=2*cos(0.25*pi*n)+cos(0.65*pi*n);
Y=fft(x,N);
toc
时间已过0.920454秒。
>>Untitled
时间已过0.000888秒。
>>Untitled
时间已过0.002787秒。
5.利用FFT计算信号功率谱。
自行设计信号,利用周期图法实现信号功率谱并画图
N=0:
1:
63;x1=[12345];x2=[54321];xk1=x1+1i*x2;xk2=x1-1i*x2;Xk1=fft(xk1,64);Xk2=fft(xk2,64);P=1/64.*Xk1.*Xk2;subplot(2,1,1)stem(N,abs(P))subplot(2,1,2)stem(N,angle(P))
6.利用FFT求信号频谱及分析采样频率对频谱的影响。
设模拟信号x(t)3*cos(8t)6cos(20t),以t0.01n0nN1进行取样,求N点DFT的幅值谱(N分别取50,256),利用FFT实现。
分析信号频谱所对应频率轴的数字频率和频率之间的关系。
在截取长度不变的条件下改变采样频率,观察信号频谱的变化,分析产生变化的原因。
N=256;
n=0:
N-1;
t=0.01*n;
x=3*cos(8*pi*t)+6*cos(20*pi*t);
X=fft(x,N);
stem(n,x)
7.利用FFT分析信号频率成分。
对信号加入白噪声(0.2*randn(1,N)),比较有无噪声时的信号谱,加大噪声到2*randn(1,N)和10*randn(1,N),计算信噪比,画出并比较不同噪声下时域波形和频谱,讨论噪声对信号分析的影响。
信号自行选择。
程序:
w=randn(1,80);
n=1:
80;
x=cos(0.04*pi*n);
subplot(2,2,1);
stem(n,x);
title('余弦信号cos(0.04*pi*n)');
xlabel('2*pi\\omega/');
ylabel('幅度')y=(cos(0.04*pi*n)+(0.2)*w(1,n))*1;subplot(2,2,2);
stem(n,y);
);
title('带噪信号cos(0.04*pi*n)+(0.2)*w(1,n)'xlabel('2*pi\\omega/');
ylabel('幅度')y1=(cos(0.04*pi*n)+
(2)*w(1,n))*1;
subplot(2,2,3);
stem(n,y1);
title('带噪信号cos(0.04*pi*n)+
(2)*w(1,n)');xlabel('2*pi\\omega/');
ylabel('幅度')y2=(cos(0.04*pi*n)+(10)*w(1,n))*1;
subplot(2,2,4);
stem(n,y2);
title('带噪信号cos(0.04*pi*n)+(10)*w(1,n)');xlabel('2*pi\\omega/');
ylabel('幅度')
8.创新训练拓展内容
1)信号持续时间、频谱分析范围、采样点数和谱分辨率的关系
1)已知信号最高频率,谱分辨率,通过程序确定采样频率,采样点数,时域最小记录时间(信号持续时间),时域最大采样间隔。
设F(谱分辨率)≤10Hz,信号最高频率fc=2.5kHz.
Tp(最小记录时间)≥1/F=1/10=0.1s
Tmax(最大采样间隔)=1/Fsmin=1/(2fc)=1/(2*2500)=0.2*10-3
Nmin(最小采样点数)=2fc/F=2*2500/10=500
Fft进行频谱分析,需要的点数为2的n次幂,距20最近的2的整数次幂为2^5=32
2)改变时域记录时间(小于,大于最小记录时间),分析相应信号谱分辨率不同。
F≥1/Tp
3)若要提高谱分辨率或谱分辨率不满足要求,而又要保持谱分析范围不变,采用适当的方法实现上述要求。
提高谱分辨率,最小记录时间变大(Tp≥1/F)。
若fc(最高频率)不变,则最少采样点数增加。
(2)频谱的内插函数恢复方法。
利用频域采样X(k)及内插公式实现离散谱到连续谱的转换。
clear;
N=64;
Fs=6000;
xt=zeros(1,401);
form=-N/2:
N/2-1
xn(m+N/2+1)=exp(-1000*abs(m/Fs));
fork=0:
400
t=(k-200)/30000;
ifpi*(t-m/Fs)*Fs==0
xt(k+1)=xt(k+1)+exp(-1000*abs(m/Fs));
else
xt(k+1)=xt(k+1)+exp(-1000*abs(m/Fs))*sin(pi*(t-m/Fs)*
Fs)./(pi*(t-m/Fs)*Fs);
end;
end;
end
figure
(1)subplot(2,1,1)stem((0:
N-1)-N/2,xn);title('离散')
subplot(2,1,2)plot(xt)title('连续')
(3)对语音信号进行简单分析。
对采集(或给定)的语音信号进行谱分析,获得采样频率,画出语音信号的波形及频谱,并分析语音信号的频率分布特点。
nChannels=1;
Fs=4000;
nBits=8;
recObj=audiorecorder(Fs,nBits,nChannels);disp('Startspeaking.')recordblocking(recObj,5);
disp('EndofRecording.');
%回放录音数据
play(recObj);
%获取录音数据
myRecording=getaudiodata(recObj);
%绘制录音数据波形
figure
(1)plot(myRecording);
%画出语音信号频谱
figure
(2)Y=fft(myRecording);
plot(abs(Y))
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 信号 系统 频谱 分析 实验 报告