离散信号的FFT

离散信号的FFT

  • 我们知道一个信号的傅里叶变换就可以得到该信号的频谱,下面我们就通过matlab具体代码来感受这个过程。

实验分析

信号输入

    t=0:0.01:2;
    x=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)
    plot(x);

fft_原始信号

  • 通过上述代码我们画出一个频率f为50hz(相角-30度)和频率f=100hz(相角90度)叠加的信号。

下面我们对这个信号进行采样:

fs=256;N=256;   %采样频率和数据点数
n=0:1:N-1;t=n/fs;   %时间序列
x=1 + 2*cos(2*pi*50*t-pi*30/180) + 3*cos(2*pi*100*t + pi*60/180); %信号
figure, plot(t, x);

fft-采样后

  • 我们在这里设定采样频率为256hz, 选取256个采样点(方便计算机进行fft运算) 。我们把时间轴(横坐标)压缩到0到255/256这个范围之类。采样呢,就是相当于在连续函数y = 1 + 2*cos(2*pi*50*t-pi*30/180) + 3*cos(2*pi*100*t + pi*60/180)上, 从0秒开始,每隔1/256秒采集一个点,直到255/256秒结束,总共采集256个点的信息。

  • 经过上述的采样后,一个连续的信号就被我们弄成了离散信号啦。相比较于原信号来说,经采样后的信息肯定有一点失真了,如果失真比较严重的话,自然要增加采样频率。

下面我们来对上面离散的信号做256点的fft

y=fft(x,N);    %对信号进行快速Fourier变换
mag=abs(y);     %求得Fourier变换后的振幅
f=n*fs/N;    %频率序列
figure, plot(f,mag);   %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;

这里我解释一下为什么频谱的横坐标设置成f=n*fs/N:我们要保证频谱的横坐标的单位是hz。试想采样频率是fs(hz),一共有N个采样点,那么每一点对应的采样频率的自然是fs/N(hz)啦。

result1

  • 上图是信号的幅频响应图,可见在频率为50和100赫兹时有很大的值,而其余接近为0。也就验证了信号的频率成分。

采样定理

  • 这里的幅频响应为什么是对称的呢?离散信号的傅里叶变换时周期的,信号经过离散化(也就是采样)后,其频谱是原来信号频谱沿着采样频率左右搬移的结果,而这个搬移量就是采样频率fs,下面我们作图说明这点。

sampleP01

  • 在这里我们不光能得到其频谱是周期的,同时观察其正半轴的频谱,还可以得到其第一个对称中心是采样频率的一半。结合之前信号的幅频响应图,由于我们设置的采样频率是256,所以对称中心就是128。
  • 也许你会想到,如果采样频率过小。经过搬移后,和原信号的频谱不就会有重合吗?没错,下面我们画出经过不重叠且是最小的采样频率搬移的结果。

sampleP02

  • 上图的采样频率确实是在不重叠的情况下最小的了,因为再小就重叠了。这里我们可以算出fs=2fmax。所以,要使采样后信号不重叠,其采样频率必须>=2fmax,这就是著名的采样定理。

ifft

  • 回到我们对刚才的信号1 + 2*cos(2*pi*50*t-pi*30/180) + 3*cos(2*pi*100*t + pi*60/180)做fft的结果上去。我们知道其幅频响应会在50和100hz达到一个较大的值。我们观察经过fft后的第50个点的值:221.702503368816 - 128.000000000000i。
    我们求得这个复数值的幅值为:√(221.7平方+128平方)=256
    相角为:arctg(-128/221.7) = -30°
    直流分量是fft后的值是256。
    第100个点的复数算出的幅值是:384
    像角是:180°

  • 直流分量的就是N,50hz对应的幅值为2*N/2,100hz对应的幅值为3*N/2。再根据相位信息我们就可以反推出原始信号啦。

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值