Implementation of Frequency Reassignment

조회 수: 5 (최근 30일)
yair amar
yair amar 2020년 10월 6일
답변: Addy 2021년 3월 31일
Hello everyone!
(page 14): when and is the STFT of the signal x, and the d stands for a derivative of the window h.
Our implementation follows the above mentioned calculations and yet does not work.
Any ideas as to what we miss here/ can be doen better?
% Init function handles
hann_func = @(n,N) 0.5*(1 - cos(2*pi*n/(N-1)));
hann_d_func = @(n,N,fs) (pi*fs/(N-1))*sin(2*pi*n/(N-1));
% intializing parameters
fs = 44100; N = 8192; f1 = 150; f2 = 420;
t_orig = 0:(1/fs):2.5;
x = cos(2*pi*f1*t_orig);
% creating windows
win = hann_func(1:N,N);
win_d = hann_d_func(1:N, N, fs);
% Applying STFTs with OL 50%
[X, f, t] = stft(x,fs,'Window',win,'OverlapLength',N/2,'fftLength',N);
[Xd, ~, ~] = stft(x,fs,'Window',win_d,'OverlapLength',N/2,'fftLength',N);
X_conj_over_norm = conj(X)./ (sum(abs(X)).^2);
Xdphase_dt = -imag(Xd .* X_conj_over_norm);
reass_f_X = f + Xdphase_dt/(2*pi);

답변 (1개)

Addy
Addy 2021년 3월 31일
I'm don't know much about the mathematics. But I saw that they referred to tfrrsp function which can be found in the reference [3]. The [3] is the TF toolbox found in http://tftb.nongnu.org. So, I tried to compare apples to apples with tfrrsp vs MATLAB's STFT.
I have attached the necessary mfiles from that toolbox to produce reassigned stft.
The results are as follows:
//Addy

카테고리

Help CenterFile Exchange에서 Audio Processing Algorithm Design에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by