ejiedian的个人空间 https://blog.eetop.cn/989185 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

用fft算法实现相关的MATLAB仿真

已有 2320 次阅读| 2013-6-6 14:31 |个人分类:verilog

     该方法易于在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 Documents\MATLAB\dens_flow_ejie\RF1.txt');  %导入数据
y1=load('D:\My Documents\MATLAB\dens_flow_ejie\RF2.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结果');


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 194

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-4 18:21 , Processed in 0.012915 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部