作者nature0702 (Oliver)
看板Electronics
标题[问题] hspice的暂态输出档 在matlab做fft??
时间Mon Jul 16 19:25:25 2007
一般的hspice 做fft需要的分析时间很长
所以有找了一些资料
可以把.tran的资料存起来
然後用matlab做分析
可以节省很多时间
不过却找不到 有比较详细的说明
这是我打的matlab程式 都是找参考资料凑起来的
输入是一个50khz的sin波
clc;
clear all;
format long e;
% load data
load d1.txt -ascii;
out_hold2=d1(1:65536,2);
%-------- plot FFT of Y[n] --------%
fs=50*10^6; %sampling rate(50MS/s) 这一行完全不懂 不过会影响最後的图x轴大小
ptst=1;
pts=realpow(2,10);
ptfi=ptst+pts-1;
y=out_hold2;
yb=y(ptst:ptfi);
yk1=fft(yb);
yk=abs(yk1);
no=length(yk);
f=fs*(0:no-1)/no;
Pyy=yk.*conj(yk)/(realpow(no/2,2));
%找出Y的虚部以求取频谱
%Pyy 为power spectrum density
%plot FFT result
semilogx(f(1:pts/2),10*log10(Pyy(1:pts/2))); %绘制x轴半对数座标的频谱图
xlabel('Frequency (Hz)');
ylabel('Y[k](dB)');
title('Output ');
grid on;
因为画出来的跟hspice的差很多
不知道是程式写错
还是哪里没有注意到
有做过这样的分析的 希望可以给我点意见 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.127.112.183
1F:推 chenchenkuo:我是没看你的code 不过我的经验是画出来差不少喔 07/17 17:41
2F:→ chenchenkuo:但是印象中SNR的"值"算出来没差多少 07/17 17:42
3F:→ chenchenkuo:我耍憨了 SNR都是用matlab算的= = 07/18 00:11
4F:推 kk123:学长耍笨 <(>▽<)@m 07/18 09:43
5F:→ fumihiro:建议先弄清楚DFT的基本原理,你就知道为何需要Fs 07/19 08:53