作者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
推 chenchenkuo:我是沒看你的code 不過我的經驗是畫出來差不少喔 07/17 17:41
→ chenchenkuo:但是印象中SNR的"值"算出來沒差多少 07/17 17:42
→ chenchenkuo:我耍憨了 SNR都是用matlab算的= = 07/18 00:11
推 kk123:學長耍笨 <(>▽<)@m 07/18 09:43
→ fumihiro:建議先弄清楚DFT的基本原理,你就知道為何需要Fs 07/19 08:53