Implementation of Frequency Reassignment

5 次查看(过去 30 天)
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