视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
离散信号与系统的频谱分析实验报告
2025-09-29 16:29:05 责编:小OO
文档
实验二  离散信号与系统的频谱分析  

一、实验目的

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的共轭对称性。若,,则:, 。

(2)实序列DFT的性质。若为实序列,则其离散傅里叶变换为共轭对称,即。

(3)实偶序列DFT的性质。若为实偶序列,则其离散傅里叶变换为实偶对称,即。

(4)实奇序列DFT的性质。若为实奇序列,则其离散傅里叶变换为纯虚奇对称,即。

2.利用DFT计算线性卷积

时域循环卷积定理:设有限长序列为和,它们的N点DFT分别为和,如果,则其IDFT为两序列的循环卷积。

循环卷积和线性卷积的关系:循环卷积是线性卷积周期延拓的主值序列。当循环卷积的点数大于等于线性卷积的长度,这时循环卷积等于线性卷积,就可以利用DFT计算线性卷积,方法如图4-1所示。

 L点

 DFT

L点IDFT

x1(n)

y(n)

补L-N

个零点

补L-M

个零点

 L点

 DFT

x2n)

                  图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.1 DFT和FFT运算量比较

计算DFT

计算FFT

复数乘法次数
复数加法次数
           

5.周期图法计算信号功率谱

周期图法是一种估计信号功率谱密度的方法。因为序列的DFT隐含有周期性,所以这种功率谱也有周期性,称为周期图。该方法的优点是能应用离散傅里叶变换的快速算法来进行估值。定义如式(4-1)所示。

               (4-1)

    6.信噪比

设纯净信号为,噪声信号为,带噪信号为,则信噪比的定义如式(4-2)所示,单位为dB。

                 (4-2)

五、实验步骤

1.序列的离散傅里叶变换及分析

分别对复序列,实序列,实偶序列,实奇序列,虚奇序列进行离散傅里叶变换,得到实验结果并对其特点进行分析。实验所需序列自选。

x1n=[1 1 1 1];

x2n=[1 2 3 4];

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=[1 1 1 1];

x2n=[1 2 3 4];

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)

k1=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=、128、256、……

tic

N=256

n=0:N-1;

x=2*cos(0.25*pi*n)+cos(0.65*pi*n);

Y=dft(x,N);

toc

N =

    

时间已过 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=[1 2 3 4 5];

x2=[5 4 3 2 1];

xk1=x1+1i*x2;

xk2=x1-1i*x2;

Xk1=fft(xk1,);

Xk2=fft(xk2,);

P=1/.*Xk1.*Xk2;

subplot(2,1,1)

stem(N,abs(P))

subplot(2,1,2)

stem(N,angle(P))

6.利用FFT求信号频谱及分析采样频率对频谱的影响。

设模拟信号,以  进行取样,求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)频谱的内插函数恢复方法。

利用频域采样及内插公式实现离散谱到连续谱的转换。

clear;

N=;

Fs=6000;

xt=zeros(1,401);

for m=-N/2:N/2-1

    xn(m+N/2+1)=exp(-1000*abs(m/Fs));

    for k=0:400

        t=(k-200)/30000;

        if pi*(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('Start speaking.')

recordblocking(recObj, 5);

disp('End of Recording.');

% 回放录音数据

play(recObj);

% 获取录音数据

myRecording = getaudiodata(recObj);

% 绘制录音数据波形

figure(1)

plot(myRecording);

%画出语音信号频谱

figure(2)

Y=fft(myRecording);

plot(abs(Y))

 下载本文

显示全文
专题