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

4 次查看(过去 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!