符​号付固定小数点の​16​進数をフーリエ​変換する方法を教えて​ください。

조회 수: 17 (최근 30일)
K_S_
K_S_ 2022년 7월 25일
댓글: K_S_ 2022년 7월 26일
下記のような符​号付固定小数点の16​進数のfiオブジェクトy_fiをフーリエ変換する方法を教えてください。
fs = 1000e3;
Ts = 1/fs;
tsim = 0.001;
n = floor(tsim/Ts);
t = (0:n-1)'*Ts;
y = zeros(n,1);
fin = 1000;
a = 1;
y(1:end) = a*sin(2*pi*fin*t);
T = numerictype(true,64,60);
F = fimath('OverflowMode', 'saturate',...
'RoundMode', 'round',...
'SumMode', 'FullPrecision',...
'ProductMode', 'FullPrecision',...
'MaxProductWordLength', 256,...
'MaxSumWordLength', 256);
y_fi = fi(y,T,F);
  댓글 수: 2
Hernia Baby
Hernia Baby 2022년 7월 25일
すみませんが2点教えてください
double型に戻してFFTを行うことは大丈夫でしょうか?
②ここでいうFFTとは周波数×パワースペクトラムでしょうか?
 それとも複素数に変換されたものでしょうか?
K_S_
K_S_ 2022년 7월 25일
ご質問ありがとうございます。
①double型に戻さずFFTを行いたいです。
②周波数×パワースペクトラムです。
以上、よろしくお願いいたします。

댓글을 달려면 로그인하십시오.

답변 (1개)

Hernia Baby
Hernia Baby 2022년 7월 26일
①について
 すみませんが、double型に戻さないでのスペクトル解析はわかりませんでした。
 HFFTという手法も探ってみましたが、16進数でのFFTではなさそうです。
②について
 double型でいいのなら1行で解析可能です
fs = 1000e3;
Ts = 1/fs;
tsim = 0.001;
n = floor(tsim/Ts);
t = (0:n-1)'*Ts;
y = zeros(n,1);
fin = 1000;
a = 1;
y(1:end) = a*sin(2*pi*fin*t);
T = numerictype(true,64,60);
F = fimath('OverflowMode', 'saturate',...
'RoundMode', 'round',...
'SumMode', 'FullPrecision',...
'ProductMode', 'FullPrecision',...
'MaxProductWordLength', 256,...
'MaxSumWordLength', 256);
y_fi = fi(y,T,F);
double型にしてパワースペクトル解析を行います
pspectrum(double(y_fi),fs)
手前みそになりますが、信号解析系はMATLABで行うFFT ~1行でパワースペクトル解析~を参考いただけると幸いです。
  댓글 수: 1
K_S_
K_S_ 2022년 7월 26일
ご回答いただきありがとうございます。
double型での解析について、参考にさせていただきます。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 フーリエ解析とフィルター処理에 대해 자세히 알아보기

태그

제품


릴리스

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!