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

2 Ansichten (letzte 30 Tage)
K_S_
K_S_ am 25 Jul. 2022
Kommentiert: K_S_ am 26 Jul. 2022
下記のような符​号付固定小数点の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 Kommentare
Hernia Baby
Hernia Baby am 25 Jul. 2022
すみませんが2点教えてください
double型に戻してFFTを行うことは大丈夫でしょうか?
②ここでいうFFTとは周波数×パワースペクトラムでしょうか?
 それとも複素数に変換されたものでしょうか?
K_S_
K_S_ am 25 Jul. 2022
ご質問ありがとうございます。
①double型に戻さずFFTを行いたいです。
②周波数×パワースペクトラムです。
以上、よろしくお願いいたします。

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Hernia Baby
Hernia Baby am 26 Jul. 2022
①について
 すみませんが、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 Kommentar
K_S_
K_S_ am 26 Jul. 2022
ご回答いただきありがとうございます。
double型での解析について、参考にさせていただきます。

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu フーリエ解析とフィルター処理 finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!