matlab进行fft仿真,基于fft算法的MATLAB仿真

描述

该方法易于在FPGA上实现相关算法,比直接用相乘来得简单,而且但相关点数越多计算量相对而言比直接求解减少

仿真程序如下:

%步骤:

%(1) x,y都在高位补M(数据长度)个零

%(2) 求2M点FFT,X(K),Y(K)

%(3) 求乘积,Rxy(K)=X(K)*Y‘(K) 注:Y(K)取共轭

%(4) 求2M点IFFT, rxy= IFFT(Rxy(K))

clc;close all;clear all;

x1=load(‘D:My DocumentsMATLABdens_flow_ejieRF1.txt’); %导入数据

y1=load(‘D:My DocumentsMATLABdens_flow_ejieRF2.txt’); %导入数据

xcorr_size=512; %定义互相关的长度

xk=zeros(1,2*xcorr_size);

yk=zeros(1,2*xcorr_size);

label_x=zeros(1,2*xcorr_size);

velo= zeros(1,2*xcorr_size);

xk(1:xcorr_size)=x1(1:xcorr_size); %以下为对比实验,将用fft相关算法和XCORR实现进行对比,发现不用使用反折方法也能实现相关

yk(1:xcorr_size)=y1(1:xcorr_size); %实现效果非常好

XK_FFT=fft(xk);

YK_FFT=conj(fft(yk)); %求共轭,只是在复数乘法之前加了一个 取共轭操作

ZK= XK_FFT.*YK_FFT;

rxy=fftshift(ifft(ZK)); %用取实部的操作一样

figure;

plot(rxy);

title(‘fft算法实现线性相关’);

rxy2=xcorr(xk(1:xcorr_size),yk(1:xcorr_size));

figure;

plot(rxy2);

title(‘matlab自带相关函数xcorr结果’);

09e859aa713964622bcddf9ebfaed998.png

打开APP阅读更多精彩内容

点击阅读全文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值