声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1104|回复: 3

[FFT] 求助!ifft后波形分裂了(不知原因,痛苦中)

[复制链接]
发表于 2009-4-8 17:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
输入信号和信道传函都转化到频域,根据时域卷积频域相乘的规则,在频域将两者相乘后求解ifft,得到时域波形。

[ 本帖最后由 zhangnan3509 于 2009-4-9 20:13 编辑 ]
两周期调制信号.JPG
两周期调制信号1.JPG
信道频域值.JPG
高斯包络谱求解输出.JPG
高斯包络谱求解输出1.JPG
两周期输入信号求解输出.JPG
高斯包络谱求解输出1.JPG

ftfp1k3k.mat

15.42 KB, 下载次数: 4

信道传函频域数据

spectrumtotime.m

1.42 KB, 下载次数: 5

回复
分享到:

使用道具 举报

 楼主| 发表于 2009-4-9 08:21 | 显示全部楼层
这个问题主要是相位信息的处理问题,请高手指点啊!

[ 本帖最后由 xhfzjlx 于 2009-4-9 09:26 编辑 ]
 楼主| 发表于 2009-4-9 09:17 | 显示全部楼层
时域波形应该是一个两周期或者是三周期的调制信号,但是,波形分开分布于时域序列的首位两端。
想知道出现这种情况的原因。期盼高手的指点!
编程思路:输入两种信号,一个是时域的调制的两周期信号,做fft转换到频域;一个是直接在频域形成高斯包络(频谱,没有相位信息)。两者都与信道函数的频域序列(复数)相乘,所得结果序列,根据fft后频域信号共轭对称的特性扩展,然后进行ifft得到时域信号。
程序如下(昨天发的帖子不见代码了,重新发布)
clear;clc
f=1000;  %信号主频
fs=6000;  %采样频率
pn=2;   %输入信号的周期数
nt=0:pn*fs/f-1;
for nt1=0:pn*fs/f-1;
% dt=1/(f*length(nt));-1
inw(1,nt1+1)=exp(-(nt1/(floor(pn*fs/f/2))-1)^2);
end     %信号调制的包络
dt=1/fs;
om=2*pi*f;
in2=sin(om*nt*dt);
in=inw.*in2;     %产生调制的两周期信号
mm=[in,zeros(1,2048-pn*fs/f)];% 补足2048个点,以便求fft
load ftfp1k3k.mat    %导入信道传递函数(频谱值,复数)
ftfp=[zeros(1,49) ftfp 0];  
dfq=fs/2/1024;f0=1;b=0.4;
  for nfn=0:1024;
      sou(1,nfn+1)=exp(-((nfn*(dfq/1000)-f0)/b)^2);  
  end           %产生高斯包络,用于两种不同输入信号的对比
mm1=fft(mm);
mmza=ftfp.*sou;
mmzb=mm1(1,1:1025).*ftfp.*sou;
mma=[mmza,fliplr(conj(mmza(2:1024)))];
mmb=[mmzb,fliplr(conj(mmzb(2:1024)))];
yya=fft(mma,2048);
yyb=ifft(mma,2048);
yyc=fft(mmb,2048);
yyd=ifft(mmb,2048);
% yyc=[yyc(1025:2048) yyc(1:1024)];
% yyd=[yyd(1025:2048) yyd(1:1024)];  ifft后信号的首尾连接,成一个完整波形
figure
subplot(211)
plot(real(mm))
title ('real(mm)')
subplot(212)
plot(abs(mm1))
title ('abs(mm1)')
figure
subplot(211)
plot(real(ftfp))
title ('real(ftfp)')
subplot(212)
plot(imag(ftfp))
title ('imag(ftfp)')
figure  %(1:n1/2)(1:n1/2)(1:n2/2)(1:n2/2)
subplot(211)
plot(real(yya))
title ('source time fft')
subplot(212)
plot(real(yyb))
title ('source time ifft')
figure
subplot(211)
plot(real(yyc))
title ('mm time fft')
subplot(212)
plot(real(yyd))
title ('mm time ifft')

[ 本帖最后由 xhfzjlx 于 2009-4-9 09:25 编辑 ]
 楼主| 发表于 2009-4-11 08:47 | 显示全部楼层
还没有人问津,继续等待大侠的出现
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-27 19:09 , Processed in 0.075638 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表