美文网首页
数字信号处理实验4:DFT频谱分析

数字信号处理实验4:DFT频谱分析

作者: 小Bill | 来源:发表于2019-05-12 15:17 被阅读0次

%实验4:DFT频谱分析

%设计计算机程序,产生序列并计算序列的FFT和IFFT,绘制其幅频特性和相频特性曲线;

%模拟产生离散系统的输入序列和单位脉冲响应,利用FFT和IFFT算法计算系统的输出响应,分析FFT的计算长度对系统输出响应的影响;

%模拟产生连续时间信号,选取适当的采样频率对其采样,并用FFT算法计算其频谱,分析信号的观测时间长度、FFT的计算长度对信号频谱计算结果的影响。

程序直接复制粘贴跑,程序结果输出截图:第一个要求,略...,第二个要求,L>=N-M+1,这样才能用快速卷积计算线性卷积,主要是第三个要求,分析Sa函数,增加N,提高谱分辨率,增加Tp,减少截断误差。

%1.

xn = [1,1,1,1,1,1];%模拟输入信号

N = 6;

Xk16 = fft(xn,16);

i16 = 0:15;

Xk32 = fft(xn,32);

i32 = 0:31;

figure(1)

subplot(421);stem(i16,Xk16);title("16点DFT的幅频特性图");

subplot(422);stem(i32,Xk32);title("32点DFT的幅频特性图");

subplot(423);stem(i16,angle(Xk16));title("16点DFT的相频特性图");

subplot(424);stem(i32,angle(Xk32));title("16点DFT的相频特性图");

Xn16 = ifft(Xk16);

Xn32 = ifft(Xk32);

subplot(425);stem(i16,Xn16);title("16点IDFT的幅频特性图");

subplot(426);stem(i16,Xn16);title("32点IDFT的幅频特性图");

subplot(427);stem(i16,angle(Xn16));title("16点IDFT的相频特性图");

subplot(428);stem(i32,angle(Xn32));title("32点IDFT的相频特性图");

%2.

M = 5;

n = 0:M-1;

yn = cos(pi*n/10) + cos(2*pi*n/5);%模拟系统函数

ync = conv(xn,yn);

nc = 0:length(ync)-1;

figure(2);

subplot(421);stem(nc,ync);title("卷积法求输入序列的响应");

j = 1;

for i = -3:1:3

    L = M + N -i;

    Xk = fft(xn,L);;

    Yk = fft(yn,L);

    XYk = Xk.*Yk;

    XYik = ifft(XYk);

    h = 0:L-1;

    j = j + 1;

    subplot(4,2,j);stem(h,XYik);title("");title(sprintf('%d点快速卷积',L));

end

%结论:L-M+1点卷积结果不发生重叠

%3

t=0:pi/20:16;

Sa=sin(pi.*(t-4))./(pi*(t-4));

figure(3);

subplot(511);plot(t,Sa);grid on;

Tp1 = 8;

n1 = 0:pi/20:Tp1;

f1 = sin(pi.*(n1-4))./(pi*(n1-4));

Tp2 = 10;

n2 = 0:pi/20:Tp2;

f2 = sin(pi.*(n2-4))./(pi*(n2-4));

N1 = 12000;

N2 = 1200;

%观察时间长度的影响

F1 = fft(f1,N1);

F2 = fft(f2,N1);

k1 = 0:N1-1;

subplot(512);

plot(k1,fftshift(abs(F1))./max(abs(F1)));xlabel('k');ylabel('|F(k)|');

title('不同观测时间长度下FFT的幅频特性');

legend('Tp=8s')

subplot(513);

plot(k1,fftshift(abs(F2))./max(abs(F2)));xlabel('k');ylabel('|F(k)|');

title('不同观测时间长度下FFT的幅频特性');

legend('Tp=10s')

%计算长度的影响

F1 = fft(Sa,N1);

F2 = fft(Sa,N2);

k1 = 0:N1-1;

k2 = 0:N2-1;

subplot(514);

plot(k1,fftshift(abs(F1))./max(abs(F1)));xlabel('k');ylabel('|F(k)|');

title('不同计算长度下FFT的幅频特性');

legend('N = 12000')

subplot(515);

plot(k2,fftshift(abs(F2))./max(abs(F2)));xlabel('k');ylabel('|F(k)|');

title('不同计算长度下FFT的幅频特性');

legend('N = 1200')

相关文章

  • 数字信号处理实验4:DFT频谱分析

    %实验4:DFT频谱分析 %设计计算机程序,产生序列并计算序列的FFT和IFFT,绘制其幅频特性和相频特性曲线; ...

  • Matlab项目:【可视化】数字滤波器分析语音系统

    ->点击访问个人博客地址,相互交流学习<- 数字信号处理大作业:Matlab实现语音分析:加噪声,频谱分析,滤波器...

  • 附录、DFT,DTFT,DFS,FT,FS-草稿

    DFT的最初引入就是为了使数字计算机能够帮助分析连续时间信号的频谱。DFT的快速算法——快速傅里叶变换(FFT)的...

  • 数字信号处理的方法——DFT

    对于我们来说,由于我们用计算机处理离散有限序列比较方便,所以DFT更为常用。 使用DFT对信号进行谱分析的过程:一...

  • 09-28:DFT的Python实现

    上数字信号处理课的时候,仿佛自己是个傻子。 今天讲了DFT,不回顾一下明天就忘了。虽然FS、FT、DTFT、DFS...

  • 自己常用的Mathematica代码

    理论力学辅助: 例子: 大物实验助手: 处理数据: 离散函数频谱分析: 注:正在完善之中 复变函数绘图好帮手: 使...

  • 频谱分析仪和逻辑分析仪的区别

    频谱分析仪是分析高频信号的频率范围及强度的仪器;逻辑分析仪是分析数字信号的高电平与低电平及时间长短的仪器。

  • MATLAB 中进行音频处理

    今天又听到知了叫了,估计又得做实验了。 为了对音频信号进行分析,必须有一个好用的数字信号处理平台,MATLAB 挺...

  • 用FFT实现频谱分析

    频谱分析的目的是通过分析信号的频谱组成,实现对信号特性的分析,便于后续的处理。时域信号一般可分为连续和离散信号,在...

  • overlap 和 加窗分析

    频谱泄露的概念: 音频分析,, 加窗分析

网友评论

      本文标题:数字信号处理实验4:DFT频谱分析

      本文链接:https://www.haomeiwen.com/subject/jcucaqtx.html