数字信号处理(1)- 频谱分析

离散傅里叶变换

离散傅里叶变换(DFT)是傅里叶变换在时域和频域上都呈现离散的形式,将时域信号的采样变换为在频域的采样。在实际应用中通常采用快速傅里叶变换FFT)以高效计算DFT。

DFT的定义为:
在这里插入图片描述

其中N为DFT的点数,点数越大频率分辨率越高,k=0,1,2,…,N-1。

离散傅里叶变换可以看做是离散时域信号与不同频率的离散正弦信号进行相关运算得到相应的频率对应的幅值(复数)。

MATLAB程序

clc
clear
close all
 
 
N=2048;% ADC采样点数
Fs=1e6;% ADC采样率
t=(0:N-1)/Fs;% 采样时间序列
 
F1=60e3;% 信号频率1
F2=80e3;% 信号频率2
signal = cos(2*pi*F1 * t) + cos(2*pi*F2 * t);
 
figure;
plot(t,signal);
axis([0 inf -2.2 2.2]);
xlabel('时间/s');
title('时域信号');
 
% FFT
NN=2048;% NN点DFT
XN=fft(signal,NN)/NN;% 计算signal的NN点快速傅里叶变换
f0=Fs/NN;       % 频率分辨率
f=(0:NN-1)*f0;  % 频率序列
fk=(0:NN-1);    % 谱线序列
A=abs(XN);      % 幅值序列
Phase=atan(-real(XN)./imag(XN))/pi*180;  % 相位序列
 
figure;
subplot(2,1,1);
plot(f(1:NN/2),A(1:NN/2));
xlabel('频率/Hz');ylabel('幅度');
% axis([50e3 90e3 0 inf]);
title('FFT幅频谱');
subplot(2,1,2);
plot(f(1:NN/2),Phase(1:NN/2));
xlabel('频率/Hz');ylabel('相位/°');
title('FFT相频谱');
 
 
figure;
subplot(2,1,1);
plot(f(1:NN/2),real(XN(1:NN/2)));
xlabel('频率/Hz');
title('频谱实部');
subplot(2,1,2);
plot(f(1:NN/2),imag(XN(1:NN/2)));
xlabel('频率/Hz');
title('频谱虚部');

运行结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值