利用FFT 及 IFFT实现傅立叶正反变换

利用FFT 及 IFFT实现傅立叶正反变换

           


貌似是很久没有写日志了,前段时间一直很想写关于矩阵特征值在迭代算法中的应用,也自己展望了一下可以从另一个角度来分析Turbo码中的迭代算法。但是,梦想都给人以美好的幻觉,现实逼迫你不得不踏实的做好手头的工作,还是从最基本的最重要的傅立叶正反变换说起。

       毕业设计貌似也跟仿真有关,所以重拾matlab来做一些小的仿真,先说说利用FFT 和 IFFT来实现傅立叶正反变换吧。看了很多资料,网上这方面的代码我觉得都太凌乱,没有把问题说清楚,有些直接就是错误的。下面分别以例子来说明:

  

例1:求在区间[-1,1]间的矩形信号的傅立叶变换。

(1)利用抽样产生离散时间

<span style="font-size:18px;">fs = 10;
ts = 1/fs;%时域抽样间隔
t = [-5:ts:5];
x = zeros(size(t));
x(41) = 0.5;
x(42:60) = ones(1,19);
x(61) = 0.5;
%x = 2*sinc(2*t);
%绘制时域波形
subplot(211)
plot(t,x);
title('矩形波时域图像');
xlabel('t');
ylabel('x(t)时域大小');</span>
 (2)FFT算法实现(核心关键)

       核心解释:按ts的间隔(ts = 1/fs)对时间域抽样N点并且做FFT算法后,得到的是对应与频域[0,fs]间的N个值,频率分辨率为df = fs/N;同时我们知道fs其实对应着0频率,fs/2对应着-fs/2即有一个频率反转fftshift函数

<span style="font-size:18px;">N = 1024;%所做的FFT点数,2的次幂能实现快速算法
X = fft(x,N);%求得x(n)的DFT结果
X = X/fs;%由于时域抽样会有一个 1/Ts的衰减,所以必须乘以Ts也即除以fs
df = fs/N;%频率分辨率
f = [0:df:df*(N-1)] - fs/2;%频率倒转

%绘制频谱图
subplot(212)
plot(f,fftshift(abs(X)));%把数据‘循环倒转’
title(‘傅立叶正变换’);
xlabel(‘频率’)</span>结果如下:


  注:由于时域采样点较少,所以时域波形略有失真



例二:把上述矩形波傅立叶变换F(f) = 2*sinc(2f)用ifft实现傅立叶反变换,意思变换到矩形波时域图像。

  (1)产生频域抽样波形

 


 
 
  1. <span style="font-size:18px;">T = 10;%频域采样对应的时域 平移周期
  2. fc = 1/T;%频率抽样间隔
  3. ff = [-10:fc:10];%
  4. F = 2*sinc(2*ff);%矩形波的频谱
  5. figure(2)
  6. subplot(211)
  7. plot(ff,F);
  8. title('频域采样序列波形')
  9. xlabel('f')
  10. ylabel('频率采样大小') </span>
  (2)IFFT算法实现

         核心:还是一样,先进行IFFT计算,然后实现时域倒转,这里要注意从频域到fft有一个尺度变换存在,即频域抽样点要乘以 频域总宽度 题目中为10-(-10)= 20;


 
 
  1. y = ifft(F*20);
  2. dt = T/length(y);
  3. tt = [0:dt:dt*(length(y)-1)] - T/2;
  4. yef = ifftshift(abs(y));
  5. %绘制频域波形 对应的 时域波形
  6. subplot(212)
  7. plot(tt,(ifftshift(abs(y))));
  8. title('傅立叶反变换')
  9. xlabel('t')
结果如下:



其实,还有个问题,没有解决,当增加ifft变换点数时,幅值会相应变换,还没完全弄懂,主要是DSP忘得差不多了,赶紧补吧!晚安~

   

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值