通信协议基础知识三

通信知识总结三:


前言

本节讨论IFFT、FFT和一些信号调制方式的问题

一、FFT和IFFT是什么?

FFT:时域转换至频域。
IFFT:频域转换至时域。(原理:频域数据(复数a+bi)取共轭复数(虚部取反)(a-bi),再进行FFT变换,此时变换过来的结果也是复数,只需取复数的实部即可(因为虚部很小可以忽略不要))

二、matlab使用步骤

1.引入库

代码如下(示例):

%% 将正弦波做FFT计算,50%的重叠。验证IFFT的计算——对比自带函数IFFT函数,和对FFT结果取共轭,再进行FFT计算的区别。
clear;clf;
Fs=24000;t = 0:1/Fs:0.07;y=sin(200*2*pi*t+50);      % 24k采样率下,生成200Hz、0.07秒正弦波
i=(floor(length(y)/512)-1)*2;                       % 因为分帧计算,这里计算循环次数。因为要50%的重叠,所以需要乘以2
yfft=zeros(1,length(y));            % 初始化函数
yifft=zeros(1,length(y));           % 初始化函数
Windows=hamming(512);               % 取窗函数
for a =0:i
    StartPoint=1+256*a;            
    y0(1:512)=y(StartPoint:(StartPoint+512-1)); %取每次要处理的512个数据
    y0=y0.*Windows';                % 加窗
    TempData=fft(y0);               % 做FFT计算
    Yifft=ifft(TempData);           % MATLAB自带IFFT函数
    Yfft=conj(TempData);            % 取共轭复数
    Yfft=fft(Yfft);                 % 虚部取反做FFT计算
    Yfft=(real(Yfft)/512)*0.98;     % 取出实部,并对其除以N。乘以0.98为了做图进行对比
    yfft(StartPoint:StartPoint+512-1)=yfft(StartPoint:StartPoint+512-1)+Yfft;       %重组
    yifft(StartPoint:StartPoint+512-1)=yifft(StartPoint:StartPoint+512-1)+Yifft;    %重组
end
%% 作图
figure(1);
plot(y,'*');            hold on
plot(yfft,'r');         hold on ;
plot(yifft,'k');        grid on
legend('原信号时域','虚部取反做fft时域','Ifft时域');
xlabel('时域(t)');
ylabel('幅值');
 

总结

一些信号调制方式的问题留在下一节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值