24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3115  |  回复: 9

_强鹏

银虫 (初入文坛)

[求助] 关于matlab进行傅里叶变换和逆变换的程序,求大神指导!

模型为:
k1=1.3;
a=4e7;
b=6e8;
Ep=50e3;   
dt=1.5e-9;  
T=1.5e-7;
t=0:dt:T;
x_t=k1*Ep*(exp(-a.*t)-exp(-b.*t));


1.做fft后得到频域;

2.fft得到频域的值得到乘以系数(可以是复数也可以是实数,系数的模长小于1)得到另外的一组值;

3将得到的值做ifft得到时域图。

求大神写上程序!!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
csgt0: 金币+2, 谢谢 2013-06-03 14:44:23
clear all; clc

k1 = 1.3;
a  = 4e7;
b  = 6e8;
Ep = 50e3;
dt = 1.5e-9;
T  = 1.5e-7;
t  = 0:dt:T;
x_t= k1*Ep*(exp(-a.*t)-exp(-b.*t));

X  = fft(x_t);

X2 = X * 0.9;
x_t_2 = ifft(X2);

Fs = 1/dt;              % Sampling frequency
L  = length(t);         % Length of signal
NFFT = 2^nextpow2(L);   % Next power of 2 from length of y

f    = Fs/2*linspace(0,1,NFFT/2+1);

subplot(3,1,1); plot(t, x_t); xlabel('time')
subplot(3,1,2); plot(f, 2*abs(X(1:NFFT/2+1))) ; xlabel('frequency')
subplot(3,1,3); plot(t, x_t); hold on; plot(t, x_t_2, 'r'); xlabel('time'); legend('original signal', 'reconstructed signal')
2楼2013-06-03 04:29:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

_强鹏

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by somomo91 at 2013-06-03 04:29:43
clear all; clc

k1 = 1.3;
a  = 4e7;
b  = 6e8;
Ep = 50e3;
dt = 1.5e-9;
T  = 1.5e-7;
t  = 0:dt:T;
x_t= k1*Ep*(exp(-a.*t)-exp(-b.*t));

X  = fft(x_t);

X2 = X * 0.9;
x_t_2 = ifft(X2);

F ...

非常感谢,你这里的取得均匀变换因子0.9,但是因子实际操作时是变换的小于1的值,就导致x_t_2 = ifft(X2)为复数,那么最后
plot(t, x_t_2, 'r'); 怎么画,画abs 还是real,还是直接画?
3楼2013-06-03 17:59:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

引用回帖:
3楼: Originally posted by _强鹏 at 2013-06-03 17:59:43
非常感谢,你这里的取得均匀变换因子0.9,但是因子实际操作时是变换的小于1的值,就导致x_t_2 = ifft(X2)为复数,那么最后
plot(t, x_t_2, 'r'); 怎么画,画abs 还是real,还是直接画?...

这样的话,其实就是个比较了
你把两个都画出来,看看那条线更接近理想值,
信号处理,没有绝对的理论的,
4楼2013-06-03 18:08:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

_强鹏

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by somomo91 at 2013-06-03 04:29:43
clear all; clc

k1 = 1.3;
a  = 4e7;
b  = 6e8;
Ep = 50e3;
dt = 1.5e-9;
T  = 1.5e-7;
t  = 0:dt:T;
x_t= k1*Ep*(exp(-a.*t)-exp(-b.*t));

X  = fft(x_t);

X2 = X * 0.9;
x_t_2 = ifft(X2);

F ...

其实系数是跟频率有关系的,可以定为0.9*f
X2 = X * 0.9.*f;
5楼2013-06-03 18:19:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

引用回帖:
5楼: Originally posted by _强鹏 at 2013-06-03 18:19:22
其实系数是跟频率有关系的,可以定为0.9*f
X2 = X * 0.9.*f;...

不能直接定义为,
X2 = X * 0.9.*f;
否则你可以看看结果。。。
6楼2013-06-03 18:22:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

_强鹏

银虫 (初入文坛)

引用回帖:
6楼: Originally posted by somomo91 at 2013-06-03 18:22:48
不能直接定义为,
X2 = X * 0.9.*f;
否则你可以看看结果。。。...

我知道 具体的公式太复杂了,反正系数是随频率变换的小于1的值(可以是实数,也可以是复数),所以ifft得到的为复数,我就想知道复数怎么画图,画abs貌似不对,直接画,显示忽略了相位
7楼2013-06-03 19:06:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

张石平

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by somomo91 at 2013-06-03 04:29:43
clear all; clc

k1 = 1.3;
a  = 4e7;
b  = 6e8;
Ep = 50e3;
dt = 1.5e-9;
T  = 1.5e-7;
t  = 0:dt:T;
x_t= k1*Ep*(exp(-a.*t)-exp(-b.*t));

X  = fft(x_t);

X2 = X * 0.9;
x_t_2 = ifft(X2);

F ...

请问一下,如先有频域曲线,想得到时域曲线,做傅里叶逆变换后,时间项该如何处理?
8楼2014-08-14 10:57:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

活在当下bj

新虫 (小有名气)

引用回帖:
8楼: Originally posted by 张石平 at 2014-08-14 10:57:06
请问一下,如先有频域曲线,想得到时域曲线,做傅里叶逆变换后,时间项该如何处理?...

问下,直接把频域曲线经逆傅里叶变换得到时域曲线,您是怎么处理的?谢谢~
9楼2015-05-31 09:24:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

张石平

新虫 (初入文坛)

引用回帖:
9楼: Originally posted by 活在当下bj at 2015-05-31 09:24:26
问下,直接把频域曲线经逆傅里叶变换得到时域曲线,您是怎么处理的?谢谢~...

直接用ifft函数就可以得到,但是我的时间项一直没有得到有意义的处理,惆怅中
10楼2015-06-01 17:49:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 _强鹏 的主题更新
信息提示
请填处理意见